Page MenuHomePhabricator

D4964.id10601.diff
No OneTemporary

D4964.id10601.diff

Index: externals/javelinjs/src/lib/Workflow.js
===================================================================
--- externals/javelinjs/src/lib/Workflow.js
+++ externals/javelinjs/src/lib/Workflow.js
@@ -88,14 +88,19 @@
return;
}
- var t = event.getTarget();
+ // Get the button (which is sometimes actually another tag, like an <a />)
+ // which triggered the event. In particular, this makes sure we get the
+ // right node if there is a <button> with an <img /> inside it or
+ // or something similar.
+ var t = event.getNode('jx-workflow-button') ||
+ event.getNode('tag:button');
if (t.name == '__cancel__' || t.name == '__close__') {
JX.Workflow._pop();
} else {
-
var form = event.getNode('jx-dialog');
var data = JX.DOM.convertFormToListOfPairs(form);
- data.push([t.name, true]);
+
+ data.push([t.name, t.value || true]);
var active = JX.Workflow._getActiveWorkflow();
var e = active.invoke('submit', {form: form, data: data});
Index: resources/sprite/manifest/apps-large.json
===================================================================
--- resources/sprite/manifest/apps-large.json
+++ resources/sprite/manifest/apps-large.json
@@ -4,782 +4,782 @@
"app-application-blue-large" : {
"name" : "app-application-blue-large",
"rule" : ".app-application-blue-large, .phabricator-crumb-view:hover .app-application-dark-large",
- "hash" : "80f42a283979cef89577721ca6d9cdef"
+ "hash" : "c8e0319f0c8a3c19bb74391785149424"
},
"app-application-dark-large" : {
"name" : "app-application-dark-large",
"rule" : ".app-application-dark-large",
- "hash" : "8ab1619bcb768cc1b85106b077d29522"
+ "hash" : "a5a904b67bdd26c15b8df07b0b0cee1a"
},
"app-application-glow-large" : {
"name" : "app-application-glow-large",
"rule" : ".app-application-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-application-light-large",
- "hash" : "26aedaf7940300f18eb0ef59566a0988"
+ "hash" : "04cd8ab1f4785d33d6c9c829dce35cb6"
},
"app-application-light-large" : {
"name" : "app-application-light-large",
"rule" : ".app-application-light-large",
- "hash" : "09d4ef0cb36255291693971754ec55ee"
+ "hash" : "8b071cf0efedda7c8c772829d31453ea"
},
"app-audit-blue-large" : {
"name" : "app-audit-blue-large",
"rule" : ".app-audit-blue-large, .phabricator-crumb-view:hover .app-audit-dark-large",
- "hash" : "05941dc7d5ff156c0e899c6345f6833a"
+ "hash" : "cfb6e6c27d6bf4bbf2e07c8d284948d7"
},
"app-audit-dark-large" : {
"name" : "app-audit-dark-large",
"rule" : ".app-audit-dark-large",
- "hash" : "cbf8e6c5a580bd3b5169f30d3cd0ec6a"
+ "hash" : "0880246fc6aa5d0cec823166af5b388f"
},
"app-audit-glow-large" : {
"name" : "app-audit-glow-large",
"rule" : ".app-audit-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-audit-light-large",
- "hash" : "5ab43e357c123c05a9db85a964b20252"
+ "hash" : "2f3896e45a05d55c3a95440dbeac9187"
},
"app-audit-light-large" : {
"name" : "app-audit-light-large",
"rule" : ".app-audit-light-large",
- "hash" : "aa853bebb7a315b994f1527247e3b362"
+ "hash" : "8dd753f716233d2f6edf553df4fde942"
},
"app-calendar-blue-large" : {
"name" : "app-calendar-blue-large",
"rule" : ".app-calendar-blue-large, .phabricator-crumb-view:hover .app-calendar-dark-large",
- "hash" : "9e530feec2926878ee7eaa8a04a8607b"
+ "hash" : "a05add9fa18df8a98cf2735cf27ec6e1"
},
"app-calendar-dark-large" : {
"name" : "app-calendar-dark-large",
"rule" : ".app-calendar-dark-large",
- "hash" : "65de91c173d169bbf407c9e7cefa9715"
+ "hash" : "5c98faf324152ec55bad6ac76f77ec00"
},
"app-calendar-glow-large" : {
"name" : "app-calendar-glow-large",
"rule" : ".app-calendar-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-calendar-light-large",
- "hash" : "1dc738045b09476feebe5e705a61b7a9"
+ "hash" : "d1a7c623c5b3d902a389fc2ea8941858"
},
"app-calendar-light-large" : {
"name" : "app-calendar-light-large",
"rule" : ".app-calendar-light-large",
- "hash" : "043dab56a011f84f5affc2c7c13e3a39"
+ "hash" : "466b97737778eff91ebd9afabac6e5a6"
},
"app-conduit-blue-large" : {
"name" : "app-conduit-blue-large",
"rule" : ".app-conduit-blue-large, .phabricator-crumb-view:hover .app-conduit-dark-large",
- "hash" : "4ab937882a119bacc0206029cbd7919d"
+ "hash" : "ed8208ab196da7da6160edbdb0be118a"
},
"app-conduit-dark-large" : {
"name" : "app-conduit-dark-large",
"rule" : ".app-conduit-dark-large",
- "hash" : "34de5192c69af7a9cf3941f7b5cb088e"
+ "hash" : "bad7559ed9928596c0241d8490e67422"
},
"app-conduit-glow-large" : {
"name" : "app-conduit-glow-large",
"rule" : ".app-conduit-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-conduit-light-large",
- "hash" : "b89b969a7fba76d39c768ac8de19c964"
+ "hash" : "072c3ca188a60e9ee08c6eb36b8628c9"
},
"app-conduit-light-large" : {
"name" : "app-conduit-light-large",
"rule" : ".app-conduit-light-large",
- "hash" : "a2fd3cfe6e4e46d589e0e99f52e7f6f0"
+ "hash" : "92047e758fac063dfb0608863ee66b7e"
},
"app-conpherence-blue-large" : {
"name" : "app-conpherence-blue-large",
"rule" : ".app-conpherence-blue-large, .phabricator-crumb-view:hover .app-conpherence-dark-large",
- "hash" : "efcf3788ac60484d5920b37c1560e565"
+ "hash" : "6b84241639e4755b450085f7eeb30cb1"
},
"app-conpherence-dark-large" : {
"name" : "app-conpherence-dark-large",
"rule" : ".app-conpherence-dark-large",
- "hash" : "2722117e3da8c2dbc478d957fb21ca53"
+ "hash" : "d9ced45f6ce7ffec0a0edb17c5e63834"
},
"app-conpherence-glow-large" : {
"name" : "app-conpherence-glow-large",
"rule" : ".app-conpherence-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-conpherence-light-large",
- "hash" : "efa3c29ad40680fca2d62e0b180e709f"
+ "hash" : "aa5d889f5d46f3b7cefc766ae5c7b904"
},
"app-conpherence-light-large" : {
"name" : "app-conpherence-light-large",
"rule" : ".app-conpherence-light-large",
- "hash" : "a79e5f0094caf9f012f3e9d7a10f2bac"
+ "hash" : "d85a049c1742fec1f95a8ebb6ca5c944"
},
"app-countdown-blue-large" : {
"name" : "app-countdown-blue-large",
"rule" : ".app-countdown-blue-large, .phabricator-crumb-view:hover .app-countdown-dark-large",
- "hash" : "a4079b8e55924b7590011b35ba9bfdb0"
+ "hash" : "d44b7acae6b6b052ac869f0176b66b89"
},
"app-countdown-dark-large" : {
"name" : "app-countdown-dark-large",
"rule" : ".app-countdown-dark-large",
- "hash" : "25547923eb9927ed0c30804fafd471d3"
+ "hash" : "dc7df8202a5fa7baf17fd446a9b5c4c5"
},
"app-countdown-glow-large" : {
"name" : "app-countdown-glow-large",
"rule" : ".app-countdown-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-countdown-light-large",
- "hash" : "472fcd5cf9f292b0d2f9f275541fed18"
+ "hash" : "3b972002d629a49a4eca9049a9b2c6ae"
},
"app-countdown-light-large" : {
"name" : "app-countdown-light-large",
"rule" : ".app-countdown-light-large",
- "hash" : "24bac143e049862bed161d819990cee0"
+ "hash" : "8f3814f70c1cb0475dd4678cc8937d91"
},
"app-daemon-blue-large" : {
"name" : "app-daemon-blue-large",
"rule" : ".app-daemon-blue-large, .phabricator-crumb-view:hover .app-daemon-dark-large",
- "hash" : "beb6586864ef67a7bd7a9a159b8c2a56"
+ "hash" : "c922a7e7ec9467ca48b2a2573904b7ce"
},
"app-daemon-dark-large" : {
"name" : "app-daemon-dark-large",
"rule" : ".app-daemon-dark-large",
- "hash" : "cf2e12b2967d155c437862bbb9ce2d86"
+ "hash" : "b2e566baac0c579563bd5bd700deb41b"
},
"app-daemon-glow-large" : {
"name" : "app-daemon-glow-large",
"rule" : ".app-daemon-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-daemon-light-large",
- "hash" : "1728089df503ec805b42e262b196b616"
+ "hash" : "1c8e2776b9b984b804f6dca073f101eb"
},
"app-daemon-light-large" : {
"name" : "app-daemon-light-large",
"rule" : ".app-daemon-light-large",
- "hash" : "44328612154fbf1a2f0f6ff28cd23521"
+ "hash" : "9c778b43f9f7380fc9bd862c097bbaa8"
},
"app-differential-blue-large" : {
"name" : "app-differential-blue-large",
"rule" : ".app-differential-blue-large, .phabricator-crumb-view:hover .app-differential-dark-large",
- "hash" : "9491284c8cbf77df0795bdf9cd16651e"
+ "hash" : "59049df6a30c816ea68d3025da79a091"
},
"app-differential-dark-large" : {
"name" : "app-differential-dark-large",
"rule" : ".app-differential-dark-large",
- "hash" : "a4b2ac4d4f697896e3abe9e58501fea5"
+ "hash" : "fd1e0f1fa97b00c7409ebfdc56cf4865"
},
"app-differential-glow-large" : {
"name" : "app-differential-glow-large",
"rule" : ".app-differential-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-differential-light-large",
- "hash" : "d7e777585cc826becb64042f8bb31fc5"
+ "hash" : "3997a58a26389e8ede8022fd05cf8b43"
},
"app-differential-light-large" : {
"name" : "app-differential-light-large",
"rule" : ".app-differential-light-large",
- "hash" : "a763d63d22cac8226d8bd5656221a91b"
+ "hash" : "b5c750e09f57a787e89f32820f791c4a"
},
"app-diffusion-blue-large" : {
"name" : "app-diffusion-blue-large",
"rule" : ".app-diffusion-blue-large, .phabricator-crumb-view:hover .app-diffusion-dark-large",
- "hash" : "35e35c07ca1a151c810bb38a90496a2d"
+ "hash" : "b982cfacfde43d3267082bca236bc72c"
},
"app-diffusion-dark-large" : {
"name" : "app-diffusion-dark-large",
"rule" : ".app-diffusion-dark-large",
- "hash" : "5b3752babd557f2c9bbc0120bd9a0747"
+ "hash" : "2eb71cde4af83347efdee542f4cadd8e"
},
"app-diffusion-glow-large" : {
"name" : "app-diffusion-glow-large",
"rule" : ".app-diffusion-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-diffusion-light-large",
- "hash" : "a5a682fffa03d4cdae9a86b8c79d1a81"
+ "hash" : "55873c2e30e693e7bde0f4a90045064d"
},
"app-diffusion-light-large" : {
"name" : "app-diffusion-light-large",
"rule" : ".app-diffusion-light-large",
- "hash" : "1f04606fe4f0650982327bf09bf5adc0"
+ "hash" : "6eeb6f6df3ecd1ee923081b2d82f0505"
},
"app-diviner-blue-large" : {
"name" : "app-diviner-blue-large",
"rule" : ".app-diviner-blue-large, .phabricator-crumb-view:hover .app-diviner-dark-large",
- "hash" : "97f1242c914315cf773c27bbec964335"
+ "hash" : "bda64f504c0c2c34125758bd01c80e05"
},
"app-diviner-dark-large" : {
"name" : "app-diviner-dark-large",
"rule" : ".app-diviner-dark-large",
- "hash" : "c4f0550826f60fcd48d6ebcd340184b4"
+ "hash" : "786a865464564d66d458557c909a77ea"
},
"app-diviner-glow-large" : {
"name" : "app-diviner-glow-large",
"rule" : ".app-diviner-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-diviner-light-large",
- "hash" : "7f7f0e1886036d894a5b22b72872ad06"
+ "hash" : "d173b3a659a2a4b5af5890ba70e827d1"
},
"app-diviner-light-large" : {
"name" : "app-diviner-light-large",
"rule" : ".app-diviner-light-large",
- "hash" : "b13413ada716fa7d3449c38b11decd5d"
+ "hash" : "c515bc52cb560adebce1e84bb5d917ce"
},
"app-drydock-blue-large" : {
"name" : "app-drydock-blue-large",
"rule" : ".app-drydock-blue-large, .phabricator-crumb-view:hover .app-drydock-dark-large",
- "hash" : "a63aaba405583e356f00af6bc1dedfad"
+ "hash" : "ba82e330a78dd60df033560e083601cf"
},
"app-drydock-dark-large" : {
"name" : "app-drydock-dark-large",
"rule" : ".app-drydock-dark-large",
- "hash" : "a97be15640a38db803cc03215968e856"
+ "hash" : "7a41b9668c77b85b8acf048d9e61c50a"
},
"app-drydock-glow-large" : {
"name" : "app-drydock-glow-large",
"rule" : ".app-drydock-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-drydock-light-large",
- "hash" : "d7beac10376044ffda0adbe6ed01e645"
+ "hash" : "f5866c62ecbc94ecacd1563d2780677d"
},
"app-drydock-light-large" : {
"name" : "app-drydock-light-large",
"rule" : ".app-drydock-light-large",
- "hash" : "712c8fa45f964e0c4cbb69321fd1fded"
+ "hash" : "2c1ce32d5d5291e7d3d3d6e9323a2a65"
},
"app-fact-blue-large" : {
"name" : "app-fact-blue-large",
"rule" : ".app-fact-blue-large, .phabricator-crumb-view:hover .app-fact-dark-large",
- "hash" : "4b07b51e2178f12533c04c55d522d9e5"
+ "hash" : "1e2b911cb36b0d44384487e348892ccc"
},
"app-fact-dark-large" : {
"name" : "app-fact-dark-large",
"rule" : ".app-fact-dark-large",
- "hash" : "6040fe830d8f0868cdb38ee2b8ee16ac"
+ "hash" : "5fb4a988baad433e9900f1a814b89caa"
},
"app-fact-glow-large" : {
"name" : "app-fact-glow-large",
"rule" : ".app-fact-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-fact-light-large",
- "hash" : "691ab101af38d4f06421ca0b22e463d9"
+ "hash" : "5bd7e5f2adfa0935ae97270139ec4912"
},
"app-fact-light-large" : {
"name" : "app-fact-light-large",
"rule" : ".app-fact-light-large",
- "hash" : "8253f813361ba065866ee6e6e2077320"
+ "hash" : "3bc45d399dad8ec8d55873714c42c1d7"
},
"app-feed-blue-large" : {
"name" : "app-feed-blue-large",
"rule" : ".app-feed-blue-large, .phabricator-crumb-view:hover .app-feed-dark-large",
- "hash" : "462246f99422c86301b7d4faa67d9488"
+ "hash" : "3bcdec795b38002644a8009c927a0acc"
},
"app-feed-dark-large" : {
"name" : "app-feed-dark-large",
"rule" : ".app-feed-dark-large",
- "hash" : "0eecff752dc5dde55e7feaa52b7ee7d0"
+ "hash" : "e83834eccc699399b604069b95465cff"
},
"app-feed-glow-large" : {
"name" : "app-feed-glow-large",
"rule" : ".app-feed-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-feed-light-large",
- "hash" : "45fe559a997e540933c184ae570a6ddc"
+ "hash" : "ca2fb9a2cd437b465f5d912a4d26f3e5"
},
"app-feed-light-large" : {
"name" : "app-feed-light-large",
"rule" : ".app-feed-light-large",
- "hash" : "2ec6e12956fe1e1b746261bb3d0a0d36"
+ "hash" : "e3a8add13539550ddaab62f84b30dd66"
},
"app-files-blue-large" : {
"name" : "app-files-blue-large",
"rule" : ".app-files-blue-large, .phabricator-crumb-view:hover .app-files-dark-large",
- "hash" : "f9217c49be154a830303285ae64790c8"
+ "hash" : "4505af3a9261a1ee4e00bf1d046286dd"
},
"app-files-dark-large" : {
"name" : "app-files-dark-large",
"rule" : ".app-files-dark-large",
- "hash" : "78fb66b9edc99c3694325548582f0506"
+ "hash" : "1d229c79f3b8301ca1ee38ccd9c7c142"
},
"app-files-glow-large" : {
"name" : "app-files-glow-large",
"rule" : ".app-files-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-files-light-large",
- "hash" : "cabf071ace59043fc877f1e962109c83"
+ "hash" : "4bd7617617d0af975282bdd9a399d0ab"
},
"app-files-light-large" : {
"name" : "app-files-light-large",
"rule" : ".app-files-light-large",
- "hash" : "ee5503d0684ea20be40023a29589d322"
+ "hash" : "0d8bf609759312d89e2a4b148f0701d8"
},
"app-flags-blue-large" : {
"name" : "app-flags-blue-large",
"rule" : ".app-flags-blue-large, .phabricator-crumb-view:hover .app-flags-dark-large",
- "hash" : "8bbdefdaba30bf6a020f8515ee33d452"
+ "hash" : "a6f52b520f88e4ef60b7a76fb3c2c597"
},
"app-flags-dark-large" : {
"name" : "app-flags-dark-large",
"rule" : ".app-flags-dark-large",
- "hash" : "c6824e1362ec59ccf9ad8f451da466c1"
+ "hash" : "51307234bb3c309b3ea69381e0b72b16"
},
"app-flags-glow-large" : {
"name" : "app-flags-glow-large",
"rule" : ".app-flags-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-flags-light-large",
- "hash" : "e728b1018c62d24efa5d416d138cb671"
+ "hash" : "75c1c107f4e750ef27bf50b4b51b0e00"
},
"app-flags-light-large" : {
"name" : "app-flags-light-large",
"rule" : ".app-flags-light-large",
- "hash" : "4a40dc3e18011a8283840e5dfbe14dc9"
+ "hash" : "8c198ba5bcd146595870bab777d4992e"
},
"app-help-blue-large" : {
"name" : "app-help-blue-large",
"rule" : ".app-help-blue-large, .phabricator-crumb-view:hover .app-help-dark-large",
- "hash" : "703f8c674cdd22f1314ffe8977acf35b"
+ "hash" : "a74c4f436b2e70c0e06f4224953d064a"
},
"app-help-dark-large" : {
"name" : "app-help-dark-large",
"rule" : ".app-help-dark-large",
- "hash" : "601aaf7047f9db41baf7e3393b0d7aeb"
+ "hash" : "3cbd366c4b5758e45ef07507c70f68c0"
},
"app-help-glow-large" : {
"name" : "app-help-glow-large",
"rule" : ".app-help-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-help-light-large",
- "hash" : "1a2928f28cbfdcc31f411e7d2dc26447"
+ "hash" : "c795358a116961342b206821a1b8038b"
},
"app-help-light-large" : {
"name" : "app-help-light-large",
"rule" : ".app-help-light-large",
- "hash" : "c17b8e6228f844777177c5070e17dd91"
+ "hash" : "722eceffe63605b00a5b957b5f40db98"
},
"app-herald-blue-large" : {
"name" : "app-herald-blue-large",
"rule" : ".app-herald-blue-large, .phabricator-crumb-view:hover .app-herald-dark-large",
- "hash" : "4bf9b4b872e7207d66c6e80dcad47b0e"
+ "hash" : "9edfe47e8f1f2c4f1071f4d8b6ed346d"
},
"app-herald-dark-large" : {
"name" : "app-herald-dark-large",
"rule" : ".app-herald-dark-large",
- "hash" : "e19fd614bf5f904603517df957165b22"
+ "hash" : "4b7a3ab5e0b6a04224ccb6e520e73d6e"
},
"app-herald-glow-large" : {
"name" : "app-herald-glow-large",
"rule" : ".app-herald-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-herald-light-large",
- "hash" : "13ef725e4f2da68211cf9ab17740c723"
+ "hash" : "22beef0629ee517ba1a2b822ed440d0c"
},
"app-herald-light-large" : {
"name" : "app-herald-light-large",
"rule" : ".app-herald-light-large",
- "hash" : "81af2b9899db0b5c877d96016ddfa1a1"
+ "hash" : "65bbeb68fd051b77f4871aafe2994f56"
},
"app-home-blue-large" : {
"name" : "app-home-blue-large",
"rule" : ".app-home-blue-large, .phabricator-crumb-view:hover .app-home-dark-large",
- "hash" : "7011cb276b9d7d1f042d2f0393a74312"
+ "hash" : "7df64082c33dcc3d2263772c0393be70"
},
"app-home-dark-large" : {
"name" : "app-home-dark-large",
"rule" : ".app-home-dark-large",
- "hash" : "6b7f677ad630593900132f6271c41cb4"
+ "hash" : "79acb839094adcb3ad94567c054801eb"
},
"app-home-glow-large" : {
"name" : "app-home-glow-large",
"rule" : ".app-home-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-home-light-large",
- "hash" : "8b61be58e6a4f0e9e73434c40844260b"
+ "hash" : "5af620ae48ba98ee4ee594c32ba761cb"
},
"app-home-light-large" : {
"name" : "app-home-light-large",
"rule" : ".app-home-light-large",
- "hash" : "f0740b16cd3746a1234070f1785c03eb"
+ "hash" : "181a71639319f3beda59809963384250"
},
"app-logo-blue-large" : {
"name" : "app-logo-blue-large",
"rule" : ".app-logo-blue-large, .phabricator-crumb-view:hover .app-logo-dark-large",
- "hash" : "64a8124698f9441f50230f3a63364dd7"
+ "hash" : "025f46665b079f5899ec53be09165d09"
},
"app-logo-dark-large" : {
"name" : "app-logo-dark-large",
"rule" : ".app-logo-dark-large",
- "hash" : "8023a60fcba24c3f200214152a62a2c3"
+ "hash" : "20524d2868b7b57423aa8dc27b284cac"
},
"app-logo-glow-large" : {
"name" : "app-logo-glow-large",
"rule" : ".app-logo-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-logo-light-large",
- "hash" : "c742c782b92cc5fecdc1a9747568ad70"
+ "hash" : "3969545781a17ec856bacec4ed110506"
},
"app-logo-light-large" : {
"name" : "app-logo-light-large",
"rule" : ".app-logo-light-large",
- "hash" : "52fc06fb90f7ec1c29498069b1a059b2"
+ "hash" : "bd1b66ffad9ee26019738fc00a7eb343"
},
"app-macro-blue-large" : {
"name" : "app-macro-blue-large",
"rule" : ".app-macro-blue-large, .phabricator-crumb-view:hover .app-macro-dark-large",
- "hash" : "50c14fec9a7f913c8aa4a2793bf2867c"
+ "hash" : "a6116a196718bf6cd5337b4c49de710e"
},
"app-macro-dark-large" : {
"name" : "app-macro-dark-large",
"rule" : ".app-macro-dark-large",
- "hash" : "890cde6b9407d00c6394d446974674ff"
+ "hash" : "583a495f319fb63f99400b0197832dce"
},
"app-macro-glow-large" : {
"name" : "app-macro-glow-large",
"rule" : ".app-macro-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-macro-light-large",
- "hash" : "a3aaa9ebca64e5659e8c3c4eebdedd7a"
+ "hash" : "16d2c3aeabb43a51bb5742c67c4b92a1"
},
"app-macro-light-large" : {
"name" : "app-macro-light-large",
"rule" : ".app-macro-light-large",
- "hash" : "7dcba4f0560b9e197849f5540b7ec66d"
+ "hash" : "b073066348826c93f57ba76f746e5c7e"
},
"app-mail-blue-large" : {
"name" : "app-mail-blue-large",
"rule" : ".app-mail-blue-large, .phabricator-crumb-view:hover .app-mail-dark-large",
- "hash" : "a0a94c194794bb435ea3152ecb2cd42d"
+ "hash" : "192f85bd7a5be296de7acff9bbc9bd1d"
},
"app-mail-dark-large" : {
"name" : "app-mail-dark-large",
"rule" : ".app-mail-dark-large",
- "hash" : "1a1437047fd24b9bb2643435185b6f13"
+ "hash" : "4709516a74216e0ba886a30180ad93d4"
},
"app-mail-glow-large" : {
"name" : "app-mail-glow-large",
"rule" : ".app-mail-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-mail-light-large",
- "hash" : "141548cae4bf8265be9452e583be3504"
+ "hash" : "1f0d2be98c3771791db7a9ad20784872"
},
"app-mail-light-large" : {
"name" : "app-mail-light-large",
"rule" : ".app-mail-light-large",
- "hash" : "27aec2b8d5bd1fb7eba00ffbaacf1930"
+ "hash" : "740ea3d3104365ab7bad981b13d23693"
},
"app-maniphest-blue-large" : {
"name" : "app-maniphest-blue-large",
"rule" : ".app-maniphest-blue-large, .phabricator-crumb-view:hover .app-maniphest-dark-large",
- "hash" : "619ff6fea2c90a8d70b000ed0ece6e4b"
+ "hash" : "d667667cc5216ff510cb58c359ffc2a4"
},
"app-maniphest-dark-large" : {
"name" : "app-maniphest-dark-large",
"rule" : ".app-maniphest-dark-large",
- "hash" : "7a204fc2f4779eff27847bf799652140"
+ "hash" : "acadb7737b24ecc23e892cdaab7c1fe2"
},
"app-maniphest-glow-large" : {
"name" : "app-maniphest-glow-large",
"rule" : ".app-maniphest-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-maniphest-light-large",
- "hash" : "2b67eff9fb01bdf0972749532301e038"
+ "hash" : "8dccd7ba95ddffc4e071e42b69773f5c"
},
"app-maniphest-light-large" : {
"name" : "app-maniphest-light-large",
"rule" : ".app-maniphest-light-large",
- "hash" : "90ea395741410840b1b4a974f802b06c"
+ "hash" : "0d2c71a1279686c3884c267d98bc36ba"
},
"app-metamta-blue-large" : {
"name" : "app-metamta-blue-large",
"rule" : ".app-metamta-blue-large, .phabricator-crumb-view:hover .app-metamta-dark-large",
- "hash" : "48af88efc2887cc985f09d5202922df0"
+ "hash" : "1757d281dcdbdf221ca2b2e90993dba8"
},
"app-metamta-dark-large" : {
"name" : "app-metamta-dark-large",
"rule" : ".app-metamta-dark-large",
- "hash" : "bf18a2c7ef31e72dc9ce6695035baf60"
+ "hash" : "c5f3a7468d98ebb977bfb0cc81abd5ee"
},
"app-metamta-glow-large" : {
"name" : "app-metamta-glow-large",
"rule" : ".app-metamta-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-metamta-light-large",
- "hash" : "74c00295bf0d394e6427593665a271f1"
+ "hash" : "5f7b115d45e5d3a5a5a730173366f2e4"
},
"app-metamta-light-large" : {
"name" : "app-metamta-light-large",
"rule" : ".app-metamta-light-large",
- "hash" : "720cc7f66ab36770998aa4fe9ad22785"
+ "hash" : "13ce4ca0f223cda37e3af39da8c6e564"
},
"app-owners-blue-large" : {
"name" : "app-owners-blue-large",
"rule" : ".app-owners-blue-large, .phabricator-crumb-view:hover .app-owners-dark-large",
- "hash" : "ee909b2d51a3c52b38c0cca3da8d861d"
+ "hash" : "585c128af418f94b8fbf18206605ec84"
},
"app-owners-dark-large" : {
"name" : "app-owners-dark-large",
"rule" : ".app-owners-dark-large",
- "hash" : "05a6fcc603b5ee346d25b1fb25e7e695"
+ "hash" : "b09a80f307491acbe56fb16e01956173"
},
"app-owners-glow-large" : {
"name" : "app-owners-glow-large",
"rule" : ".app-owners-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-owners-light-large",
- "hash" : "4bcba14ffcdf7ac3c1968ebcc34f7e37"
+ "hash" : "a63816e6979ec6c222a086b5d72a0b86"
},
"app-owners-light-large" : {
"name" : "app-owners-light-large",
"rule" : ".app-owners-light-large",
- "hash" : "2d6b3f02f210c73242d91bdb9ef8456c"
+ "hash" : "6b06493f46a91584e746e5034be15366"
},
"app-paste-blue-large" : {
"name" : "app-paste-blue-large",
"rule" : ".app-paste-blue-large, .phabricator-crumb-view:hover .app-paste-dark-large",
- "hash" : "2ce99237cc2f064f0aa48fb1d147c781"
+ "hash" : "4a14c100c5b78282712dd2cc619d72b4"
},
"app-paste-dark-large" : {
"name" : "app-paste-dark-large",
"rule" : ".app-paste-dark-large",
- "hash" : "f566e3e0c8e6a17b7c2fc4168b079ede"
+ "hash" : "03d3dded4964e60771c8a45549e13973"
},
"app-paste-glow-large" : {
"name" : "app-paste-glow-large",
"rule" : ".app-paste-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-paste-light-large",
- "hash" : "34333bbb31fb3909461cc064ea2f72e9"
+ "hash" : "507192b6a41abdc1a886a144cc315326"
},
"app-paste-light-large" : {
"name" : "app-paste-light-large",
"rule" : ".app-paste-light-large",
- "hash" : "e77a206e1cbaf1417b4a0b9f3d67380a"
+ "hash" : "66f1f8fe7acafaab5f608598589aaa5c"
},
"app-people-blue-large" : {
"name" : "app-people-blue-large",
"rule" : ".app-people-blue-large, .phabricator-crumb-view:hover .app-people-dark-large",
- "hash" : "37fcac5bc4ad63c37d68da2c77717301"
+ "hash" : "ed242e94b2b5698fd90261ca63aef8a6"
},
"app-people-dark-large" : {
"name" : "app-people-dark-large",
"rule" : ".app-people-dark-large",
- "hash" : "01fb27eba95c01d1aadde04ea4513caa"
+ "hash" : "b1748b3a5afacd4f8afcd5ea37352dc7"
},
"app-people-glow-large" : {
"name" : "app-people-glow-large",
"rule" : ".app-people-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-people-light-large",
- "hash" : "6d859c1505f5877b86faf34385bbcd59"
+ "hash" : "ed1b2d2d27ae8fd07d0e5e1d4002625e"
},
"app-people-light-large" : {
"name" : "app-people-light-large",
"rule" : ".app-people-light-large",
- "hash" : "d1d80fddc9e6295494d12b72b4700dc5"
+ "hash" : "f6efcbdbcee02f9f37f92774b4b0e4cf"
},
"app-phame-blue-large" : {
"name" : "app-phame-blue-large",
"rule" : ".app-phame-blue-large, .phabricator-crumb-view:hover .app-phame-dark-large",
- "hash" : "f72bd35227e9ba2157852377e2d87ec4"
+ "hash" : "d448b392b7bc927b9b5522d525fa8c49"
},
"app-phame-dark-large" : {
"name" : "app-phame-dark-large",
"rule" : ".app-phame-dark-large",
- "hash" : "7bfe54cf7d885985fb7e06ad0abaf4e9"
+ "hash" : "a7cf2f8ec22cdb675a3bc792c7c1edf6"
},
"app-phame-glow-large" : {
"name" : "app-phame-glow-large",
"rule" : ".app-phame-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-phame-light-large",
- "hash" : "60013586092f2c5eb5ed1f58c7f02a74"
+ "hash" : "4587c25ff8a94fd48a1a0ca2e9fd9f42"
},
"app-phame-light-large" : {
"name" : "app-phame-light-large",
"rule" : ".app-phame-light-large",
- "hash" : "5266f8774d0470adc65f610c9175a251"
+ "hash" : "265471ec8d3c7ddeb3c269384d22243d"
},
"app-phid-blue-large" : {
"name" : "app-phid-blue-large",
"rule" : ".app-phid-blue-large, .phabricator-crumb-view:hover .app-phid-dark-large",
- "hash" : "d726ca94608547ff3974a1d49e6b1012"
+ "hash" : "b94bc233e1bcf520c65351b71794c228"
},
"app-phid-dark-large" : {
"name" : "app-phid-dark-large",
"rule" : ".app-phid-dark-large",
- "hash" : "04af0c932bea8b7c36f6dc954994ea11"
+ "hash" : "f4dfdcc8e1fde50cfcb7e07376696964"
},
"app-phid-glow-large" : {
"name" : "app-phid-glow-large",
"rule" : ".app-phid-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-phid-light-large",
- "hash" : "b1e8a6e4ac9ad64d34fbc7560d507e5b"
+ "hash" : "10ec316b409b385e19800048fcb1a79e"
},
"app-phid-light-large" : {
"name" : "app-phid-light-large",
"rule" : ".app-phid-light-large",
- "hash" : "0ba23a08c29e8064fdddee9112c638e3"
+ "hash" : "0087c573b07d8badaeadcb8ad560ae9b"
},
"app-pholio-blue-large" : {
"name" : "app-pholio-blue-large",
"rule" : ".app-pholio-blue-large, .phabricator-crumb-view:hover .app-pholio-dark-large",
- "hash" : "08bfdf63411a09e6be88d99128c1e9f8"
+ "hash" : "5b8e3f47a49a0dee84c1b7c228884f0c"
},
"app-pholio-dark-large" : {
"name" : "app-pholio-dark-large",
"rule" : ".app-pholio-dark-large",
- "hash" : "2a8bfa3870726691766fe3f6cb73df38"
+ "hash" : "4a73276e5bcd9cfbb08435ed36051dff"
},
"app-pholio-glow-large" : {
"name" : "app-pholio-glow-large",
"rule" : ".app-pholio-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-pholio-light-large",
- "hash" : "499b68a80e78ab5f6ebe5ba7470fbb4a"
+ "hash" : "aca383c3c4fcec4742a11702e3427221"
},
"app-pholio-light-large" : {
"name" : "app-pholio-light-large",
"rule" : ".app-pholio-light-large",
- "hash" : "9a4d4223e6e1d7a77c4545504ea0908c"
+ "hash" : "1a3ace478c2b0f9b444005112e17c695"
},
"app-phpast-blue-large" : {
"name" : "app-phpast-blue-large",
"rule" : ".app-phpast-blue-large, .phabricator-crumb-view:hover .app-phpast-dark-large",
- "hash" : "a9f4f0a62e5841b2ed669dc02694419d"
+ "hash" : "22ba8a058d6b920a909c5f6731f301a0"
},
"app-phpast-dark-large" : {
"name" : "app-phpast-dark-large",
"rule" : ".app-phpast-dark-large",
- "hash" : "1dbc83cc09d722253b634f3308608627"
+ "hash" : "bdbfd96cb50a8b7450daf82576fcfe95"
},
"app-phpast-glow-large" : {
"name" : "app-phpast-glow-large",
"rule" : ".app-phpast-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-phpast-light-large",
- "hash" : "e98e4cdc93e51b0d7c1df25c01c75fac"
+ "hash" : "ce7433350eeaee95ecf358905ad38029"
},
"app-phpast-light-large" : {
"name" : "app-phpast-light-large",
"rule" : ".app-phpast-light-large",
- "hash" : "c63fb0fe3cc326f1a19e4e59c42a73f7"
+ "hash" : "5ebd26eb5e0bc0229db5696020dd9b4a"
},
"app-phriction-blue-large" : {
"name" : "app-phriction-blue-large",
"rule" : ".app-phriction-blue-large, .phabricator-crumb-view:hover .app-phriction-dark-large",
- "hash" : "55bbded073e078117369f42e05b5b5c4"
+ "hash" : "0134e9d694ce72a6d9c554e639a6ed50"
},
"app-phriction-dark-large" : {
"name" : "app-phriction-dark-large",
"rule" : ".app-phriction-dark-large",
- "hash" : "944c3a520a484580895b287eaaa103b1"
+ "hash" : "e4f3121261bc96e00bb6b94b467582f4"
},
"app-phriction-glow-large" : {
"name" : "app-phriction-glow-large",
"rule" : ".app-phriction-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-phriction-light-large",
- "hash" : "84639b5ccba94daf1850a9449131a078"
+ "hash" : "27612f55aaa40c4178a3a5a46d225947"
},
"app-phriction-light-large" : {
"name" : "app-phriction-light-large",
"rule" : ".app-phriction-light-large",
- "hash" : "2ca79fdfd141b0fe00ff8b2e13df73bf"
+ "hash" : "a56dcfca00861938d337cc2f217b33f6"
},
"app-ponder-blue-large" : {
"name" : "app-ponder-blue-large",
"rule" : ".app-ponder-blue-large, .phabricator-crumb-view:hover .app-ponder-dark-large",
- "hash" : "8018fe4ebc1e9af91a8a737e0505aa5d"
+ "hash" : "1bfc2f6150bd67cc25cbe1fbc9283f9c"
},
"app-ponder-dark-large" : {
"name" : "app-ponder-dark-large",
"rule" : ".app-ponder-dark-large",
- "hash" : "1da67495789c69621f91800939ea9684"
+ "hash" : "6efc0b3a74d2cc9eb5de96205613b640"
},
"app-ponder-glow-large" : {
"name" : "app-ponder-glow-large",
"rule" : ".app-ponder-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-ponder-light-large",
- "hash" : "f73a1b5a6b688c6d3feba14193357147"
+ "hash" : "9c2a2506e53e6a902976d504dfe94b46"
},
"app-ponder-light-large" : {
"name" : "app-ponder-light-large",
"rule" : ".app-ponder-light-large",
- "hash" : "eb8b13c3bc35f36b14f33ef1158b71ab"
+ "hash" : "595895068b10c68b0e05234570a6a268"
},
"app-power-blue-large" : {
"name" : "app-power-blue-large",
"rule" : ".app-power-blue-large, .phabricator-crumb-view:hover .app-power-dark-large",
- "hash" : "743499c84546b7b35139eec60bf74c34"
+ "hash" : "c3e03022f162f986f784b2a43c8784c7"
},
"app-power-dark-large" : {
"name" : "app-power-dark-large",
"rule" : ".app-power-dark-large",
- "hash" : "1a3520a2ec255f5b7f1779ea66153ade"
+ "hash" : "52d04564ca2cc7f3a96809e827162f3e"
},
"app-power-glow-large" : {
"name" : "app-power-glow-large",
"rule" : ".app-power-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-power-light-large",
- "hash" : "3951e012561a0d5d5d2b00711b13fa9c"
+ "hash" : "3f7719f0299abef8ba900e79fb6b5015"
},
"app-power-light-large" : {
"name" : "app-power-light-large",
"rule" : ".app-power-light-large",
- "hash" : "52d04bd829dfe7477a9dc2ef916990ab"
+ "hash" : "ffe9f181e6103eab9fc688ab84b07ad1"
},
"app-projects-blue-large" : {
"name" : "app-projects-blue-large",
"rule" : ".app-projects-blue-large, .phabricator-crumb-view:hover .app-projects-dark-large",
- "hash" : "278113829ca3543b9377030555e04edc"
+ "hash" : "494ca64479f68588823e00609496414a"
},
"app-projects-dark-large" : {
"name" : "app-projects-dark-large",
"rule" : ".app-projects-dark-large",
- "hash" : "b6f043db039d4960397f76904a84e9fc"
+ "hash" : "fa85ad644a2e289cb6bea2a67ab534f8"
},
"app-projects-glow-large" : {
"name" : "app-projects-glow-large",
"rule" : ".app-projects-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-projects-light-large",
- "hash" : "3d1bf3efdbd9ccdbb73fc3a11d5d1265"
+ "hash" : "b28bf212416595b3ba4bfb528dfaf791"
},
"app-projects-light-large" : {
"name" : "app-projects-light-large",
"rule" : ".app-projects-light-large",
- "hash" : "88c73c7cb50ce7cf9cd8d33ec20c8245"
+ "hash" : "228db63ac0e80b3cef46903a003a44df"
},
"app-repositories-blue-large" : {
"name" : "app-repositories-blue-large",
"rule" : ".app-repositories-blue-large, .phabricator-crumb-view:hover .app-repositories-dark-large",
- "hash" : "0642bf1118210cef9105cc463ec3d36f"
+ "hash" : "a83dd2186f9d92949f19a97f8f777a9c"
},
"app-repositories-dark-large" : {
"name" : "app-repositories-dark-large",
"rule" : ".app-repositories-dark-large",
- "hash" : "c92eb4e857d74f1ef206ba5b184ad88c"
+ "hash" : "30ead88c9f018797a8d5ef2f4e4221fe"
},
"app-repositories-glow-large" : {
"name" : "app-repositories-glow-large",
"rule" : ".app-repositories-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-repositories-light-large",
- "hash" : "7fe40fbb4150dfbc6133c79578fc1494"
+ "hash" : "44b04cbf1652211fbc2046c7773b4cf2"
},
"app-repositories-light-large" : {
"name" : "app-repositories-light-large",
"rule" : ".app-repositories-light-large",
- "hash" : "446a7eab7b7fc07329bc21a77c438033"
+ "hash" : "bcba180d121f9269787509ba7cdd3e48"
},
"app-settings-blue-large" : {
"name" : "app-settings-blue-large",
"rule" : ".app-settings-blue-large, .phabricator-crumb-view:hover .app-settings-dark-large",
- "hash" : "4d22a7f016509777bb5b55f39198d9d7"
+ "hash" : "c615df792c7e81b35cfbb78ece39e796"
},
"app-settings-dark-large" : {
"name" : "app-settings-dark-large",
"rule" : ".app-settings-dark-large",
- "hash" : "55e0869a51f70cacdd72f2baad4b28ce"
+ "hash" : "6c174857e23a9d169d0cb4079aa14637"
},
"app-settings-glow-large" : {
"name" : "app-settings-glow-large",
"rule" : ".app-settings-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-settings-light-large",
- "hash" : "314ab0f607baa65ff6a684b1ddd4861d"
+ "hash" : "4d8c68dc709d99141a19aad5bc483971"
},
"app-settings-light-large" : {
"name" : "app-settings-light-large",
"rule" : ".app-settings-light-large",
- "hash" : "41da4708f38fae918af46505e566bd6a"
+ "hash" : "e901b672f2a51ef286369bfea70a7e8d"
},
"app-setup-blue-large" : {
"name" : "app-setup-blue-large",
"rule" : ".app-setup-blue-large, .phabricator-crumb-view:hover .app-setup-dark-large",
- "hash" : "74d2ba681cdad54b31d53f7c174f5826"
+ "hash" : "a2f8f470c3cd928e8c1a6959ff745789"
},
"app-setup-dark-large" : {
"name" : "app-setup-dark-large",
"rule" : ".app-setup-dark-large",
- "hash" : "89a94fe1ce36351d3ea81f1776fb061a"
+ "hash" : "3183fafc1dc05b851ba902ace2dfa34d"
},
"app-setup-glow-large" : {
"name" : "app-setup-glow-large",
"rule" : ".app-setup-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-setup-light-large",
- "hash" : "53942c73b14210f5bf0bfad68bcb4431"
+ "hash" : "d91b7e5480cb4296871b9f1c4c634256"
},
"app-setup-light-large" : {
"name" : "app-setup-light-large",
"rule" : ".app-setup-light-large",
- "hash" : "890dd2d7cb1e51992b202dd462d56ba6"
+ "hash" : "419829d244a85f97d67fb45c6febd4e5"
},
"app-slowvote-blue-large" : {
"name" : "app-slowvote-blue-large",
"rule" : ".app-slowvote-blue-large, .phabricator-crumb-view:hover .app-slowvote-dark-large",
- "hash" : "12299956375e7f382217ebf8c1cb8203"
+ "hash" : "941028e7abbe491e2911fb24c4a8edca"
},
"app-slowvote-dark-large" : {
"name" : "app-slowvote-dark-large",
"rule" : ".app-slowvote-dark-large",
- "hash" : "ce57e4a318e4e8d556f713b459e6d798"
+ "hash" : "6197df3550b652011bc1a8da00005059"
},
"app-slowvote-glow-large" : {
"name" : "app-slowvote-glow-large",
"rule" : ".app-slowvote-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-slowvote-light-large",
- "hash" : "dcd5be64ded69e0fdfee5364367c9b55"
+ "hash" : "43783af8df4f99e94f0989ca149264f2"
},
"app-slowvote-light-large" : {
"name" : "app-slowvote-light-large",
"rule" : ".app-slowvote-light-large",
- "hash" : "7ac2515f26b194a9fafaa6a27997be2a"
+ "hash" : "23eb39153b5ac9b5bd91c8b800023d93"
},
"app-uiexamples-blue-large" : {
"name" : "app-uiexamples-blue-large",
"rule" : ".app-uiexamples-blue-large, .phabricator-crumb-view:hover .app-uiexamples-dark-large",
- "hash" : "7add7df6b621c4af5322160bc1cd31b2"
+ "hash" : "eabac7f7b83c47618a5f72b6f30b6410"
},
"app-uiexamples-dark-large" : {
"name" : "app-uiexamples-dark-large",
"rule" : ".app-uiexamples-dark-large",
- "hash" : "d8563a5f06692a313a2eff11235d5d0d"
+ "hash" : "31c9fb99289cc73aae73f3acad66b449"
},
"app-uiexamples-glow-large" : {
"name" : "app-uiexamples-glow-large",
"rule" : ".app-uiexamples-glow-large, .device-desktop .phabricator-dark-menu a:hover .app-uiexamples-light-large",
- "hash" : "0532cdd91b6de17ab194bd29cacfc24f"
+ "hash" : "069e59208dad509a6c3d74d102f08ae8"
},
"app-uiexamples-light-large" : {
"name" : "app-uiexamples-light-large",
"rule" : ".app-uiexamples-light-large",
- "hash" : "ee40dd0e3168f8e7fb520665a1d50f95"
+ "hash" : "b384102bcee1b312b2e06abc5f4b27de"
}
},
"scales" : [
Index: resources/sprite/manifest/apps.json
===================================================================
--- resources/sprite/manifest/apps.json
+++ resources/sprite/manifest/apps.json
@@ -4,197 +4,197 @@
"app-application-dark" : {
"name" : "app-application-dark",
"rule" : ".app-application-dark",
- "hash" : "60e228106718bf6f3ee5024400d31f24"
+ "hash" : "89f861c28e97878311885623cff3d314"
},
"app-audit-dark" : {
"name" : "app-audit-dark",
"rule" : ".app-audit-dark",
- "hash" : "38339b9cc4e39cbbbea36dcf039873bb"
+ "hash" : "2c141bc445c4fe62986cd6cff0c29b36"
},
"app-calendar-dark" : {
"name" : "app-calendar-dark",
"rule" : ".app-calendar-dark",
- "hash" : "756d60566639ad1424444436a95c6a3f"
+ "hash" : "04c61a081986f0d38cf27fc4e18bce40"
},
"app-conduit-dark" : {
"name" : "app-conduit-dark",
"rule" : ".app-conduit-dark",
- "hash" : "01fba8ca32f1cfefb3516b45c9d28b40"
+ "hash" : "7b410e96c87e7818fb93bdfa2ed9368f"
},
"app-conpherence-dark" : {
"name" : "app-conpherence-dark",
"rule" : ".app-conpherence-dark",
- "hash" : "dbb6fdd5f082a604b4ef10b7eeedbfa2"
+ "hash" : "6d65bc8da41c3a59822b31f68b9b883c"
},
"app-countdown-dark" : {
"name" : "app-countdown-dark",
"rule" : ".app-countdown-dark",
- "hash" : "625f2589ee491aead58aaa5b965a7451"
+ "hash" : "8891502317896beea6a5f9ec87eb5e2e"
},
"app-daemon-dark" : {
"name" : "app-daemon-dark",
"rule" : ".app-daemon-dark",
- "hash" : "4472be3242150f06ea5bf7b45333c4c5"
+ "hash" : "23a9a2927b368e2328dd70f95c5b1a07"
},
"app-differential-dark" : {
"name" : "app-differential-dark",
"rule" : ".app-differential-dark",
- "hash" : "508401fe36d9636bdcbdcbcae253c152"
+ "hash" : "bb7032f3c17901f242f9bbbcdc9a721c"
},
"app-diffusion-dark" : {
"name" : "app-diffusion-dark",
"rule" : ".app-diffusion-dark",
- "hash" : "0a6f8c85079c4a325430197adb05967c"
+ "hash" : "46ab6648a6ae04e4fd1a28a9afcc4996"
},
"app-diviner-dark" : {
"name" : "app-diviner-dark",
"rule" : ".app-diviner-dark",
- "hash" : "08872eb1c6bb51b9727290f6fa802633"
+ "hash" : "e21a74e866a6fc22a991b8df6efc3ca7"
},
"app-drydock-dark" : {
"name" : "app-drydock-dark",
"rule" : ".app-drydock-dark",
- "hash" : "d50309da57021c676774f9bdc68c5fe7"
+ "hash" : "ed44013d98257a23306bad9c6b24760d"
},
"app-fact-dark" : {
"name" : "app-fact-dark",
"rule" : ".app-fact-dark",
- "hash" : "0c1be568e1ac05fca814718600190369"
+ "hash" : "f373f38e784289b866ab914471c342ec"
},
"app-feed-dark" : {
"name" : "app-feed-dark",
"rule" : ".app-feed-dark",
- "hash" : "830232709eedbe6ce7cdbcebf182c86c"
+ "hash" : "c4f1765e70615c6ee4cae6e8135fb969"
},
"app-files-dark" : {
"name" : "app-files-dark",
"rule" : ".app-files-dark",
- "hash" : "00f5ab7ea3e9367e378cf9f395400ed4"
+ "hash" : "7faf45efa5b9b97e571bc66636ca1a15"
},
"app-flags-dark" : {
"name" : "app-flags-dark",
"rule" : ".app-flags-dark",
- "hash" : "6382f373f7b0e70522d80ce06ef62813"
+ "hash" : "10298f695592714e27f72ef746ffd8a9"
},
"app-help-dark" : {
"name" : "app-help-dark",
"rule" : ".app-help-dark",
- "hash" : "2299a14e27d76fdf66209ef0042cc84f"
+ "hash" : "5cf715cc566b98c87958793eebea5f35"
},
"app-herald-dark" : {
"name" : "app-herald-dark",
"rule" : ".app-herald-dark",
- "hash" : "b2193b62df3bd4cf5c8de514a07fb6c3"
+ "hash" : "e3bc39a3dd1d66a0abf4594c608a3846"
},
"app-home-dark" : {
"name" : "app-home-dark",
"rule" : ".app-home-dark",
- "hash" : "88f020497fcbcf43729aa817695b174f"
+ "hash" : "7e01fbdfa526919a2d90d2c29a6c9fa0"
},
"app-logo-dark" : {
"name" : "app-logo-dark",
"rule" : ".app-logo-dark",
- "hash" : "02e71ae2421f1949f2ef075c27e052c9"
+ "hash" : "39701e1282fd120e77b09ed9fcddc686"
},
"app-macro-dark" : {
"name" : "app-macro-dark",
"rule" : ".app-macro-dark",
- "hash" : "8e0e72847a8f70eb3f8e60e7fb681c06"
+ "hash" : "ef89457bcee666ad265de1659b9b8a62"
},
"app-mail-dark" : {
"name" : "app-mail-dark",
"rule" : ".app-mail-dark",
- "hash" : "a2a792fddc44be4ae0f1a601380c8449"
+ "hash" : "4d05a5cd4360052183e91f61967a6c57"
},
"app-maniphest-dark" : {
"name" : "app-maniphest-dark",
"rule" : ".app-maniphest-dark",
- "hash" : "ea94fc7dbb2267adc33513f78916fe90"
+ "hash" : "320da127d7f887e09965a0416d5e44d3"
},
"app-metamta-dark" : {
"name" : "app-metamta-dark",
"rule" : ".app-metamta-dark",
- "hash" : "8abbb6e74d1697f950a01dcd6c8077be"
+ "hash" : "51f100c2a7a80149404dbc8b27f595a9"
},
"app-owners-dark" : {
"name" : "app-owners-dark",
"rule" : ".app-owners-dark",
- "hash" : "23b948cc1d32a0968785fbfca749dcdf"
+ "hash" : "33c064dd3b7fc3f9eb934d0cf84f3af5"
},
"app-paste-dark" : {
"name" : "app-paste-dark",
"rule" : ".app-paste-dark",
- "hash" : "9e0c1d1fe03aebcb55a4d19be051e255"
+ "hash" : "9482649caa8e5a46d277271092517b12"
},
"app-people-dark" : {
"name" : "app-people-dark",
"rule" : ".app-people-dark",
- "hash" : "0b3995fcd043b506a408de6e25ad5292"
+ "hash" : "67245eafa79367e4e07289549cf34deb"
},
"app-phame-dark" : {
"name" : "app-phame-dark",
"rule" : ".app-phame-dark",
- "hash" : "24ff4d322bce13f1c156ce5361a03a07"
+ "hash" : "029d7d48523cc43b0404bf40ccf56f8b"
},
"app-phid-dark" : {
"name" : "app-phid-dark",
"rule" : ".app-phid-dark",
- "hash" : "5a0ac05bbf36a7aeb36753d093c3c9f8"
+ "hash" : "2099c2987fe3929ce1d9dec470c7699d"
},
"app-pholio-dark" : {
"name" : "app-pholio-dark",
"rule" : ".app-pholio-dark",
- "hash" : "7d3befd1c12dd464a5f5edbef4574a5c"
+ "hash" : "aab47c79d2e03fdcaffb6f41dc1e0f06"
},
"app-phpast-dark" : {
"name" : "app-phpast-dark",
"rule" : ".app-phpast-dark",
- "hash" : "de1ad812c7a177c844fcff626b1abebf"
+ "hash" : "e6db72b398f57d03a400c9c18bd3c412"
},
"app-phriction-dark" : {
"name" : "app-phriction-dark",
"rule" : ".app-phriction-dark",
- "hash" : "8596da3f375087db6a163c98f0c968ae"
+ "hash" : "8064272206874a324d20d956c8fb10da"
},
"app-ponder-dark" : {
"name" : "app-ponder-dark",
"rule" : ".app-ponder-dark",
- "hash" : "232577eb875f383f45cb9dbd9a4e3976"
+ "hash" : "abdb353635bed5cfd48a176b4340022f"
},
"app-power-dark" : {
"name" : "app-power-dark",
"rule" : ".app-power-dark",
- "hash" : "e3708b1b4bfdfc614d9cf630943e5bef"
+ "hash" : "d3e943d1267206963d8f9419629c5581"
},
"app-projects-dark" : {
"name" : "app-projects-dark",
"rule" : ".app-projects-dark",
- "hash" : "5e799f1e95ecfd33cb67b6e4ac992043"
+ "hash" : "6bd7c598e2f2cf0b77918a7b0fa8bd19"
},
"app-repositories-dark" : {
"name" : "app-repositories-dark",
"rule" : ".app-repositories-dark",
- "hash" : "736066962e96df88eacc04d734613a0e"
+ "hash" : "db2823a16dae198145f53e8021170740"
},
"app-settings-dark" : {
"name" : "app-settings-dark",
"rule" : ".app-settings-dark",
- "hash" : "2fadcf918fb084bd3452712f700ae1a0"
+ "hash" : "1c84d22b769730d9e8b6fcd3414de72c"
},
"app-setup-dark" : {
"name" : "app-setup-dark",
"rule" : ".app-setup-dark",
- "hash" : "061b80f3555ade1c36934474b61fe76b"
+ "hash" : "27db76695d99be0c25368dc9e0932b17"
},
"app-slowvote-dark" : {
"name" : "app-slowvote-dark",
"rule" : ".app-slowvote-dark",
- "hash" : "e51cc1e6887f2deaff02d9c60aae36e0"
+ "hash" : "0d5861fab4562ad21242e34f9a29a33e"
},
"app-uiexamples-dark" : {
"name" : "app-uiexamples-dark",
"rule" : ".app-uiexamples-dark",
- "hash" : "dd919fd2c10e7d1e0915f523ac3922ce"
+ "hash" : "6416a3d9d9007673ee558433b80692a1"
}
},
"scales" : [
Index: resources/sprite/manifest/conph.json
===================================================================
--- resources/sprite/manifest/conph.json
+++ resources/sprite/manifest/conph.json
@@ -4,72 +4,72 @@
"conpher_calendar_off" : {
"name" : "conpher_calendar_off",
"rule" : ".conpher_calendar_off",
- "hash" : "a8228ab90fd90f4c2500d9285179bf26"
+ "hash" : "9ead08702b8028d28aedfa1a0dfbe43a"
},
"conpher_calendar_on" : {
"name" : "conpher_calendar_on",
"rule" : ".conpher_calendar_on, .device-desktop .conpher_calendar_off:hover ",
- "hash" : "931243bc3c414782ddb2d1d9607908ba"
+ "hash" : "f00d0854260ab1bc1a9b4f7f21a64f56"
},
"conpher_conversation_off" : {
"name" : "conpher_conversation_off",
"rule" : ".conpher_conversation_off",
- "hash" : "931abb0377898297a9a603a6d280b977"
+ "hash" : "97f9e8131c741dbba8091a92776036dd"
},
"conpher_conversation_on" : {
"name" : "conpher_conversation_on",
"rule" : ".conpher_conversation_on, .device-desktop .conpher_conversation_off:hover ",
- "hash" : "0b8a39dc5019dac1975b7be2ca0ccbfa"
+ "hash" : "01d5bae305a37debbc44f4131f0863dc"
},
"conpher_files_off" : {
"name" : "conpher_files_off",
"rule" : ".conpher_files_off",
- "hash" : "de1aee01b9b47b354e6ac280ae68bae1"
+ "hash" : "b6a89827978cf06618d4ba572953049a"
},
"conpher_files_on" : {
"name" : "conpher_files_on",
"rule" : ".conpher_files_on, .device-desktop .conpher_files_off:hover ",
- "hash" : "9ccbbd5e86fd4ec87a11aee0c9ec8c60"
+ "hash" : "05f38d8b45077a8a9b5bd21ecc15f958"
},
"conpher_list_off" : {
"name" : "conpher_list_off",
"rule" : ".conpher_list_off",
- "hash" : "2611311d0c2aec04416433be74d3a30e"
+ "hash" : "6f9b685a553e58aa67668494a88f864c"
},
"conpher_list_on" : {
"name" : "conpher_list_on",
"rule" : ".conpher_list_on, .device-desktop .conpher_list_off:hover ",
- "hash" : "cee6de0301c84b0d195282642642afa0"
+ "hash" : "7d495ee16be1162affd3a480ee4b86d4"
},
"conpher_more_off" : {
"name" : "conpher_more_off",
"rule" : ".conpher_more_off",
- "hash" : "3b7099bdde20a13864b48552b11e92c3"
+ "hash" : "c65da03207be1e69ceaa09f15a95d8f4"
},
"conpher_more_on" : {
"name" : "conpher_more_on",
"rule" : ".conpher_more_on, .device-desktop .conpher_more_off:hover ",
- "hash" : "b146f0cff9c2e5f0b57f7ebcfe0704d3"
+ "hash" : "70464cdbd30a77cad597c593ca40ab1f"
},
"conpher_people_off" : {
"name" : "conpher_people_off",
"rule" : ".conpher_people_off",
- "hash" : "641a6a21aa32a12416e85caf8a22e340"
+ "hash" : "a40f1f129d2e3c33134a4103161c0792"
},
"conpher_people_on" : {
"name" : "conpher_people_on",
"rule" : ".conpher_people_on, .device-desktop .conpher_people_off:hover ",
- "hash" : "f13745fd7036564eefb1c0ebc3502a92"
+ "hash" : "fd99a5b329ebe0144acc8fe669f0d936"
},
"conpher_settings_off" : {
"name" : "conpher_settings_off",
"rule" : ".conpher_settings_off",
- "hash" : "aa9ab000d9e33e3c50c2fe70367f30b4"
+ "hash" : "e4b389edbeb7825e4304faf7d20f7469"
},
"conpher_settings_on" : {
"name" : "conpher_settings_on",
"rule" : ".conpher_settings_on, .device-desktop .conpher_settings_off:hover ",
- "hash" : "a5fe22965997f9559800ca7db5ea32c8"
+ "hash" : "8ad76234fffb3f4cc59238ec3b4a6999"
}
},
"scales" : [
Index: resources/sprite/manifest/gradient.json
===================================================================
--- resources/sprite/manifest/gradient.json
+++ resources/sprite/manifest/gradient.json
@@ -4,67 +4,67 @@
"gradient-black-dark" : {
"name" : "gradient-black-dark",
"rule" : ".gradient-black-dark, button.black, a.black, a.black:visited",
- "hash" : "17425d8c9c53672ab2edbd236e6efd7a"
+ "hash" : "b9faf8505427bb14a8c51324e13e2f81"
},
"gradient-black-light" : {
"name" : "gradient-black-light",
"rule" : ".gradient-black-light, button.black:active, a.black:active",
- "hash" : "c4fb2231553d2894fd2c97beaa8bfe39"
+ "hash" : "812c3375d00ccc93c36c6df2eb565df4"
},
"gradient-blue-dark" : {
"name" : "gradient-blue-dark",
"rule" : ".gradient-blue-dark, button, a.button, a.button:visited, input.inputsubmit",
- "hash" : "f467612edcdbf984672287c6086492c4"
+ "hash" : "adc2d0f7397374936384014c5d78550d"
},
"gradient-blue-light" : {
"name" : "gradient-blue-light",
"rule" : ".gradient-blue-light, button:active, a.button:active",
- "hash" : "471d47c102def6db46b345310aac5a03"
+ "hash" : "91b841067a63e543a4dcd9d41e0a2e5c"
},
"gradient-breadcrumbs" : {
"name" : "gradient-breadcrumbs",
"rule" : ".gradient-breadcrumbs",
- "hash" : "3d0f8634df5bc29eaf2a5a01bae79cf1"
+ "hash" : "688ab77f50cfbc17ec30d798efb1b39e"
},
"gradient-dark-menu-label" : {
"name" : "gradient-dark-menu-label",
"rule" : ".gradient-dark-menu-label, .phabricator-dark-menu .phabricator-menu-item-type-label",
- "hash" : "e0d4a455142f9c4745d36ad8b7dd3f78"
+ "hash" : "89a908596142d38fbe61a706694cd321"
},
"gradient-green-dark" : {
"name" : "gradient-green-dark",
"rule" : ".gradient-green-dark, button.green, a.green, a.green:visited",
- "hash" : "a6719fe55b2b0e527ed32985691eab34"
+ "hash" : "0d19ab593772b6b406c0db309b3a14fb"
},
"gradient-green-light" : {
"name" : "gradient-green-light",
"rule" : ".gradient-green-light, button.green:active, a.green:active",
- "hash" : "124969cc7805bbd754005bc702e24c54"
+ "hash" : "71c67916327ec7fc65149ab72c3a2924"
},
"gradient-grey-dark" : {
"name" : "gradient-grey-dark",
"rule" : ".gradient-grey-dark, button.grey, input.inputaux, a.grey, a.grey:visited, a.button.disabled, button[disabled], button.disabled",
- "hash" : "fac28a773098fc62bf571e12b843f71a"
+ "hash" : "32651902d28d37dca01cf067072c39c0"
},
"gradient-grey-light" : {
"name" : "gradient-grey-light",
"rule" : ".gradient-grey-light, button.grey:active, a.grey:active, button.grey_active, a.dropdown-open",
- "hash" : "83c6128f59fc2e426c912c2f73f5b92b"
+ "hash" : "c3c9ee1ed6f800a4ac86910b94687877"
},
"gradient-menu-hover" : {
"name" : "gradient-menu-hover",
"rule" : ".gradient-menu-hover, .device-desktop .phabricator-side-menu a.phabricator-menu-item-type-link:hover, .phabricator-filetree a.phabricator-filetree-item:hover",
- "hash" : "e6e064156d66952180e99b00996ffc38"
+ "hash" : "856380207ac8c5cb6770d44dceb245a8"
},
"gradient-menu-label" : {
"name" : "gradient-menu-label",
"rule" : ".gradient-menu-label, .phabricator-side-menu .phabricator-menu-item-type-label",
- "hash" : "04b9943f5b06c8cb21fe6b96714e6662"
+ "hash" : "8ad8352b077ae02820ebbbae26dc669b"
},
"gradient-menu-selected" : {
"name" : "gradient-menu-selected",
"rule" : ".gradient-menu-selected, .phabricator-side-menu .phabricator-menu-item-selected, .device-desktop .phabricator-side-menu a.phabricator-menu-item-selected:hover, .phabricator-nav-local a.phabricator-active-nav-focus",
- "hash" : "9b4b039fba177b90bc26f0e6eece339d"
+ "hash" : "815bafb94e11c23e1a419ea85dcae113"
}
},
"scales" : [
Index: resources/sprite/manifest/icon.json
===================================================================
--- resources/sprite/manifest/icon.json
+++ resources/sprite/manifest/icon.json
@@ -4,1007 +4,1007 @@
"action-arrow_left" : {
"name" : "action-arrow_left",
"rule" : ".action-arrow_left",
- "hash" : "18a72fcb866d409a6273883cc56b4862"
+ "hash" : "439cd6051e6aab63b62d1e47f00ad4a0"
},
"action-arrow_left-grey" : {
"name" : "action-arrow_left-grey",
"rule" : ".action-arrow_left-grey",
- "hash" : "200067f0f3af28260f95632eb17c373a"
+ "hash" : "a3d0d34ef06a95685bf7a3e05eb97045"
},
"action-arrow_left-white" : {
"name" : "action-arrow_left-white",
"rule" : ".action-arrow_left-white, .device-desktop .phabricator-action-view:hover .action-arrow_left",
- "hash" : "f21ee5fc3b0ad93d1ca18c71e6a62623"
+ "hash" : "e113bc929cedac55146edcf6e22f2fe0"
},
"action-arrow_right" : {
"name" : "action-arrow_right",
"rule" : ".action-arrow_right",
- "hash" : "64fb031691e8711ec2922644831a4b05"
+ "hash" : "06b693491c0594d4e7ff537dbd725a98"
},
"action-arrow_right-grey" : {
"name" : "action-arrow_right-grey",
"rule" : ".action-arrow_right-grey",
- "hash" : "7d3a0c9e65b9917ccc5acf3ec1ccad2e"
+ "hash" : "894f051068f9e206d96576ca6d14fd4f"
},
"action-arrow_right-white" : {
"name" : "action-arrow_right-white",
"rule" : ".action-arrow_right-white, .device-desktop .phabricator-action-view:hover .action-arrow_right",
- "hash" : "b16e8688f68d9f225aae11fa2de98f41"
+ "hash" : "aebf657073a1a85eeb0887cf32db8f08"
},
"action-attach" : {
"name" : "action-attach",
"rule" : ".action-attach",
- "hash" : "4aeca7c85a2c384c25c0a5d27aa2a41f"
+ "hash" : "a062d26bbe37abd305998545885fb1c0"
},
"action-attach-grey" : {
"name" : "action-attach-grey",
"rule" : ".action-attach-grey",
- "hash" : "6d528ecda66e9919452cbca77f94d034"
+ "hash" : "09eae1092a9f48ec48b8970be67351b7"
},
"action-attach-white" : {
"name" : "action-attach-white",
"rule" : ".action-attach-white, .device-desktop .phabricator-action-view:hover .action-attach",
- "hash" : "75b0dcbb6f6f297b647266165bd0ac77"
+ "hash" : "1f69f442d87f6e27980229dbedfbf728"
},
"action-blame" : {
"name" : "action-blame",
"rule" : ".action-blame",
- "hash" : "467a17a711c501b51318b2661d38458c"
+ "hash" : "81fbaa234aed3a379c403aa0c7f3c7eb"
},
"action-blame-grey" : {
"name" : "action-blame-grey",
"rule" : ".action-blame-grey",
- "hash" : "b5def77f42ef0fc2eb8141f54a6c730b"
+ "hash" : "4b383ffb76ee537ce9b6fadb8d2ee160"
},
"action-blame-white" : {
"name" : "action-blame-white",
"rule" : ".action-blame-white, .device-desktop .phabricator-action-view:hover .action-blame",
- "hash" : "ef8bcbb695d0af2ef18c7be1fe308641"
+ "hash" : "e975ef46298c46530659e12fbd012292"
},
"action-check" : {
"name" : "action-check",
"rule" : ".action-check",
- "hash" : "0db35013c33b71355dc33912073d0c28"
+ "hash" : "c8b9c56214fd39a4ba99e07e1fa72e22"
},
"action-check-grey" : {
"name" : "action-check-grey",
"rule" : ".action-check-grey",
- "hash" : "381b82f1a08592cf1c3f23b3d12c0456"
+ "hash" : "2375808574c858425660eac59d80e29a"
},
"action-check-white" : {
"name" : "action-check-white",
"rule" : ".action-check-white, .device-desktop .phabricator-action-view:hover .action-check",
- "hash" : "be412e3b2d3574bb04721b2f8646b67e"
+ "hash" : "803fbc2117621cf946af270cf5bed06b"
},
"action-comment" : {
"name" : "action-comment",
"rule" : ".action-comment",
- "hash" : "5cbd81c2469dc95048abf073d977f7e2"
+ "hash" : "bb9067094e0cb805dc597eb0ebdd94f9"
},
"action-comment-grey" : {
"name" : "action-comment-grey",
"rule" : ".action-comment-grey",
- "hash" : "be352ed442c144230f65c0a4c4d56a64"
+ "hash" : "8d71bd6c89116ca02aef8ce830514022"
},
"action-comment-white" : {
"name" : "action-comment-white",
"rule" : ".action-comment-white, .device-desktop .phabricator-action-view:hover .action-comment",
- "hash" : "5f428fb791a23e4a8e2c15f66ff23485"
+ "hash" : "48bfa57a5b06edcf08329b47fc546071"
},
"action-computer" : {
"name" : "action-computer",
"rule" : ".action-computer",
- "hash" : "ab8e3d101f3f1a8b434d449ef1b9abd3"
+ "hash" : "4e25c6822b815a2c29478082012d1237"
},
"action-computer-grey" : {
"name" : "action-computer-grey",
"rule" : ".action-computer-grey",
- "hash" : "6ad695eb4df2f2db3268513307439280"
+ "hash" : "d2972bca3937fc49e859019c0fd6647f"
},
"action-computer-white" : {
"name" : "action-computer-white",
"rule" : ".action-computer-white, .device-desktop .phabricator-action-view:hover .action-computer",
- "hash" : "773aaa54b567fb9de636e3d4be417b3a"
+ "hash" : "154afcf0ee1539c0d5a273c971a8c6e1"
},
"action-create" : {
"name" : "action-create",
"rule" : ".action-create",
- "hash" : "b6f1daca7830bd72f390e7d64630c366"
+ "hash" : "5901de6f71af459888d1b277d0726916"
},
"action-create-grey" : {
"name" : "action-create-grey",
"rule" : ".action-create-grey",
- "hash" : "fa830394fbf05528cd3c655ab0481d0a"
+ "hash" : "3efad05cb3ac57da962e2bc1c5ff2308"
},
"action-create-white" : {
"name" : "action-create-white",
"rule" : ".action-create-white, .device-desktop .phabricator-action-view:hover .action-create",
- "hash" : "addfa0ab79944ca318ffc57e568bae9c"
+ "hash" : "8e06e0eb1031b008ca4a32eba9934289"
},
"action-delete" : {
"name" : "action-delete",
"rule" : ".action-delete",
- "hash" : "174c6a08a8a7131cef810e006b5a71e0"
+ "hash" : "41bbd0d0d4cb69b2b5423367603187e3"
},
"action-delete-grey" : {
"name" : "action-delete-grey",
"rule" : ".action-delete-grey",
- "hash" : "e541601ce768fb2fa1a941a95ac3a7cf"
+ "hash" : "244047621dbeefd392c4c7f3059a9e6a"
},
"action-delete-white" : {
"name" : "action-delete-white",
"rule" : ".action-delete-white, .device-desktop .phabricator-action-view:hover .action-delete",
- "hash" : "496e780e0470bce85116baaa3aebdab2"
+ "hash" : "deb1e03b1aa95a07fa16ee82f9605914"
},
"action-disable" : {
"name" : "action-disable",
"rule" : ".action-disable",
- "hash" : "0a0b314012bdaaa307ac70d2581c20b5"
+ "hash" : "e0db051423597acbf4611467227989f3"
},
"action-disable-grey" : {
"name" : "action-disable-grey",
"rule" : ".action-disable-grey",
- "hash" : "c7741a4579c4e7a1c94dfd029b3e3bb0"
+ "hash" : "301c0440f503fba4c3e1d0adc9f8dad6"
},
"action-disable-white" : {
"name" : "action-disable-white",
"rule" : ".action-disable-white, .device-desktop .phabricator-action-view:hover .action-disable",
- "hash" : "3f456c6f15d4aaccfe85ae73e856ca1c"
+ "hash" : "cb5ee0cda04760e0568e8245a807754f"
},
"action-dislike" : {
"name" : "action-dislike",
"rule" : ".action-dislike",
- "hash" : "846820ffc823a4899dde8f8c14203df1"
+ "hash" : "fbacfb7af00bdbd738039643cdf5bc51"
},
"action-dislike-grey" : {
"name" : "action-dislike-grey",
"rule" : ".action-dislike-grey",
- "hash" : "1e994ac16acba86dae2f9e94ff0df2c2"
+ "hash" : "73fcb492401b2b18785857f843e577f0"
},
"action-dislike-white" : {
"name" : "action-dislike-white",
"rule" : ".action-dislike-white, .device-desktop .phabricator-action-view:hover .action-dislike",
- "hash" : "55d374c8466370c8c5805b8135c3f416"
+ "hash" : "6ea8a6df9208f9a790702d801589be7e"
},
"action-download" : {
"name" : "action-download",
"rule" : ".action-download",
- "hash" : "b4517953cb610ad5af5537ac5526a168"
+ "hash" : "a3edf236a8d30a71b46f5126ac32bd6e"
},
"action-download-alt" : {
"name" : "action-download-alt",
"rule" : ".action-download-alt",
- "hash" : "7ea7b578f8da62d7aaf82b1e80f0fa96"
+ "hash" : "eb4d4a8d850b7404332bd4d36067b00a"
},
"action-download-alt-grey" : {
"name" : "action-download-alt-grey",
"rule" : ".action-download-alt-grey",
- "hash" : "6b06b8e24433f7b4690a0bda53441399"
+ "hash" : "e19cba41b19ed423ba72d5ec1447cdca"
},
"action-download-alt-white" : {
"name" : "action-download-alt-white",
"rule" : ".action-download-alt-white, .device-desktop .phabricator-action-view:hover .action-download-alt",
- "hash" : "f458b2b153b9fd655bdea9c2c73ed569"
+ "hash" : "40bd588c9478a92ba592eadb0cd2255d"
},
"action-download-grey" : {
"name" : "action-download-grey",
"rule" : ".action-download-grey",
- "hash" : "d2502bf6e4c56e8c24f564285a3d0f4e"
+ "hash" : "35df8e7bea8392edfad0e41ffba56204"
},
"action-download-white" : {
"name" : "action-download-white",
"rule" : ".action-download-white, .device-desktop .phabricator-action-view:hover .action-download",
- "hash" : "90ca79835936319d143ea5c3b745744e"
+ "hash" : "88650982d63c7fe1b0df57f19b73764e"
},
"action-edit" : {
"name" : "action-edit",
"rule" : ".action-edit",
- "hash" : "539f11d58239683c73b275335e1cd5ee"
+ "hash" : "37b7c707bb18feb66fbad36cd99f82be"
},
"action-edit-grey" : {
"name" : "action-edit-grey",
"rule" : ".action-edit-grey",
- "hash" : "9ac07dfbc52997775aeaa4fafbf43d12"
+ "hash" : "a41905d50572da65d4c7e31c6bd5b9cb"
},
"action-edit-white" : {
"name" : "action-edit-white",
"rule" : ".action-edit-white, .device-desktop .phabricator-action-view:hover .action-edit",
- "hash" : "cb83ff8b6f93bf367233960142abf744"
+ "hash" : "31a23bb50808f363fb8f92ac1774348a"
},
"action-enable" : {
"name" : "action-enable",
"rule" : ".action-enable",
- "hash" : "a0d81348f61019149090e89d2d126a8f"
+ "hash" : "ac321d05767830df55141e143a412c59"
},
"action-enable-grey" : {
"name" : "action-enable-grey",
"rule" : ".action-enable-grey",
- "hash" : "8d6bf1d0333b81cde5cbeb8646316863"
+ "hash" : "637dcb6c96460ffd8e7dc9bcce105665"
},
"action-enable-white" : {
"name" : "action-enable-white",
"rule" : ".action-enable-white, .device-desktop .phabricator-action-view:hover .action-enable",
- "hash" : "6cbadeb75ede97f58a62b0bafbc7aef5"
+ "hash" : "3856031f36cf1126c6b375419b872158"
},
"action-file" : {
"name" : "action-file",
"rule" : ".action-file",
- "hash" : "95de3ed156d8e8008a464fee994a8b7a"
+ "hash" : "7ddd35db36264115fb7c0a219f561753"
},
"action-file-grey" : {
"name" : "action-file-grey",
"rule" : ".action-file-grey",
- "hash" : "bd1b94b5ef4ea93570b5dd11f9b6fc2f"
+ "hash" : "d1147f0cd62b48c8fca06cbe923c0330"
},
"action-file-white" : {
"name" : "action-file-white",
"rule" : ".action-file-white, .device-desktop .phabricator-action-view:hover .action-file",
- "hash" : "330b3ff7217edaa7b348c1209eeb5301"
+ "hash" : "bb5434e03f07ba3ab4db4a08c91a5a95"
},
"action-flag" : {
"name" : "action-flag",
"rule" : ".action-flag",
- "hash" : "017bbfc781bfa2613ade68fd791d7b66"
+ "hash" : "da0e4bc0ee0b7ca4f307e347a9fe6f85"
},
"action-flag-0" : {
"name" : "action-flag-0",
"rule" : ".action-flag-0",
- "hash" : "63ae0ab21e802d2cf11c40cb239718a6"
+ "hash" : "e3c9d406418889ac7f219dc2e4e3695d"
},
"action-flag-0-grey" : {
"name" : "action-flag-0-grey",
"rule" : ".action-flag-0-grey",
- "hash" : "6a9bb10f146c2adbd5ffc8111ce959c8"
+ "hash" : "d48a88e9782cfc132799f8df5c828fee"
},
"action-flag-0-white" : {
"name" : "action-flag-0-white",
"rule" : ".action-flag-0-white, .device-desktop .phabricator-action-view:hover .action-flag-0",
- "hash" : "f40d6750653f54ce6099c76294ab5b80"
+ "hash" : "745431f4973ca195c418544375f56163"
},
"action-flag-1" : {
"name" : "action-flag-1",
"rule" : ".action-flag-1",
- "hash" : "7f50971290dff274a11930faeeac076b"
+ "hash" : "76ec571366cba7f3440fdb1c4b9118be"
},
"action-flag-1-grey" : {
"name" : "action-flag-1-grey",
"rule" : ".action-flag-1-grey",
- "hash" : "eb6af245f22f94b81368ac24a5021cb0"
+ "hash" : "d5807977961d63b8c52754077a68b2e0"
},
"action-flag-1-white" : {
"name" : "action-flag-1-white",
"rule" : ".action-flag-1-white, .device-desktop .phabricator-action-view:hover .action-flag-1",
- "hash" : "c47bfa96d98672bfe5afa85a0cfbec89"
+ "hash" : "b8d0afbab58acf0a573dd28d3ad51de3"
},
"action-flag-2" : {
"name" : "action-flag-2",
"rule" : ".action-flag-2",
- "hash" : "63a979a0d2de57efdcf5fee2192957e1"
+ "hash" : "e6d3a4ecf63079d053adae81d45c4f0a"
},
"action-flag-2-grey" : {
"name" : "action-flag-2-grey",
"rule" : ".action-flag-2-grey",
- "hash" : "46d028b2ddbc26251b5fcc02ec87ca43"
+ "hash" : "516c5a8e041b65aea5ddbdb7542b3d12"
},
"action-flag-2-white" : {
"name" : "action-flag-2-white",
"rule" : ".action-flag-2-white, .device-desktop .phabricator-action-view:hover .action-flag-2",
- "hash" : "45b1dda7b8c85546d40789ca83ed481c"
+ "hash" : "7c013e587c0e7522952413749e62bd62"
},
"action-flag-3" : {
"name" : "action-flag-3",
"rule" : ".action-flag-3",
- "hash" : "d95b847797e6ad0ae4e5719085530709"
+ "hash" : "4bd5ac1c2c0ed4765000fb49811d2c68"
},
"action-flag-3-grey" : {
"name" : "action-flag-3-grey",
"rule" : ".action-flag-3-grey",
- "hash" : "fab7eca7e7a1e75a68a2f86a9ecb4dfd"
+ "hash" : "f471dcb2c59b7ce1ac83057e71cd3560"
},
"action-flag-3-white" : {
"name" : "action-flag-3-white",
"rule" : ".action-flag-3-white, .device-desktop .phabricator-action-view:hover .action-flag-3",
- "hash" : "42f994d618726c1294ac7206accdac0d"
+ "hash" : "a8eaacbb09c261565ca05a2672b1fdd8"
},
"action-flag-4" : {
"name" : "action-flag-4",
"rule" : ".action-flag-4",
- "hash" : "61d60e39d879436ffaa4bf3489c4be62"
+ "hash" : "f5e87f3bcd0617174961f25c51c7dcc7"
},
"action-flag-4-grey" : {
"name" : "action-flag-4-grey",
"rule" : ".action-flag-4-grey",
- "hash" : "8dc44ff4d36f6e1e4522fc865923a4df"
+ "hash" : "a2893da9d76f4765782064035313fb2f"
},
"action-flag-4-white" : {
"name" : "action-flag-4-white",
"rule" : ".action-flag-4-white, .device-desktop .phabricator-action-view:hover .action-flag-4",
- "hash" : "e948ac8da0548c252ce32f4ff2503790"
+ "hash" : "5a1c34e6ccaf9f60e51867e593fe86fe"
},
"action-flag-5" : {
"name" : "action-flag-5",
"rule" : ".action-flag-5",
- "hash" : "597c19fdaa99572b5d65d30d3cb81c13"
+ "hash" : "1100ba1c1351fe594c66a7d68b4f55ce"
},
"action-flag-5-grey" : {
"name" : "action-flag-5-grey",
"rule" : ".action-flag-5-grey",
- "hash" : "24bf02b161815f07e9bcd9e75ba141f6"
+ "hash" : "ef2bb6c72aadb0945f9f56bf24c14174"
},
"action-flag-5-white" : {
"name" : "action-flag-5-white",
"rule" : ".action-flag-5-white, .device-desktop .phabricator-action-view:hover .action-flag-5",
- "hash" : "55bcef156bbd099ada0c39aa796be663"
+ "hash" : "ab3f27db5a080c3aa094d6d50bece2a4"
},
"action-flag-6" : {
"name" : "action-flag-6",
"rule" : ".action-flag-6",
- "hash" : "490fea784ff63de9edffb1d142db49e0"
+ "hash" : "a37b3211517264f5a51c17c50d77a0df"
},
"action-flag-6-grey" : {
"name" : "action-flag-6-grey",
"rule" : ".action-flag-6-grey",
- "hash" : "5b3c14db2a182eb31f1925829adac556"
+ "hash" : "4dd3537f6f61a4f857149a5dea413652"
},
"action-flag-6-white" : {
"name" : "action-flag-6-white",
"rule" : ".action-flag-6-white, .device-desktop .phabricator-action-view:hover .action-flag-6",
- "hash" : "f251c82a144e354d241b977992aca356"
+ "hash" : "49a663b600316d73c521687c69ef8bdd"
},
"action-flag-7" : {
"name" : "action-flag-7",
"rule" : ".action-flag-7",
- "hash" : "02c8e4bcca7b2dfd746e6414f3419130"
+ "hash" : "5f4d6d3df81afe0745b75f810fb4be33"
},
"action-flag-7-grey" : {
"name" : "action-flag-7-grey",
"rule" : ".action-flag-7-grey",
- "hash" : "cf0b4c737ab286110e2e1e2f1619e7d1"
+ "hash" : "dc17400b19fe344a664568e51bd4c2c1"
},
"action-flag-7-white" : {
"name" : "action-flag-7-white",
"rule" : ".action-flag-7-white, .device-desktop .phabricator-action-view:hover .action-flag-7",
- "hash" : "bc1a5ec732b7d24e78c4dfd686347a6e"
+ "hash" : "063e08f676e39c26b33c6cac8ae14e15"
},
"action-flag-ghost" : {
"name" : "action-flag-ghost",
"rule" : ".action-flag-ghost",
- "hash" : "45e3a9c7a6436fff77a26ac14fe8a2ff"
+ "hash" : "3152fe67fc364d460d607e338237acf4"
},
"action-flag-ghost-grey" : {
"name" : "action-flag-ghost-grey",
"rule" : ".action-flag-ghost-grey",
- "hash" : "effe2cb0f7bf9d8498de00cb9d2219d5"
+ "hash" : "56c962d3557fee90bcb6216ff9df2b84"
},
"action-flag-ghost-white" : {
"name" : "action-flag-ghost-white",
"rule" : ".action-flag-ghost-white, .device-desktop .phabricator-action-view:hover .action-flag-ghost",
- "hash" : "330a6db5d35105eb2a40926ac10bf050"
+ "hash" : "583261ed96dbe3452e3e6a0001aea6d8"
},
"action-flag-grey" : {
"name" : "action-flag-grey",
"rule" : ".action-flag-grey",
- "hash" : "19ff6ca97d5a9417711c125342bfd181"
+ "hash" : "2abe4ae06cc54bf6069bac446e5fa439"
},
"action-flag-white" : {
"name" : "action-flag-white",
"rule" : ".action-flag-white, .device-desktop .phabricator-action-view:hover .action-flag",
- "hash" : "c75814a0ab1d5efd93eb04bc91ea1d70"
+ "hash" : "3442002f986cb8f7e1f06183927945a3"
},
"action-folder-open" : {
"name" : "action-folder-open",
"rule" : ".action-folder-open",
- "hash" : "041a997bd0fe3dc0eab6974cab2f4909"
+ "hash" : "fa3478ecd57fd41a6a16107db86a15e9"
},
"action-folder-open-grey" : {
"name" : "action-folder-open-grey",
"rule" : ".action-folder-open-grey",
- "hash" : "78861d4d04e344db11e235dfadfaa0b2"
+ "hash" : "dada2fb1cbcb8256f607eae1914219c1"
},
"action-folder-open-white" : {
"name" : "action-folder-open-white",
"rule" : ".action-folder-open-white, .device-desktop .phabricator-action-view:hover .action-folder-open",
- "hash" : "b6c96d025fbd7d9d2f6184ab2b5255c1"
+ "hash" : "af7843feb777d7eafc3904fe0a268ed3"
},
"action-fork" : {
"name" : "action-fork",
"rule" : ".action-fork",
- "hash" : "73872362aa5fa8a715bb2b282e8873a7"
+ "hash" : "15285571cef4f6251aad47c42e5f0f1c"
},
"action-fork-grey" : {
"name" : "action-fork-grey",
"rule" : ".action-fork-grey",
- "hash" : "80b616de5d415c74e2561cf85cd5563a"
+ "hash" : "aa875e4018c152bed7b37c776d18660e"
},
"action-fork-white" : {
"name" : "action-fork-white",
"rule" : ".action-fork-white, .device-desktop .phabricator-action-view:hover .action-fork",
- "hash" : "ed9479c691af95386f88076a65d73b19"
+ "hash" : "a3a53c919c04ae550970ccb5477671d2"
},
"action-herald" : {
"name" : "action-herald",
"rule" : ".action-herald",
- "hash" : "75eb507020fcb7dc6890022513648e85"
+ "hash" : "4084564ec8592cb6c9bf840f8c7eea6a"
},
"action-herald-grey" : {
"name" : "action-herald-grey",
"rule" : ".action-herald-grey",
- "hash" : "30b633461f095ac3f032eb02398ae67e"
+ "hash" : "bc9f0fef0b1f75ed4f20cc4359f706f5"
},
"action-herald-white" : {
"name" : "action-herald-white",
"rule" : ".action-herald-white, .device-desktop .phabricator-action-view:hover .action-herald",
- "hash" : "149fd50929e68d6bcf6310d9e4c316b6"
+ "hash" : "7d773778fa6126ac05a4c6f9d85dd20d"
},
"action-highlight" : {
"name" : "action-highlight",
"rule" : ".action-highlight",
- "hash" : "4430cca9eab0cbd85d3ee1b5e1f29ae3"
+ "hash" : "25f8142b1c665f623f9eab935bf256ab"
},
"action-highlight-grey" : {
"name" : "action-highlight-grey",
"rule" : ".action-highlight-grey",
- "hash" : "47fe828e1b61553326752209a8fba6cb"
+ "hash" : "0d4347b151224476548a0dc43f6d1ceb"
},
"action-highlight-white" : {
"name" : "action-highlight-white",
"rule" : ".action-highlight-white, .device-desktop .phabricator-action-view:hover .action-highlight",
- "hash" : "09a52dfdf893ee63be162f0c180d31fe"
+ "hash" : "d32f9b42dc24f41aa02c18ba5db5d65f"
},
"action-history" : {
"name" : "action-history",
"rule" : ".action-history",
- "hash" : "6669ec72a77a09e3e8c8c5fe941810a9"
+ "hash" : "69fbd6f3875ceef440a5fdd727162024"
},
"action-history-grey" : {
"name" : "action-history-grey",
"rule" : ".action-history-grey",
- "hash" : "3146a0c0c8698ef95ad74515cc9971ad"
+ "hash" : "97ed21324d25b236212e33c9bfd4dc0a"
},
"action-history-white" : {
"name" : "action-history-white",
"rule" : ".action-history-white, .device-desktop .phabricator-action-view:hover .action-history",
- "hash" : "07490563c7cf4e8194918c3700ca1b57"
+ "hash" : "4ffae3b425eaf5a7aec9757bd9fb97c3"
},
"action-image" : {
"name" : "action-image",
"rule" : ".action-image",
- "hash" : "5f03cd1fa806db2861d93a0fba7deff7"
+ "hash" : "bfe9f9b16bf54a258c76cf314bb87152"
},
"action-image-grey" : {
"name" : "action-image-grey",
"rule" : ".action-image-grey",
- "hash" : "32e1008c29447da5fc4a263c1b56ce41"
+ "hash" : "e11788cab503c91d3a39847165181cb8"
},
"action-image-white" : {
"name" : "action-image-white",
"rule" : ".action-image-white, .device-desktop .phabricator-action-view:hover .action-image",
- "hash" : "d48be030bf83013fcd3549460f197712"
+ "hash" : "de395492a2088e998f48cba698744b0f"
},
"action-like" : {
"name" : "action-like",
"rule" : ".action-like",
- "hash" : "89d7ac4a8642389bded3af9aa464b06b"
+ "hash" : "2afed6b1e26578bcbc23f8d1c72221ab"
},
"action-like-grey" : {
"name" : "action-like-grey",
"rule" : ".action-like-grey",
- "hash" : "262bdae8449eae9ecfb58246a8457f64"
+ "hash" : "8b2baee6c58e57d61c71d48b7e52522b"
},
"action-like-white" : {
"name" : "action-like-white",
"rule" : ".action-like-white, .device-desktop .phabricator-action-view:hover .action-like",
- "hash" : "773b180de4276644cad9688a1f0935ce"
+ "hash" : "0b6dd7cb5820d65faefdc2e7a8d75acf"
},
"action-link" : {
"name" : "action-link",
"rule" : ".action-link",
- "hash" : "bbaed885947840548f9b466fd97aef83"
+ "hash" : "0bb7d22b7db2915c787f132bee42a71d"
},
"action-link-grey" : {
"name" : "action-link-grey",
"rule" : ".action-link-grey",
- "hash" : "c3bd4b5b14e7ed7c522fd148022a9e7b"
+ "hash" : "0bfe4298307d9bd2e66a43b5d1ee6c00"
},
"action-link-white" : {
"name" : "action-link-white",
"rule" : ".action-link-white, .device-desktop .phabricator-action-view:hover .action-link",
- "hash" : "e846157dd9d0119d82b2777052acdb3d"
+ "hash" : "4cc1d11240276baf1864b9209e28d794"
},
"action-lint-info" : {
"name" : "action-lint-info",
"rule" : ".action-lint-info",
- "hash" : "324e1d2d947862a69df78e68e4a36b1f"
+ "hash" : "f3588606b991614019f2aba3e5d75867"
},
"action-lint-info-grey" : {
"name" : "action-lint-info-grey",
"rule" : ".action-lint-info-grey",
- "hash" : "76eadf42825e50f995b5d8d088ee591f"
+ "hash" : "738e607d12f91a7a9bc8f9b2c13052b6"
},
"action-lint-info-white" : {
"name" : "action-lint-info-white",
"rule" : ".action-lint-info-white, .device-desktop .phabricator-action-view:hover .action-lint-info",
- "hash" : "ef6d4bb883446171a1a1df66b13b2c66"
+ "hash" : "04d9cd9ec75225136ce19ef447ebbd5a"
},
"action-lint-ok" : {
"name" : "action-lint-ok",
"rule" : ".action-lint-ok",
- "hash" : "97b66fc1a5474f00bc1fdda6525820d5"
+ "hash" : "d2dd1f379b71c38233c33c106867593d"
},
"action-lint-ok-grey" : {
"name" : "action-lint-ok-grey",
"rule" : ".action-lint-ok-grey",
- "hash" : "eefd06511a24992aef9e486b560c4062"
+ "hash" : "e7b4b0ff5593c77ecf8af929960656c1"
},
"action-lint-ok-white" : {
"name" : "action-lint-ok-white",
"rule" : ".action-lint-ok-white, .device-desktop .phabricator-action-view:hover .action-lint-ok",
- "hash" : "f2720295139147930fb78e962450075d"
+ "hash" : "26661c20c9d68c0568e7f8e7b9a79370"
},
"action-lint-warning" : {
"name" : "action-lint-warning",
"rule" : ".action-lint-warning",
- "hash" : "d0b1c5f84db953de088056db7fbe1eae"
+ "hash" : "30f226154af0794c0e05f53129a7a8fc"
},
"action-lint-warning-grey" : {
"name" : "action-lint-warning-grey",
"rule" : ".action-lint-warning-grey",
- "hash" : "f4f73032f5f2310d7731affba2318d5d"
+ "hash" : "fef17b967a78fba8c6a4f772fc8c7ab2"
},
"action-lint-warning-white" : {
"name" : "action-lint-warning-white",
"rule" : ".action-lint-warning-white, .device-desktop .phabricator-action-view:hover .action-lint-warning",
- "hash" : "d540c0afe65862f5c32c934f1956ca36"
+ "hash" : "acc7c971f83efb5298390bb0ebdbbdb1"
},
"action-lock" : {
"name" : "action-lock",
"rule" : ".action-lock",
- "hash" : "7ca88645707cf9cd69ace1e416c0f964"
+ "hash" : "d79fe308c2bca2a15eb4f2b0784eaef6"
},
"action-lock-grey" : {
"name" : "action-lock-grey",
"rule" : ".action-lock-grey",
- "hash" : "c95e9a3071dc3bc389c235c49a5c5388"
+ "hash" : "ffa7de98cd41e3db7f9ea284662de41e"
},
"action-lock-white" : {
"name" : "action-lock-white",
"rule" : ".action-lock-white, .device-desktop .phabricator-action-view:hover .action-lock",
- "hash" : "e6f5edd8fdfadab84dd95e5582ac1db1"
+ "hash" : "323f4e1dc1d38b173bbe290c27ec9bea"
},
"action-love" : {
"name" : "action-love",
"rule" : ".action-love",
- "hash" : "9f101bddc6deba2b128bdc7bb45d583a"
+ "hash" : "4b5271c2f7cbf2ae1d904a3cc5f79b09"
},
"action-love-grey" : {
"name" : "action-love-grey",
"rule" : ".action-love-grey",
- "hash" : "615fa9c17fa8a9e0b27846f3c99fdd87"
+ "hash" : "3b629d11a145bc0eb300d9ee8daaacc6"
},
"action-love-white" : {
"name" : "action-love-white",
"rule" : ".action-love-white, .device-desktop .phabricator-action-view:hover .action-love",
- "hash" : "5f92d9a4565e79b96c956f054ede993a"
+ "hash" : "25a8f8c240d2fcd12e8ce192c749c9cb"
},
"action-merge" : {
"name" : "action-merge",
"rule" : ".action-merge",
- "hash" : "0c7cb3934262b3374f5c94e36c826672"
+ "hash" : "d1465a199273ca5a7d1914b7827388aa"
},
"action-merge-grey" : {
"name" : "action-merge-grey",
"rule" : ".action-merge-grey",
- "hash" : "e8c11bd0a92a273ba5f90fee8bd31fb6"
+ "hash" : "b04fa26d964413d9b2efe0354aa22f95"
},
"action-merge-white" : {
"name" : "action-merge-white",
"rule" : ".action-merge-white, .device-desktop .phabricator-action-view:hover .action-merge",
- "hash" : "433a26913a0db78eb707edf0dbbf0fdc"
+ "hash" : "c89d5163d7e237cde54b833356311a1c"
},
"action-message" : {
"name" : "action-message",
"rule" : ".action-message",
- "hash" : "c14b8eb1f70855eb801c42c5f04ea5d0"
+ "hash" : "b965efb0e7bc88a5f944bfa0476eb652"
},
"action-message-grey" : {
"name" : "action-message-grey",
"rule" : ".action-message-grey",
- "hash" : "93574f7b8adadc01b036b2376e7b1eb1"
+ "hash" : "ac4c4a9265d0d4810164907222ff401c"
},
"action-message-white" : {
"name" : "action-message-white",
"rule" : ".action-message-white, .device-desktop .phabricator-action-view:hover .action-message",
- "hash" : "3fe1df81d1af648ac1e483e2a081ed62"
+ "hash" : "7ec19102800f71d08b3d08f31cbbaf02"
},
"action-meta-mta" : {
"name" : "action-meta-mta",
"rule" : ".action-meta-mta",
- "hash" : "3895ce9ea717cc0a1bcc2f93015a5c86"
+ "hash" : "afbb4a97071268b542634aea2eed9fdb"
},
"action-meta-mta-grey" : {
"name" : "action-meta-mta-grey",
"rule" : ".action-meta-mta-grey",
- "hash" : "873f04635a614bce012cfc82837b6be1"
+ "hash" : "bc939fa46edc09f3e8b31a06cfb18895"
},
"action-meta-mta-white" : {
"name" : "action-meta-mta-white",
"rule" : ".action-meta-mta-white, .device-desktop .phabricator-action-view:hover .action-meta-mta",
- "hash" : "8d1edd5f73363a7057474364850abc39"
+ "hash" : "e1f6ed22db628d691172d7589004ff8f"
},
"action-move" : {
"name" : "action-move",
"rule" : ".action-move",
- "hash" : "fa5d4f6c263a4cad009990a3f00c1819"
+ "hash" : "5ee19a8116be04fca2cdb2ca18848aaa"
},
"action-move-grey" : {
"name" : "action-move-grey",
"rule" : ".action-move-grey",
- "hash" : "201db3f4614022b6e57c2168aa9f7298"
+ "hash" : "9f856630044d1d87d689b8d381426391"
},
"action-move-white" : {
"name" : "action-move-white",
"rule" : ".action-move-white, .device-desktop .phabricator-action-view:hover .action-move",
- "hash" : "d7f6217f85f2cfa45d7e44bd06d3f438"
+ "hash" : "3f81eb8b52850b4910ecf4a8c7667ad5"
},
"action-new" : {
"name" : "action-new",
"rule" : ".action-new",
- "hash" : "62ce1bb9b7c8252f58a37c655b7ed377"
+ "hash" : "dfbcbf59a5440d9a99b0c18e2010f58e"
},
"action-new-grey" : {
"name" : "action-new-grey",
"rule" : ".action-new-grey",
- "hash" : "5d96082b216b783d6256ee3cc755dc87"
+ "hash" : "fc6c948a0019a8a63e1a36a0c21f60ef"
},
"action-new-white" : {
"name" : "action-new-white",
"rule" : ".action-new-white, .device-desktop .phabricator-action-view:hover .action-new, .phabricator-application-launch-create:hover .phabricator-application-create-icon.action-new-grey",
- "hash" : "782f8bc8dc883c0637910e5fbc3c6f9f"
+ "hash" : "99a86e78d0f9bd775e283484b2bba989"
},
"action-none" : {
"name" : "action-none",
"rule" : ".action-none",
- "hash" : "5595f8625292cd95d1240ed429dc880c"
+ "hash" : "29ab47e45ff4d1f23786bf0c1fc20414"
},
"action-none-grey" : {
"name" : "action-none-grey",
"rule" : ".action-none-grey",
- "hash" : "76d2d2e3fff56f21759d03dd5c17331c"
+ "hash" : "8d0dec138cc8bbd2da813c24a55ef8f5"
},
"action-none-white" : {
"name" : "action-none-white",
"rule" : ".action-none-white, .device-desktop .phabricator-action-view:hover .action-none",
- "hash" : "69ce41011458cfbdabb1a9fb7537d087"
+ "hash" : "ee7b57ca9dcc4e87e09fbe2949ec1242"
},
"action-perflab" : {
"name" : "action-perflab",
"rule" : ".action-perflab",
- "hash" : "ec1acf5413f771b1f2782aa759074764"
+ "hash" : "233b376e3b9d43082a60ea54afa6bc18"
},
"action-perflab-grey" : {
"name" : "action-perflab-grey",
"rule" : ".action-perflab-grey",
- "hash" : "2f7fa40824ccf254322e60e216f1d50e"
+ "hash" : "fbd064b66bed85a725cbb4741d0e85b0"
},
"action-perflab-white" : {
"name" : "action-perflab-white",
"rule" : ".action-perflab-white, .device-desktop .phabricator-action-view:hover .action-perflab",
- "hash" : "aac6b8b9fa044430375ba370243292cb"
+ "hash" : "9add2d46ea13b938c631ac2a4f376e3d"
},
"action-preview" : {
"name" : "action-preview",
"rule" : ".action-preview",
- "hash" : "a33cb74fc6e1b9665ac4ff20635babe8"
+ "hash" : "2eb136352c63e4f0f7632f81d12d635c"
},
"action-preview-grey" : {
"name" : "action-preview-grey",
"rule" : ".action-preview-grey",
- "hash" : "4cfe3a27e5e818ea9f7805a7c1b05fa7"
+ "hash" : "f7c4e6ea75fb0a9f2fe00183112db8ad"
},
"action-preview-white" : {
"name" : "action-preview-white",
"rule" : ".action-preview-white, .device-desktop .phabricator-action-view:hover .action-preview",
- "hash" : "61523a3b9edc3d0ddfea9f399bae0fe1"
+ "hash" : "71cac08ba19ee678499a9cbd5c24c6cf"
},
"action-refresh" : {
"name" : "action-refresh",
"rule" : ".action-refresh",
- "hash" : "d5d7cf16bfe862d0a101ccf216b76df1"
+ "hash" : "171e46e974912cfa0b347d1e96a579c7"
},
"action-refresh-grey" : {
"name" : "action-refresh-grey",
"rule" : ".action-refresh-grey",
- "hash" : "b4838ee697b2a9b70dc6920da7ab3e89"
+ "hash" : "6e102669eb7b6389d7c08c838886841d"
},
"action-refresh-white" : {
"name" : "action-refresh-white",
"rule" : ".action-refresh-white, .device-desktop .phabricator-action-view:hover .action-refresh",
- "hash" : "44fa7fc18a847416b9db3858e0b47737"
+ "hash" : "5a7dad6d45f6b47bc1175a7efa4089a1"
},
"action-remove" : {
"name" : "action-remove",
"rule" : ".action-remove",
- "hash" : "4c9dcad5540a611a5e05380d7982a601"
+ "hash" : "364176fcff78057741963dbf48eecbbd"
},
"action-remove-grey" : {
"name" : "action-remove-grey",
"rule" : ".action-remove-grey",
- "hash" : "dc0b179b0a96dd5c9f387ee41daf77a7"
+ "hash" : "b0d190ec2837c0cbdc99428178a8eddf"
},
"action-remove-white" : {
"name" : "action-remove-white",
"rule" : ".action-remove-white, .device-desktop .phabricator-action-view:hover .action-remove",
- "hash" : "8c750027adb708e8507a51986081d309"
+ "hash" : "e3646206c14813fca81a35de43722aae"
},
"action-search" : {
"name" : "action-search",
"rule" : ".action-search",
- "hash" : "1340e68f4f2b55c5feee4a0241672c82"
+ "hash" : "8307439f020b262ab8443edb745ed171"
},
"action-search-grey" : {
"name" : "action-search-grey",
"rule" : ".action-search-grey",
- "hash" : "a7e598337c9a8a6feb3de62247abb611"
+ "hash" : "c1ce13aab1083b20fb094b56b3deab8a"
},
"action-search-white" : {
"name" : "action-search-white",
"rule" : ".action-search-white, .device-desktop .phabricator-action-view:hover .action-search",
- "hash" : "91e764bd3ed921153ac66fc56e04b884"
+ "hash" : "72098d2091e6297c4253c3e45a365ec4"
},
"action-start-sandcastle" : {
"name" : "action-start-sandcastle",
"rule" : ".action-start-sandcastle",
- "hash" : "52f245ddeff53c5cf084c27b6e45b152"
+ "hash" : "afa09dd71e0747c56e64d95e975122c8"
},
"action-start-sandcastle-grey" : {
"name" : "action-start-sandcastle-grey",
"rule" : ".action-start-sandcastle-grey",
- "hash" : "d41cff7a3c898616f75634c8d796cd6c"
+ "hash" : "b0912a9f2a1bcff19ab90f539107864f"
},
"action-start-sandcastle-white" : {
"name" : "action-start-sandcastle-white",
"rule" : ".action-start-sandcastle-white, .device-desktop .phabricator-action-view:hover .action-start-sandcastle",
- "hash" : "04959e4bcf29b57213e5b49ab6f25aeb"
+ "hash" : "53692026662afaafdcbaa9ab7de7aa0d"
},
"action-subscribe-add" : {
"name" : "action-subscribe-add",
"rule" : ".action-subscribe-add",
- "hash" : "1b166c23ed6a971d2f93d37147caf622"
+ "hash" : "d2100e88f2ffc71c2df1d40049f2bf68"
},
"action-subscribe-add-grey" : {
"name" : "action-subscribe-add-grey",
"rule" : ".action-subscribe-add-grey",
- "hash" : "2b2fd9749636140f78233bef8e604d56"
+ "hash" : "637094fbed70285b62cbfe9ead4bd480"
},
"action-subscribe-add-white" : {
"name" : "action-subscribe-add-white",
"rule" : ".action-subscribe-add-white, .device-desktop .phabricator-action-view:hover .action-subscribe-add",
- "hash" : "2ca899f12f05b03c5c54cbac08d2b74d"
+ "hash" : "75be8cd5e9622834bd6faf0c6d1db271"
},
"action-subscribe-auto" : {
"name" : "action-subscribe-auto",
"rule" : ".action-subscribe-auto",
- "hash" : "a6cd0083b657b924882d830cd4f91bbc"
+ "hash" : "95145b14f35005a0ff3224e3076a9388"
},
"action-subscribe-auto-grey" : {
"name" : "action-subscribe-auto-grey",
"rule" : ".action-subscribe-auto-grey",
- "hash" : "77ccbf046a3a39ebf20ba6e58e865438"
+ "hash" : "12edd25560b91838642baa3529743733"
},
"action-subscribe-auto-white" : {
"name" : "action-subscribe-auto-white",
"rule" : ".action-subscribe-auto-white, .device-desktop .phabricator-action-view:hover .action-subscribe-auto",
- "hash" : "f22920740beb517bb7d33ae91462907d"
+ "hash" : "eda2baeaf056a2d5f46184393ec6dbca"
},
"action-subscribe-delete" : {
"name" : "action-subscribe-delete",
"rule" : ".action-subscribe-delete",
- "hash" : "e78959e3ed89af610da59e8ef77c799d"
+ "hash" : "55a16e4abd9fe661f350b5327aafed88"
},
"action-subscribe-delete-grey" : {
"name" : "action-subscribe-delete-grey",
"rule" : ".action-subscribe-delete-grey",
- "hash" : "e3e8d142bdd4d1acfebcd03c790ac5b5"
+ "hash" : "c1c033955177120cd6adcb0d68f37e18"
},
"action-subscribe-delete-white" : {
"name" : "action-subscribe-delete-white",
"rule" : ".action-subscribe-delete-white, .device-desktop .phabricator-action-view:hover .action-subscribe-delete",
- "hash" : "1368667fb8b115c95512eda55d7065a5"
+ "hash" : "bc0d60756e5b4c141b801fb384933eab"
},
"action-tag" : {
"name" : "action-tag",
"rule" : ".action-tag",
- "hash" : "2574ffef0cafe758774e358bd6e5cd6a"
+ "hash" : "069a8593574d6f847a3611b23677e667"
},
"action-tag-grey" : {
"name" : "action-tag-grey",
"rule" : ".action-tag-grey",
- "hash" : "e8194bcfb48d63a5a8c5ce69a0a3dcc5"
+ "hash" : "544d96d3bed359a545f2eaa16687cead"
},
"action-tag-white" : {
"name" : "action-tag-white",
"rule" : ".action-tag-white, .device-desktop .phabricator-action-view:hover .action-tag",
- "hash" : "2d54a42a650a987ce706c2d935ff33cd"
+ "hash" : "e3e509127ef1a452faaa03465dd6f9c1"
},
"action-transcript" : {
"name" : "action-transcript",
"rule" : ".action-transcript",
- "hash" : "6be4d47abddeb109216f346787face70"
+ "hash" : "4e76a6b1c51fcfc1b1b1ad0e7f247c3a"
},
"action-transcript-grey" : {
"name" : "action-transcript-grey",
"rule" : ".action-transcript-grey",
- "hash" : "9ed35e5d39536a4b8dd934039c742447"
+ "hash" : "313af234ca64b2ecc53dd1c91ce0b1c1"
},
"action-transcript-white" : {
"name" : "action-transcript-white",
"rule" : ".action-transcript-white, .device-desktop .phabricator-action-view:hover .action-transcript",
- "hash" : "7c3df910499b8ddb85c2f53e0d58c0db"
+ "hash" : "39743a3d055fcd5b344eb59092006f16"
},
"action-undo" : {
"name" : "action-undo",
"rule" : ".action-undo",
- "hash" : "f81151e242bb8ae29714bec10cb7c5f1"
+ "hash" : "7e860a8ec5bb760b0767ecc3114173c7"
},
"action-undo-grey" : {
"name" : "action-undo-grey",
"rule" : ".action-undo-grey",
- "hash" : "8d4b0bc147b463011ec00321ba75b17f"
+ "hash" : "6c9fdd95e53b4ec05da46cf129e3c6fb"
},
"action-undo-white" : {
"name" : "action-undo-white",
"rule" : ".action-undo-white, .device-desktop .phabricator-action-view:hover .action-undo",
- "hash" : "39b777060ce1d1b0c68c550bb63d7146"
+ "hash" : "8b3fefbad3b5179a6b35b41617e2cef2"
},
"action-unlock" : {
"name" : "action-unlock",
"rule" : ".action-unlock",
- "hash" : "d7cc6ffcda62a90e455d37ca0f07d0dd"
+ "hash" : "e2ff544b4c60dcf7545755d96d23b993"
},
"action-unlock-grey" : {
"name" : "action-unlock-grey",
"rule" : ".action-unlock-grey",
- "hash" : "efdc3048fa3a4051a43f43a915e53b0e"
+ "hash" : "d9656d004d5c516a38d75462eadf82f5"
},
"action-unlock-white" : {
"name" : "action-unlock-white",
"rule" : ".action-unlock-white, .device-desktop .phabricator-action-view:hover .action-unlock",
- "hash" : "d0e7aff47724d94167e9bcb11eb5e6aa"
+ "hash" : "a970eb7a33d2c5c71d2125b0b8e79375"
},
"action-unmerge" : {
"name" : "action-unmerge",
"rule" : ".action-unmerge",
- "hash" : "00d417a336f6e076bb587cd4cef5eb49"
+ "hash" : "48a0128075a15f5145c343f9fe4fba2e"
},
"action-unmerge-grey" : {
"name" : "action-unmerge-grey",
"rule" : ".action-unmerge-grey",
- "hash" : "904a51920678c838b72c934085f339a7"
+ "hash" : "9be17dad18c74a10122def1dabbbf1c4"
},
"action-unmerge-white" : {
"name" : "action-unmerge-white",
"rule" : ".action-unmerge-white, .device-desktop .phabricator-action-view:hover .action-unmerge",
- "hash" : "2e5761de881642c94e641879bbde318f"
+ "hash" : "5139f358574dcd0ac5cecf412c8115fd"
},
"action-unpublish" : {
"name" : "action-unpublish",
"rule" : ".action-unpublish",
- "hash" : "88d21b9ce49b7ac886250df307f756ce"
+ "hash" : "3e6211c213fec14fe152b5fabcb0f306"
},
"action-unpublish-grey" : {
"name" : "action-unpublish-grey",
"rule" : ".action-unpublish-grey",
- "hash" : "5c4fe69253100e9ca292348af13b9f3f"
+ "hash" : "602cdfcfa89b575456aee6eb808accc4"
},
"action-unpublish-white" : {
"name" : "action-unpublish-white",
"rule" : ".action-unpublish-white, .device-desktop .phabricator-action-view:hover .action-unpublish",
- "hash" : "f663861c0776cea790d8392e4aa2fc5d"
+ "hash" : "b8cde193bf30d834fc90ddfd17fe56ea"
},
"action-upload" : {
"name" : "action-upload",
"rule" : ".action-upload",
- "hash" : "bdd10302988fe6d2130f0dfc3b67d281"
+ "hash" : "e1ab661b790989b38b07eae365343c36"
},
"action-upload-grey" : {
"name" : "action-upload-grey",
"rule" : ".action-upload-grey",
- "hash" : "f376bbbbadefea220ec02ca3ae53d41a"
+ "hash" : "f03d83d2e4d3ae10661d430aa4f02523"
},
"action-upload-white" : {
"name" : "action-upload-white",
"rule" : ".action-upload-white, .device-desktop .phabricator-action-view:hover .action-upload",
- "hash" : "4b31d9dc6f17bd0cd54c3dcea7a95313"
+ "hash" : "75a3ea84188c4b4b21aa5a656464a8d0"
},
"action-warning" : {
"name" : "action-warning",
"rule" : ".action-warning",
- "hash" : "950ac4ea5e65de41aca0788e6769650f"
+ "hash" : "c1544d80d0bb28d7f9925e5ecda1165f"
},
"action-warning-grey" : {
"name" : "action-warning-grey",
"rule" : ".action-warning-grey",
- "hash" : "180e305268970291f6a38760deea0d4c"
+ "hash" : "dccb1f52678bf74fc1eaa6a6e8dcae7a"
},
"action-warning-white" : {
"name" : "action-warning-white",
"rule" : ".action-warning-white, .device-desktop .phabricator-action-view:hover .action-warning",
- "hash" : "4ec3034629bc144886cd7aae5412dce2"
+ "hash" : "57aadd4cf33bf6cb6464d243cd3e5f4d"
},
"action-world" : {
"name" : "action-world",
"rule" : ".action-world",
- "hash" : "95ebc5ab6e70ab9d794f0960f2a43559"
+ "hash" : "374749ade70638672595b8a985341a34"
},
"action-world-grey" : {
"name" : "action-world-grey",
"rule" : ".action-world-grey",
- "hash" : "969b164f2f5580f9226f293dbcfe50bc"
+ "hash" : "f5fa565f8dbc81d5ac8d8f128179929b"
},
"action-world-white" : {
"name" : "action-world-white",
"rule" : ".action-world-white, .device-desktop .phabricator-action-view:hover .action-world",
- "hash" : "106ab6c8bc5a685cd0837baaa6c617e4"
+ "hash" : "b50f9d742377edf4edda3e1e78f1e558"
},
"remarkup-assist-text_b" : {
"name" : "remarkup-assist-text_b",
"rule" : ".remarkup-assist-b",
- "hash" : "b2e7ba9cba2946a78ac8045d83852ade"
+ "hash" : "12c565d4934f6a777c9524baf75cebb6"
},
"remarkup-assist-text_code" : {
"name" : "remarkup-assist-text_code",
"rule" : ".remarkup-assist-code",
- "hash" : "c0527e968c770450d4aa7cefe38271b8"
+ "hash" : "f06f106cb8edb67e8b99d159d704a61a"
},
"remarkup-assist-text_help" : {
"name" : "remarkup-assist-text_help",
"rule" : ".remarkup-assist-help",
- "hash" : "e8312c555e5f3935d8e2dcf44147b7f8"
+ "hash" : "9d54d8224b81de8e3ed7beac0e486257"
},
"remarkup-assist-text_i" : {
"name" : "remarkup-assist-text_i",
"rule" : ".remarkup-assist-i",
- "hash" : "19d4c474555d75d0e4739ec7097dbfa4"
+ "hash" : "50f83a53f5b094d3d92b619d06fada3c"
},
"remarkup-assist-text_image" : {
"name" : "remarkup-assist-text_image",
"rule" : ".remarkup-assist-image",
- "hash" : "5a560800fa31b24d18807b430797ac95"
+ "hash" : "c2869e71cc7cb6178598cd41a19ababb"
},
"remarkup-assist-text_larger" : {
"name" : "remarkup-assist-text_larger",
"rule" : ".remarkup-assist-larger",
- "hash" : "5cd9c8223c99ef3409c82dfaefeebc50"
+ "hash" : "d3165f15a1b3734e4b7088f7b74330ba"
},
"remarkup-assist-text_meme" : {
"name" : "remarkup-assist-text_meme",
"rule" : ".remarkup-assist-meme",
- "hash" : "ff98a508db2348b3d46aaf8225b26862"
+ "hash" : "ed9c4166858ca1caedf5f8e4b8ad587e"
},
"remarkup-assist-text_ol" : {
"name" : "remarkup-assist-text_ol",
"rule" : ".remarkup-assist-ol",
- "hash" : "a2805d44ca0eac518f99109c4969f450"
+ "hash" : "266b858f5ffc42760fb2e12913a5198a"
},
"remarkup-assist-text_table" : {
"name" : "remarkup-assist-text_table",
"rule" : ".remarkup-assist-table",
- "hash" : "2ae3fb49af42f07038d77aa5b62862c0"
+ "hash" : "5c2961b35460b3b5b7efdd5bc4e318ca"
},
"remarkup-assist-text_tag" : {
"name" : "remarkup-assist-text_tag",
"rule" : ".remarkup-assist-tag",
- "hash" : "446c23bff9fc7da885ea574f073eaf0f"
+ "hash" : "165bd3a4de8d54cf720db9bc64116d25"
},
"remarkup-assist-text_tt" : {
"name" : "remarkup-assist-text_tt",
"rule" : ".remarkup-assist-tt",
- "hash" : "77ae74c8a9a02fde5565399409dc5ab3"
+ "hash" : "c07e6816500c9cd66fa27758cc902195"
},
"remarkup-assist-text_ul" : {
"name" : "remarkup-assist-text_ul",
"rule" : ".remarkup-assist-ul",
- "hash" : "cf3c6b4f809377b7eff9fcef42fc47df"
+ "hash" : "26f55c0fcf9148879e3fb058ac319100"
}
},
"scales" : [
Index: resources/sprite/manifest/menu.json
===================================================================
--- resources/sprite/manifest/menu.json
+++ resources/sprite/manifest/menu.json
@@ -4,52 +4,52 @@
"app" : {
"name" : "app",
"rule" : ".menu-icon-app",
- "hash" : "fc525b5b3e3ecaeda3baccc18ace5a0a"
+ "hash" : "a389f99d9c00f688e625da71579ee90a"
},
"arrow-right" : {
"name" : "arrow-right",
"rule" : ".phabricator-crumb-divider",
- "hash" : "50180da0aed206c9db2bc1547c1a158c"
+ "hash" : "a994209450dc73a80841cdd66bb59925"
},
"conf-hover" : {
"name" : "conf-hover",
"rule" : ".alert-notifications:hover .phabricator-main-menu-message-icon",
- "hash" : "febc4135b2821ae2d3f0b06aa295ca0d"
+ "hash" : "93d734a7e87293c4fcb24f7096ed79f9"
},
"conf-off" : {
"name" : "conf-off",
"rule" : ".alert-notifications .phabricator-main-menu-message-icon",
- "hash" : "dc1b05cb611eaef76a09e8cff698c99d"
+ "hash" : "967b7aeaccc0ed5ffe9193f7c6c6f94d"
},
"conf-unseen" : {
"name" : "conf-unseen",
"rule" : ".alert-notifications.message-unread .phabricator-main-menu-message-icon",
- "hash" : "1f7d54b2b9781099f867b100ebdd6c6a"
+ "hash" : "034860de0f2e4ed924384a019077a094"
},
"eye" : {
"name" : "eye",
"rule" : ".menu-icon-eye",
- "hash" : "553eb617c19b74b428558e606ff9b066"
+ "hash" : "d598b1acb1933a86eaed3dea3347f7b0"
},
"logo" : {
"name" : "logo",
"rule" : ".phabricator-main-menu-logo-image",
- "hash" : "6eadea2c3dd2ada989eba22b6769b3eb"
+ "hash" : "c6c7ab165dce13a51ef329928c7c4aba"
},
"seen_have_unread" : {
"name" : "seen_have_unread",
"rule" : ".alert-notifications:hover .phabricator-main-menu-alert-icon",
- "hash" : "03a02951857811c722732dcfff9d458e"
+ "hash" : "a8a7f07caa726d7e61ef3d41f959d94d"
},
"seen_read_all" : {
"name" : "seen_read_all",
"rule" : ".alert-notifications .phabricator-main-menu-alert-icon",
- "hash" : "f166fc60ed7a7a8ec2f41ab1af2cb3ec"
+ "hash" : "4fdd4807d0c41bd4179dd43150c7fc44"
},
"unseen_any" : {
"name" : "unseen_any",
"rule" : ".alert-notifications.alert-unread .phabricator-main-menu-alert-icon",
- "hash" : "a8643b150166a076e81a42e5893a899f"
+ "hash" : "50d946952c73028b34e0c3378ca36b17"
}
},
"scales" : [
Index: resources/sprite/manifest/tokens.json
===================================================================
--- /dev/null
+++ resources/sprite/manifest/tokens.json
@@ -0,0 +1,90 @@
+{
+ "version" : 1,
+ "sprites" : {
+ "token-coin-1" : {
+ "name" : "token-coin-1",
+ "rule" : ".token-coin-1",
+ "hash" : "124174168031b47dfd98273d2d6f369a"
+ },
+ "token-coin-2" : {
+ "name" : "token-coin-2",
+ "rule" : ".token-coin-2",
+ "hash" : "a4811c8387caec31e4a313b32abe7026"
+ },
+ "token-coin-3" : {
+ "name" : "token-coin-3",
+ "rule" : ".token-coin-3",
+ "hash" : "0ecd0e9e5cce27e059a68ceb80e57e3b"
+ },
+ "token-coin-4" : {
+ "name" : "token-coin-4",
+ "rule" : ".token-coin-4",
+ "hash" : "d88e727312274f4bd534ee5314fba833"
+ },
+ "token-heart-1" : {
+ "name" : "token-heart-1",
+ "rule" : ".token-heart-1",
+ "hash" : "433df7ae11d6651a1f5d6f1c94a85c98"
+ },
+ "token-heart-2" : {
+ "name" : "token-heart-2",
+ "rule" : ".token-heart-2",
+ "hash" : "d582a288d9da8685f61a392aa2e288e5"
+ },
+ "token-like-1" : {
+ "name" : "token-like-1",
+ "rule" : ".token-like-1",
+ "hash" : "1b1fd7b15d0ee5eb95371f7ff673025b"
+ },
+ "token-like-2" : {
+ "name" : "token-like-2",
+ "rule" : ".token-like-2",
+ "hash" : "2ea96cf3f0f43c9efda61a3430a49d90"
+ },
+ "token-medal-1" : {
+ "name" : "token-medal-1",
+ "rule" : ".token-medal-1",
+ "hash" : "081e1d0e2092b8035e6d1ba1181d000e"
+ },
+ "token-medal-2" : {
+ "name" : "token-medal-2",
+ "rule" : ".token-medal-2",
+ "hash" : "958e386989d555a9a8b86bf16ce89cb6"
+ },
+ "token-medal-3" : {
+ "name" : "token-medal-3",
+ "rule" : ".token-medal-3",
+ "hash" : "da3459e708a19b4ee8bc1464fb2b4423"
+ },
+ "token-medal-4" : {
+ "name" : "token-medal-4",
+ "rule" : ".token-medal-4",
+ "hash" : "84ac1a2000629dd0399f8083c4fa882b"
+ },
+ "token-misc-1" : {
+ "name" : "token-misc-1",
+ "rule" : ".token-misc-1",
+ "hash" : "fc021cdb987939a90c101691c9270736"
+ },
+ "token-misc-2" : {
+ "name" : "token-misc-2",
+ "rule" : ".token-misc-2",
+ "hash" : "cdb68aa37c891238c083dab250ea40b7"
+ },
+ "token-misc-3" : {
+ "name" : "token-misc-3",
+ "rule" : ".token-misc-3",
+ "hash" : "0596b11b19dcdf20e7fb2a38e9f6c704"
+ },
+ "token-misc-4" : {
+ "name" : "token-misc-4",
+ "rule" : ".token-misc-4",
+ "hash" : "45f756d650ee729d3593b5afb3351611"
+ }
+ },
+ "scales" : [
+ 1
+ ],
+ "header" : "\/**\n * @provides sprite-tokens-css\n * @generated\n *\/\n\n.sprite-tokens {\n background-image: url(\/rsrc\/image\/sprite-tokens.png);\n background-repeat: no-repeat;\n}\n\n\n",
+ "type" : "standard"
+}
Index: resources/sql/patches/20130214.token.sql
===================================================================
--- /dev/null
+++ resources/sql/patches/20130214.token.sql
@@ -0,0 +1,18 @@
+CREATE TABLE {$NAMESPACE}_token.token_given (
+ id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ objectPHID VARCHAR(64) NOT NULL COLLATE utf8_bin,
+ authorPHID VARCHAR(64) NOT NULL COLLATE utf8_bin,
+ tokenPHID VARCHAR(64) NOT NULL COLLATE utf8_bin,
+ dateCreated INT UNSIGNED NOT NULL,
+ dateModified INT UNSIGNED NOT NULL,
+ UNIQUE KEY `key_all` (objectPHID, authorPHID),
+ KEY `key_author` (authorPHID),
+ KEY `key_token` (tokenPHID)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE {$NAMESPACE}_token.token_count (
+ id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ objectPHID VARCHAR(64) NOT NULL COLLATE utf8_bin,
+ tokenCount INT NOT NULL,
+ UNIQUE KEY `key_objectPHID` (objectPHID)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Index: scripts/celerity/generate_sprites.php
===================================================================
--- scripts/celerity/generate_sprites.php
+++ scripts/celerity/generate_sprites.php
@@ -32,6 +32,7 @@
'apps' => $generator->buildAppsSheet(),
'conph' => $generator->buildConpherenceSheet(),
'apps-large' => $generator->buildAppsLargeSheet(),
+ 'tokens' => $generator->buildTokenSheet(),
// TODO: @chad: should we actually remove this?
// 'apps-xlarge' => $generator->buildAppsXLargeSheet(),
'gradient' => $generator->buildGradientSheet(),
Index: src/__celerity_resource_map__.php
===================================================================
--- src/__celerity_resource_map__.php
+++ src/__celerity_resource_map__.php
@@ -532,6 +532,13 @@
'disk' => '/rsrc/image/sprite-menu.png',
'type' => 'png',
),
+ '/rsrc/image/sprite-tokens.png' =>
+ array(
+ 'hash' => '67c46fd75c885b76ecbfe46e71a476cc',
+ 'uri' => '/res/67c46fd7/rsrc/image/sprite-tokens.png',
+ 'disk' => '/rsrc/image/sprite-tokens.png',
+ 'type' => 'png',
+ ),
'/rsrc/image/texture/dark-menu-hover.png' =>
array(
'hash' => 'a214a732644be34872e895b338b5d639',
@@ -1864,21 +1871,9 @@
),
'disk' => '/rsrc/js/application/phame/phame-post-preview.js',
),
- 'javelin-behavior-pholio-edit-inline-comment' =>
- array(
- 'uri' => '/res/61759cd8/rsrc/js/application/pholio/behavior-pholio-edit-inline-comment.js',
- 'type' => 'js',
- 'requires' =>
- array(
- 0 => 'javelin-behavior',
- 1 => 'javelin-stratcom',
- 2 => 'javelin-dom',
- ),
- 'disk' => '/rsrc/js/application/pholio/behavior-pholio-edit-inline-comment.js',
- ),
'javelin-behavior-pholio-mock-view' =>
array(
- 'uri' => '/res/e5f432ac/rsrc/js/application/pholio/behavior-pholio-mock-view.js',
+ 'uri' => '/res/efec5d7a/rsrc/js/application/pholio/behavior-pholio-mock-view.js',
'type' => 'js',
'requires' =>
array(
@@ -2873,7 +2868,7 @@
),
'phabricator-pinboard-view-css' =>
array(
- 'uri' => '/res/3a24d210/rsrc/css/layout/phabricator-pinboard-view.css',
+ 'uri' => '/res/b954ccbf/rsrc/css/layout/phabricator-pinboard-view.css',
'type' => 'css',
'requires' =>
array(
@@ -3222,7 +3217,7 @@
),
'pholio-css' =>
array(
- 'uri' => '/res/9de6e0b2/rsrc/css/application/pholio/pholio.css',
+ 'uri' => '/res/3b87f5ae/rsrc/css/application/pholio/pholio.css',
'type' => 'css',
'requires' =>
array(
@@ -3348,7 +3343,7 @@
),
'sprite-conpher-css' =>
array(
- 'uri' => '/res/89821322/rsrc/css/sprite-conph.css',
+ 'uri' => '/res/f640f0c5/rsrc/css/sprite-conph.css',
'type' => 'css',
'requires' =>
array(
@@ -3382,6 +3377,15 @@
),
'disk' => '/rsrc/css/sprite-menu.css',
),
+ 'sprite-tokens-css' =>
+ array(
+ 'uri' => '/res/9ae0de5b/rsrc/css/sprite-tokens.css',
+ 'type' => 'css',
+ 'requires' =>
+ array(
+ ),
+ 'disk' => '/rsrc/css/sprite-tokens.css',
+ ),
'stripe-core' =>
array(
'uri' => '/res/3b0f0ad4/rsrc/js/stripe/stripe_core.js',
@@ -3409,6 +3413,15 @@
),
'disk' => '/rsrc/css/core/syntax.css',
),
+ 'tokens-css' =>
+ array(
+ 'uri' => '/res/c1f6113c/rsrc/css/application/tokens/tokens.css',
+ 'type' => 'css',
+ 'requires' =>
+ array(
+ ),
+ 'disk' => '/rsrc/css/application/tokens/tokens.css',
+ ),
), array(
'packages' =>
array(
Index: src/__phutil_library_map__.php
===================================================================
--- src/__phutil_library_map__.php
+++ src/__phutil_library_map__.php
@@ -182,6 +182,10 @@
'ConduitAPI_repository_create_Method' => 'applications/repository/conduit/ConduitAPI_repository_create_Method.php',
'ConduitAPI_repository_query_Method' => 'applications/repository/conduit/ConduitAPI_repository_query_Method.php',
'ConduitAPI_slowvote_info_Method' => 'applications/slowvote/conduit/ConduitAPI_slowvote_info_Method.php',
+ 'ConduitAPI_token_Method' => 'applications/tokens/conduit/ConduitAPI_token_Method.php',
+ 'ConduitAPI_token_give_Method' => 'applications/tokens/conduit/ConduitAPI_token_give_Method.php',
+ 'ConduitAPI_token_given_Method' => 'applications/tokens/conduit/ConduitAPI_token_given_Method.php',
+ 'ConduitAPI_token_query_Method' => 'applications/tokens/conduit/ConduitAPI_token_query_Method.php',
'ConduitAPI_user_Method' => 'applications/people/conduit/ConduitAPI_user_Method.php',
'ConduitAPI_user_addstatus_Method' => 'applications/people/conduit/ConduitAPI_user_addstatus_Method.php',
'ConduitAPI_user_disable_Method' => 'applications/people/conduit/ConduitAPI_user_disable_Method.php',
@@ -664,6 +668,7 @@
'PhabricatorApplicationSlowvote' => 'applications/slowvote/application/PhabricatorApplicationSlowvote.php',
'PhabricatorApplicationStatusView' => 'applications/meta/view/PhabricatorApplicationStatusView.php',
'PhabricatorApplicationSubscriptions' => 'applications/subscriptions/application/PhabricatorApplicationSubscriptions.php',
+ 'PhabricatorApplicationTokens' => 'applications/tokens/application/PhabricatorApplicationTokens.php',
'PhabricatorApplicationTransaction' => 'applications/transactions/storage/PhabricatorApplicationTransaction.php',
'PhabricatorApplicationTransactionComment' => 'applications/transactions/storage/PhabricatorApplicationTransactionComment.php',
'PhabricatorApplicationTransactionCommentEditController' => 'applications/transactions/controller/PhabricatorApplicationTransactionCommentEditController.php',
@@ -1323,6 +1328,19 @@
'PhabricatorTimelineIterator' => 'infrastructure/daemon/timeline/cursor/PhabricatorTimelineIterator.php',
'PhabricatorTimelineView' => 'view/layout/PhabricatorTimelineView.php',
'PhabricatorTimer' => 'applications/countdown/storage/PhabricatorTimer.php',
+ 'PhabricatorToken' => 'applications/tokens/storage/PhabricatorToken.php',
+ 'PhabricatorTokenController' => 'applications/tokens/controller/PhabricatorTokenController.php',
+ 'PhabricatorTokenCount' => 'applications/tokens/storage/PhabricatorTokenCount.php',
+ 'PhabricatorTokenDAO' => 'applications/tokens/storage/PhabricatorTokenDAO.php',
+ 'PhabricatorTokenGiveController' => 'applications/tokens/controller/PhabricatorTokenGiveController.php',
+ 'PhabricatorTokenGiven' => 'applications/tokens/storage/PhabricatorTokenGiven.php',
+ 'PhabricatorTokenGivenController' => 'applications/tokens/controller/PhabricatorTokenGivenController.php',
+ 'PhabricatorTokenGivenEditor' => 'applications/tokens/editor/PhabricatorTokenGivenEditor.php',
+ 'PhabricatorTokenGivenQuery' => 'applications/tokens/query/PhabricatorTokenGivenQuery.php',
+ 'PhabricatorTokenListController' => 'applications/tokens/controller/PhabricatorTokenListController.php',
+ 'PhabricatorTokenQuery' => 'applications/tokens/query/PhabricatorTokenQuery.php',
+ 'PhabricatorTokenReceiverInterface' => 'applications/tokens/interface/PhabricatorTokenReceiverInterface.php',
+ 'PhabricatorTokenUIEventListener' => 'applications/tokens/event/PhabricatorTokenUIEventListener.php',
'PhabricatorTransactionView' => 'view/layout/PhabricatorTransactionView.php',
'PhabricatorTransactions' => 'applications/transactions/constants/PhabricatorTransactions.php',
'PhabricatorTransformedFile' => 'applications/files/storage/PhabricatorTransformedFile.php',
@@ -1683,6 +1701,10 @@
'ConduitAPI_repository_create_Method' => 'ConduitAPI_repository_Method',
'ConduitAPI_repository_query_Method' => 'ConduitAPI_repository_Method',
'ConduitAPI_slowvote_info_Method' => 'ConduitAPIMethod',
+ 'ConduitAPI_token_Method' => 'ConduitAPIMethod',
+ 'ConduitAPI_token_give_Method' => 'ConduitAPI_token_Method',
+ 'ConduitAPI_token_given_Method' => 'ConduitAPI_token_Method',
+ 'ConduitAPI_token_query_Method' => 'ConduitAPI_token_Method',
'ConduitAPI_user_Method' => 'ConduitAPIMethod',
'ConduitAPI_user_addstatus_Method' => 'ConduitAPI_user_Method',
'ConduitAPI_user_disable_Method' => 'ConduitAPI_user_Method',
@@ -1817,7 +1839,12 @@
'DifferentialReviewedByFieldSpecification' => 'DifferentialFieldSpecification',
'DifferentialReviewerStatsTestCase' => 'PhabricatorTestCase',
'DifferentialReviewersFieldSpecification' => 'DifferentialFieldSpecification',
- 'DifferentialRevision' => 'DifferentialDAO',
+ 'DifferentialRevision' =>
+ array(
+ 0 => 'DifferentialDAO',
+ 1 => 'PhabricatorTokenReceiverInterface',
+ 2 => 'PhabricatorPolicyInterface',
+ ),
'DifferentialRevisionCommentListView' => 'AphrontView',
'DifferentialRevisionCommentView' => 'AphrontView',
'DifferentialRevisionDetailView' => 'AphrontView',
@@ -2112,6 +2139,7 @@
'PhabricatorApplicationSlowvote' => 'PhabricatorApplication',
'PhabricatorApplicationStatusView' => 'AphrontView',
'PhabricatorApplicationSubscriptions' => 'PhabricatorApplication',
+ 'PhabricatorApplicationTokens' => 'PhabricatorApplication',
'PhabricatorApplicationTransaction' =>
array(
0 => 'PhabricatorLiskDAO',
@@ -2741,6 +2769,26 @@
'PhabricatorTimelineIterator' => 'Iterator',
'PhabricatorTimelineView' => 'AphrontView',
'PhabricatorTimer' => 'PhabricatorCountdownDAO',
+ 'PhabricatorToken' =>
+ array(
+ 0 => 'PhabricatorTokenDAO',
+ 1 => 'PhabricatorPolicyInterface',
+ ),
+ 'PhabricatorTokenController' => 'PhabricatorController',
+ 'PhabricatorTokenCount' => 'PhabricatorTokenDAO',
+ 'PhabricatorTokenDAO' => 'PhabricatorLiskDAO',
+ 'PhabricatorTokenGiveController' => 'PhabricatorTokenController',
+ 'PhabricatorTokenGiven' =>
+ array(
+ 0 => 'PhabricatorTokenDAO',
+ 1 => 'PhabricatorPolicyInterface',
+ ),
+ 'PhabricatorTokenGivenController' => 'PhabricatorTokenController',
+ 'PhabricatorTokenGivenEditor' => 'PhabricatorEditor',
+ 'PhabricatorTokenGivenQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
+ 'PhabricatorTokenListController' => 'PhabricatorTokenController',
+ 'PhabricatorTokenQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
+ 'PhabricatorTokenUIEventListener' => 'PhutilEventListener',
'PhabricatorTransactionView' => 'AphrontView',
'PhabricatorTransformedFile' => 'PhabricatorFileDAO',
'PhabricatorTranslationsConfigOptions' => 'PhabricatorApplicationConfigOptions',
@@ -2853,6 +2901,7 @@
1 => 'PhabricatorMarkupInterface',
2 => 'PhabricatorPolicyInterface',
3 => 'PhabricatorSubscribableInterface',
+ 4 => 'PhabricatorTokenReceiverInterface',
),
'PholioMockCommentController' => 'PholioController',
'PholioMockEditController' => 'PholioController',
Index: src/applications/differential/storage/DifferentialRevision.php
===================================================================
--- src/applications/differential/storage/DifferentialRevision.php
+++ src/applications/differential/storage/DifferentialRevision.php
@@ -1,6 +1,7 @@
<?php
-final class DifferentialRevision extends DifferentialDAO {
+final class DifferentialRevision extends DifferentialDAO
+ implements PhabricatorTokenReceiverInterface, PhabricatorPolicyInterface {
protected $title;
protected $originalTitle;
@@ -311,4 +312,19 @@
return $this;
}
+ public function getCapabilities() {
+ return array(
+ PhabricatorPolicyCapability::CAN_VIEW,
+ PhabricatorPolicyCapability::CAN_EDIT,
+ );
+ }
+
+ public function getPolicy($capability) {
+ return PhabricatorPolicies::POLICY_USER;
+ }
+
+ public function hasAutomaticCapability($capability, PhabricatorUser $user) {
+ return false;
+ }
+
}
Index: src/applications/differential/view/DifferentialRevisionDetailView.php
===================================================================
--- src/applications/differential/view/DifferentialRevisionDetailView.php
+++ src/applications/differential/view/DifferentialRevisionDetailView.php
@@ -58,7 +58,10 @@
$actions->addAction($obj);
}
- $properties = new PhabricatorPropertyListView();
+ $properties = id(new PhabricatorPropertyListView())
+ ->setUser($user)
+ ->setObject($revision);
+
$status = $revision->getStatus();
$local_vcs = $this->getDiff()->getSourceControlSystem();
Index: src/applications/pholio/controller/PholioMockViewController.php
===================================================================
--- src/applications/pholio/controller/PholioMockViewController.php
+++ src/applications/pholio/controller/PholioMockViewController.php
@@ -122,7 +122,9 @@
$user = $this->getRequest()->getUser();
- $properties = new PhabricatorPropertyListView();
+ $properties = id(new PhabricatorPropertyListView())
+ ->setUser($user)
+ ->setObject($mock);
$properties->addProperty(
pht('Author'),
@@ -154,6 +156,8 @@
pht('Subscribers'),
$sub_view);
+ $properties->invokeWillRenderEvent();
+
$properties->addTextContent(
$engine->getOutput($mock, PholioMock::MARKUP_FIELD_DESCRIPTION));
Index: src/applications/pholio/storage/PholioMock.php
===================================================================
--- src/applications/pholio/storage/PholioMock.php
+++ src/applications/pholio/storage/PholioMock.php
@@ -7,7 +7,8 @@
implements
PhabricatorMarkupInterface,
PhabricatorPolicyInterface,
- PhabricatorSubscribableInterface {
+ PhabricatorSubscribableInterface,
+ PhabricatorTokenReceiverInterface {
const MARKUP_FIELD_DESCRIPTION = 'markup:description';
Index: src/applications/tokens/application/PhabricatorApplicationTokens.php
===================================================================
--- /dev/null
+++ src/applications/tokens/application/PhabricatorApplicationTokens.php
@@ -0,0 +1,45 @@
+<?php
+
+final class PhabricatorApplicationTokens extends PhabricatorApplication {
+
+ public function getName() {
+ return pht('Tokens');
+ }
+
+ public function isBeta() {
+ return true;
+ }
+
+ public function getBaseURI() {
+ return '/token/';
+ }
+
+ public function getTitleGlyph() {
+ return "\xE2\x99\xA6";
+ }
+
+ public function getShortDescription() {
+ return pht('Acquire Trinkets');
+ }
+
+ public function getApplicationGroup() {
+ return self::GROUP_UTILITIES;
+ }
+
+ public function getRoutes() {
+ return array(
+ '/token/' => array(
+ '' => 'PhabricatorTokenGivenController',
+ 'given/' => 'PhabricatorTokenGivenController',
+ 'give/(?<phid>[^/]+)/' => 'PhabricatorTokenGiveController',
+ ),
+ );
+ }
+
+ public function getEventListeners() {
+ return array(
+ new PhabricatorTokenUIEventListener(),
+ );
+ }
+
+}
Index: src/applications/tokens/conduit/ConduitAPI_token_Method.php
===================================================================
--- /dev/null
+++ src/applications/tokens/conduit/ConduitAPI_token_Method.php
@@ -0,0 +1,41 @@
+<?php
+
+abstract class ConduitAPI_token_Method extends ConduitAPIMethod {
+
+ public function getMethodStatus() {
+ return self::METHOD_STATUS_UNSTABLE;
+ }
+
+ public function buildTokenDicts(array $tokens) {
+ assert_instances_of($tokens, 'PhabricatorToken');
+
+ $list = array();
+ foreach ($tokens as $token) {
+ $list[] = array(
+ 'id' => $token->getID(),
+ 'name' => $token->getName(),
+ 'phid' => $token->getPHID(),
+ );
+ }
+
+ return $list;
+ }
+
+ public function buildTokenGivenDicts(array $tokens_given) {
+ assert_instances_of($tokens_given, 'PhabricatorTokenGiven');
+
+ $list = array();
+ foreach ($tokens_given as $given) {
+ $list[] = array(
+ 'authorPHID' => $given->getAuthorPHID(),
+ 'objectPHID' => $given->getObjectPHID(),
+ 'tokenPHID' => $given->getTokenPHID(),
+ 'dateCreated' => $given->getDateCreated(),
+ );
+ }
+
+ return $list;
+ }
+
+
+}
Index: src/applications/tokens/conduit/ConduitAPI_token_give_Method.php
===================================================================
--- /dev/null
+++ src/applications/tokens/conduit/ConduitAPI_token_give_Method.php
@@ -0,0 +1,37 @@
+<?php
+
+final class ConduitAPI_token_give_Method extends ConduitAPI_token_Method {
+
+ public function getMethodDescription() {
+ return pht('Give or change a token.');
+ }
+
+ public function defineParamTypes() {
+ return array(
+ 'tokenPHID' => 'phid|null',
+ 'objectPHID' => 'phid',
+ );
+ }
+
+ public function defineErrorTypes() {
+ return array();
+ }
+
+ public function defineReturnType() {
+ return 'void';
+ }
+
+ public function execute(ConduitAPIRequest $request) {
+ $editor = id(new PhabricatorTokenGivenEditor())
+ ->setActor($request->getUser());
+
+ if ($request->getValue('tokenPHID')) {
+ $editor->addToken(
+ $request->getValue('objectPHID'),
+ $request->getValue('tokenPHID'));
+ } else {
+ $editor->deleteToken($request->getValue('objectPHID'));
+ }
+ }
+
+}
Index: src/applications/tokens/conduit/ConduitAPI_token_given_Method.php
===================================================================
--- /dev/null
+++ src/applications/tokens/conduit/ConduitAPI_token_given_Method.php
@@ -0,0 +1,49 @@
+<?php
+
+final class ConduitAPI_token_given_Method extends ConduitAPI_token_Method {
+
+ public function getMethodDescription() {
+ return pht('Query tokens given to objects.');
+ }
+
+ public function defineParamTypes() {
+ return array(
+ 'authorPHIDs' => 'list<phid>',
+ 'objectPHIDs' => 'list<phid>',
+ 'tokenPHIDs' => 'list<phid>',
+ );
+ }
+
+ public function defineErrorTypes() {
+ return array();
+ }
+
+ public function defineReturnType() {
+ return 'list<dict>';
+ }
+
+ public function execute(ConduitAPIRequest $request) {
+ $query = id(new PhabricatorTokenGivenQuery())
+ ->setViewer($request->getUser());
+
+ $author_phids = $request->getValue('authorPHIDs');
+ if ($author_phids) {
+ $query->withAuthorPHIDs($author_phids);
+ }
+
+ $object_phids = $request->getValue('objectPHIDs');
+ if ($object_phids) {
+ $query->withObjectPHIDs($object_phids);
+ }
+
+ $token_phids = $request->getValue('tokenPHIDs');
+ if ($token_phids) {
+ $query->withTokenPHIDs($token_phids);
+ }
+
+ $given = $query->execute();
+
+ return $this->buildTokenGivenDicts($given);
+ }
+
+}
Index: src/applications/tokens/conduit/ConduitAPI_token_query_Method.php
===================================================================
--- /dev/null
+++ src/applications/tokens/conduit/ConduitAPI_token_query_Method.php
@@ -0,0 +1,30 @@
+<?php
+
+final class ConduitAPI_token_query_Method extends ConduitAPI_token_Method {
+
+ public function getMethodDescription() {
+ return pht('Query tokens.');
+ }
+
+ public function defineParamTypes() {
+ return array();
+ }
+
+ public function defineReturnType() {
+ return 'list<dict>';
+ }
+
+ public function defineErrorTypes() {
+ return array();
+ }
+
+ public function execute(ConduitAPIRequest $request) {
+ $query = id(new PhabricatorTokenQuery())
+ ->setViewer($request->getUser());
+
+ $tokens = $query->execute();
+
+ return $this->buildTokenDicts($tokens);
+ }
+
+}
Index: src/applications/tokens/controller/PhabricatorTokenController.php
===================================================================
--- /dev/null
+++ src/applications/tokens/controller/PhabricatorTokenController.php
@@ -0,0 +1,16 @@
+<?php
+
+abstract class PhabricatorTokenController extends PhabricatorController {
+
+
+ protected function buildSideNav() {
+ $nav = new AphrontSideNavFilterView();
+ $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
+
+ $nav->addFilter('given/', pht('Tokens Given'));
+
+ return $nav;
+ }
+
+
+}
Index: src/applications/tokens/controller/PhabricatorTokenGiveController.php
===================================================================
--- /dev/null
+++ src/applications/tokens/controller/PhabricatorTokenGiveController.php
@@ -0,0 +1,119 @@
+<?php
+
+final class PhabricatorTokenGiveController extends PhabricatorTokenController {
+
+ private $phid;
+
+ public function willProcessRequest(array $data) {
+ $this->phid = $data['phid'];
+ }
+
+ public function processRequest() {
+ $request = $this->getRequest();
+ $user = $request->getUser();
+
+ $handle = PhabricatorObjectHandleData::loadOneHandle($this->phid, $user);
+ if (!$handle->isComplete()) {
+ return new Aphront404Response();
+ }
+
+ $current = id(new PhabricatorTokenGivenQuery())
+ ->setViewer($user)
+ ->withAuthorPHIDs(array($user->getPHID()))
+ ->withObjectPHIDs(array($handle->getPHID()))
+ ->execute();
+
+ if ($current) {
+ $is_give = false;
+ $title = pht('Rescind Token');
+ } else {
+ $is_give = true;
+ $title = pht('Give Token');
+ }
+
+ $done_uri = $handle->getURI();
+ if ($request->isDialogFormPost()) {
+ if ($is_give) {
+
+ phlog(print_r($_REQUEST, true));
+
+ $token_phid = $request->getStr('tokenPHID');
+ $editor = id(new PhabricatorTokenGivenEditor())
+ ->setActor($user)
+ ->addToken($handle->getPHID(), $token_phid);
+ } else {
+ $editor = id(new PhabricatorTokenGivenEditor())
+ ->setActor($user)
+ ->deleteToken($handle->getPHID());
+ }
+
+ return id(new AphrontReloadResponse())->setURI($done_uri);
+ }
+
+ if ($is_give) {
+ $dialog = $this->buildGiveTokenDialog();
+ } else {
+ $dialog = $this->buildRescindTokenDialog(head($current));
+ }
+
+ $dialog->setUser($user);
+ $dialog->addCancelButton($done_uri);
+
+ return id(new AphrontDialogResponse())->setDialog($dialog);
+ }
+
+ private function buildGiveTokenDialog() {
+ $user = $this->getRequest()->getUser();
+
+ $tokens = id(new PhabricatorTokenQuery())
+ ->setViewer($user)
+ ->execute();
+
+ $buttons = array();
+ $ii = 0;
+ foreach ($tokens as $token) {
+ $buttons[] = javelin_tag(
+ 'button',
+ array(
+ 'class' => 'token-button',
+ 'name' => 'tokenPHID',
+ 'value' => $token->getPHID(),
+ 'type' => 'submit',
+ 'sigil' => 'has-tooltip',
+ 'meta' => array(
+ 'tip' => $token->getName(),
+ )
+ ),
+ $token->renderIcon());
+ if ((++$ii % 4) == 0) {
+ $buttons[] = phutil_tag('br');
+ }
+ }
+
+ $buttons = phutil_tag(
+ 'div',
+ array(
+ 'class' => 'token-grid',
+ ),
+ $buttons);
+
+ $dialog = new AphrontDialogView();
+ $dialog->setTitle(pht('Give Token'));
+ $dialog->appendChild($buttons);
+
+ return $dialog;
+ }
+
+ private function buildRescindTokenDialog(PhabricatorTokenGiven $token_given) {
+ $dialog = new AphrontDialogView();
+ $dialog->setTitle(pht('Rescind Token'));
+
+ $dialog->appendChild(
+ pht('Really rescind this lovely token?'));
+
+ $dialog->addSubmitButton(pht('Rescind Token'));
+
+ return $dialog;
+ }
+
+}
Index: src/applications/tokens/controller/PhabricatorTokenGivenController.php
===================================================================
--- /dev/null
+++ src/applications/tokens/controller/PhabricatorTokenGivenController.php
@@ -0,0 +1,79 @@
+<?php
+
+final class PhabricatorTokenGivenController extends PhabricatorTokenController {
+
+ public function processRequest() {
+ $request = $this->getRequest();
+ $user = $request->getUser();
+
+ $pager = id(new AphrontCursorPagerView())
+ ->setURI(new PhutilURI($this->getApplicationURI('/given/')));
+
+ $tokens_given = id(new PhabricatorTokenGivenQuery())
+ ->setViewer($user)
+ ->setLimit(100)
+ ->executeWithCursorPager($pager);
+
+ $handles = array();
+ if ($tokens_given) {
+ $object_phids = mpull($tokens_given, 'getObjectPHID');
+ $user_phids = mpull($tokens_given, 'getAuthorPHID');
+ $handle_phids = array_merge($object_phids, $user_phids);
+ $handles = id(new PhabricatorObjectHandleData($handle_phids))
+ ->setViewer($user)
+ ->loadHandles();
+ }
+
+ $tokens = array();
+ if ($tokens_given) {
+ $token_phids = mpull($tokens_given, 'getTokenPHID');
+ $tokens = id(new PhabricatorTokenQuery())
+ ->setViewer($user)
+ ->withPHIDs($token_phids)
+ ->execute();
+ $tokens = mpull($tokens, null, 'getPHID');
+ }
+
+ $list = new PhabricatorObjectItemListView();
+ foreach ($tokens_given as $token_given) {
+ $handle = $handles[$token_given->getObjectPHID()];
+ $token = idx($tokens, $token_given->getTokenPHID());
+
+ $item = id(new PhabricatorObjectItemView());
+ $item->setHeader($handle->getFullName());
+ $item->setHref($handle->getURI());
+
+ $item->addAttribute($token->renderIcon());
+
+ $item->addAttribute(
+ pht(
+ 'Given by %s on %s',
+ $handles[$token_given->getAuthorPHID()]->renderLink(),
+ phabricator_date($token_given->getDateCreated(), $user)));
+
+ $list->addItem($item);
+ }
+
+ $title = pht('Tokens Given');
+
+ $nav = $this->buildSideNav();
+ $nav->setCrumbs(
+ $this->buildApplicationCrumbs()
+ ->addCrumb(
+ id(new PhabricatorCrumbView())
+ ->setName($title)));
+ $nav->selectFilter('given/');
+
+ $nav->appendChild($list);
+ $nav->appendChild($pager);
+
+ return $this->buildApplicationPage(
+ $nav,
+ array(
+ 'title' => $title,
+ 'device' => true,
+ ));
+ }
+
+
+}
Index: src/applications/tokens/controller/PhabricatorTokenListController.php
===================================================================
--- /dev/null
+++ src/applications/tokens/controller/PhabricatorTokenListController.php
@@ -0,0 +1,42 @@
+<?php
+
+final class PhabricatorTokenListController extends PhabricatorTokenController {
+
+ public function processRequest() {
+ $request = $this->getRequest();
+ $user = $request->getUser();
+
+ $tokens = id(new PhabricatorTokenQuery())
+ ->setViewer($user)
+ ->execute();
+
+ $board = new PhabricatorPinboardView();
+ foreach ($tokens as $token) {
+ $item = new PhabricatorPinboardItemView();
+ $item->setHeader($token->getName());
+ $item->setImageSize(160, 160);
+ $item->setURI(
+ $this->getApplicationURI('/given/?tokens='.$token->getPHID()));
+ $board->addItem($item);
+ }
+
+ $title = pht('Token List');
+
+ $nav = $this->buildSideNav();
+ $nav->setCrumbs(
+ $this->buildApplicationCrumbs()
+ ->addCrumb(
+ id(new PhabricatorCrumbView())
+ ->setName($title)));
+ $nav->selectFilter('/');
+ $nav->appendChild($board);
+
+ return $this->buildApplicationPage(
+ $nav,
+ array(
+ 'title' => $title,
+ 'device' => true,
+ ));
+ }
+
+}
Index: src/applications/tokens/editor/PhabricatorTokenGivenEditor.php
===================================================================
--- /dev/null
+++ src/applications/tokens/editor/PhabricatorTokenGivenEditor.php
@@ -0,0 +1,91 @@
+<?php
+
+final class PhabricatorTokenGivenEditor
+ extends PhabricatorEditor {
+
+ public function addToken($object_phid, $token_phid) {
+ $token = $this->validateToken($token_phid);
+ $handle = $this->validateObject($object_phid);
+
+ $actor = $this->requireActor();
+
+ $token_given = id(new PhabricatorTokenGiven())
+ ->setAuthorPHID($actor->getPHID())
+ ->setObjectPHID($handle->getPHID())
+ ->setTokenPHID($token->getPHID());
+
+ $token_given->openTransaction();
+
+ $this->executeDeleteToken($handle);
+
+ $token_given->save();
+
+ queryfx(
+ $token_given->establishConnection('w'),
+ 'INSERT INTO %T (objectPHID, tokenCount) VALUES (%s, 1)
+ ON DUPLICATE KEY UPDATE tokenCount = tokenCount + 1',
+ id(new PhabricatorTokenCount())->getTableName(),
+ $handle->getPHID());
+
+ $token_given->saveTransaction();
+
+ return $token_given;
+ }
+
+ public function deleteToken($object_phid) {
+ $handle = $this->validateObject($object_phid);
+
+ return $this->executeDeleteToken($handle);
+ }
+
+ private function executeDeleteToken(PhabricatorObjectHandle $handle) {
+ $actor = $this->requireActor();
+
+ $token_given = id(new PhabricatorTokenGiven())->loadOneWhere(
+ 'authorPHID = %s AND objectPHID = %s',
+ $actor->getPHID(),
+ $handle->getPHID());
+ if (!$token_given) {
+ return;
+ }
+
+ $token_given->openTransaction();
+
+ $token_given->delete();
+
+ queryfx(
+ $token_given->establishConnection('w'),
+ 'INSERT INTO %T (objectPHID, tokenCount) VALUES (%s, 0)
+ ON DUPLICATE KEY UPDATE tokenCount = tokenCount - 1',
+ id(new PhabricatorTokenCount())->getTableName(),
+ $handle->getPHID());
+
+ $token_given->saveTransaction();
+ }
+
+ private function validateToken($token_phid) {
+ $tokens = id(new PhabricatorTokenQuery())
+ ->setViewer($this->requireActor())
+ ->withPHIDs(array($token_phid))
+ ->execute();
+
+ if (empty($tokens)) {
+ throw new Exception("No such token!");
+ }
+
+ return head($tokens);
+ }
+
+ private function validateObject($object_phid) {
+ $handle = PhabricatorObjectHandleData::loadOneHandle(
+ $object_phid,
+ $this->requireActor());
+
+ if (!$handle->isComplete()) {
+ throw new Exception("No such object!");
+ }
+
+ return $handle;
+ }
+
+}
Index: src/applications/tokens/event/PhabricatorTokenUIEventListener.php
===================================================================
--- /dev/null
+++ src/applications/tokens/event/PhabricatorTokenUIEventListener.php
@@ -0,0 +1,121 @@
+<?php
+
+final class PhabricatorTokenUIEventListener
+ extends PhutilEventListener {
+
+ public function register() {
+ $this->listen(PhabricatorEventType::TYPE_UI_DIDRENDERACTIONS);
+ $this->listen(PhabricatorEventType::TYPE_UI_WILLRENDERPROPERTIES);
+ }
+
+ public function handleEvent(PhutilEvent $event) {
+ switch ($event->getType()) {
+ case PhabricatorEventType::TYPE_UI_DIDRENDERACTIONS:
+ $this->handleActionEvent($event);
+ break;
+ case PhabricatorEventType::TYPE_UI_WILLRENDERPROPERTIES:
+ $this->handlePropertyEvent($event);
+ break;
+ }
+ }
+
+ private function handleActionEvent($event) {
+ $user = $event->getUser();
+ $object = $event->getValue('object');
+
+ if (!$object || !$object->getPHID()) {
+ // No object, or the object has no PHID yet..
+ return;
+ }
+
+ if (!($object instanceof PhabricatorTokenReceiverInterface)) {
+ // This object isn't a token receiver.
+ return;
+ }
+
+ $current = id(new PhabricatorTokenGivenQuery())
+ ->setViewer($user)
+ ->withAuthorPHIDs(array($user->getPHID()))
+ ->withObjectPHIDs(array($object->getPHID()))
+ ->execute();
+
+ if (!$current) {
+ $token_action = id(new PhabricatorActionView())
+ ->setUser($user)
+ ->setWorkflow(true)
+ ->setHref('/token/give/'.$object->getPHID().'/')
+ ->setName(pht('Give Token'))
+ ->setIcon('like');
+ } else {
+ $token_action = id(new PhabricatorActionView())
+ ->setUser($user)
+ ->setWorkflow(true)
+ ->setHref('/token/give/'.$object->getPHID().'/')
+ ->setName(pht('Rescind Token'))
+ ->setIcon('dislike');
+ }
+
+ $actions = $event->getValue('actions');
+ $actions[] = $token_action;
+ $event->setValue('actions', $actions);
+ }
+
+ private function handlePropertyEvent($event) {
+ $user = $event->getUser();
+ $object = $event->getValue('object');
+
+ if (!$object || !$object->getPHID()) {
+ // No object, or the object has no PHID yet..
+ return;
+ }
+
+ if (!($object instanceof PhabricatorTokenReceiverInterface)) {
+ // This object isn't a token receiver.
+ return;
+ }
+
+ $limit = 1;
+
+ $tokens_given = id(new PhabricatorTokenGivenQuery())
+ ->setViewer($user)
+ ->withObjectPHIDs(array($object->getPHID()))
+ ->execute();
+
+ if (!$tokens_given) {
+ return;
+ }
+
+ $tokens = id(new PhabricatorTokenQuery())
+ ->setViewer($user)
+ ->withPHIDs(mpull($tokens_given, 'getTokenPHID'))
+ ->execute();
+ $tokens = mpull($tokens, null, 'getPHID');
+
+ $author_phids = mpull($tokens_given, 'getAuthorPHID');
+ $handles = id(new PhabricatorObjectHandleData($author_phids))
+ ->loadHandles();
+
+ $list = array();
+ foreach ($tokens_given as $token_given) {
+ if (!idx($tokens, $token_given->getTokenPHID())) {
+ continue;
+ }
+
+ $token = $tokens[$token_given->getTokenPHID()];
+
+ $list[] = javelin_tag(
+ 'span',
+ array(
+ 'sigil' => 'has-tooltip',
+ 'meta' => array(
+ 'tip' => $handles[$token_given->getAuthorPHID()]->getName(),
+ ),
+ ),
+ $token->renderIcon());
+ }
+
+ $view = $event->getValue('view');
+ $view->addProperty(pht('Tokens'), $list);
+ }
+
+}
Index: src/applications/tokens/interface/PhabricatorTokenReceiverInterface.php
===================================================================
--- /dev/null
+++ src/applications/tokens/interface/PhabricatorTokenReceiverInterface.php
@@ -0,0 +1,5 @@
+<?php
+
+interface PhabricatorTokenReceiverInterface {
+
+}
Index: src/applications/tokens/query/PhabricatorTokenGivenQuery.php
===================================================================
--- /dev/null
+++ src/applications/tokens/query/PhabricatorTokenGivenQuery.php
@@ -0,0 +1,89 @@
+<?php
+
+final class PhabricatorTokenGivenQuery
+ extends PhabricatorCursorPagedPolicyAwareQuery {
+
+ private $authorPHIDs;
+ private $objectPHIDs;
+ private $tokenPHIDs;
+
+ public function withTokenPHIDs(array $token_phids) {
+ $this->tokenPHIDs = $token_phids;
+ return $this;
+ }
+
+ public function withObjectPHIDs(array $object_phids) {
+ $this->objectPHIDs = $object_phids;
+ return $this;
+ }
+
+ public function withAuthorPHIDs(array $author_phids) {
+ $this->authorPHIDs = $author_phids;
+ return $this;
+ }
+
+ public function loadPage() {
+ $table = new PhabricatorTokenGiven();
+ $conn_r = $table->establishConnection('r');
+
+ $rows = queryfx_all(
+ $conn_r,
+ 'SELECT * FROM %T %Q %Q %Q',
+ $table->getTableName(),
+ $this->buildWhereClause($conn_r),
+ $this->buildOrderClause($conn_r),
+ $this->buildLimitClause($conn_r));
+
+ return $table->loadAllFromArray($rows);
+ }
+
+ private function buildWhereClause(AphrontDatabaseConnection $conn_r) {
+ $where = array();
+
+ if ($this->authorPHIDs) {
+ $where[] = qsprintf(
+ $conn_r,
+ 'authorPHID IN (%Ls)',
+ $this->authorPHIDs);
+ }
+
+ if ($this->objectPHIDs) {
+ $where[] = qsprintf(
+ $conn_r,
+ 'objectPHID IN (%Ls)',
+ $this->objectPHIDs);
+ }
+
+ if ($this->tokenPHIDs) {
+ $where[] = qsprintf(
+ $conn_r,
+ 'tokenPHID IN (%Ls)',
+ $this->tokenPHIDs);
+ }
+
+ return $this->formatWhereClause($where);
+ }
+
+ public function willFilterPage(array $results) {
+ $object_phids = array_filter(mpull($results, 'getObjectPHID'));
+ if (!$object_phids) {
+ return array();
+ }
+
+ $objects = id(new PhabricatorObjectHandleData($object_phids))
+ ->setViewer($this->getViewer())
+ ->loadObjects();
+
+ foreach ($results as $key => $result) {
+ $phid = $result->getObjectPHID();
+ if (empty($objects[$phid])) {
+ unset($results[$key]);
+ } else {
+ $result->attachObject($objects[$phid]);
+ }
+ }
+
+ return $results;
+ }
+
+}
Index: src/applications/tokens/query/PhabricatorTokenQuery.php
===================================================================
--- /dev/null
+++ src/applications/tokens/query/PhabricatorTokenQuery.php
@@ -0,0 +1,62 @@
+<?php
+
+final class PhabricatorTokenQuery
+ extends PhabricatorCursorPagedPolicyAwareQuery {
+
+ private $phids;
+
+ public function withPHIDs(array $phids) {
+ $this->phids = $phids;
+ return $this;
+ }
+
+ public function loadPage() {
+ $tokens = $this->getBuiltinTokens();
+
+ if ($this->phids) {
+ $map = array_fill_keys($this->phids, true);
+ foreach ($tokens as $key => $token) {
+ if (empty($map[$token->getPHID()])) {
+ unset($tokens[$key]);
+ }
+ }
+ }
+
+ return $tokens;
+ }
+
+ private function getBuiltinTokens() {
+ $specs = array(
+ array('like-1', pht('Like')),
+ array('like-2', pht('Dislike')),
+ array('heart-1', pht('Love')),
+ array('heart-2', pht('Heartbreak')),
+ array('medal-1', pht('Orange Medal')),
+ array('medal-2', pht('Grey Medal')),
+ array('medal-3', pht('Yellow Medal')),
+ array('medal-4', pht('Manufacturing Defect?')),
+ array('coin-1', pht('Haypence')),
+ array('coin-2', pht('Piece of Eight')),
+ array('coin-3', pht('Doubloon')),
+ array('coin-4', pht('Mountain of Wealth')),
+ array('misc-1', pht('Pterodactyl')),
+ array('misc-2', pht('Evil Spooky Haunted Tree')),
+ array('misc-3', pht('Baby Tequila')),
+ array('misc-4', pht('The World Burns')),
+ );
+
+ $tokens = array();
+ foreach ($specs as $id => $spec) {
+ list($image, $name) = $spec;
+
+ $token = id(new PhabricatorToken())
+ ->setID($id)
+ ->setName($name)
+ ->setPHID('PHID-TOKN-'.$image);
+ $tokens[] = $token;
+ }
+
+ return $tokens;
+ }
+
+}
Index: src/applications/tokens/storage/PhabricatorToken.php
===================================================================
--- /dev/null
+++ src/applications/tokens/storage/PhabricatorToken.php
@@ -0,0 +1,46 @@
+<?php
+
+final class PhabricatorToken extends PhabricatorTokenDAO
+ implements PhabricatorPolicyInterface {
+
+ protected $phid;
+ protected $name;
+ protected $filePHID;
+
+ public function getConfiguration() {
+ return array(
+ self::CONFIG_AUX_PHID => true,
+ ) + parent::getConfiguration();
+ }
+
+ public function getCapabilities() {
+ return array(
+ PhabricatorPolicyCapability::CAN_VIEW,
+ );
+ }
+
+ public function getPolicy($capability) {
+ return PhabricatorPolicies::POLICY_USER;
+ }
+
+ public function hasAutomaticCapability($capability, PhabricatorUser $viewer) {
+ return false;
+ }
+
+ public function renderIcon() {
+ // TODO: Maybe move to a View class?
+
+ require_celerity_resource('sprite-tokens-css');
+ require_celerity_resource('tokens-css');
+
+ $sprite = substr($this->getPHID(), 10);
+
+ return phutil_tag(
+ 'div',
+ array(
+ 'class' => 'sprite-tokens token-icon token-'.$sprite,
+ ),
+ '');
+ }
+
+}
Index: src/applications/tokens/storage/PhabricatorTokenCount.php
===================================================================
--- /dev/null
+++ src/applications/tokens/storage/PhabricatorTokenCount.php
@@ -0,0 +1,15 @@
+<?php
+
+final class PhabricatorTokenCount extends PhabricatorTokenDAO {
+
+ protected $objectPHID;
+ protected $tokenCount;
+
+ public function getConfiguration() {
+ return array(
+ self::CONFIG_IDS => self::IDS_MANUAL,
+ self::CONFIG_TIMESTAMPS => false,
+ ) + parent::getConfiguration();
+ }
+
+}
Index: src/applications/tokens/storage/PhabricatorTokenDAO.php
===================================================================
--- /dev/null
+++ src/applications/tokens/storage/PhabricatorTokenDAO.php
@@ -0,0 +1,9 @@
+<?php
+
+abstract class PhabricatorTokenDAO extends PhabricatorLiskDAO {
+
+ public function getApplicationName() {
+ return 'token';
+ }
+
+}
Index: src/applications/tokens/storage/PhabricatorTokenGiven.php
===================================================================
--- /dev/null
+++ src/applications/tokens/storage/PhabricatorTokenGiven.php
@@ -0,0 +1,54 @@
+<?php
+
+final class PhabricatorTokenGiven extends PhabricatorTokenDAO
+ implements PhabricatorPolicyInterface {
+
+ protected $authorPHID;
+ protected $objectPHID;
+ protected $tokenPHID;
+
+ private $object;
+
+ public function attachObject(PhabricatorTokenReceiverInterface $object) {
+ $this->object = $object;
+ return $this;
+ }
+
+ public function getObject() {
+ if ($this->object === null) {
+ throw new Exception("Call attachObject() before getObject()!");
+ }
+ return $this->object;
+ }
+
+ public function getCapabilities() {
+ return array(
+ PhabricatorPolicyCapability::CAN_VIEW,
+ PhabricatorPolicyCapability::CAN_EDIT,
+ );
+ }
+
+ public function getPolicy($capability) {
+ switch ($capability) {
+ case PhabricatorPolicyCapability::CAN_VIEW:
+ return $this->getObject()->getPolicy($capability);
+ default:
+ return PhabricatorPolicies::POLICY_NOONE;
+ }
+ }
+
+ public function hasAutomaticCapability($capability, PhabricatorUser $user) {
+ switch ($capability) {
+ case PhabricatorPolicyCapability::CAN_VIEW:
+ return $this->getObject()->hasAutomaticCapability(
+ $capability,
+ $user);
+ default:
+ if ($user->getPHID() == $this->authorPHID) {
+ return true;
+ }
+ return false;
+ }
+ }
+
+}
Index: src/infrastructure/celerity/CeleritySpriteGenerator.php
===================================================================
--- src/infrastructure/celerity/CeleritySpriteGenerator.php
+++ src/infrastructure/celerity/CeleritySpriteGenerator.php
@@ -176,6 +176,33 @@
return $sheet;
}
+ public function buildTokenSheet() {
+ $tokens = $this->getDirectoryList('tokens_1x');
+
+ $template = id(new PhutilSprite())
+ ->setSourceSize(16, 16);
+
+ $sprites = array();
+ foreach ($tokens as $token) {
+ $path = $this->getPath('tokens_1x/'.$token.'.png');
+
+ $sprite = id(clone $template)
+ ->setName('token-'.$token)
+ ->setTargetCSS('.token-'.$token)
+ ->setSourceFile($path, 1);
+
+ $sprites[] = $sprite;
+ }
+
+ $sheet = $this->buildSheet('tokens', false);
+ foreach ($sprites as $sprite) {
+ $sheet->addSprite($sprite);
+ }
+
+ return $sheet;
+ }
+
+
public function buildConpherenceSheet() {
$icons = $this->getDirectoryList('conpher_1x');
$scales = array(
@@ -186,7 +213,7 @@
->setSourceSize(32, 32);
$sprites = array();
- foreach ($icons as $icon) {
+ foreach ($icons as $icon) {
$color = preg_match('/_on/', $icon) ? 'on' : 'off';
$prefix = 'conpher_';
Index: src/infrastructure/events/constant/PhabricatorEventType.php
===================================================================
--- src/infrastructure/events/constant/PhabricatorEventType.php
+++ src/infrastructure/events/constant/PhabricatorEventType.php
@@ -29,6 +29,7 @@
const TYPE_UI_WILLRENDEROBJECTS = 'ui.willRenderObjects';
const TYPE_UI_DDIDRENDEROBJECT = 'ui.didRenderObject';
const TYPE_UI_DIDRENDEROBJECTS = 'ui.didRenderObjects';
+ const TYPE_UI_WILLRENDERPROPERTIES = 'ui.willRenderProperties';
const TYPE_PEOPLE_DIDRENDERMENU = 'people.didRenderMenu';
}
Index: src/infrastructure/storage/patch/PhabricatorBuiltinPatchList.php
===================================================================
--- src/infrastructure/storage/patch/PhabricatorBuiltinPatchList.php
+++ src/infrastructure/storage/patch/PhabricatorBuiltinPatchList.php
@@ -163,6 +163,14 @@
'type' => 'db',
'name' => 'conpherence',
),
+ 'db.config' => array(
+ 'type' => 'db',
+ 'name' => 'config',
+ ),
+ 'db.token' => array(
+ 'type' => 'db',
+ 'name' => 'token',
+ ),
'0000.legacy.sql' => array(
'type' => 'sql',
'name' => $this->getPatchPath('0000.legacy.sql'),
@@ -1068,10 +1076,6 @@
'type' => 'sql',
'name' => $this->getPatchPath('20121220.generalcache.sql'),
),
- 'db.config' => array(
- 'type' => 'db',
- 'name' => 'config',
- ),
'20121226.config.sql' => array(
'type' => 'sql',
'name' => $this->getPatchPath('20121226.config.sql'),
@@ -1109,6 +1113,10 @@
'type' => 'sql',
'name' => $this->getPatchPath('20130131.conpherencepics.sql'),
),
+ '20130214.token.sql' => array(
+ 'type' => 'sql',
+ 'name' => $this->getPatchPath('20130214.token.sql'),
+ ),
);
}
Index: src/view/layout/PhabricatorPropertyListView.php
===================================================================
--- src/view/layout/PhabricatorPropertyListView.php
+++ src/view/layout/PhabricatorPropertyListView.php
@@ -4,11 +4,18 @@
private $parts = array();
private $hasKeyboardShortcuts;
+ private $object;
+ private $invokedWillRenderEvent;
protected function canAppendChild() {
return false;
}
+ public function setObject($object) {
+ $this->object = $object;
+ return $this;
+ }
+
public function setHasKeyboardShortcuts($has_keyboard_shortcuts) {
$this->hasKeyboardShortcuts = $has_keyboard_shortcuts;
return $this;
@@ -52,7 +59,25 @@
return $this;
}
+ public function invokeWillRenderEvent() {
+ if ($this->object && $this->getUser() && !$this->invokedWillRenderEvent) {
+ $event = new PhabricatorEvent(
+ PhabricatorEventType::TYPE_UI_WILLRENDERPROPERTIES,
+ array(
+ 'object' => $this->object,
+ 'view' => $this,
+ ));
+ $event->setUser($this->getUser());
+ PhutilEventEngine::dispatchEvent($event);
+ }
+ $this->invokedWillRenderEvent = true;
+ }
+
+
+
public function render() {
+ $this->invokeWillRenderEvent();
+
require_celerity_resource('phabricator-property-list-view-css');
$items = array();
Index: webroot/rsrc/css/application/tokens/tokens.css
===================================================================
--- /dev/null
+++ webroot/rsrc/css/application/tokens/tokens.css
@@ -0,0 +1,27 @@
+/**
+ * @provides tokens-css
+ */
+
+.token-icon {
+ position: relative;
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+}
+
+button.token-button {
+ background: #f6f6f6;
+ border: 1px solid #333333;
+ position: relative;
+ width: 16px;
+ height: 16px;
+ padding: 16px;
+ margin: 8px;
+ text-shadow: none;
+ box-shadow: none;
+ box-sizing: content-box;
+}
+
+.token-grid {
+ text-align: center;
+}
Index: webroot/rsrc/css/layout/phabricator-pinboard-view.css
===================================================================
--- webroot/rsrc/css/layout/phabricator-pinboard-view.css
+++ webroot/rsrc/css/layout/phabricator-pinboard-view.css
@@ -5,6 +5,7 @@
.phabricator-pinboard-view {
padding: 0 2%;
overflow: hidden;
+ margin: 1em 0;
}
.device-phone .phabricator-pinboard-view {
Index: webroot/rsrc/css/sprite-conph.css
===================================================================
--- webroot/rsrc/css/sprite-conph.css
+++ webroot/rsrc/css/sprite-conph.css
@@ -4,7 +4,7 @@
*/
.sprite-conpher {
- background-image: url(/rsrc/image/sprite-conph.png);
+ background-image: url(/rsrc/image/sprite-conpher.png);
background-repeat: no-repeat;
}
@@ -12,7 +12,7 @@
only screen and (min-device-pixel-ratio: 1.5),
only screen and (-webkit-min-device-pixel-ratio: 1.5) {
.sprite-conpher {
- background-image: url(/rsrc/image/sprite-conph-X2.png);
+ background-image: url(/rsrc/image/sprite-conpher-X2.png);
background-size: 132px 132px;
}
}
Index: webroot/rsrc/css/sprite-tokens.css
===================================================================
--- /dev/null
+++ webroot/rsrc/css/sprite-tokens.css
@@ -0,0 +1,76 @@
+/**
+ * @provides sprite-tokens-css
+ * @generated
+ */
+
+.sprite-tokens {
+ background-image: url(/rsrc/image/sprite-tokens.png);
+ background-repeat: no-repeat;
+}
+
+
+
+
+.token-coin-1 {
+ background-position: 0px 0px;
+}
+
+.token-coin-2 {
+ background-position: -17px 0px;
+}
+
+.token-coin-3 {
+ background-position: -34px 0px;
+}
+
+.token-coin-4 {
+ background-position: -51px 0px;
+}
+
+.token-heart-1 {
+ background-position: 0px -17px;
+}
+
+.token-heart-2 {
+ background-position: -17px -17px;
+}
+
+.token-like-1 {
+ background-position: -34px -17px;
+}
+
+.token-like-2 {
+ background-position: -51px -17px;
+}
+
+.token-medal-1 {
+ background-position: 0px -34px;
+}
+
+.token-medal-2 {
+ background-position: -17px -34px;
+}
+
+.token-medal-3 {
+ background-position: -34px -34px;
+}
+
+.token-medal-4 {
+ background-position: -51px -34px;
+}
+
+.token-misc-1 {
+ background-position: 0px -51px;
+}
+
+.token-misc-2 {
+ background-position: -17px -51px;
+}
+
+.token-misc-3 {
+ background-position: -34px -51px;
+}
+
+.token-misc-4 {
+ background-position: -51px -51px;
+}

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 20, 3:48 AM (2 d, 2 h ago)
Storage Engine
amazon-s3
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
phabricator/secure/st/j2/vvzsiahrfamuqkzo
Default Alt Text
D4964.id10601.diff (161 KB)

Event Timeline