Page MenuHomePhabricator

D19023.diff
No OneTemporary

D19023.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -528,7 +528,7 @@
'rsrc/js/phui/behavior-phui-tab-group.js' => '0a0b10e9',
'rsrc/js/phuix/PHUIXActionListView.js' => 'b5c256b8',
'rsrc/js/phuix/PHUIXActionView.js' => '442efd08',
- 'rsrc/js/phuix/PHUIXAutocomplete.js' => 'e0731603',
+ 'rsrc/js/phuix/PHUIXAutocomplete.js' => 'f40c72af',
'rsrc/js/phuix/PHUIXButtonView.js' => '8a91e1ac',
'rsrc/js/phuix/PHUIXDropdownMenu.js' => '04b2ae03',
'rsrc/js/phuix/PHUIXExample.js' => '68af71ca',
@@ -881,7 +881,7 @@
'phui-workpanel-view-css' => 'a3a63478',
'phuix-action-list-view' => 'b5c256b8',
'phuix-action-view' => '442efd08',
- 'phuix-autocomplete' => 'e0731603',
+ 'phuix-autocomplete' => 'f40c72af',
'phuix-button-view' => '8a91e1ac',
'phuix-dropdown-menu' => '04b2ae03',
'phuix-form-control-view' => '16ad6224',
@@ -2037,12 +2037,6 @@
'javelin-typeahead-ondemand-source',
'javelin-dom',
),
- 'e0731603' => array(
- 'javelin-install',
- 'javelin-dom',
- 'phuix-icon-view',
- 'phabricator-prefab',
- ),
'e1d25dfb' => array(
'javelin-behavior',
'javelin-stratcom',
@@ -2143,6 +2137,12 @@
'phui-button-css',
'phui-button-simple-css',
),
+ 'f40c72af' => array(
+ 'javelin-install',
+ 'javelin-dom',
+ 'phuix-icon-view',
+ 'phabricator-prefab',
+ ),
'f50152ad' => array(
'phui-timeline-view-css',
),
diff --git a/resources/emoji/manifest.json b/resources/emoji/manifest.json
--- a/resources/emoji/manifest.json
+++ b/resources/emoji/manifest.json
@@ -16,12 +16,10 @@
"ambulance": "\ud83d\ude91",
"amphora": "\ud83c\udffa",
"anchor": "\u2693",
- "angel": "\ud83d\udc7c",
- "angel_tone1": "\ud83d\udc7c\ud83c\udffb",
- "angel_tone2": "\ud83d\udc7c\ud83c\udffc",
- "angel_tone3": "\ud83d\udc7c\ud83c\udffd",
- "angel_tone4": "\ud83d\udc7c\ud83c\udffe",
- "angel_tone5": "\ud83d\udc7c\ud83c\udfff",
+ "angel": {
+ "emoji": "\ud83d\udc7c",
+ "tones": true
+ },
"anger": "\ud83d\udca2",
"anger_right": "\ud83d\uddef",
"angry": "\ud83d\ude20",
@@ -58,15 +56,13 @@
"atm": "\ud83c\udfe7",
"atom": "\u269b",
"b": "\ud83c\udd71",
- "baby": "\ud83d\udc76",
+ "baby": {
+ "emoji": "\ud83d\udc76",
+ "tones": true
+ },
"baby_bottle": "\ud83c\udf7c",
"baby_chick": "\ud83d\udc24",
"baby_symbol": "\ud83d\udebc",
- "baby_tone1": "\ud83d\udc76\ud83c\udffb",
- "baby_tone2": "\ud83d\udc76\ud83c\udffc",
- "baby_tone3": "\ud83d\udc76\ud83c\udffd",
- "baby_tone4": "\ud83d\udc76\ud83c\udffe",
- "baby_tone5": "\ud83d\udc76\ud83c\udfff",
"back": "\ud83d\udd19",
"badminton": "\ud83c\udff8",
"baggage_claim": "\ud83d\udec4",
@@ -81,18 +77,14 @@
"barber": "\ud83d\udc88",
"baseball": "\u26be",
"basketball": "\ud83c\udfc0",
- "basketball_player": "\u26f9",
- "basketball_player_tone1": "\u26f9\ud83c\udffb",
- "basketball_player_tone2": "\u26f9\ud83c\udffc",
- "basketball_player_tone3": "\u26f9\ud83c\udffd",
- "basketball_player_tone4": "\u26f9\ud83c\udffe",
- "basketball_player_tone5": "\u26f9\ud83c\udfff",
- "bath": "\ud83d\udec0",
- "bath_tone1": "\ud83d\udec0\ud83c\udffb",
- "bath_tone2": "\ud83d\udec0\ud83c\udffc",
- "bath_tone3": "\ud83d\udec0\ud83c\udffd",
- "bath_tone4": "\ud83d\udec0\ud83c\udffe",
- "bath_tone5": "\ud83d\udec0\ud83c\udfff",
+ "basketball_player": {
+ "emoji": "\u26f9",
+ "tones": true
+ },
+ "bath": {
+ "emoji": "\ud83d\udec0",
+ "tones": true
+ },
"bathtub": "\ud83d\udec1",
"battery": "\ud83d\udd0b",
"beach": "\ud83c\udfd6",
@@ -107,12 +99,10 @@
"bell": "\ud83d\udd14",
"bellhop": "\ud83d\udece",
"bento": "\ud83c\udf71",
- "bicyclist": "\ud83d\udeb4",
- "bicyclist_tone1": "\ud83d\udeb4\ud83c\udffb",
- "bicyclist_tone2": "\ud83d\udeb4\ud83c\udffc",
- "bicyclist_tone3": "\ud83d\udeb4\ud83c\udffd",
- "bicyclist_tone4": "\ud83d\udeb4\ud83c\udffe",
- "bicyclist_tone5": "\ud83d\udeb4\ud83c\udfff",
+ "bicyclist": {
+ "emoji": "\ud83d\udeb4",
+ "tones": true
+ },
"bike": "\ud83d\udeb2",
"bikini": "\ud83d\udc59",
"biohazard": "\u2623",
@@ -141,27 +131,21 @@
"boom": "\ud83d\udca5",
"boot": "\ud83d\udc62",
"bouquet": "\ud83d\udc90",
- "bow": "\ud83d\ude47",
+ "bow": {
+ "emoji": "\ud83d\ude47",
+ "tones": true
+ },
"bow_and_arrow": "\ud83c\udff9",
- "bow_tone1": "\ud83d\ude47\ud83c\udffb",
- "bow_tone2": "\ud83d\ude47\ud83c\udffc",
- "bow_tone3": "\ud83d\ude47\ud83c\udffd",
- "bow_tone4": "\ud83d\ude47\ud83c\udffe",
- "bow_tone5": "\ud83d\ude47\ud83c\udfff",
"bowling": "\ud83c\udfb3",
- "boy": "\ud83d\udc66",
- "boy_tone1": "\ud83d\udc66\ud83c\udffb",
- "boy_tone2": "\ud83d\udc66\ud83c\udffc",
- "boy_tone3": "\ud83d\udc66\ud83c\udffd",
- "boy_tone4": "\ud83d\udc66\ud83c\udffe",
- "boy_tone5": "\ud83d\udc66\ud83c\udfff",
+ "boy": {
+ "emoji": "\ud83d\udc66",
+ "tones": true
+ },
"bread": "\ud83c\udf5e",
- "bride_with_veil": "\ud83d\udc70",
- "bride_with_veil_tone1": "\ud83d\udc70\ud83c\udffb",
- "bride_with_veil_tone2": "\ud83d\udc70\ud83c\udffc",
- "bride_with_veil_tone3": "\ud83d\udc70\ud83c\udffd",
- "bride_with_veil_tone4": "\ud83d\udc70\ud83c\udffe",
- "bride_with_veil_tone5": "\ud83d\udc70\ud83c\udfff",
+ "bride_with_veil": {
+ "emoji": "\ud83d\udc70",
+ "tones": true
+ },
"bridge_at_night": "\ud83c\udf09",
"briefcase": "\ud83d\udcbc",
"broken_heart": "\ud83d\udc94",
@@ -216,12 +200,10 @@
"city_sunset": "\ud83c\udf07",
"cityscape": "\ud83c\udfd9",
"cl": "\ud83c\udd91",
- "clap": "\ud83d\udc4f",
- "clap_tone1": "\ud83d\udc4f\ud83c\udffb",
- "clap_tone2": "\ud83d\udc4f\ud83c\udffc",
- "clap_tone3": "\ud83d\udc4f\ud83c\udffd",
- "clap_tone4": "\ud83d\udc4f\ud83c\udffe",
- "clap_tone5": "\ud83d\udc4f\ud83c\udfff",
+ "clap": {
+ "emoji": "\ud83d\udc4f",
+ "tones": true
+ },
"clapper": "\ud83c\udfac",
"classical_building": "\ud83c\udfdb",
"clipboard": "\ud83d\udccb",
@@ -272,22 +254,18 @@
"congratulations": "\u3297",
"construction": "\ud83d\udea7",
"construction_site": "\ud83c\udfd7",
- "construction_worker": "\ud83d\udc77",
- "construction_worker_tone1": "\ud83d\udc77\ud83c\udffb",
- "construction_worker_tone2": "\ud83d\udc77\ud83c\udffc",
- "construction_worker_tone3": "\ud83d\udc77\ud83c\udffd",
- "construction_worker_tone4": "\ud83d\udc77\ud83c\udffe",
- "construction_worker_tone5": "\ud83d\udc77\ud83c\udfff",
+ "construction_worker": {
+ "emoji": "\ud83d\udc77",
+ "tones": true
+ },
"control_knobs": "\ud83c\udf9b",
"convenience_store": "\ud83c\udfea",
"cookie": "\ud83c\udf6a",
"cool": "\ud83c\udd92",
- "cop": "\ud83d\udc6e",
- "cop_tone1": "\ud83d\udc6e\ud83c\udffb",
- "cop_tone2": "\ud83d\udc6e\ud83c\udffc",
- "cop_tone3": "\ud83d\udc6e\ud83c\udffd",
- "cop_tone4": "\ud83d\udc6e\ud83c\udffe",
- "cop_tone5": "\ud83d\udc6e\ud83c\udfff",
+ "cop": {
+ "emoji": "\ud83d\udc6e",
+ "tones": true
+ },
"copyright": "\u00a9",
"corn": "\ud83c\udf3d",
"couch": "\ud83d\udecb",
@@ -320,12 +298,10 @@
"customs": "\ud83d\udec3",
"cyclone": "\ud83c\udf00",
"dagger": "\ud83d\udde1",
- "dancer": "\ud83d\udc83",
- "dancer_tone1": "\ud83d\udc83\ud83c\udffb",
- "dancer_tone2": "\ud83d\udc83\ud83c\udffc",
- "dancer_tone3": "\ud83d\udc83\ud83c\udffd",
- "dancer_tone4": "\ud83d\udc83\ud83c\udffe",
- "dancer_tone5": "\ud83d\udc83\ud83c\udfff",
+ "dancer": {
+ "emoji": "\ud83d\udc83",
+ "tones": true
+ },
"dancers": "\ud83d\udc6f",
"dango": "\ud83c\udf61",
"dark_sunglasses": "\ud83d\udd76",
@@ -359,13 +335,11 @@
"droplet": "\ud83d\udca7",
"dvd": "\ud83d\udcc0",
"e-mail": "\ud83d\udce7",
- "ear": "\ud83d\udc42",
+ "ear": {
+ "emoji": "\ud83d\udc42",
+ "tones": true
+ },
"ear_of_rice": "\ud83c\udf3e",
- "ear_tone1": "\ud83d\udc42\ud83c\udffb",
- "ear_tone2": "\ud83d\udc42\ud83c\udffc",
- "ear_tone3": "\ud83d\udc42\ud83c\udffd",
- "ear_tone4": "\ud83d\udc42\ud83c\udffe",
- "ear_tone5": "\ud83d\udc42\ud83c\udfff",
"earth_africa": "\ud83c\udf0d",
"earth_americas": "\ud83c\udf0e",
"earth_asia": "\ud83c\udf0f",
@@ -424,12 +398,10 @@
"fish": "\ud83d\udc1f",
"fish_cake": "\ud83c\udf65",
"fishing_pole_and_fish": "\ud83c\udfa3",
- "fist": "\u270a",
- "fist_tone1": "\u270a\ud83c\udffb",
- "fist_tone2": "\u270a\ud83c\udffc",
- "fist_tone3": "\u270a\ud83c\udffd",
- "fist_tone4": "\u270a\ud83c\udffe",
- "fist_tone5": "\u270a\ud83c\udfff",
+ "fist": {
+ "emoji": "\u270a",
+ "tones": true
+ },
"five": "5\u20e3",
"flag_ac": "\ud83c\udde6\ud83c\udde8",
"flag_ad": "\ud83c\udde6\ud83c\udde9",
@@ -722,12 +694,10 @@
"ghost": "\ud83d\udc7b",
"gift": "\ud83c\udf81",
"gift_heart": "\ud83d\udc9d",
- "girl": "\ud83d\udc67",
- "girl_tone1": "\ud83d\udc67\ud83c\udffb",
- "girl_tone2": "\ud83d\udc67\ud83c\udffc",
- "girl_tone3": "\ud83d\udc67\ud83c\udffd",
- "girl_tone4": "\ud83d\udc67\ud83c\udffe",
- "girl_tone5": "\ud83d\udc67\ud83c\udfff",
+ "girl": {
+ "emoji": "\ud83d\udc67",
+ "tones": true
+ },
"globe_with_meridians": "\ud83c\udf10",
"goat": "\ud83d\udc10",
"golf": "\u26f3",
@@ -741,30 +711,24 @@
"grimacing": "\ud83d\ude2c",
"grin": "\ud83d\ude01",
"grinning": "\ud83d\ude00",
- "guardsman": "\ud83d\udc82",
- "guardsman_tone1": "\ud83d\udc82\ud83c\udffb",
- "guardsman_tone2": "\ud83d\udc82\ud83c\udffc",
- "guardsman_tone3": "\ud83d\udc82\ud83c\udffd",
- "guardsman_tone4": "\ud83d\udc82\ud83c\udffe",
- "guardsman_tone5": "\ud83d\udc82\ud83c\udfff",
+ "guardsman": {
+ "emoji": "\ud83d\udc82",
+ "tones": true
+ },
"guitar": "\ud83c\udfb8",
"gun": "\ud83d\udd2b",
- "haircut": "\ud83d\udc87",
- "haircut_tone1": "\ud83d\udc87\ud83c\udffb",
- "haircut_tone2": "\ud83d\udc87\ud83c\udffc",
- "haircut_tone3": "\ud83d\udc87\ud83c\udffd",
- "haircut_tone4": "\ud83d\udc87\ud83c\udffe",
- "haircut_tone5": "\ud83d\udc87\ud83c\udfff",
+ "haircut": {
+ "emoji": "\ud83d\udc87",
+ "tones": true
+ },
"hamburger": "\ud83c\udf54",
"hammer": "\ud83d\udd28",
"hammer_pick": "\u2692",
"hamster": "\ud83d\udc39",
- "hand_splayed": "\ud83d\udd90",
- "hand_splayed_tone1": "\ud83d\udd90\ud83c\udffb",
- "hand_splayed_tone2": "\ud83d\udd90\ud83c\udffc",
- "hand_splayed_tone3": "\ud83d\udd90\ud83c\udffd",
- "hand_splayed_tone4": "\ud83d\udd90\ud83c\udffe",
- "hand_splayed_tone5": "\ud83d\udd90\ud83c\udfff",
+ "hand_splayed": {
+ "emoji": "\ud83d\udd90",
+ "tones": true
+ },
"handbag": "\ud83d\udc5c",
"hash": "#\u20e3",
"hatched_chick": "\ud83d\udc25",
@@ -797,12 +761,10 @@
"homes": "\ud83c\udfd8",
"honey_pot": "\ud83c\udf6f",
"horse": "\ud83d\udc34",
- "horse_racing": "\ud83c\udfc7",
- "horse_racing_tone1": "\ud83c\udfc7\ud83c\udffb",
- "horse_racing_tone2": "\ud83c\udfc7\ud83c\udffc",
- "horse_racing_tone3": "\ud83c\udfc7\ud83c\udffd",
- "horse_racing_tone4": "\ud83c\udfc7\ud83c\udffe",
- "horse_racing_tone5": "\ud83c\udfc7\ud83c\udfff",
+ "horse_racing": {
+ "emoji": "\ud83c\udfc7",
+ "tones": true
+ },
"hospital": "\ud83c\udfe5",
"hot_pepper": "\ud83c\udf36",
"hotdog": "\ud83c\udf2d",
@@ -823,12 +785,10 @@
"imp": "\ud83d\udc7f",
"inbox_tray": "\ud83d\udce5",
"incoming_envelope": "\ud83d\udce8",
- "information_desk_person": "\ud83d\udc81",
- "information_desk_person_tone1": "\ud83d\udc81\ud83c\udffb",
- "information_desk_person_tone2": "\ud83d\udc81\ud83c\udffc",
- "information_desk_person_tone3": "\ud83d\udc81\ud83c\udffd",
- "information_desk_person_tone4": "\ud83d\udc81\ud83c\udffe",
- "information_desk_person_tone5": "\ud83d\udc81\ud83c\udfff",
+ "information_desk_person": {
+ "emoji": "\ud83d\udc81",
+ "tones": true
+ },
"information_source": "\u2139",
"innocent": "\ud83d\ude07",
"interrobang": "\u2049",
@@ -878,12 +838,10 @@
"level_slider": "\ud83c\udf9a",
"levitate": "\ud83d\udd74",
"libra": "\u264e",
- "lifter": "\ud83c\udfcb",
- "lifter_tone1": "\ud83c\udfcb\ud83c\udffb",
- "lifter_tone2": "\ud83c\udfcb\ud83c\udffc",
- "lifter_tone3": "\ud83c\udfcb\ud83c\udffd",
- "lifter_tone4": "\ud83c\udfcb\ud83c\udffe",
- "lifter_tone5": "\ud83c\udfcb\ud83c\udfff",
+ "lifter": {
+ "emoji": "\ud83c\udfcb",
+ "tones": true
+ },
"light_rail": "\ud83d\ude88",
"link": "\ud83d\udd17",
"lion_face": "\ud83e\udd81",
@@ -906,56 +864,44 @@
"mailbox_closed": "\ud83d\udcea",
"mailbox_with_mail": "\ud83d\udcec",
"mailbox_with_no_mail": "\ud83d\udced",
- "man": "\ud83d\udc68",
- "man_tone1": "\ud83d\udc68\ud83c\udffb",
- "man_tone2": "\ud83d\udc68\ud83c\udffc",
- "man_tone3": "\ud83d\udc68\ud83c\udffd",
- "man_tone4": "\ud83d\udc68\ud83c\udffe",
- "man_tone5": "\ud83d\udc68\ud83c\udfff",
- "man_with_gua_pi_mao": "\ud83d\udc72",
- "man_with_gua_pi_mao_tone1": "\ud83d\udc72\ud83c\udffb",
- "man_with_gua_pi_mao_tone2": "\ud83d\udc72\ud83c\udffc",
- "man_with_gua_pi_mao_tone3": "\ud83d\udc72\ud83c\udffd",
- "man_with_gua_pi_mao_tone4": "\ud83d\udc72\ud83c\udffe",
- "man_with_gua_pi_mao_tone5": "\ud83d\udc72\ud83c\udfff",
- "man_with_turban": "\ud83d\udc73",
- "man_with_turban_tone1": "\ud83d\udc73\ud83c\udffb",
- "man_with_turban_tone2": "\ud83d\udc73\ud83c\udffc",
- "man_with_turban_tone3": "\ud83d\udc73\ud83c\udffd",
- "man_with_turban_tone4": "\ud83d\udc73\ud83c\udffe",
- "man_with_turban_tone5": "\ud83d\udc73\ud83c\udfff",
+ "man": {
+ "emoji": "\ud83d\udc68",
+ "tones": true
+ },
+ "man_with_gua_pi_mao": {
+ "emoji": "\ud83d\udc72",
+ "tones": true
+ },
+ "man_with_turban": {
+ "emoji": "\ud83d\udc73",
+ "tones": true
+ },
"mans_shoe": "\ud83d\udc5e",
"map": "\ud83d\uddfa",
"maple_leaf": "\ud83c\udf41",
"mask": "\ud83d\ude37",
- "massage": "\ud83d\udc86",
- "massage_tone1": "\ud83d\udc86\ud83c\udffb",
- "massage_tone2": "\ud83d\udc86\ud83c\udffc",
- "massage_tone3": "\ud83d\udc86\ud83c\udffd",
- "massage_tone4": "\ud83d\udc86\ud83c\udffe",
- "massage_tone5": "\ud83d\udc86\ud83c\udfff",
+ "massage": {
+ "emoji": "\ud83d\udc86",
+ "tones": true
+ },
"meat_on_bone": "\ud83c\udf56",
"medal": "\ud83c\udfc5",
"mega": "\ud83d\udce3",
"melon": "\ud83c\udf48",
"menorah": "\ud83d\udd4e",
"mens": "\ud83d\udeb9",
- "metal": "\ud83e\udd18",
- "metal_tone1": "\ud83e\udd18\ud83c\udffb",
- "metal_tone2": "\ud83e\udd18\ud83c\udffc",
- "metal_tone3": "\ud83e\udd18\ud83c\udffd",
- "metal_tone4": "\ud83e\udd18\ud83c\udffe",
- "metal_tone5": "\ud83e\udd18\ud83c\udfff",
+ "metal": {
+ "emoji": "\ud83e\udd18",
+ "tones": true
+ },
"metro": "\ud83d\ude87",
"microphone": "\ud83c\udfa4",
"microphone2": "\ud83c\udf99",
"microscope": "\ud83d\udd2c",
- "middle_finger": "\ud83d\udd95",
- "middle_finger_tone1": "\ud83d\udd95\ud83c\udffb",
- "middle_finger_tone2": "\ud83d\udd95\ud83c\udffc",
- "middle_finger_tone3": "\ud83d\udd95\ud83c\udffd",
- "middle_finger_tone4": "\ud83d\udd95\ud83c\udffe",
- "middle_finger_tone5": "\ud83d\udd95\ud83c\udfff",
+ "middle_finger": {
+ "emoji": "\ud83d\udd95",
+ "tones": true
+ },
"military_medal": "\ud83c\udf96",
"milky_way": "\ud83c\udf0c",
"minibus": "\ud83d\ude90",
@@ -974,12 +920,10 @@
"motorway": "\ud83d\udee3",
"mount_fuji": "\ud83d\uddfb",
"mountain": "\u26f0",
- "mountain_bicyclist": "\ud83d\udeb5",
- "mountain_bicyclist_tone1": "\ud83d\udeb5\ud83c\udffb",
- "mountain_bicyclist_tone2": "\ud83d\udeb5\ud83c\udffc",
- "mountain_bicyclist_tone3": "\ud83d\udeb5\ud83c\udffd",
- "mountain_bicyclist_tone4": "\ud83d\udeb5\ud83c\udffe",
- "mountain_bicyclist_tone5": "\ud83d\udeb5\ud83c\udfff",
+ "mountain_bicyclist": {
+ "emoji": "\ud83d\udeb5",
+ "tones": true
+ },
"mountain_cableway": "\ud83d\udea0",
"mountain_railway": "\ud83d\ude9e",
"mountain_snow": "\ud83c\udfd4",
@@ -988,23 +932,19 @@
"mouse_three_button": "\ud83d\uddb1",
"movie_camera": "\ud83c\udfa5",
"moyai": "\ud83d\uddff",
- "muscle": "\ud83d\udcaa",
- "muscle_tone1": "\ud83d\udcaa\ud83c\udffb",
- "muscle_tone2": "\ud83d\udcaa\ud83c\udffc",
- "muscle_tone3": "\ud83d\udcaa\ud83c\udffd",
- "muscle_tone4": "\ud83d\udcaa\ud83c\udffe",
- "muscle_tone5": "\ud83d\udcaa\ud83c\udfff",
+ "muscle": {
+ "emoji": "\ud83d\udcaa",
+ "tones": true
+ },
"mushroom": "\ud83c\udf44",
"musical_keyboard": "\ud83c\udfb9",
"musical_note": "\ud83c\udfb5",
"musical_score": "\ud83c\udfbc",
"mute": "\ud83d\udd07",
- "nail_care": "\ud83d\udc85",
- "nail_care_tone1": "\ud83d\udc85\ud83c\udffb",
- "nail_care_tone2": "\ud83d\udc85\ud83c\udffc",
- "nail_care_tone3": "\ud83d\udc85\ud83c\udffd",
- "nail_care_tone4": "\ud83d\udc85\ud83c\udffe",
- "nail_care_tone5": "\ud83d\udc85\ud83c\udfff",
+ "nail_care": {
+ "emoji": "\ud83d\udc85",
+ "tones": true
+ },
"name_badge": "\ud83d\udcdb",
"necktie": "\ud83d\udc54",
"negative_squared_cross_mark": "\u274e",
@@ -1022,23 +962,19 @@
"no_bicycles": "\ud83d\udeb3",
"no_entry": "\u26d4",
"no_entry_sign": "\ud83d\udeab",
- "no_good": "\ud83d\ude45",
- "no_good_tone1": "\ud83d\ude45\ud83c\udffb",
- "no_good_tone2": "\ud83d\ude45\ud83c\udffc",
- "no_good_tone3": "\ud83d\ude45\ud83c\udffd",
- "no_good_tone4": "\ud83d\ude45\ud83c\udffe",
- "no_good_tone5": "\ud83d\ude45\ud83c\udfff",
+ "no_good": {
+ "emoji": "\ud83d\ude45",
+ "tones": true
+ },
"no_mobile_phones": "\ud83d\udcf5",
"no_mouth": "\ud83d\ude36",
"no_pedestrians": "\ud83d\udeb7",
"no_smoking": "\ud83d\udead",
"non-potable_water": "\ud83d\udeb1",
- "nose": "\ud83d\udc43",
- "nose_tone1": "\ud83d\udc43\ud83c\udffb",
- "nose_tone2": "\ud83d\udc43\ud83c\udffc",
- "nose_tone3": "\ud83d\udc43\ud83c\udffd",
- "nose_tone4": "\ud83d\udc43\ud83c\udffe",
- "nose_tone5": "\ud83d\udc43\ud83c\udfff",
+ "nose": {
+ "emoji": "\ud83d\udc43",
+ "tones": true
+ },
"notebook": "\ud83d\udcd3",
"notebook_with_decorative_cover": "\ud83d\udcd4",
"notepad_spiral": "\ud83d\uddd2",
@@ -1052,30 +988,22 @@
"office": "\ud83c\udfe2",
"oil": "\ud83d\udee2",
"ok": "\ud83c\udd97",
- "ok_hand": "\ud83d\udc4c",
- "ok_hand_tone1": "\ud83d\udc4c\ud83c\udffb",
- "ok_hand_tone2": "\ud83d\udc4c\ud83c\udffc",
- "ok_hand_tone3": "\ud83d\udc4c\ud83c\udffd",
- "ok_hand_tone4": "\ud83d\udc4c\ud83c\udffe",
- "ok_hand_tone5": "\ud83d\udc4c\ud83c\udfff",
- "ok_woman": "\ud83d\ude46",
- "ok_woman_tone1": "\ud83d\ude46\ud83c\udffb",
- "ok_woman_tone2": "\ud83d\ude46\ud83c\udffc",
- "ok_woman_tone3": "\ud83d\ude46\ud83c\udffd",
- "ok_woman_tone4": "\ud83d\ude46\ud83c\udffe",
- "ok_woman_tone5": "\ud83d\ude46\ud83c\udfff",
- "older_man": "\ud83d\udc74",
- "older_man_tone1": "\ud83d\udc74\ud83c\udffb",
- "older_man_tone2": "\ud83d\udc74\ud83c\udffc",
- "older_man_tone3": "\ud83d\udc74\ud83c\udffd",
- "older_man_tone4": "\ud83d\udc74\ud83c\udffe",
- "older_man_tone5": "\ud83d\udc74\ud83c\udfff",
- "older_woman": "\ud83d\udc75",
- "older_woman_tone1": "\ud83d\udc75\ud83c\udffb",
- "older_woman_tone2": "\ud83d\udc75\ud83c\udffc",
- "older_woman_tone3": "\ud83d\udc75\ud83c\udffd",
- "older_woman_tone4": "\ud83d\udc75\ud83c\udffe",
- "older_woman_tone5": "\ud83d\udc75\ud83c\udfff",
+ "ok_hand": {
+ "emoji": "\ud83d\udc4c",
+ "tones": true
+ },
+ "ok_woman": {
+ "emoji": "\ud83d\ude46",
+ "tones": true
+ },
+ "older_man": {
+ "emoji": "\ud83d\udc74",
+ "tones": true
+ },
+ "older_woman": {
+ "emoji": "\ud83d\udc75",
+ "tones": true
+ },
"om_symbol": "\ud83d\udd49",
"on": "\ud83d\udd1b",
"oncoming_automobile": "\ud83d\ude98",
@@ -1084,12 +1012,10 @@
"oncoming_taxi": "\ud83d\ude96",
"one": "1\u20e3",
"open_file_folder": "\ud83d\udcc2",
- "open_hands": "\ud83d\udc50",
- "open_hands_tone1": "\ud83d\udc50\ud83c\udffb",
- "open_hands_tone2": "\ud83d\udc50\ud83c\udffc",
- "open_hands_tone3": "\ud83d\udc50\ud83c\udffd",
- "open_hands_tone4": "\ud83d\udc50\ud83c\udffe",
- "open_hands_tone5": "\ud83d\udc50\ud83c\udfff",
+ "open_hands": {
+ "emoji": "\ud83d\udc50",
+ "tones": true
+ },
"open_mouth": "\ud83d\ude2e",
"ophiuchus": "\u26ce",
"orange_book": "\ud83d\udcd9",
@@ -1122,24 +1048,18 @@
"pensive": "\ud83d\ude14",
"performing_arts": "\ud83c\udfad",
"persevere": "\ud83d\ude23",
- "person_frowning": "\ud83d\ude4d",
- "person_frowning_tone1": "\ud83d\ude4d\ud83c\udffb",
- "person_frowning_tone2": "\ud83d\ude4d\ud83c\udffc",
- "person_frowning_tone3": "\ud83d\ude4d\ud83c\udffd",
- "person_frowning_tone4": "\ud83d\ude4d\ud83c\udffe",
- "person_frowning_tone5": "\ud83d\ude4d\ud83c\udfff",
- "person_with_blond_hair": "\ud83d\udc71",
- "person_with_blond_hair_tone1": "\ud83d\udc71\ud83c\udffb",
- "person_with_blond_hair_tone2": "\ud83d\udc71\ud83c\udffc",
- "person_with_blond_hair_tone3": "\ud83d\udc71\ud83c\udffd",
- "person_with_blond_hair_tone4": "\ud83d\udc71\ud83c\udffe",
- "person_with_blond_hair_tone5": "\ud83d\udc71\ud83c\udfff",
- "person_with_pouting_face": "\ud83d\ude4e",
- "person_with_pouting_face_tone1": "\ud83d\ude4e\ud83c\udffb",
- "person_with_pouting_face_tone2": "\ud83d\ude4e\ud83c\udffc",
- "person_with_pouting_face_tone3": "\ud83d\ude4e\ud83c\udffd",
- "person_with_pouting_face_tone4": "\ud83d\ude4e\ud83c\udffe",
- "person_with_pouting_face_tone5": "\ud83d\ude4e\ud83c\udfff",
+ "person_frowning": {
+ "emoji": "\ud83d\ude4d",
+ "tones": true
+ },
+ "person_with_blond_hair": {
+ "emoji": "\ud83d\udc71",
+ "tones": true
+ },
+ "person_with_pouting_face": {
+ "emoji": "\ud83d\ude4e",
+ "tones": true
+ },
"pick": "\u26cf",
"pig": "\ud83d\udc37",
"pig2": "\ud83d\udc16",
@@ -1151,36 +1071,26 @@
"pizza": "\ud83c\udf55",
"place_of_worship": "\ud83d\uded0",
"play_pause": "\u23ef",
- "point_down": "\ud83d\udc47",
- "point_down_tone1": "\ud83d\udc47\ud83c\udffb",
- "point_down_tone2": "\ud83d\udc47\ud83c\udffc",
- "point_down_tone3": "\ud83d\udc47\ud83c\udffd",
- "point_down_tone4": "\ud83d\udc47\ud83c\udffe",
- "point_down_tone5": "\ud83d\udc47\ud83c\udfff",
- "point_left": "\ud83d\udc48",
- "point_left_tone1": "\ud83d\udc48\ud83c\udffb",
- "point_left_tone2": "\ud83d\udc48\ud83c\udffc",
- "point_left_tone3": "\ud83d\udc48\ud83c\udffd",
- "point_left_tone4": "\ud83d\udc48\ud83c\udffe",
- "point_left_tone5": "\ud83d\udc48\ud83c\udfff",
- "point_right": "\ud83d\udc49",
- "point_right_tone1": "\ud83d\udc49\ud83c\udffb",
- "point_right_tone2": "\ud83d\udc49\ud83c\udffc",
- "point_right_tone3": "\ud83d\udc49\ud83c\udffd",
- "point_right_tone4": "\ud83d\udc49\ud83c\udffe",
- "point_right_tone5": "\ud83d\udc49\ud83c\udfff",
- "point_up": "\u261d",
- "point_up_2": "\ud83d\udc46",
- "point_up_2_tone1": "\ud83d\udc46\ud83c\udffb",
- "point_up_2_tone2": "\ud83d\udc46\ud83c\udffc",
- "point_up_2_tone3": "\ud83d\udc46\ud83c\udffd",
- "point_up_2_tone4": "\ud83d\udc46\ud83c\udffe",
- "point_up_2_tone5": "\ud83d\udc46\ud83c\udfff",
- "point_up_tone1": "\u261d\ud83c\udffb",
- "point_up_tone2": "\u261d\ud83c\udffc",
- "point_up_tone3": "\u261d\ud83c\udffd",
- "point_up_tone4": "\u261d\ud83c\udffe",
- "point_up_tone5": "\u261d\ud83c\udfff",
+ "point_down": {
+ "emoji": "\ud83d\udc47",
+ "tones": true
+ },
+ "point_left": {
+ "emoji": "\ud83d\udc48",
+ "tones": true
+ },
+ "point_right": {
+ "emoji": "\ud83d\udc49",
+ "tones": true
+ },
+ "point_up": {
+ "emoji": "\u261d",
+ "tones": true
+ },
+ "point_up_2": {
+ "emoji": "\ud83d\udc46",
+ "tones": true
+ },
"police_car": "\ud83d\ude93",
"poodle": "\ud83d\udc29",
"poop": "\ud83d\udca9",
@@ -1193,27 +1103,21 @@
"poultry_leg": "\ud83c\udf57",
"pound": "\ud83d\udcb7",
"pouting_cat": "\ud83d\ude3e",
- "pray": "\ud83d\ude4f",
- "pray_tone1": "\ud83d\ude4f\ud83c\udffb",
- "pray_tone2": "\ud83d\ude4f\ud83c\udffc",
- "pray_tone3": "\ud83d\ude4f\ud83c\udffd",
- "pray_tone4": "\ud83d\ude4f\ud83c\udffe",
- "pray_tone5": "\ud83d\ude4f\ud83c\udfff",
+ "pray": {
+ "emoji": "\ud83d\ude4f",
+ "tones": true
+ },
"prayer_beads": "\ud83d\udcff",
- "princess": "\ud83d\udc78",
- "princess_tone1": "\ud83d\udc78\ud83c\udffb",
- "princess_tone2": "\ud83d\udc78\ud83c\udffc",
- "princess_tone3": "\ud83d\udc78\ud83c\udffd",
- "princess_tone4": "\ud83d\udc78\ud83c\udffe",
- "princess_tone5": "\ud83d\udc78\ud83c\udfff",
+ "princess": {
+ "emoji": "\ud83d\udc78",
+ "tones": true
+ },
"printer": "\ud83d\udda8",
"projector": "\ud83d\udcfd",
- "punch": "\ud83d\udc4a",
- "punch_tone1": "\ud83d\udc4a\ud83c\udffb",
- "punch_tone2": "\ud83d\udc4a\ud83c\udffc",
- "punch_tone3": "\ud83d\udc4a\ud83c\udffd",
- "punch_tone4": "\ud83d\udc4a\ud83c\udffe",
- "punch_tone5": "\ud83d\udc4a\ud83c\udfff",
+ "punch": {
+ "emoji": "\ud83d\udc4a",
+ "tones": true
+ },
"purple_heart": "\ud83d\udc9c",
"purse": "\ud83d\udc5b",
"pushpin": "\ud83d\udccc",
@@ -1230,24 +1134,18 @@
"railway_car": "\ud83d\ude83",
"railway_track": "\ud83d\udee4",
"rainbow": "\ud83c\udf08",
- "raised_hand": "\u270b",
- "raised_hand_tone1": "\u270b\ud83c\udffb",
- "raised_hand_tone2": "\u270b\ud83c\udffc",
- "raised_hand_tone3": "\u270b\ud83c\udffd",
- "raised_hand_tone4": "\u270b\ud83c\udffe",
- "raised_hand_tone5": "\u270b\ud83c\udfff",
- "raised_hands": "\ud83d\ude4c",
- "raised_hands_tone1": "\ud83d\ude4c\ud83c\udffb",
- "raised_hands_tone2": "\ud83d\ude4c\ud83c\udffc",
- "raised_hands_tone3": "\ud83d\ude4c\ud83c\udffd",
- "raised_hands_tone4": "\ud83d\ude4c\ud83c\udffe",
- "raised_hands_tone5": "\ud83d\ude4c\ud83c\udfff",
- "raising_hand": "\ud83d\ude4b",
- "raising_hand_tone1": "\ud83d\ude4b\ud83c\udffb",
- "raising_hand_tone2": "\ud83d\ude4b\ud83c\udffc",
- "raising_hand_tone3": "\ud83d\ude4b\ud83c\udffd",
- "raising_hand_tone4": "\ud83d\ude4b\ud83c\udffe",
- "raising_hand_tone5": "\ud83d\ude4b\ud83c\udfff",
+ "raised_hand": {
+ "emoji": "\u270b",
+ "tones": true
+ },
+ "raised_hands": {
+ "emoji": "\ud83d\ude4c",
+ "tones": true
+ },
+ "raising_hand": {
+ "emoji": "\ud83d\ude4b",
+ "tones": true
+ },
"ram": "\ud83d\udc0f",
"ramen": "\ud83c\udf5c",
"rat": "\ud83d\udc00",
@@ -1279,31 +1177,25 @@
"rosette": "\ud83c\udff5",
"rotating_light": "\ud83d\udea8",
"round_pushpin": "\ud83d\udccd",
- "rowboat": "\ud83d\udea3",
- "rowboat_tone1": "\ud83d\udea3\ud83c\udffb",
- "rowboat_tone2": "\ud83d\udea3\ud83c\udffc",
- "rowboat_tone3": "\ud83d\udea3\ud83c\udffd",
- "rowboat_tone4": "\ud83d\udea3\ud83c\udffe",
- "rowboat_tone5": "\ud83d\udea3\ud83c\udfff",
+ "rowboat": {
+ "emoji": "\ud83d\udea3",
+ "tones": true
+ },
"rugby_football": "\ud83c\udfc9",
- "runner": "\ud83c\udfc3",
- "runner_tone1": "\ud83c\udfc3\ud83c\udffb",
- "runner_tone2": "\ud83c\udfc3\ud83c\udffc",
- "runner_tone3": "\ud83c\udfc3\ud83c\udffd",
- "runner_tone4": "\ud83c\udfc3\ud83c\udffe",
- "runner_tone5": "\ud83c\udfc3\ud83c\udfff",
+ "runner": {
+ "emoji": "\ud83c\udfc3",
+ "tones": true
+ },
"running_shirt_with_sash": "\ud83c\udfbd",
"sa": "\ud83c\ude02",
"sagittarius": "\u2650",
"sailboat": "\u26f5",
"sake": "\ud83c\udf76",
"sandal": "\ud83d\udc61",
- "santa": "\ud83c\udf85",
- "santa_tone1": "\ud83c\udf85\ud83c\udffb",
- "santa_tone2": "\ud83c\udf85\ud83c\udffc",
- "santa_tone3": "\ud83c\udf85\ud83c\udffd",
- "santa_tone4": "\ud83c\udf85\ud83c\udffe",
- "santa_tone5": "\ud83c\udf85\ud83c\udfff",
+ "santa": {
+ "emoji": "\ud83c\udf85",
+ "tones": true
+ },
"satellite": "\ud83d\udce1",
"satellite_orbital": "\ud83d\udef0",
"saxophone": "\ud83c\udfb7",
@@ -1381,12 +1273,10 @@
"speedboat": "\ud83d\udea4",
"spider": "\ud83d\udd77",
"spider_web": "\ud83d\udd78",
- "spy": "\ud83d\udd75",
- "spy_tone1": "\ud83d\udd75\ud83c\udffb",
- "spy_tone2": "\ud83d\udd75\ud83c\udffc",
- "spy_tone3": "\ud83d\udd75\ud83c\udffd",
- "spy_tone4": "\ud83d\udd75\ud83c\udffe",
- "spy_tone5": "\ud83d\udd75\ud83c\udfff",
+ "spy": {
+ "emoji": "\ud83d\udd75",
+ "tones": true
+ },
"stadium": "\ud83c\udfdf",
"star": "\u2b50",
"star2": "\ud83c\udf1f",
@@ -1410,29 +1300,32 @@
"sunny": "\u2600",
"sunrise": "\ud83c\udf05",
"sunrise_over_mountains": "\ud83c\udf04",
- "surfer": "\ud83c\udfc4",
- "surfer_tone1": "\ud83c\udfc4\ud83c\udffb",
- "surfer_tone2": "\ud83c\udfc4\ud83c\udffc",
- "surfer_tone3": "\ud83c\udfc4\ud83c\udffd",
- "surfer_tone4": "\ud83c\udfc4\ud83c\udffe",
- "surfer_tone5": "\ud83c\udfc4\ud83c\udfff",
+ "surfer": {
+ "emoji": "\ud83c\udfc4",
+ "tones": true
+ },
"sushi": "\ud83c\udf63",
"suspension_railway": "\ud83d\ude9f",
"sweat": "\ud83d\ude13",
"sweat_drops": "\ud83d\udca6",
"sweat_smile": "\ud83d\ude05",
"sweet_potato": "\ud83c\udf60",
- "swimmer": "\ud83c\udfca",
- "swimmer_tone1": "\ud83c\udfca\ud83c\udffb",
- "swimmer_tone2": "\ud83c\udfca\ud83c\udffc",
- "swimmer_tone3": "\ud83c\udfca\ud83c\udffd",
- "swimmer_tone4": "\ud83c\udfca\ud83c\udffe",
- "swimmer_tone5": "\ud83c\udfca\ud83c\udfff",
+ "swimmer": {
+ "emoji": "\ud83c\udfca",
+ "tones": true
+ },
"symbols": "\ud83d\udd23",
"synagogue": "\ud83d\udd4d",
"syringe": "\ud83d\udc89",
"taco": "\ud83c\udf2e",
- "tada": "\ud83c\udf89",
+ "tada": {
+ "emoji": "\ud83c\udf89",
+ "aliases": [
+ "party",
+ "celebration",
+ "confetti"
+ ]
+ },
"tanabata_tree": "\ud83c\udf8b",
"tangerine": "\ud83c\udf4a",
"taurus": "\u2649",
@@ -1449,18 +1342,16 @@
"thinking": "\ud83e\udd14",
"thought_balloon": "\ud83d\udcad",
"three": "3\u20e3",
- "thumbsdown": "\ud83d\udc4e",
- "thumbsdown_tone1": "\ud83d\udc4e\ud83c\udffb",
- "thumbsdown_tone2": "\ud83d\udc4e\ud83c\udffc",
- "thumbsdown_tone3": "\ud83d\udc4e\ud83c\udffd",
- "thumbsdown_tone4": "\ud83d\udc4e\ud83c\udffe",
- "thumbsdown_tone5": "\ud83d\udc4e\ud83c\udfff",
- "thumbsup": "\ud83d\udc4d",
- "thumbsup_tone1": "\ud83d\udc4d\ud83c\udffb",
- "thumbsup_tone2": "\ud83d\udc4d\ud83c\udffc",
- "thumbsup_tone3": "\ud83d\udc4d\ud83c\udffd",
- "thumbsup_tone4": "\ud83d\udc4d\ud83c\udffe",
- "thumbsup_tone5": "\ud83d\udc4d\ud83c\udfff",
+ "thumbsdown": {
+ "emoji": "\ud83d\udc4e",
+ "tones": true,
+ "order": "thumbsB"
+ },
+ "thumbsup": {
+ "emoji": "\ud83d\udc4d",
+ "tones": true,
+ "order": "thumbsA"
+ },
"thunder_cloud_rain": "\u26c8",
"ticket": "\ud83c\udfab",
"tickets": "\ud83c\udf9f",
@@ -1528,12 +1419,10 @@
"up": "\ud83c\udd99",
"upside_down": "\ud83d\ude43",
"urn": "\u26b1",
- "v": "\u270c",
- "v_tone1": "\u270c\ud83c\udffb",
- "v_tone2": "\u270c\ud83c\udffc",
- "v_tone3": "\u270c\ud83c\udffd",
- "v_tone4": "\u270c\ud83c\udffe",
- "v_tone5": "\u270c\ud83c\udfff",
+ "v": {
+ "emoji": "\u270c",
+ "tones": true
+ },
"vertical_traffic_light": "\ud83d\udea6",
"vhs": "\ud83d\udcfc",
"vibration_mode": "\ud83d\udcf3",
@@ -1544,18 +1433,14 @@
"volcano": "\ud83c\udf0b",
"volleyball": "\ud83c\udfd0",
"vs": "\ud83c\udd9a",
- "vulcan": "\ud83d\udd96",
- "vulcan_tone1": "\ud83d\udd96\ud83c\udffb",
- "vulcan_tone2": "\ud83d\udd96\ud83c\udffc",
- "vulcan_tone3": "\ud83d\udd96\ud83c\udffd",
- "vulcan_tone4": "\ud83d\udd96\ud83c\udffe",
- "vulcan_tone5": "\ud83d\udd96\ud83c\udfff",
- "walking": "\ud83d\udeb6",
- "walking_tone1": "\ud83d\udeb6\ud83c\udffb",
- "walking_tone2": "\ud83d\udeb6\ud83c\udffc",
- "walking_tone3": "\ud83d\udeb6\ud83c\udffd",
- "walking_tone4": "\ud83d\udeb6\ud83c\udffe",
- "walking_tone5": "\ud83d\udeb6\ud83c\udfff",
+ "vulcan": {
+ "emoji": "\ud83d\udd96",
+ "tones": true
+ },
+ "walking": {
+ "emoji": "\ud83d\udeb6",
+ "tones": true
+ },
"waning_crescent_moon": "\ud83c\udf18",
"waning_gibbous_moon": "\ud83c\udf16",
"warning": "\u26a0",
@@ -1563,12 +1448,10 @@
"watch": "\u231a",
"water_buffalo": "\ud83d\udc03",
"watermelon": "\ud83c\udf49",
- "wave": "\ud83d\udc4b",
- "wave_tone1": "\ud83d\udc4b\ud83c\udffb",
- "wave_tone2": "\ud83d\udc4b\ud83c\udffc",
- "wave_tone3": "\ud83d\udc4b\ud83c\udffd",
- "wave_tone4": "\ud83d\udc4b\ud83c\udffe",
- "wave_tone5": "\ud83d\udc4b\ud83c\udfff",
+ "wave": {
+ "emoji": "\ud83d\udc4b",
+ "tones": true
+ },
"wavy_dash": "\u3030",
"waxing_crescent_moon": "\ud83c\udf12",
"waxing_gibbous_moon": "\ud83c\udf14",
@@ -1595,23 +1478,19 @@
"wine_glass": "\ud83c\udf77",
"wink": "\ud83d\ude09",
"wolf": "\ud83d\udc3a",
- "woman": "\ud83d\udc69",
- "woman_tone1": "\ud83d\udc69\ud83c\udffb",
- "woman_tone2": "\ud83d\udc69\ud83c\udffc",
- "woman_tone3": "\ud83d\udc69\ud83c\udffd",
- "woman_tone4": "\ud83d\udc69\ud83c\udffe",
- "woman_tone5": "\ud83d\udc69\ud83c\udfff",
+ "woman": {
+ "emoji": "\ud83d\udc69",
+ "tones": true
+ },
"womans_clothes": "\ud83d\udc5a",
"womans_hat": "\ud83d\udc52",
"womens": "\ud83d\udeba",
"worried": "\ud83d\ude1f",
"wrench": "\ud83d\udd27",
- "writing_hand": "\u270d",
- "writing_hand_tone1": "\u270d\ud83c\udffb",
- "writing_hand_tone2": "\u270d\ud83c\udffc",
- "writing_hand_tone3": "\u270d\ud83c\udffd",
- "writing_hand_tone4": "\u270d\ud83c\udffe",
- "writing_hand_tone5": "\u270d\ud83c\udfff",
+ "writing_hand": {
+ "emoji": "\u270d",
+ "tones": true
+ },
"x": "\u274c",
"yellow_heart": "\ud83d\udc9b",
"yen": "\ud83d\udcb4",
@@ -1622,9 +1501,5 @@
"zipper_mouth": "\ud83e\udd10",
"zzz": "\ud83d\udca4",
"100": "\ud83d\udcaf",
- "1234": "\ud83d\udd22",
-
- "party": "\ud83c\udf89",
- "celebration": "\ud83c\udf89",
- "confetti": "\ud83c\udf89"
+ "1234": "\ud83d\udd22"
}
diff --git a/scripts/celerity/generate_emoji.php b/scripts/celerity/generate_emoji.php
deleted file mode 100755
--- a/scripts/celerity/generate_emoji.php
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env php
-<?php
-
-require_once dirname(dirname(__FILE__)).'/__init_script__.php';
-
-$args = new PhutilArgumentParser($argv);
-$args->setTagline(pht('regenerate Emoji data sheets'));
-$args->setSynopsis(<<<EOHELP
-**emoji**
- Rebuild Emoji data sheets.
-
-EOHELP
-);
-$args->parseStandardArguments();
-$args->parse(
- array(
- array(
- 'name' => 'force',
- 'help' => pht('Force regeneration even if sources have not changed.'),
- ),
- ));
-
-$root = dirname(phutil_get_library_root('phabricator'));
-// move this to an argument?
-$path = $root.'/emoji_strategy.json';
-$export_path = $root.'/resources/emoji/manifest.json';
-
-if (Filesystem::pathExists($path)) {
- $json = Filesystem::readFile($path);
-
- $emojis = phutil_json_decode($json);
- $data = array();
- foreach ($emojis as $shortname => $emoji) {
- $unicode = $emoji['unicode'];
- $codes = explode('-', $unicode);
- $hex = '';
- foreach ($codes as $code) {
- $hex .= phutil_utf8_encode_codepoint(hexdec($code));
- }
- $data[$shortname] = $hex;
- }
-
- ksort($data);
- $json = new PhutilJSON();
- $data = $json->encodeFormatted($data);
- Filesystem::writeFile($export_path, $data);
- echo pht('Done.')."\n";
-} else {
- echo pht('Path %s not exist.', $path)."\n";
-}
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -4104,6 +4104,7 @@
'PhabricatorShowFiletreeSetting' => 'applications/settings/setting/PhabricatorShowFiletreeSetting.php',
'PhabricatorSimpleEditType' => 'applications/transactions/edittype/PhabricatorSimpleEditType.php',
'PhabricatorSite' => 'aphront/site/PhabricatorSite.php',
+ 'PhabricatorSkinToneSetting' => 'applications/settings/setting/PhabricatorSkinToneSetting.php',
'PhabricatorSlackAuthProvider' => 'applications/auth/provider/PhabricatorSlackAuthProvider.php',
'PhabricatorSlowvoteApplication' => 'applications/slowvote/application/PhabricatorSlowvoteApplication.php',
'PhabricatorSlowvoteChoice' => 'applications/slowvote/storage/PhabricatorSlowvoteChoice.php',
@@ -9803,6 +9804,7 @@
'PhabricatorShowFiletreeSetting' => 'PhabricatorSelectSetting',
'PhabricatorSimpleEditType' => 'PhabricatorEditType',
'PhabricatorSite' => 'AphrontSite',
+ 'PhabricatorSkinToneSetting' => 'PhabricatorSelectSetting',
'PhabricatorSlackAuthProvider' => 'PhabricatorOAuth2AuthProvider',
'PhabricatorSlowvoteApplication' => 'PhabricatorApplication',
'PhabricatorSlowvoteChoice' => 'PhabricatorSlowvoteDAO',
diff --git a/src/applications/macro/markup/PhabricatorEmojiRemarkupRule.php b/src/applications/macro/markup/PhabricatorEmojiRemarkupRule.php
--- a/src/applications/macro/markup/PhabricatorEmojiRemarkupRule.php
+++ b/src/applications/macro/markup/PhabricatorEmojiRemarkupRule.php
@@ -13,11 +13,22 @@
$text);
}
- public function markupEmojiJSON() {
+ public function getEmojiManifest() {
$root = dirname(phutil_get_library_root('phabricator'));
- $json = Filesystem::readFile(
- $root.'/resources/emoji/manifest.json');
- return $json;
+ $json = Filesystem::readFile($root.'/resources/emoji/manifest.json');
+ $manifest = phutil_json_decode($json);
+
+ foreach ($manifest as $key => $emoji) {
+ if (is_array($emoji)) {
+ continue;
+ }
+
+ $manifest[$key] = array(
+ 'emoji' => $emoji,
+ );
+ }
+
+ return $manifest;
}
public function markupEmoji(array $matches) {
diff --git a/src/applications/macro/typeahead/PhabricatorEmojiDatasource.php b/src/applications/macro/typeahead/PhabricatorEmojiDatasource.php
--- a/src/applications/macro/typeahead/PhabricatorEmojiDatasource.php
+++ b/src/applications/macro/typeahead/PhabricatorEmojiDatasource.php
@@ -26,20 +26,94 @@
private function buildResults() {
$raw_query = $this->getRawQuery();
- $data = id(new PhabricatorEmojiRemarkupRule())->markupEmojiJSON();
- $emojis = phutil_json_decode($data);
+ $manifest = id(new PhabricatorEmojiRemarkupRule())
+ ->getEmojiManifest();
+
+ $aliases = array();
+ foreach ($manifest as $key => $spec) {
+ $aliases[$key] = $key;
+ foreach (idx($spec, 'aliases', array()) as $alias) {
+ $aliases[$alias] = $key;
+ }
+ }
+
+ $viewer = $this->getViewer();
+ $setting = $viewer->getUserSetting(PhabricatorSkinToneSetting::SETTINGKEY);
+ switch ($setting) {
+ case PhabricatorSkinToneSetting::TONE_NONE:
+ $tone_modifier = '';
+ $tones = array($tone_modifier);
+ break;
+ case PhabricatorSkinToneSetting::TONE_1:
+ $tone_modifier = "\xF0\x9F\x8F\xBB";
+ $tones = array($tone_modifier);
+ break;
+ case PhabricatorSkinToneSetting::TONE_2:
+ $tone_modifier = "\xF0\x9F\x8F\xBC";
+ $tones = array($tone_modifier);
+ break;
+ case PhabricatorSkinToneSetting::TONE_3:
+ $tone_modifier = "\xF0\x9F\x8F\xBD";
+ $tones = array($tone_modifier);
+ break;
+ case PhabricatorSkinToneSetting::TONE_4:
+ $tone_modifier = "\xF0\x9F\x8F\xBE";
+ $tones = array($tone_modifier);
+ break;
+ case PhabricatorSkinToneSetting::TONE_5:
+ $tone_modifier = "\xF0\x9F\x8F\xBF";
+ $tones = array($tone_modifier);
+ break;
+ default:
+ // By default, select a random human skin tone.
+ $tone_modifier = '';
+ $tones = array(
+ "\xF0\x9F\x8F\xBB",
+ "\xF0\x9F\x8F\xBC",
+ "\xF0\x9F\x8F\xBD",
+ "\xF0\x9F\x8F\xBE",
+ "\xF0\x9F\x8F\xBF",
+ );
+ break;
+ }
$results = array();
- foreach ($emojis as $shortname => $emoji) {
- $display_name = $emoji.' '.$shortname;
- $name = str_replace('_', ' ', $shortname);
+ foreach ($aliases as $alias => $key) {
+ $spec = $manifest[$key];
+ $emoji = $spec['emoji'];
+
+ if (!empty($spec['name'])) {
+ $readable_name = $spec['name'];
+ } else {
+ $readable_name = $alias;
+ }
+
+ if (!empty($spec['tones'])) {
+ $autocomplete = array();
+ foreach ($tones as $suffix) {
+ $autocomplete[] = $emoji.$suffix;
+ }
+ $autocomplete = implode(' ', $autocomplete);
+ $display_emoji = $emoji.$tone_modifier;
+ } else {
+ $autocomplete = $emoji;
+ $display_emoji = $emoji;
+ }
+
+ $display_name = $display_emoji.' '.$readable_name;
+ $name = str_replace('_', ' ', $alias);
+
+ if (!empty($spec['order'])) {
+ $name = $spec['order'].' '.$name;
+ }
+
$result = id(new PhabricatorTypeaheadResult())
- ->setPHID($shortname)
+ ->setPHID($alias)
->setName($name)
- ->setDisplayname($display_name)
- ->setAutocomplete($emoji);
+ ->setDisplayName($display_name)
+ ->setAutocomplete($autocomplete);
- $results[$shortname] = $result;
+ $results[$alias] = $result;
}
return $results;
}
diff --git a/src/applications/settings/setting/PhabricatorSelectSetting.php b/src/applications/settings/setting/PhabricatorSelectSetting.php
--- a/src/applications/settings/setting/PhabricatorSelectSetting.php
+++ b/src/applications/settings/setting/PhabricatorSelectSetting.php
@@ -10,17 +10,18 @@
$default_value = $object->getDefaultValue($setting_key);
$options = $this->getSelectOptions();
-
- if (isset($options[$default_value])) {
- $default_label = pht('Default (%s)', $options[$default_value]);
- } else {
- $default_label = pht('Default (Unknown, "%s")', $default_value);
- }
-
- if (empty($options[''])) {
- $options = array(
- '' => $default_label,
- ) + $options;
+ if ($this->canSetServerDefault()) {
+ if (isset($options[$default_value])) {
+ $default_label = pht('Default (%s)', $options[$default_value]);
+ } else {
+ $default_label = pht('Default (Unknown, "%s")', $default_value);
+ }
+
+ if (empty($options[''])) {
+ $options = array(
+ '' => $default_label,
+ ) + $options;
+ }
}
return $this->newEditField($object, new PhabricatorSelectEditField())
@@ -73,4 +74,8 @@
return (string)$value;
}
+ protected function canSetServerDefault() {
+ return true;
+ }
+
}
diff --git a/src/applications/settings/setting/PhabricatorSkinToneSetting.php b/src/applications/settings/setting/PhabricatorSkinToneSetting.php
new file mode 100644
--- /dev/null
+++ b/src/applications/settings/setting/PhabricatorSkinToneSetting.php
@@ -0,0 +1,57 @@
+<?php
+
+final class PhabricatorSkinToneSetting
+ extends PhabricatorSelectSetting {
+
+ const SETTINGKEY = 'skintone';
+
+ const TONE_RANDOM = 'random';
+ const TONE_NONE = 'neutral';
+ const TONE_1 = 'tone1';
+ const TONE_2 = 'tone2';
+ const TONE_3 = 'tone3';
+ const TONE_4 = 'tone4';
+ const TONE_5 = 'tone5';
+
+ public function getSettingName() {
+ return pht('Emoji Skin Tone');
+ }
+
+ public function getSettingPanelKey() {
+ return PhabricatorAccountSettingsPanel::PANELKEY;
+ }
+
+ protected function getSettingOrder() {
+ return 300;
+ }
+
+ protected function getControlInstructions() {
+ return pht('Choose the default skin tone for your emoji.');
+ }
+
+ public function getSettingDefaultValue() {
+ return self::TONE_RANDOM;
+ }
+
+ protected function getSelectOptions() {
+ return array(
+ self::TONE_RANDOM => pht('Random Skin Tone'),
+ self::TONE_NONE => pht("\xF0\x9F\x91\x8D Unspecified Skin Tone"),
+ self::TONE_1 =>
+ pht("\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBB Light Skin Tone"),
+ self::TONE_2 =>
+ pht("\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBC Medium-Light Skin Tone"),
+ self::TONE_3 =>
+ pht("\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBD Medium Skin Tone"),
+ self::TONE_4 =>
+ pht("\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBE Medium-Dark Skin Tone"),
+ self::TONE_5 =>
+ pht("\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBF Dark Skin Tone"),
+ );
+ }
+
+ protected function canSetServerDefault() {
+ return false;
+ }
+
+}
diff --git a/src/applications/uiexample/examples/MacroEmojiExample.php b/src/applications/uiexample/examples/MacroEmojiExample.php
--- a/src/applications/uiexample/examples/MacroEmojiExample.php
+++ b/src/applications/uiexample/examples/MacroEmojiExample.php
@@ -16,15 +16,12 @@
public function renderExample() {
- $raw = id(new PhabricatorEmojiRemarkupRule())
- ->markupEmojiJSON();
-
- $json = phutil_json_decode($raw);
+ $manifest = id(new PhabricatorEmojiRemarkupRule())
+ ->getEmojiManifest();
$content = array();
- foreach ($json as $shortname => $hex) {
-
- $display_name = ' '.$hex.' '.$shortname;
+ foreach ($manifest as $shortname => $spec) {
+ $display_name = ' '.$spec['emoji'].' '.$shortname;
$content[] = phutil_tag(
'div',
@@ -33,7 +30,6 @@
'style' => 'width: 240px; height: 24px; float: left;',
),
$display_name);
-
}
$wrap = id(new PHUIObjectBoxView())
diff --git a/src/view/form/control/PhabricatorRemarkupControl.php b/src/view/form/control/PhabricatorRemarkupControl.php
--- a/src/view/form/control/PhabricatorRemarkupControl.php
+++ b/src/view/form/control/PhabricatorRemarkupControl.php
@@ -108,6 +108,7 @@
'headerIcon' => 'fa-smile-o',
'headerText' => pht('Find Emoji:'),
'hintText' => $emoji_datasource->getPlaceholderText(),
+ 'emoji' => true,
// Cancel on emoticons like ":3".
'ignore' => array(
diff --git a/webroot/rsrc/js/phuix/PHUIXAutocomplete.js b/webroot/rsrc/js/phuix/PHUIXAutocomplete.js
--- a/webroot/rsrc/js/phuix/PHUIXAutocomplete.js
+++ b/webroot/rsrc/js/phuix/PHUIXAutocomplete.js
@@ -635,6 +635,12 @@
return false;
}
+ // If this is an emoji with variants, pick a random variant.
+ if (this._getSpec().emoji) {
+ var variants = ref.split(' ');
+ ref = variants[Math.floor(Math.random() * variants.length)];
+ }
+
// If the user types a string like "@username:" (with a trailing colon),
// then presses tab or return to pick the completion, don't destroy the
// trailing character.

File Metadata

Mime Type
text/plain
Expires
Mon, Mar 31, 4:38 AM (3 w, 2 d ago)
Storage Engine
amazon-s3
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
phabricator/secure/av/ww/ibo4woixgpmhrwpi
Default Alt Text
D19023.diff (45 KB)

Event Timeline