Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2896758
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Advanced/Developer...
View Handle
View Hovercard
Size
206 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/resources/sprite/manifest/icon.json b/resources/sprite/manifest/icon.json
index c12971f2e0..62019003a3 100644
--- a/resources/sprite/manifest/icon.json
+++ b/resources/sprite/manifest/icon.json
@@ -1,196 +1,970 @@
{
- "sprites" : [
- "action-arrow_left",
- "action-arrow_left-grey",
- "action-arrow_left-white",
- "action-arrow_right",
- "action-arrow_right-grey",
- "action-arrow_right-white",
- "action-attach",
- "action-attach-grey",
- "action-attach-white",
- "action-blame",
- "action-blame-grey",
- "action-blame-white",
- "action-check",
- "action-check-grey",
- "action-check-white",
- "action-comment",
- "action-comment-grey",
- "action-comment-white",
- "action-computer",
- "action-computer-grey",
- "action-computer-white",
- "action-create",
- "action-create-grey",
- "action-create-white",
- "action-delete",
- "action-delete-grey",
- "action-delete-white",
- "action-disable",
- "action-disable-grey",
- "action-disable-white",
- "action-dislike",
- "action-dislike-grey",
- "action-dislike-white",
- "action-download",
- "action-download-grey",
- "action-download-white",
- "action-edit",
- "action-edit-grey",
- "action-edit-white",
- "action-enable",
- "action-enable-grey",
- "action-enable-white",
- "action-file",
- "action-file-grey",
- "action-file-white",
- "action-flag",
- "action-flag-0",
- "action-flag-0-grey",
- "action-flag-0-white",
- "action-flag-1",
- "action-flag-1-grey",
- "action-flag-1-white",
- "action-flag-2",
- "action-flag-2-grey",
- "action-flag-2-white",
- "action-flag-3",
- "action-flag-3-grey",
- "action-flag-3-white",
- "action-flag-4",
- "action-flag-4-grey",
- "action-flag-4-white",
- "action-flag-5",
- "action-flag-5-grey",
- "action-flag-5-white",
- "action-flag-6",
- "action-flag-6-grey",
- "action-flag-6-white",
- "action-flag-7",
- "action-flag-7-grey",
- "action-flag-7-white",
- "action-flag-ghost",
- "action-flag-ghost-grey",
- "action-flag-ghost-white",
- "action-flag-grey",
- "action-flag-white",
- "action-folder-open",
- "action-folder-open-grey",
- "action-folder-open-white",
- "action-fork",
- "action-fork-grey",
- "action-fork-white",
- "action-herald",
- "action-herald-grey",
- "action-herald-white",
- "action-highlight",
- "action-highlight-grey",
- "action-highlight-white",
- "action-history",
- "action-history-grey",
- "action-history-white",
- "action-image",
- "action-image-grey",
- "action-image-white",
- "action-like",
- "action-like-grey",
- "action-like-white",
- "action-link",
- "action-link-grey",
- "action-link-white",
- "action-lint-info",
- "action-lint-info-grey",
- "action-lint-info-white",
- "action-lint-ok",
- "action-lint-ok-grey",
- "action-lint-ok-white",
- "action-lint-warning",
- "action-lint-warning-grey",
- "action-lint-warning-white",
- "action-lock",
- "action-lock-grey",
- "action-lock-white",
- "action-love",
- "action-love-grey",
- "action-love-white",
- "action-merge",
- "action-merge-grey",
- "action-merge-white",
- "action-message",
- "action-message-grey",
- "action-message-white",
- "action-meta-mta",
- "action-meta-mta-grey",
- "action-meta-mta-white",
- "action-move",
- "action-move-grey",
- "action-move-white",
- "action-new",
- "action-new-grey",
- "action-new-white",
- "action-perflab",
- "action-perflab-grey",
- "action-perflab-white",
- "action-preview",
- "action-preview-grey",
- "action-preview-white",
- "action-refresh",
- "action-refresh-grey",
- "action-refresh-white",
- "action-remove",
- "action-remove-grey",
- "action-remove-white",
- "action-search",
- "action-search-grey",
- "action-search-white",
- "action-start-sandcastle",
- "action-start-sandcastle-grey",
- "action-start-sandcastle-white",
- "action-subscribe-add",
- "action-subscribe-add-grey",
- "action-subscribe-add-white",
- "action-subscribe-auto",
- "action-subscribe-auto-grey",
- "action-subscribe-auto-white",
- "action-subscribe-delete",
- "action-subscribe-delete-grey",
- "action-subscribe-delete-white",
- "action-tag",
- "action-tag-grey",
- "action-tag-white",
- "action-transcript",
- "action-transcript-grey",
- "action-transcript-white",
- "action-undo",
- "action-undo-grey",
- "action-undo-white",
- "action-unlock",
- "action-unlock-grey",
- "action-unlock-white",
- "action-unmerge",
- "action-unmerge-grey",
- "action-unmerge-white",
- "action-unpublish",
- "action-unpublish-grey",
- "action-unpublish-white",
- "action-warning",
- "action-warning-grey",
- "action-warning-white",
- "action-world",
- "action-world-grey",
- "action-world-white",
- "remarkup-assist-text_b",
- "remarkup-assist-text_code",
- "remarkup-assist-text_help",
- "remarkup-assist-text_i",
- "remarkup-assist-text_image",
- "remarkup-assist-text_larger",
- "remarkup-assist-text_meme",
- "remarkup-assist-text_ol",
- "remarkup-assist-text_table",
- "remarkup-assist-text_tag",
- "remarkup-assist-text_tt",
- "remarkup-assist-text_ul"
- ]
+ "version" : 1,
+ "sprites" : {
+ "action-arrow_left" : {
+ "name" : "action-arrow_left",
+ "rule" : ".action-arrow_left",
+ "hash" : "d4d2ea82a38975e9630d75ea36a97239"
+ },
+ "action-arrow_left-grey" : {
+ "name" : "action-arrow_left-grey",
+ "rule" : ".action-arrow_left-grey",
+ "hash" : "ab68a8f75c055fe43e02d9a55006ac80"
+ },
+ "action-arrow_left-white" : {
+ "name" : "action-arrow_left-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-arrow_left",
+ "hash" : "23e5824a1e58e858d7fff622e10c9670"
+ },
+ "action-arrow_right" : {
+ "name" : "action-arrow_right",
+ "rule" : ".action-arrow_right",
+ "hash" : "9f23ba0505db0e199a866d1810f8156a"
+ },
+ "action-arrow_right-grey" : {
+ "name" : "action-arrow_right-grey",
+ "rule" : ".action-arrow_right-grey",
+ "hash" : "1d71f24b7821e63eca17d2c2501892a9"
+ },
+ "action-arrow_right-white" : {
+ "name" : "action-arrow_right-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-arrow_right",
+ "hash" : "c36b010025e1550fda9dff1d4b677076"
+ },
+ "action-attach" : {
+ "name" : "action-attach",
+ "rule" : ".action-attach",
+ "hash" : "bc18c0f45652bca9b7f1d9996fef3514"
+ },
+ "action-attach-grey" : {
+ "name" : "action-attach-grey",
+ "rule" : ".action-attach-grey",
+ "hash" : "ba38e3af334aafa6f42ab01ef8879cef"
+ },
+ "action-attach-white" : {
+ "name" : "action-attach-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-attach",
+ "hash" : "8f95a2a247a1b2f79c55b76bc62caedb"
+ },
+ "action-blame" : {
+ "name" : "action-blame",
+ "rule" : ".action-blame",
+ "hash" : "b90fd9e982c92a29b8eb61a02d9276d1"
+ },
+ "action-blame-grey" : {
+ "name" : "action-blame-grey",
+ "rule" : ".action-blame-grey",
+ "hash" : "dd16c414547b9ced79f95bf8481e9406"
+ },
+ "action-blame-white" : {
+ "name" : "action-blame-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-blame",
+ "hash" : "f2d2a1a06236432903297bf58cf00138"
+ },
+ "action-check" : {
+ "name" : "action-check",
+ "rule" : ".action-check",
+ "hash" : "0806a6293f4b6e65112fc17484ae4f70"
+ },
+ "action-check-grey" : {
+ "name" : "action-check-grey",
+ "rule" : ".action-check-grey",
+ "hash" : "c10d72cc1504f9d5ffccbd26fd798518"
+ },
+ "action-check-white" : {
+ "name" : "action-check-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-check",
+ "hash" : "6328b4abc8f44954e637c3382e859536"
+ },
+ "action-comment" : {
+ "name" : "action-comment",
+ "rule" : ".action-comment",
+ "hash" : "e7e0d20602f4a77e90e13e0a60974ce5"
+ },
+ "action-comment-grey" : {
+ "name" : "action-comment-grey",
+ "rule" : ".action-comment-grey",
+ "hash" : "a0a1f0d0d32fab29c58dcc59c2b6fcb2"
+ },
+ "action-comment-white" : {
+ "name" : "action-comment-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-comment",
+ "hash" : "370761544111cf3d6a8878927baa9199"
+ },
+ "action-computer" : {
+ "name" : "action-computer",
+ "rule" : ".action-computer",
+ "hash" : "b724d76f98fff7bc187f40cc23c06bc8"
+ },
+ "action-computer-grey" : {
+ "name" : "action-computer-grey",
+ "rule" : ".action-computer-grey",
+ "hash" : "3c46bda86e5c60b81909c1fa1395bb14"
+ },
+ "action-computer-white" : {
+ "name" : "action-computer-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-computer",
+ "hash" : "82cef35cbea64a3ee60a9b71f2a1c583"
+ },
+ "action-create" : {
+ "name" : "action-create",
+ "rule" : ".action-create",
+ "hash" : "360c79b389e5f3667f9be3ec47b3f248"
+ },
+ "action-create-grey" : {
+ "name" : "action-create-grey",
+ "rule" : ".action-create-grey",
+ "hash" : "03ac5c89de22f74442fab30ca777119f"
+ },
+ "action-create-white" : {
+ "name" : "action-create-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-create",
+ "hash" : "126f91b6c84a5f6d5b60b347b690d12c"
+ },
+ "action-delete" : {
+ "name" : "action-delete",
+ "rule" : ".action-delete",
+ "hash" : "3bcd865dc1d46645735cd97400ff8aba"
+ },
+ "action-delete-grey" : {
+ "name" : "action-delete-grey",
+ "rule" : ".action-delete-grey",
+ "hash" : "272c2791dbbaa37e9240e1da45325546"
+ },
+ "action-delete-white" : {
+ "name" : "action-delete-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-delete",
+ "hash" : "e773f5117a9a29f3fa338e7ef8dc1780"
+ },
+ "action-disable" : {
+ "name" : "action-disable",
+ "rule" : ".action-disable",
+ "hash" : "d9b0d16bdeaad39ccd881641c3bbd966"
+ },
+ "action-disable-grey" : {
+ "name" : "action-disable-grey",
+ "rule" : ".action-disable-grey",
+ "hash" : "7ff9a4502d1ae097d105b96d05e0ac64"
+ },
+ "action-disable-white" : {
+ "name" : "action-disable-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-disable",
+ "hash" : "eae52c680ce1bc0b529a76a200cc52df"
+ },
+ "action-dislike" : {
+ "name" : "action-dislike",
+ "rule" : ".action-dislike",
+ "hash" : "12234ae1fff0a0cae4a3b08366dc8e76"
+ },
+ "action-dislike-grey" : {
+ "name" : "action-dislike-grey",
+ "rule" : ".action-dislike-grey",
+ "hash" : "b75e2fb881f80263a943aae46e866da5"
+ },
+ "action-dislike-white" : {
+ "name" : "action-dislike-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-dislike",
+ "hash" : "045543b094cdcd888d64860869cc6e5b"
+ },
+ "action-download" : {
+ "name" : "action-download",
+ "rule" : ".action-download",
+ "hash" : "d833c952e92afabe38f22afd797bd930"
+ },
+ "action-download-grey" : {
+ "name" : "action-download-grey",
+ "rule" : ".action-download-grey",
+ "hash" : "57676a6e25d26648d1fd9a8a8f580771"
+ },
+ "action-download-white" : {
+ "name" : "action-download-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-download",
+ "hash" : "cc5c770af0fd5a1097c743c99fd27985"
+ },
+ "action-edit" : {
+ "name" : "action-edit",
+ "rule" : ".action-edit",
+ "hash" : "7a689907e70134d9b959cce8b9563f78"
+ },
+ "action-edit-grey" : {
+ "name" : "action-edit-grey",
+ "rule" : ".action-edit-grey",
+ "hash" : "180a369e4ebfd663bac4b0f71c6fd6e0"
+ },
+ "action-edit-white" : {
+ "name" : "action-edit-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-edit",
+ "hash" : "8c1e028cdcffd4b5f2b2b1ffbefd94aa"
+ },
+ "action-enable" : {
+ "name" : "action-enable",
+ "rule" : ".action-enable",
+ "hash" : "44a48b59d175cbf76ed76c5f10f37e99"
+ },
+ "action-enable-grey" : {
+ "name" : "action-enable-grey",
+ "rule" : ".action-enable-grey",
+ "hash" : "8bfde2b13363e83c2980bb67a756b46e"
+ },
+ "action-enable-white" : {
+ "name" : "action-enable-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-enable",
+ "hash" : "455194cf17fcced25cbc0156951180fd"
+ },
+ "action-file" : {
+ "name" : "action-file",
+ "rule" : ".action-file",
+ "hash" : "ae34ce5e62b1bc3c4dc6da4f7fbf7447"
+ },
+ "action-file-grey" : {
+ "name" : "action-file-grey",
+ "rule" : ".action-file-grey",
+ "hash" : "1eb8c0b693fa2ee7a71fe6ef885b20eb"
+ },
+ "action-file-white" : {
+ "name" : "action-file-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-file",
+ "hash" : "fc348080a6fa3d845f8da0dba1f0accf"
+ },
+ "action-flag" : {
+ "name" : "action-flag",
+ "rule" : ".action-flag",
+ "hash" : "6c005cc20af556cd6131747654444ec6"
+ },
+ "action-flag-0" : {
+ "name" : "action-flag-0",
+ "rule" : ".action-flag-0",
+ "hash" : "b6147505c95144f0ce6c5bc4c74a3bf3"
+ },
+ "action-flag-0-grey" : {
+ "name" : "action-flag-0-grey",
+ "rule" : ".action-flag-0-grey",
+ "hash" : "6422b4d1e9878dfedc7ec670ba97c9ac"
+ },
+ "action-flag-0-white" : {
+ "name" : "action-flag-0-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-flag-0",
+ "hash" : "44e72a52052200846fcf3d7dd13d1247"
+ },
+ "action-flag-1" : {
+ "name" : "action-flag-1",
+ "rule" : ".action-flag-1",
+ "hash" : "7c9c162d50e8496e373b719ef7b507b6"
+ },
+ "action-flag-1-grey" : {
+ "name" : "action-flag-1-grey",
+ "rule" : ".action-flag-1-grey",
+ "hash" : "1bc1b824544c19f83c0c564fba07e504"
+ },
+ "action-flag-1-white" : {
+ "name" : "action-flag-1-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-flag-1",
+ "hash" : "83e63386c1b5fe0a2580c57dcd3d5bc8"
+ },
+ "action-flag-2" : {
+ "name" : "action-flag-2",
+ "rule" : ".action-flag-2",
+ "hash" : "c6c1a0a1d66e4a492989af2e5a784c34"
+ },
+ "action-flag-2-grey" : {
+ "name" : "action-flag-2-grey",
+ "rule" : ".action-flag-2-grey",
+ "hash" : "b80cf86cae93a20a87d8cb8c742b9576"
+ },
+ "action-flag-2-white" : {
+ "name" : "action-flag-2-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-flag-2",
+ "hash" : "86e4cdc53d9101f144455114ec01856b"
+ },
+ "action-flag-3" : {
+ "name" : "action-flag-3",
+ "rule" : ".action-flag-3",
+ "hash" : "8bbc031251a1834d6ede293474d62545"
+ },
+ "action-flag-3-grey" : {
+ "name" : "action-flag-3-grey",
+ "rule" : ".action-flag-3-grey",
+ "hash" : "0c4934d095a7a6ffa4ee734203af3616"
+ },
+ "action-flag-3-white" : {
+ "name" : "action-flag-3-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-flag-3",
+ "hash" : "de92148b46fa30ed3e5cfdc63c941213"
+ },
+ "action-flag-4" : {
+ "name" : "action-flag-4",
+ "rule" : ".action-flag-4",
+ "hash" : "2ba2c89181a1f7949a1e9ac93bce41e3"
+ },
+ "action-flag-4-grey" : {
+ "name" : "action-flag-4-grey",
+ "rule" : ".action-flag-4-grey",
+ "hash" : "84594202eff4dd72abcf3ae30f8138b0"
+ },
+ "action-flag-4-white" : {
+ "name" : "action-flag-4-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-flag-4",
+ "hash" : "832420753c9481e7fc0de1b16d465951"
+ },
+ "action-flag-5" : {
+ "name" : "action-flag-5",
+ "rule" : ".action-flag-5",
+ "hash" : "922270dee1b7b36be6845008352d34e8"
+ },
+ "action-flag-5-grey" : {
+ "name" : "action-flag-5-grey",
+ "rule" : ".action-flag-5-grey",
+ "hash" : "3471ceb4994112b0a6e48eeb50ad8c90"
+ },
+ "action-flag-5-white" : {
+ "name" : "action-flag-5-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-flag-5",
+ "hash" : "d80426ed6dad58d6b557adc3b08a35c2"
+ },
+ "action-flag-6" : {
+ "name" : "action-flag-6",
+ "rule" : ".action-flag-6",
+ "hash" : "02c3fb78cc75105605659578e75acfc3"
+ },
+ "action-flag-6-grey" : {
+ "name" : "action-flag-6-grey",
+ "rule" : ".action-flag-6-grey",
+ "hash" : "8ab1cde8884759e77030c9343d177bdb"
+ },
+ "action-flag-6-white" : {
+ "name" : "action-flag-6-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-flag-6",
+ "hash" : "40bf7e2b36e70d02fab3cdf7e7eece36"
+ },
+ "action-flag-7" : {
+ "name" : "action-flag-7",
+ "rule" : ".action-flag-7",
+ "hash" : "f4c757e27875d55e914608fecc190849"
+ },
+ "action-flag-7-grey" : {
+ "name" : "action-flag-7-grey",
+ "rule" : ".action-flag-7-grey",
+ "hash" : "d16921bf53cd5142c7fea2177511bb9e"
+ },
+ "action-flag-7-white" : {
+ "name" : "action-flag-7-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-flag-7",
+ "hash" : "5972a5f1e3ecff9146727ebfb43c5956"
+ },
+ "action-flag-ghost" : {
+ "name" : "action-flag-ghost",
+ "rule" : ".action-flag-ghost",
+ "hash" : "80d651f12e09ec81435612e06e28a2e2"
+ },
+ "action-flag-ghost-grey" : {
+ "name" : "action-flag-ghost-grey",
+ "rule" : ".action-flag-ghost-grey",
+ "hash" : "6a5ee12fc2f0f7961e646c3a335e2703"
+ },
+ "action-flag-ghost-white" : {
+ "name" : "action-flag-ghost-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-flag-ghost",
+ "hash" : "ff05197e8a66b1fb1037c93f3c52d866"
+ },
+ "action-flag-grey" : {
+ "name" : "action-flag-grey",
+ "rule" : ".action-flag-grey",
+ "hash" : "cf991807516bcdd9c175463cba0ddf6d"
+ },
+ "action-flag-white" : {
+ "name" : "action-flag-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-flag",
+ "hash" : "bb03676086c8af46377bb61593af0baa"
+ },
+ "action-folder-open" : {
+ "name" : "action-folder-open",
+ "rule" : ".action-folder-open",
+ "hash" : "3626a7bee8e8e0f846c5bc1432cd21a7"
+ },
+ "action-folder-open-grey" : {
+ "name" : "action-folder-open-grey",
+ "rule" : ".action-folder-open-grey",
+ "hash" : "5920e7bc4385d3efe46eb0e9ba28f828"
+ },
+ "action-folder-open-white" : {
+ "name" : "action-folder-open-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-folder-open",
+ "hash" : "5ccf5cfa0f446a522e55f64fe3ceed76"
+ },
+ "action-fork" : {
+ "name" : "action-fork",
+ "rule" : ".action-fork",
+ "hash" : "f2786a0553793e4eafd5088c325d3bf1"
+ },
+ "action-fork-grey" : {
+ "name" : "action-fork-grey",
+ "rule" : ".action-fork-grey",
+ "hash" : "b21de87ac4434cc79360d7f1f86b9feb"
+ },
+ "action-fork-white" : {
+ "name" : "action-fork-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-fork",
+ "hash" : "68f97284072a6ff630261af74629c884"
+ },
+ "action-herald" : {
+ "name" : "action-herald",
+ "rule" : ".action-herald",
+ "hash" : "a09777d816e1c3ec7ca1f024413d853a"
+ },
+ "action-herald-grey" : {
+ "name" : "action-herald-grey",
+ "rule" : ".action-herald-grey",
+ "hash" : "b091b3f6776f0620b77f7943e2723354"
+ },
+ "action-herald-white" : {
+ "name" : "action-herald-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-herald",
+ "hash" : "a30bd0191721e4ab028338c4c7ebdfa8"
+ },
+ "action-highlight" : {
+ "name" : "action-highlight",
+ "rule" : ".action-highlight",
+ "hash" : "c25f409ae6b43aa8edc28aac44bdb648"
+ },
+ "action-highlight-grey" : {
+ "name" : "action-highlight-grey",
+ "rule" : ".action-highlight-grey",
+ "hash" : "0638dc63d844cd03441457999486e295"
+ },
+ "action-highlight-white" : {
+ "name" : "action-highlight-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-highlight",
+ "hash" : "27e28bec94c1652eef5c556f23aa1dd6"
+ },
+ "action-history" : {
+ "name" : "action-history",
+ "rule" : ".action-history",
+ "hash" : "2ce835c4d455cf7ebb7914c6387a29ab"
+ },
+ "action-history-grey" : {
+ "name" : "action-history-grey",
+ "rule" : ".action-history-grey",
+ "hash" : "8685d466a6450d1055bb25782316af17"
+ },
+ "action-history-white" : {
+ "name" : "action-history-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-history",
+ "hash" : "2c57ad5babe37b8335e88c5464c5529c"
+ },
+ "action-image" : {
+ "name" : "action-image",
+ "rule" : ".action-image",
+ "hash" : "7e2d0b5937124146c8da254601d34d15"
+ },
+ "action-image-grey" : {
+ "name" : "action-image-grey",
+ "rule" : ".action-image-grey",
+ "hash" : "cc5392a9d8deb9b3a30b370924635eb1"
+ },
+ "action-image-white" : {
+ "name" : "action-image-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-image",
+ "hash" : "66ee76f5242792c0c274980df9bd9d58"
+ },
+ "action-like" : {
+ "name" : "action-like",
+ "rule" : ".action-like",
+ "hash" : "f024649c9c2a82e0ad0afdd8884a2c7d"
+ },
+ "action-like-grey" : {
+ "name" : "action-like-grey",
+ "rule" : ".action-like-grey",
+ "hash" : "a89fdf2f499e762b97f54c507715bde6"
+ },
+ "action-like-white" : {
+ "name" : "action-like-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-like",
+ "hash" : "bd1a5fad4c83353e476378fc1d99c6e1"
+ },
+ "action-link" : {
+ "name" : "action-link",
+ "rule" : ".action-link",
+ "hash" : "7c37d22aafdfd860b942d5fbcdc4975c"
+ },
+ "action-link-grey" : {
+ "name" : "action-link-grey",
+ "rule" : ".action-link-grey",
+ "hash" : "8139d52194b607e8c73d5a2124a28329"
+ },
+ "action-link-white" : {
+ "name" : "action-link-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-link",
+ "hash" : "157c08f843f6f30cf3561349f8e4ddbd"
+ },
+ "action-lint-info" : {
+ "name" : "action-lint-info",
+ "rule" : ".action-lint-info",
+ "hash" : "65c2692a045b7446c4312e1b7331701d"
+ },
+ "action-lint-info-grey" : {
+ "name" : "action-lint-info-grey",
+ "rule" : ".action-lint-info-grey",
+ "hash" : "4a0ca839249567756774af56977888cb"
+ },
+ "action-lint-info-white" : {
+ "name" : "action-lint-info-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-lint-info",
+ "hash" : "cf5a05749979f6701d4b3de53acca500"
+ },
+ "action-lint-ok" : {
+ "name" : "action-lint-ok",
+ "rule" : ".action-lint-ok",
+ "hash" : "7637e89a5ed282988c0427b61abb56a0"
+ },
+ "action-lint-ok-grey" : {
+ "name" : "action-lint-ok-grey",
+ "rule" : ".action-lint-ok-grey",
+ "hash" : "1c71c359debb765d73f1ee9b5b98ba3d"
+ },
+ "action-lint-ok-white" : {
+ "name" : "action-lint-ok-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-lint-ok",
+ "hash" : "faaa9e076d5012af17a73f9f09b6ede8"
+ },
+ "action-lint-warning" : {
+ "name" : "action-lint-warning",
+ "rule" : ".action-lint-warning",
+ "hash" : "b79d4525ef1806bf0cb524a7e7490af7"
+ },
+ "action-lint-warning-grey" : {
+ "name" : "action-lint-warning-grey",
+ "rule" : ".action-lint-warning-grey",
+ "hash" : "c522bb48f7d328b8230b5ecc2dac3d1f"
+ },
+ "action-lint-warning-white" : {
+ "name" : "action-lint-warning-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-lint-warning",
+ "hash" : "4a13ffad1125caf3656a276e4c40c907"
+ },
+ "action-lock" : {
+ "name" : "action-lock",
+ "rule" : ".action-lock",
+ "hash" : "943a4495056310f22bbbc2e64997ec74"
+ },
+ "action-lock-grey" : {
+ "name" : "action-lock-grey",
+ "rule" : ".action-lock-grey",
+ "hash" : "514bd65df15aaeeb35148d8c673e8718"
+ },
+ "action-lock-white" : {
+ "name" : "action-lock-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-lock",
+ "hash" : "1cd87a6ffac7f03535faa6109e69dcfa"
+ },
+ "action-love" : {
+ "name" : "action-love",
+ "rule" : ".action-love",
+ "hash" : "498bcb15f80897b768762c540b51ff91"
+ },
+ "action-love-grey" : {
+ "name" : "action-love-grey",
+ "rule" : ".action-love-grey",
+ "hash" : "07fa2968a8d447a20d0f5ae0f42fa454"
+ },
+ "action-love-white" : {
+ "name" : "action-love-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-love",
+ "hash" : "3fe85e0ad08e6f0151765ab5ce5624b0"
+ },
+ "action-merge" : {
+ "name" : "action-merge",
+ "rule" : ".action-merge",
+ "hash" : "c9ebe633aa17cc26cd454711e21e6686"
+ },
+ "action-merge-grey" : {
+ "name" : "action-merge-grey",
+ "rule" : ".action-merge-grey",
+ "hash" : "028f56f351b8021fe526824230170a48"
+ },
+ "action-merge-white" : {
+ "name" : "action-merge-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-merge",
+ "hash" : "334f751f7a9531af3e383bce06a0a2ff"
+ },
+ "action-message" : {
+ "name" : "action-message",
+ "rule" : ".action-message",
+ "hash" : "33db2ccd98bcbbe6bf8fae278ad2c2fc"
+ },
+ "action-message-grey" : {
+ "name" : "action-message-grey",
+ "rule" : ".action-message-grey",
+ "hash" : "306ee80f9f635f045ce15fe0c0a684c5"
+ },
+ "action-message-white" : {
+ "name" : "action-message-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-message",
+ "hash" : "d7ad1f04ffcd3e96cee0d81af509e77c"
+ },
+ "action-meta-mta" : {
+ "name" : "action-meta-mta",
+ "rule" : ".action-meta-mta",
+ "hash" : "bb8d824fef25830bda0929ae8e299147"
+ },
+ "action-meta-mta-grey" : {
+ "name" : "action-meta-mta-grey",
+ "rule" : ".action-meta-mta-grey",
+ "hash" : "e3e3b26c8c55628b27f9342df865edbf"
+ },
+ "action-meta-mta-white" : {
+ "name" : "action-meta-mta-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-meta-mta",
+ "hash" : "0455c2a3f7111e88daec4ddd68c9528a"
+ },
+ "action-move" : {
+ "name" : "action-move",
+ "rule" : ".action-move",
+ "hash" : "4cb5767570d935747f9338b8da9399df"
+ },
+ "action-move-grey" : {
+ "name" : "action-move-grey",
+ "rule" : ".action-move-grey",
+ "hash" : "d8bc3bdd62fc5dbc613875c9be75d7e1"
+ },
+ "action-move-white" : {
+ "name" : "action-move-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-move",
+ "hash" : "eb654087894d3bc7229d17b221eafcf0"
+ },
+ "action-new" : {
+ "name" : "action-new",
+ "rule" : ".action-new",
+ "hash" : "28a4a88aec75c601347d6dd0d9143de5"
+ },
+ "action-new-grey" : {
+ "name" : "action-new-grey",
+ "rule" : ".action-new-grey",
+ "hash" : "724855bb4c8eae16593ae6fba5653f7a"
+ },
+ "action-new-white" : {
+ "name" : "action-new-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-new",
+ "hash" : "21b047ec502a24eabe1f57fda5cd2fc1"
+ },
+ "action-perflab" : {
+ "name" : "action-perflab",
+ "rule" : ".action-perflab",
+ "hash" : "4449e5eb4780114dbafbfe2c7be538de"
+ },
+ "action-perflab-grey" : {
+ "name" : "action-perflab-grey",
+ "rule" : ".action-perflab-grey",
+ "hash" : "51414c80d753daa37f7deaa2cf4e5bc6"
+ },
+ "action-perflab-white" : {
+ "name" : "action-perflab-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-perflab",
+ "hash" : "e00e31057d557047300da57a5d07837e"
+ },
+ "action-preview" : {
+ "name" : "action-preview",
+ "rule" : ".action-preview",
+ "hash" : "069500f028ae272c474920785723247c"
+ },
+ "action-preview-grey" : {
+ "name" : "action-preview-grey",
+ "rule" : ".action-preview-grey",
+ "hash" : "522f17cdaee1af29c3073e21eb1fb7a6"
+ },
+ "action-preview-white" : {
+ "name" : "action-preview-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-preview",
+ "hash" : "c62768ba193052c527ce7d499fd9f662"
+ },
+ "action-refresh" : {
+ "name" : "action-refresh",
+ "rule" : ".action-refresh",
+ "hash" : "ef02448a2a4cbe830b56d3cbd9444ffd"
+ },
+ "action-refresh-grey" : {
+ "name" : "action-refresh-grey",
+ "rule" : ".action-refresh-grey",
+ "hash" : "24030ea198e22ed84891fa3698d891e4"
+ },
+ "action-refresh-white" : {
+ "name" : "action-refresh-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-refresh",
+ "hash" : "7800f18fbd6dde59e2ae91d695002318"
+ },
+ "action-remove" : {
+ "name" : "action-remove",
+ "rule" : ".action-remove",
+ "hash" : "69bf8194a7c539bdd6b7b8ad888d7260"
+ },
+ "action-remove-grey" : {
+ "name" : "action-remove-grey",
+ "rule" : ".action-remove-grey",
+ "hash" : "41abfeb5561b52b686943ac4da8f0876"
+ },
+ "action-remove-white" : {
+ "name" : "action-remove-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-remove",
+ "hash" : "24542d8d3890c8e89b7d60d0efd99e9c"
+ },
+ "action-search" : {
+ "name" : "action-search",
+ "rule" : ".action-search",
+ "hash" : "8fbe318c0633c3de3ce6eb331f891d5c"
+ },
+ "action-search-grey" : {
+ "name" : "action-search-grey",
+ "rule" : ".action-search-grey",
+ "hash" : "a58f5ea5770836de72f67a18b2a2d92b"
+ },
+ "action-search-white" : {
+ "name" : "action-search-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-search",
+ "hash" : "1c1a7b4ac122c6ffa56edda3c7ce35b0"
+ },
+ "action-start-sandcastle" : {
+ "name" : "action-start-sandcastle",
+ "rule" : ".action-start-sandcastle",
+ "hash" : "5aa74bb11fbc26b941f6fa0ed7507c64"
+ },
+ "action-start-sandcastle-grey" : {
+ "name" : "action-start-sandcastle-grey",
+ "rule" : ".action-start-sandcastle-grey",
+ "hash" : "a65b85198bdbed8d5563c515d475316a"
+ },
+ "action-start-sandcastle-white" : {
+ "name" : "action-start-sandcastle-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-start-sandcastle",
+ "hash" : "b99feb063a1e56833419119f426455f0"
+ },
+ "action-subscribe-add" : {
+ "name" : "action-subscribe-add",
+ "rule" : ".action-subscribe-add",
+ "hash" : "5a47685848c39d5449b8ec0985a627e7"
+ },
+ "action-subscribe-add-grey" : {
+ "name" : "action-subscribe-add-grey",
+ "rule" : ".action-subscribe-add-grey",
+ "hash" : "a691ac944079cee6655ff9f4ab321de3"
+ },
+ "action-subscribe-add-white" : {
+ "name" : "action-subscribe-add-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-subscribe-add",
+ "hash" : "1173fbd24131329e2e0c81893c1bd412"
+ },
+ "action-subscribe-auto" : {
+ "name" : "action-subscribe-auto",
+ "rule" : ".action-subscribe-auto",
+ "hash" : "01f6ea8fb35628abe6641b6e88c27c1e"
+ },
+ "action-subscribe-auto-grey" : {
+ "name" : "action-subscribe-auto-grey",
+ "rule" : ".action-subscribe-auto-grey",
+ "hash" : "b956dec1b5ae1d9ae6addffb3aa77a7f"
+ },
+ "action-subscribe-auto-white" : {
+ "name" : "action-subscribe-auto-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-subscribe-auto",
+ "hash" : "8525c0d691c327ddb0500cc27bfa9822"
+ },
+ "action-subscribe-delete" : {
+ "name" : "action-subscribe-delete",
+ "rule" : ".action-subscribe-delete",
+ "hash" : "0d91e4d61349e9e1b7141fdc8d333d84"
+ },
+ "action-subscribe-delete-grey" : {
+ "name" : "action-subscribe-delete-grey",
+ "rule" : ".action-subscribe-delete-grey",
+ "hash" : "16895241e0f9e62610c99e940ee3bcbc"
+ },
+ "action-subscribe-delete-white" : {
+ "name" : "action-subscribe-delete-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-subscribe-delete",
+ "hash" : "e9d5f98355e04b3404706581f6597569"
+ },
+ "action-tag" : {
+ "name" : "action-tag",
+ "rule" : ".action-tag",
+ "hash" : "d4b219d1272879dd50621439e1f33a72"
+ },
+ "action-tag-grey" : {
+ "name" : "action-tag-grey",
+ "rule" : ".action-tag-grey",
+ "hash" : "08507569a675ef6cc85b17870f9f2e91"
+ },
+ "action-tag-white" : {
+ "name" : "action-tag-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-tag",
+ "hash" : "aed3d83123f33e69ae4b7338b23f7c9c"
+ },
+ "action-transcript" : {
+ "name" : "action-transcript",
+ "rule" : ".action-transcript",
+ "hash" : "055b6b1a2999d017fcf87f96c2796c49"
+ },
+ "action-transcript-grey" : {
+ "name" : "action-transcript-grey",
+ "rule" : ".action-transcript-grey",
+ "hash" : "81f66da48452c5235aa9d84edd7831d3"
+ },
+ "action-transcript-white" : {
+ "name" : "action-transcript-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-transcript",
+ "hash" : "e56f623fdf8f059bb80c24944dec6af6"
+ },
+ "action-undo" : {
+ "name" : "action-undo",
+ "rule" : ".action-undo",
+ "hash" : "8f8586333203f466a681b0721cf1b57b"
+ },
+ "action-undo-grey" : {
+ "name" : "action-undo-grey",
+ "rule" : ".action-undo-grey",
+ "hash" : "961216a677dc6c38afe2d4e729417bfb"
+ },
+ "action-undo-white" : {
+ "name" : "action-undo-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-undo",
+ "hash" : "97bd8f43a4db2a97d53975ce42a6232d"
+ },
+ "action-unlock" : {
+ "name" : "action-unlock",
+ "rule" : ".action-unlock",
+ "hash" : "f9d34e15f51777198f307d63d635e1ac"
+ },
+ "action-unlock-grey" : {
+ "name" : "action-unlock-grey",
+ "rule" : ".action-unlock-grey",
+ "hash" : "4e7908dc34c83a6b8dab8c4dd554a98a"
+ },
+ "action-unlock-white" : {
+ "name" : "action-unlock-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-unlock",
+ "hash" : "ceb342bc0a17310cf58c90fd3bb53ce1"
+ },
+ "action-unmerge" : {
+ "name" : "action-unmerge",
+ "rule" : ".action-unmerge",
+ "hash" : "f994dd276cab26c3d5968d0b946dd8bc"
+ },
+ "action-unmerge-grey" : {
+ "name" : "action-unmerge-grey",
+ "rule" : ".action-unmerge-grey",
+ "hash" : "3a82fed2967d8a9d5fe9651c38055db7"
+ },
+ "action-unmerge-white" : {
+ "name" : "action-unmerge-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-unmerge",
+ "hash" : "574e4176d9c2243050958182e487f239"
+ },
+ "action-unpublish" : {
+ "name" : "action-unpublish",
+ "rule" : ".action-unpublish",
+ "hash" : "c2241706bf6857b24ba1739a2fe281b1"
+ },
+ "action-unpublish-grey" : {
+ "name" : "action-unpublish-grey",
+ "rule" : ".action-unpublish-grey",
+ "hash" : "5c9e548386c85d63f7f21699ba54813e"
+ },
+ "action-unpublish-white" : {
+ "name" : "action-unpublish-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-unpublish",
+ "hash" : "a37305e8ea29bc41d83d6b5a11aebe9f"
+ },
+ "action-warning" : {
+ "name" : "action-warning",
+ "rule" : ".action-warning",
+ "hash" : "1c0c7f76a2c43af5532f67f0f8622d7c"
+ },
+ "action-warning-grey" : {
+ "name" : "action-warning-grey",
+ "rule" : ".action-warning-grey",
+ "hash" : "5dc7b0cd75e629ad91437b15901d990a"
+ },
+ "action-warning-white" : {
+ "name" : "action-warning-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-warning",
+ "hash" : "c30c2e287bab73ca454712de6cbe2502"
+ },
+ "action-world" : {
+ "name" : "action-world",
+ "rule" : ".action-world",
+ "hash" : "ae2bf28bf07aab51f54c1ea9beed10cb"
+ },
+ "action-world-grey" : {
+ "name" : "action-world-grey",
+ "rule" : ".action-world-grey",
+ "hash" : "8d332d48b945f152aaf84a7ca83cfbc2"
+ },
+ "action-world-white" : {
+ "name" : "action-world-white",
+ "rule" : ".device-desktop .phabricator-action-view:hover .action-world",
+ "hash" : "401df878395c514a443720a8acd1ab63"
+ },
+ "remarkup-assist-text_b" : {
+ "name" : "remarkup-assist-text_b",
+ "rule" : ".remarkup-assist-b",
+ "hash" : "12c565d4934f6a777c9524baf75cebb6"
+ },
+ "remarkup-assist-text_code" : {
+ "name" : "remarkup-assist-text_code",
+ "rule" : ".remarkup-assist-code",
+ "hash" : "f06f106cb8edb67e8b99d159d704a61a"
+ },
+ "remarkup-assist-text_help" : {
+ "name" : "remarkup-assist-text_help",
+ "rule" : ".remarkup-assist-help",
+ "hash" : "9d54d8224b81de8e3ed7beac0e486257"
+ },
+ "remarkup-assist-text_i" : {
+ "name" : "remarkup-assist-text_i",
+ "rule" : ".remarkup-assist-i",
+ "hash" : "50f83a53f5b094d3d92b619d06fada3c"
+ },
+ "remarkup-assist-text_image" : {
+ "name" : "remarkup-assist-text_image",
+ "rule" : ".remarkup-assist-image",
+ "hash" : "c2869e71cc7cb6178598cd41a19ababb"
+ },
+ "remarkup-assist-text_larger" : {
+ "name" : "remarkup-assist-text_larger",
+ "rule" : ".remarkup-assist-larger",
+ "hash" : "d3165f15a1b3734e4b7088f7b74330ba"
+ },
+ "remarkup-assist-text_meme" : {
+ "name" : "remarkup-assist-text_meme",
+ "rule" : ".remarkup-assist-meme",
+ "hash" : "ed9c4166858ca1caedf5f8e4b8ad587e"
+ },
+ "remarkup-assist-text_ol" : {
+ "name" : "remarkup-assist-text_ol",
+ "rule" : ".remarkup-assist-ol",
+ "hash" : "266b858f5ffc42760fb2e12913a5198a"
+ },
+ "remarkup-assist-text_table" : {
+ "name" : "remarkup-assist-text_table",
+ "rule" : ".remarkup-assist-table",
+ "hash" : "5c2961b35460b3b5b7efdd5bc4e318ca"
+ },
+ "remarkup-assist-text_tag" : {
+ "name" : "remarkup-assist-text_tag",
+ "rule" : ".remarkup-assist-tag",
+ "hash" : "165bd3a4de8d54cf720db9bc64116d25"
+ },
+ "remarkup-assist-text_tt" : {
+ "name" : "remarkup-assist-text_tt",
+ "rule" : ".remarkup-assist-tt",
+ "hash" : "c07e6816500c9cd66fa27758cc902195"
+ },
+ "remarkup-assist-text_ul" : {
+ "name" : "remarkup-assist-text_ul",
+ "rule" : ".remarkup-assist-ul",
+ "hash" : "26f55c0fcf9148879e3fb058ac319100"
+ }
+ },
+ "scales" : [
+ 1,
+ 2
+ ],
+ "header" : "\/**\n * @provides sprite-icon-css\n * @generated\n *\/\n\n.sprite-icon {\n background-image: url(\/rsrc\/image\/sprite-icon.png);\n background-repeat: no-repeat;\n}\n\n@media\nonly screen and (min-device-pixel-ratio: 1.5),\nonly screen and (-webkit-min-device-pixel-ratio: 1.5) {\n .sprite-icon {\n background-image: url(\/rsrc\/image\/sprite-icon-X2.png);\n background-size: {X}px {Y}px;\n }\n}"
}
diff --git a/resources/sprite/manifest/menu.json b/resources/sprite/manifest/menu.json
new file mode 100644
index 0000000000..245e291697
--- /dev/null
+++ b/resources/sprite/manifest/menu.json
@@ -0,0 +1,35 @@
+{
+ "version" : 1,
+ "sprites" : {
+ "bubble" : {
+ "name" : "bubble",
+ "rule" : ".phabricator-main-menu-alert-bubble.alert-unread",
+ "hash" : "07bc6fd60e5c2fa14558c9101cba5261"
+ },
+ "round_bubble" : {
+ "name" : "round_bubble",
+ "rule" : ".phabricator-main-menu-alert-bubble",
+ "hash" : "02de5b1c1720749a566e7a4cf7c2216c"
+ },
+ "seen_have_unread" : {
+ "name" : "seen_have_unread",
+ "rule" : ".alert-notifications:hover .phabricator-main-menu-alert-icon",
+ "hash" : "d0210b3908193ee841db2eeec264a154"
+ },
+ "seen_read_all" : {
+ "name" : "seen_read_all",
+ "rule" : ".alert-notifications .phabricator-main-menu-alert-icon",
+ "hash" : "8d0644ec8fa33330b30b7531272e24f1"
+ },
+ "unseen_any" : {
+ "name" : "unseen_any",
+ "rule" : ".alert-notifications.alert-unread .phabricator-main-menu-alert-icon",
+ "hash" : "0e50bf01f640b2f8231eaef246863f0b"
+ }
+ },
+ "scales" : [
+ 1,
+ 2
+ ],
+ "header" : "\/**\n * @provides sprite-menu-css\n * @generated\n *\/\n\n.sprite-menu {\n background-image: url(\/rsrc\/image\/sprite-menu.png);\n background-repeat: no-repeat;\n}\n\n@media\nonly screen and (min-device-pixel-ratio: 1.5),\nonly screen and (-webkit-min-device-pixel-ratio: 1.5) {\n .sprite-menu {\n background-image: url(\/rsrc\/image\/sprite-menu-X2.png);\n background-size: {X}px {Y}px;\n }\n}"
+}
diff --git a/resources/sprite/notifications_1x/bubble.png b/resources/sprite/notifications_1x/bubble.png
new file mode 100644
index 0000000000..a6c047cb42
Binary files /dev/null and b/resources/sprite/notifications_1x/bubble.png differ
diff --git a/resources/sprite/notifications_1x/round_bubble.png b/resources/sprite/notifications_1x/round_bubble.png
new file mode 100644
index 0000000000..2d2fce1f37
Binary files /dev/null and b/resources/sprite/notifications_1x/round_bubble.png differ
diff --git a/resources/sprite/notifications_1x/seen_have_unread.png b/resources/sprite/notifications_1x/seen_have_unread.png
new file mode 100644
index 0000000000..f07716bd9e
Binary files /dev/null and b/resources/sprite/notifications_1x/seen_have_unread.png differ
diff --git a/resources/sprite/notifications_1x/seen_read_all.png b/resources/sprite/notifications_1x/seen_read_all.png
new file mode 100644
index 0000000000..db8cdb8b66
Binary files /dev/null and b/resources/sprite/notifications_1x/seen_read_all.png differ
diff --git a/resources/sprite/notifications_1x/unseen_any.png b/resources/sprite/notifications_1x/unseen_any.png
new file mode 100644
index 0000000000..f645cd32b3
Binary files /dev/null and b/resources/sprite/notifications_1x/unseen_any.png differ
diff --git a/resources/sprite/notifications_2x/bubble.png b/resources/sprite/notifications_2x/bubble.png
new file mode 100644
index 0000000000..f09dca68b2
Binary files /dev/null and b/resources/sprite/notifications_2x/bubble.png differ
diff --git a/resources/sprite/notifications_2x/round_bubble.png b/resources/sprite/notifications_2x/round_bubble.png
new file mode 100644
index 0000000000..0837ba4b7e
Binary files /dev/null and b/resources/sprite/notifications_2x/round_bubble.png differ
diff --git a/resources/sprite/notifications_2x/seen_have_unread.png b/resources/sprite/notifications_2x/seen_have_unread.png
new file mode 100644
index 0000000000..af875015f7
Binary files /dev/null and b/resources/sprite/notifications_2x/seen_have_unread.png differ
diff --git a/resources/sprite/notifications_2x/seen_read_all.png b/resources/sprite/notifications_2x/seen_read_all.png
new file mode 100644
index 0000000000..f490620930
Binary files /dev/null and b/resources/sprite/notifications_2x/seen_read_all.png differ
diff --git a/resources/sprite/notifications_2x/unseen_any.png b/resources/sprite/notifications_2x/unseen_any.png
new file mode 100644
index 0000000000..d2a7d2617c
Binary files /dev/null and b/resources/sprite/notifications_2x/unseen_any.png differ
diff --git a/scripts/celerity/generate_sprites.php b/scripts/celerity/generate_sprites.php
index 0a101eed4a..a53e4c3faf 100755
--- a/scripts/celerity/generate_sprites.php
+++ b/scripts/celerity/generate_sprites.php
@@ -1,204 +1,223 @@
#!/usr/bin/env php
<?php
require_once dirname(dirname(__FILE__)).'/__init_script__.php';
$args = new PhutilArgumentParser($argv);
$args->setTagline('regenerate CSS sprite sheets');
$args->setSynopsis(<<<EOHELP
**sprites**
Rebuild CSS sprite sheets.
EOHELP
);
$args->parseStandardArguments();
$args->parse(
array(
array(
'name' => 'source',
'param' => 'directory',
'help' => 'Directory with sprite sources.',
- )
+ ),
+ array(
+ 'name' => 'force',
+ 'help' => 'Force regeneration even if sources have not changed.',
+ ),
));
$srcroot = $args->getArg('source');
if (!$srcroot) {
throw new Exception(
"You must specify a source directory with '--source'.");
}
$root = dirname(phutil_get_library_root('phabricator'));
$webroot = $root.'/webroot/rsrc';
$webroot = Filesystem::readablePath($webroot);
function glx($x) {
return (60 + (48 * $x));
}
function gly($y) {
return (110 + (48 * $y));
}
$sheet = new PhutilSpriteSheet();
$at = '@';
$sheet->setCSSHeader(<<<EOCSS
/**
* @provides autosprite-css
* {$at}generated
*/
.autosprite {
background-image: url(/rsrc/image/autosprite.png);
background-repeat: no-repeat;
}
EOCSS
);
$menu_normal_template = id(new PhutilSprite())
->setSourceFile($srcroot.'/menu_normal_1x.png')
->setSourceSize(30, 30);
$menu_hover_template = id(new PhutilSprite())
->setSourceFile($srcroot.'/menu_hover_1x.png')
->setSourceSize(30, 30);
$menu_selected_template = id(new PhutilSprite())
->setSourceFile($srcroot.'/menu_selected_1x.png')
->setSourceSize(30, 30);
$menu_map = array(
'' => $menu_normal_template,
'-selected' => $menu_selected_template,
':hover' => $menu_hover_template,
);
$icon_map = array(
'help' => array(4, 19),
'settings' => array(0, 28),
'logout' => array(3, 6),
- 'notifications' => array(5, 20),
'task' => array(1, 15),
);
foreach ($icon_map as $icon => $coords) {
list($x, $y) = $coords;
foreach ($menu_map as $suffix => $template) {
$sheet->addSprite(
id(clone $template)
->setSourcePosition(glx($x), gly($y))
->setTargetCSS('.main-menu-item-icon-'.$icon.$suffix));
}
}
$app_template_large = id(new PhutilSprite())
->setSourceFile($srcroot.'/application_large_1x.png')
->setSourceSize(60, 60);
$app_template_large_hover = id(new PhutilSprite())
->setSourceFile($srcroot.'/application_large_hover_1x.png')
->setSourceSize(60, 60);
$app_template_small = id(new PhutilSprite())
->setSourceFile($srcroot.'/menu_normal_1x.png')
->setSourceSize(30, 30);
$app_template_small_hover = id(new PhutilSprite())
->setSourceFile($srcroot.'/menu_hover_1x.png')
->setSourceSize(30, 30);
$app_template_small_selected = id(new PhutilSprite())
->setSourceFile($srcroot.'/menu_selected_1x.png')
->setSourceSize(30, 30);
$app_source_map = array(
'-large' => array($app_template_large, 2),
// For the application launch view, we only show hover state on the desktop
// because it looks glitchy on touch devices. We show the hover state when
// the surrounding <a> is hovered, not the icon itself.
'-large /* hover */' => array(
$app_template_large_hover,
2,
'.device-desktop .phabricator-application-launch-container:hover '),
'' => array($app_template_small, 1),
// Show hover state only for the desktop.
':hover' => array(
$app_template_small_hover,
1,
'.device-desktop ',
),
'-selected' => array($app_template_small_selected, 1),
);
$app_map = array(
'differential' => array(9, 1),
'fact' => array(2, 4),
'mail' => array(0, 1),
'diffusion' => array(7, 13),
'slowvote' => array(1, 4),
'phriction' => array(1, 7),
'maniphest' => array(3, 24),
'flags' => array(6, 26),
'settings' => array(9, 11),
'applications' => array(0, 34),
'default' => array(9, 9),
'people' => array(3, 0),
'ponder' => array(4, 35),
'calendar' => array(5, 4),
'files' => array(6, 3),
'projects' => array(7, 35),
'daemons' => array(7, 6),
'herald' => array(1, 5),
'countdown' => array(7, 5),
'conduit' => array(7, 30),
'feed' => array(3, 11),
'paste' => array(9, 2),
'audit' => array(8, 19),
'uiexample' => array(7, 28),
'phpast' => array(6, 31),
'owners' => array(5, 32),
'phid' => array(9, 25),
'diviner' => array(1, 35),
'repositories' => array(8, 13),
'phame' => array(8, 4),
'macro' => array(0, 31),
'releeph' => array(5, 18),
'drydock' => array(5, 25),
);
$xadj = -1;
foreach ($app_map as $icon => $coords) {
list($x, $y) = $coords;
foreach ($app_source_map as $suffix => $spec) {
list($template, $scale) = $spec;
if (isset($spec[2])) {
$prefix = $spec[2];
} else {
$prefix = '';
}
$sheet->addSprite(
id(clone $template)
->setSourcePosition(($xadj + glx($x)) * $scale, gly($y) * $scale)
->setTargetCSS($prefix.'.app-'.$icon.$suffix));
}
}
$sheet->generateImage($webroot.'/image/autosprite.png');
$sheet->generateCSS($webroot.'/css/autosprite.css');
/* -( Icons Sheet )-------------------------------------------------------- */
$generator = new CeleritySpriteGenerator();
-$generator
- ->buildIconSheet()
- ->setScales(array(1, 2))
- ->generateImage($webroot.'/image/sprite-icon.png', 1)
- ->generateImage($webroot.'/image/sprite-icon-X2.png', 2)
- ->generateCSS($webroot.'/css/sprite-icon.css')
- ->generateManifest($root.'/resources/sprite/manifest/icon.json');
+$sheets = array(
+ 'icon' => $generator->buildIconSheet(),
+ 'menu' => $generator->buildMenuSheet(),
+);
+
+foreach ($sheets as $name => $sheet) {
+ $manifest_path = $root.'/resources/sprite/manifest/'.$name.'.json';
+ if (!$args->getArg('force')) {
+ if (Filesystem::pathExists($manifest_path)) {
+ $data = Filesystem::readFile($manifest_path);
+ $data = json_decode($data, true);
+ if (!$sheet->needsRegeneration($data)) {
+ continue;
+ }
+ }
+ }
+
+ $sheet
+ ->generateImage($webroot."/image/sprite-{$name}.png", 1)
+ ->generateImage($webroot."/image/sprite-{$name}-X2.png", 2)
+ ->generateCSS($webroot."/css/sprite-{$name}.css")
+ ->generateManifest($root."/resources/sprite/manifest/{$name}.json");
+}
echo "Done.\n";
diff --git a/src/__celerity_resource_map__.php b/src/__celerity_resource_map__.php
index a57c849851..c6285acfc8 100644
--- a/src/__celerity_resource_map__.php
+++ b/src/__celerity_resource_map__.php
@@ -1,3507 +1,3530 @@
<?php
/**
* This file is automatically generated. Use 'celerity_mapper.php' to rebuild
* it.
* @generated
*/
celerity_register_resource_map(array(
'/rsrc/image/2x/header_logo.png' =>
array(
'hash' => '89ac510efefeffb048a3d7e85161b7b6',
'uri' => '/res/89ac510e/rsrc/image/2x/header_logo.png',
'disk' => '/rsrc/image/2x/header_logo.png',
'type' => 'png',
),
'/rsrc/image/apps.png' =>
array(
'hash' => 'f7cb4abeb73245fea4098a02fd784653',
'uri' => '/res/f7cb4abe/rsrc/image/apps.png',
'disk' => '/rsrc/image/apps.png',
'type' => 'png',
),
'/rsrc/image/appstatus_empty.png' =>
array(
'hash' => '2f8102e0a0f5a0980d87d4ab4ba8c8fd',
'uri' => '/res/2f8102e0/rsrc/image/appstatus_empty.png',
'disk' => '/rsrc/image/appstatus_empty.png',
'type' => 'png',
),
'/rsrc/image/appstatus_info.png' =>
array(
'hash' => '407de6daf2edc4a8b68e2e369f4fc8cb',
'uri' => '/res/407de6da/rsrc/image/appstatus_info.png',
'disk' => '/rsrc/image/appstatus_info.png',
'type' => 'png',
),
'/rsrc/image/appstatus_needs.png' =>
array(
'hash' => '2c1e193bc786ca4fca0b851ed9cd3d92',
'uri' => '/res/2c1e193b/rsrc/image/appstatus_needs.png',
'disk' => '/rsrc/image/appstatus_needs.png',
'type' => 'png',
),
'/rsrc/image/appstatus_okay.png' =>
array(
'hash' => 'd00e683ee1c61d0ccced1200775cdbb5',
'uri' => '/res/d00e683e/rsrc/image/appstatus_okay.png',
'disk' => '/rsrc/image/appstatus_okay.png',
'type' => 'png',
),
'/rsrc/image/autosprite.png' =>
array(
- 'hash' => '0b1fd04e70272fe946dff765237d132a',
- 'uri' => '/res/0b1fd04e/rsrc/image/autosprite.png',
+ 'hash' => '7d4b49765c805bad0e2b59c0b578d975',
+ 'uri' => '/res/7d4b4976/rsrc/image/autosprite.png',
'disk' => '/rsrc/image/autosprite.png',
'type' => 'png',
),
'/rsrc/image/avatar.png' =>
array(
'hash' => '1c5f255071537f05406adee86717ff27',
'uri' => '/res/1c5f2550/rsrc/image/avatar.png',
'disk' => '/rsrc/image/avatar.png',
'type' => 'png',
),
'/rsrc/image/button_apps.png' =>
array(
'hash' => 'cc29f793afd01b15af613562225118f3',
'uri' => '/res/cc29f793/rsrc/image/button_apps.png',
'disk' => '/rsrc/image/button_apps.png',
'type' => 'png',
),
'/rsrc/image/button_content.png' =>
array(
'hash' => '87cc5797352097b4b3d7541e6c46f032',
'uri' => '/res/87cc5797/rsrc/image/button_content.png',
'disk' => '/rsrc/image/button_content.png',
'type' => 'png',
),
'/rsrc/image/button_gradients.png' =>
array(
'hash' => '9157bc3cc3321e0d04e94532dfe50ce7',
'uri' => '/res/9157bc3c/rsrc/image/button_gradients.png',
'disk' => '/rsrc/image/button_gradients.png',
'type' => 'png',
),
'/rsrc/image/button_menu.png' =>
array(
'hash' => '5742857c7734d9d25be1125f5737fe0e',
'uri' => '/res/5742857c/rsrc/image/button_menu.png',
'disk' => '/rsrc/image/button_menu.png',
'type' => 'png',
),
'/rsrc/image/checker_dark.png' =>
array(
'hash' => '640f795343df76ebe5409aae6187e57f',
'uri' => '/res/640f7953/rsrc/image/checker_dark.png',
'disk' => '/rsrc/image/checker_dark.png',
'type' => 'png',
),
'/rsrc/image/checker_light.png' =>
array(
'hash' => '7f8f3ef8beb0f2cc4cc69efb9e1c3308',
'uri' => '/res/7f8f3ef8/rsrc/image/checker_light.png',
'disk' => '/rsrc/image/checker_light.png',
'type' => 'png',
),
'/rsrc/image/credit_cards.png' =>
array(
'hash' => '681448de424ea159b6ea68af04c046ae',
'uri' => '/res/681448de/rsrc/image/credit_cards.png',
'disk' => '/rsrc/image/credit_cards.png',
'type' => 'png',
),
'/rsrc/image/divot.png' =>
array(
'hash' => '3be267bd11ea375bf68e808893718e0e',
'uri' => '/res/3be267bd/rsrc/image/divot.png',
'disk' => '/rsrc/image/divot.png',
'type' => 'png',
),
'/rsrc/image/grippy_texture.png' =>
array(
'hash' => 'a8945e12ceeaddd5b491a8d81cfa19c1',
'uri' => '/res/a8945e12/rsrc/image/grippy_texture.png',
'disk' => '/rsrc/image/grippy_texture.png',
'type' => 'png',
),
'/rsrc/image/header_logo.png' =>
array(
'hash' => '96a289484c7a0e2bf1553e422f4d33bd',
'uri' => '/res/96a28948/rsrc/image/header_logo.png',
'disk' => '/rsrc/image/header_logo.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/arrow_branch.png' =>
array(
'hash' => 'f27b67520766e3d971722bcff703f3a8',
'uri' => '/res/f27b6752/rsrc/image/icon/fatcow/arrow_branch.png',
'disk' => '/rsrc/image/icon/fatcow/arrow_branch.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/arrow_merge.png' =>
array(
'hash' => 'c4bd97f3b1257439e2123ef69d2194d0',
'uri' => '/res/c4bd97f3/rsrc/image/icon/fatcow/arrow_merge.png',
'disk' => '/rsrc/image/icon/fatcow/arrow_merge.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/bullet_black.png' =>
array(
'hash' => '718f9c560a13766796f1be7dfaadeeab',
'uri' => '/res/718f9c56/rsrc/image/icon/fatcow/bullet_black.png',
'disk' => '/rsrc/image/icon/fatcow/bullet_black.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/bullet_orange.png' =>
array(
'hash' => 'c3bf91b65baacb27f2af143ab9180119',
'uri' => '/res/c3bf91b6/rsrc/image/icon/fatcow/bullet_orange.png',
'disk' => '/rsrc/image/icon/fatcow/bullet_orange.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/bullet_red.png' =>
array(
'hash' => '00273e4aa6ea3de630295610d6c9560c',
'uri' => '/res/00273e4a/rsrc/image/icon/fatcow/bullet_red.png',
'disk' => '/rsrc/image/icon/fatcow/bullet_red.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/calendar_edit.png' =>
array(
'hash' => 'de249c0f4f37bf5b2c69ff39ec5573fb',
'uri' => '/res/de249c0f/rsrc/image/icon/fatcow/calendar_edit.png',
'disk' => '/rsrc/image/icon/fatcow/calendar_edit.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/document_black.png' =>
array(
'hash' => '44d65a7f05a9c921719deedc160d68f7',
'uri' => '/res/44d65a7f/rsrc/image/icon/fatcow/document_black.png',
'disk' => '/rsrc/image/icon/fatcow/document_black.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/flag_blue.png' =>
array(
'hash' => '75a080492f900fbe489e4b27e403962b',
'uri' => '/res/75a08049/rsrc/image/icon/fatcow/flag_blue.png',
'disk' => '/rsrc/image/icon/fatcow/flag_blue.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/flag_finish.png' =>
array(
'hash' => '4af11fc7fab8e4610cbc3c88a02d4f78',
'uri' => '/res/4af11fc7/rsrc/image/icon/fatcow/flag_finish.png',
'disk' => '/rsrc/image/icon/fatcow/flag_finish.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/flag_ghost.png' =>
array(
'hash' => '14c9f30a37b43f276f27a27a924bf02d',
'uri' => '/res/14c9f30a/rsrc/image/icon/fatcow/flag_ghost.png',
'disk' => '/rsrc/image/icon/fatcow/flag_ghost.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/flag_green.png' =>
array(
'hash' => 'fed01374cd396cb774872762dcc447e1',
'uri' => '/res/fed01374/rsrc/image/icon/fatcow/flag_green.png',
'disk' => '/rsrc/image/icon/fatcow/flag_green.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/flag_orange.png' =>
array(
'hash' => '88008cb8bb99761a37e5a743e2455aeb',
'uri' => '/res/88008cb8/rsrc/image/icon/fatcow/flag_orange.png',
'disk' => '/rsrc/image/icon/fatcow/flag_orange.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/flag_pink.png' =>
array(
'hash' => '2f199f06ffc3dfc81b7561a057e0bc33',
'uri' => '/res/2f199f06/rsrc/image/icon/fatcow/flag_pink.png',
'disk' => '/rsrc/image/icon/fatcow/flag_pink.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/flag_purple.png' =>
array(
'hash' => '16358629dc86c39550b575586eb5df80',
'uri' => '/res/16358629/rsrc/image/icon/fatcow/flag_purple.png',
'disk' => '/rsrc/image/icon/fatcow/flag_purple.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/flag_red.png' =>
array(
'hash' => '210c28b4d93c439a499f5814f5e05772',
'uri' => '/res/210c28b4/rsrc/image/icon/fatcow/flag_red.png',
'disk' => '/rsrc/image/icon/fatcow/flag_red.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/flag_yellow.png' =>
array(
'hash' => 'bdfd73744a80bb80329ae50bc8a5f962',
'uri' => '/res/bdfd7374/rsrc/image/icon/fatcow/flag_yellow.png',
'disk' => '/rsrc/image/icon/fatcow/flag_yellow.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/folder.png' =>
array(
'hash' => '25e46cf9d210dde2242332296f79938c',
'uri' => '/res/25e46cf9/rsrc/image/icon/fatcow/folder.png',
'disk' => '/rsrc/image/icon/fatcow/folder.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/folder_go.png' =>
array(
'hash' => 'ba922ff7959309f51a14cb7ed5124d8b',
'uri' => '/res/ba922ff7/rsrc/image/icon/fatcow/folder_go.png',
'disk' => '/rsrc/image/icon/fatcow/folder_go.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/key_question.png' =>
array(
'hash' => '530a6448a4b91edec091a9292ccfd3d9',
'uri' => '/res/530a6448/rsrc/image/icon/fatcow/key_question.png',
'disk' => '/rsrc/image/icon/fatcow/key_question.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/link.png' =>
array(
'hash' => 'be1bea49b216548433014f3324902928',
'uri' => '/res/be1bea49/rsrc/image/icon/fatcow/link.png',
'disk' => '/rsrc/image/icon/fatcow/link.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/page_white_edit.png' =>
array(
'hash' => 'e7b7e7f2d9730bc80bc5c9eac1f3e36d',
'uri' => '/res/e7b7e7f2/rsrc/image/icon/fatcow/page_white_edit.png',
'disk' => '/rsrc/image/icon/fatcow/page_white_edit.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/page_white_link.png' =>
array(
'hash' => '1cfbad14412bda6c6f132dcc7c8725fd',
'uri' => '/res/1cfbad14/rsrc/image/icon/fatcow/page_white_link.png',
'disk' => '/rsrc/image/icon/fatcow/page_white_link.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/page_white_put.png' =>
array(
'hash' => 'bb7308aa5ac40137a8262da395a267fd',
'uri' => '/res/bb7308aa/rsrc/image/icon/fatcow/page_white_put.png',
'disk' => '/rsrc/image/icon/fatcow/page_white_put.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/page_white_text.png' =>
array(
'hash' => 'e47d590b626f617fb7d1d44e96e8fd11',
'uri' => '/res/e47d590b/rsrc/image/icon/fatcow/page_white_text.png',
'disk' => '/rsrc/image/icon/fatcow/page_white_text.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/source/conduit.png' =>
array(
'hash' => '1cae0656580aa3cd0b54b9d98306b1b9',
'uri' => '/res/1cae0656/rsrc/image/icon/fatcow/source/conduit.png',
'disk' => '/rsrc/image/icon/fatcow/source/conduit.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/source/email.png' =>
array(
'hash' => '93bdb3e168da1ed68f50c42125729d4e',
'uri' => '/res/93bdb3e1/rsrc/image/icon/fatcow/source/email.png',
'disk' => '/rsrc/image/icon/fatcow/source/email.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/source/fax.png' =>
array(
'hash' => 'd7dedf229841f2d041b347afd881596f',
'uri' => '/res/d7dedf22/rsrc/image/icon/fatcow/source/fax.png',
'disk' => '/rsrc/image/icon/fatcow/source/fax.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/source/mobile.png' =>
array(
'hash' => '786e7146d1e7d7318baf76c9d2baad97',
'uri' => '/res/786e7146/rsrc/image/icon/fatcow/source/mobile.png',
'disk' => '/rsrc/image/icon/fatcow/source/mobile.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/source/tablet.png' =>
array(
'hash' => '374cd40e4965be6b2fbdef4059d0ca05',
'uri' => '/res/374cd40e/rsrc/image/icon/fatcow/source/tablet.png',
'disk' => '/rsrc/image/icon/fatcow/source/tablet.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/source/web.png' =>
array(
'hash' => 'f4882a8f5619ba505ca033f72a340635',
'uri' => '/res/f4882a8f/rsrc/image/icon/fatcow/source/web.png',
'disk' => '/rsrc/image/icon/fatcow/source/web.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/thumbnails/default160x120.png' =>
array(
'hash' => '1b52ebd1fe0eee3ed0abfc382991b265',
'uri' => '/res/1b52ebd1/rsrc/image/icon/fatcow/thumbnails/default160x120.png',
'disk' => '/rsrc/image/icon/fatcow/thumbnails/default160x120.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/thumbnails/default60x45.png' =>
array(
'hash' => '048d851d8d1daad4754e891e734c1899',
'uri' => '/res/048d851d/rsrc/image/icon/fatcow/thumbnails/default60x45.png',
'disk' => '/rsrc/image/icon/fatcow/thumbnails/default60x45.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/thumbnails/image160x120.png' =>
array(
'hash' => '434acbd8dbbc2da9f09f6205a396eba1',
'uri' => '/res/434acbd8/rsrc/image/icon/fatcow/thumbnails/image160x120.png',
'disk' => '/rsrc/image/icon/fatcow/thumbnails/image160x120.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/thumbnails/image60x45.png' =>
array(
'hash' => '29f7872dc53588fe0b8f0b330c7ee23a',
'uri' => '/res/29f7872d/rsrc/image/icon/fatcow/thumbnails/image60x45.png',
'disk' => '/rsrc/image/icon/fatcow/thumbnails/image60x45.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/thumbnails/pdf160x120.png' =>
array(
'hash' => '39d2e22541658a3472ba41ae2fa548e5',
'uri' => '/res/39d2e225/rsrc/image/icon/fatcow/thumbnails/pdf160x120.png',
'disk' => '/rsrc/image/icon/fatcow/thumbnails/pdf160x120.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/thumbnails/pdf60x45.png' =>
array(
'hash' => 'b3572e9317cbed5184d12bdfabed2727',
'uri' => '/res/b3572e93/rsrc/image/icon/fatcow/thumbnails/pdf60x45.png',
'disk' => '/rsrc/image/icon/fatcow/thumbnails/pdf60x45.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/thumbnails/zip160x120.png' =>
array(
'hash' => 'e505108688a903b5cfb674707a289bcc',
'uri' => '/res/e5051086/rsrc/image/icon/fatcow/thumbnails/zip160x120.png',
'disk' => '/rsrc/image/icon/fatcow/thumbnails/zip160x120.png',
'type' => 'png',
),
'/rsrc/image/icon/fatcow/thumbnails/zip60x45.png' =>
array(
'hash' => 'f00716f4e8f7a95e70d43504f06be0a6',
'uri' => '/res/f00716f4/rsrc/image/icon/fatcow/thumbnails/zip60x45.png',
'disk' => '/rsrc/image/icon/fatcow/thumbnails/zip60x45.png',
'type' => 'png',
),
'/rsrc/image/icon/lightbox/close-2.png' =>
array(
'hash' => '72ff3ddcc1ed5d19a715ed6242114b53',
'uri' => '/res/72ff3ddc/rsrc/image/icon/lightbox/close-2.png',
'disk' => '/rsrc/image/icon/lightbox/close-2.png',
'type' => 'png',
),
'/rsrc/image/icon/lightbox/close-hover-2.png' =>
array(
'hash' => '6ad4bd4a7820547a1d9041752546ba16',
'uri' => '/res/6ad4bd4a/rsrc/image/icon/lightbox/close-hover-2.png',
'disk' => '/rsrc/image/icon/lightbox/close-hover-2.png',
'type' => 'png',
),
'/rsrc/image/icon/lightbox/left-arrow-2.png' =>
array(
'hash' => 'd84cbb0d42739f87b8f25b2f1d2f1153',
'uri' => '/res/d84cbb0d/rsrc/image/icon/lightbox/left-arrow-2.png',
'disk' => '/rsrc/image/icon/lightbox/left-arrow-2.png',
'type' => 'png',
),
'/rsrc/image/icon/lightbox/left-arrow-hover-2.png' =>
array(
'hash' => 'cdf05f98fff3f390cd8df0c89894a3e1',
'uri' => '/res/cdf05f98/rsrc/image/icon/lightbox/left-arrow-hover-2.png',
'disk' => '/rsrc/image/icon/lightbox/left-arrow-hover-2.png',
'type' => 'png',
),
'/rsrc/image/icon/lightbox/right-arrow-2.png' =>
array(
'hash' => '52021038cb6995c71f62a804bc2d420d',
'uri' => '/res/52021038/rsrc/image/icon/lightbox/right-arrow-2.png',
'disk' => '/rsrc/image/icon/lightbox/right-arrow-2.png',
'type' => 'png',
),
'/rsrc/image/icon/lightbox/right-arrow-hover-2.png' =>
array(
'hash' => '65d5756b7b9cfcdeb2eb197a9aa6bbd2',
'uri' => '/res/65d5756b/rsrc/image/icon/lightbox/right-arrow-hover-2.png',
'disk' => '/rsrc/image/icon/lightbox/right-arrow-hover-2.png',
'type' => 'png',
),
'/rsrc/image/icon/subscribe.png' =>
array(
'hash' => '5f47a4b17de245af39a4e7a097e40623',
'uri' => '/res/5f47a4b1/rsrc/image/icon/subscribe.png',
'disk' => '/rsrc/image/icon/subscribe.png',
'type' => 'png',
),
'/rsrc/image/icon/tango/attachment.png' =>
array(
'hash' => '776fed2de89803fd8a0ba4b9deede230',
'uri' => '/res/776fed2d/rsrc/image/icon/tango/attachment.png',
'disk' => '/rsrc/image/icon/tango/attachment.png',
'type' => 'png',
),
'/rsrc/image/icon/tango/edit.png' =>
array(
'hash' => 'c0028d99dcf4e9559bbf3c88ce2d8a8d',
'uri' => '/res/c0028d99/rsrc/image/icon/tango/edit.png',
'disk' => '/rsrc/image/icon/tango/edit.png',
'type' => 'png',
),
'/rsrc/image/icon/tango/go-down.png' =>
array(
'hash' => '96862812cbb0445573c264dc057b8300',
'uri' => '/res/96862812/rsrc/image/icon/tango/go-down.png',
'disk' => '/rsrc/image/icon/tango/go-down.png',
'type' => 'png',
),
'/rsrc/image/icon/tango/log.png' =>
array(
'hash' => 'a6f72499bef279ff6807a7dbc5148f1e',
'uri' => '/res/a6f72499/rsrc/image/icon/tango/log.png',
'disk' => '/rsrc/image/icon/tango/log.png',
'type' => 'png',
),
'/rsrc/image/icon/tango/upload.png' =>
array(
'hash' => '8c11b63d6d99db3d7159c5d9a94e3062',
'uri' => '/res/8c11b63d/rsrc/image/icon/tango/upload.png',
'disk' => '/rsrc/image/icon/tango/upload.png',
'type' => 'png',
),
'/rsrc/image/icon/unsubscribe.png' =>
array(
'hash' => '29429ad65aa3af50b072b32087057361',
'uri' => '/res/29429ad6/rsrc/image/icon/unsubscribe.png',
'disk' => '/rsrc/image/icon/unsubscribe.png',
'type' => 'png',
),
'/rsrc/image/lines.png' =>
array(
'hash' => '0eb5778b34dd4fcee53b9924b88e0828',
'uri' => '/res/0eb5778b/rsrc/image/lines.png',
'disk' => '/rsrc/image/lines.png',
'type' => 'png',
),
'/rsrc/image/loading.gif' =>
array(
'hash' => '664297671941142f37d8c89e717ff2ce',
'uri' => '/res/66429767/rsrc/image/loading.gif',
'disk' => '/rsrc/image/loading.gif',
'type' => 'gif',
),
'/rsrc/image/main_texture.png' =>
array(
'hash' => 'e34d8143384721be73ec9b7532a977ab',
'uri' => '/res/e34d8143/rsrc/image/main_texture.png',
'disk' => '/rsrc/image/main_texture.png',
'type' => 'png',
),
'/rsrc/image/menu_texture.png' =>
array(
'hash' => '42193f24a52bd94be596c442d59a68ce',
'uri' => '/res/42193f24/rsrc/image/menu_texture.png',
'disk' => '/rsrc/image/menu_texture.png',
'type' => 'png',
),
'/rsrc/image/nyan.gif' =>
array(
'hash' => '03c40be4e004e6468d62b503756a587e',
'uri' => '/res/03c40be4/rsrc/image/nyan.gif',
'disk' => '/rsrc/image/nyan.gif',
'type' => 'gif',
),
'/rsrc/image/search.png' =>
array(
'hash' => 'ff7da044e6f923b8f569dec11f97e5e5',
'uri' => '/res/ff7da044/rsrc/image/search.png',
'disk' => '/rsrc/image/search.png',
'type' => 'png',
),
'/rsrc/image/sprite-icon-X2.png' =>
array(
'hash' => '2ed96382cab2930fb799a39e3f66f4f1',
'uri' => '/res/2ed96382/rsrc/image/sprite-icon-X2.png',
'disk' => '/rsrc/image/sprite-icon-X2.png',
'type' => 'png',
),
'/rsrc/image/sprite-icon.png' =>
array(
'hash' => '3ad6f08b9770c3150a420d0ab67f6282',
'uri' => '/res/3ad6f08b/rsrc/image/sprite-icon.png',
'disk' => '/rsrc/image/sprite-icon.png',
'type' => 'png',
),
+ '/rsrc/image/sprite-menu-X2.png' =>
+ array(
+ 'hash' => 'a7d32533fc67766ed44acc37bb1c8b64',
+ 'uri' => '/res/a7d32533/rsrc/image/sprite-menu-X2.png',
+ 'disk' => '/rsrc/image/sprite-menu-X2.png',
+ 'type' => 'png',
+ ),
+ '/rsrc/image/sprite-menu.png' =>
+ array(
+ 'hash' => '0b2d293e89259d70aacb0c92a49e6a0c',
+ 'uri' => '/res/0b2d293e/rsrc/image/sprite-menu.png',
+ 'disk' => '/rsrc/image/sprite-menu.png',
+ 'type' => 'png',
+ ),
'/rsrc/image/sprite.png' =>
array(
'hash' => '8c6200d3191c0deea30f22e7b8166b15',
'uri' => '/res/8c6200d3/rsrc/image/sprite.png',
'disk' => '/rsrc/image/sprite.png',
'type' => 'png',
),
'/rsrc/swf/aphlict.swf' =>
array(
'hash' => '4b9a9d83bebaf254f3790e87b45c1f92',
'uri' => '/res/4b9a9d83/rsrc/swf/aphlict.swf',
'disk' => '/rsrc/swf/aphlict.swf',
'type' => 'swf',
),
'aphront-attached-file-view-css' =>
array(
'uri' => '/res/a6ca5487/rsrc/css/aphront/attached-file-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/attached-file-view.css',
),
'aphront-calendar-view-css' =>
array(
'uri' => '/res/31e92d4d/rsrc/css/aphront/calendar-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/calendar-view.css',
),
'aphront-contextbar-view-css' =>
array(
'uri' => '/res/9e0c2ed7/rsrc/css/aphront/context-bar.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/context-bar.css',
),
'aphront-crumbs-view-css' =>
array(
'uri' => '/res/699be12a/rsrc/css/aphront/crumbs-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/crumbs-view.css',
),
'aphront-dark-console-css' =>
array(
'uri' => '/res/1adffcf3/rsrc/css/aphront/dark-console.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/dark-console.css',
),
'aphront-dialog-view-css' =>
array(
'uri' => '/res/ae4f5352/rsrc/css/aphront/dialog-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/dialog-view.css',
),
'aphront-error-view-css' =>
array(
'uri' => '/res/410dbe72/rsrc/css/aphront/error-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/error-view.css',
),
'aphront-form-view-css' =>
array(
'uri' => '/res/c5c3105a/rsrc/css/aphront/form-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/form-view.css',
),
'aphront-headsup-action-list-view-css' =>
array(
'uri' => '/res/1dce0ad7/rsrc/css/aphront/headsup-action-list-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/headsup-action-list-view.css',
),
'aphront-headsup-view-css' =>
array(
'uri' => '/res/cf759e39/rsrc/css/aphront/headsup.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/headsup.css',
),
'aphront-list-filter-view-css' =>
array(
'uri' => '/res/0f5ddaba/rsrc/css/aphront/list-filter-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/list-filter-view.css',
),
'aphront-pager-view-css' =>
array(
'uri' => '/res/43fb79f0/rsrc/css/aphront/pager-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/pager-view.css',
),
'aphront-panel-view-css' =>
array(
'uri' => '/res/77bb2527/rsrc/css/aphront/panel-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/panel-view.css',
),
'aphront-request-failure-view-css' =>
array(
'uri' => '/res/c9a43002/rsrc/css/aphront/request-failure-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/request-failure-view.css',
),
'aphront-side-nav-view-css' =>
array(
'uri' => '/res/3e641619/rsrc/css/aphront/side-nav-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/side-nav-view.css',
),
'aphront-table-view-css' =>
array(
'uri' => '/res/732d5e1f/rsrc/css/aphront/table-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/table-view.css',
),
'aphront-tokenizer-control-css' =>
array(
'uri' => '/res/f4570596/rsrc/css/aphront/tokenizer.css',
'type' => 'css',
'requires' =>
array(
0 => 'aphront-typeahead-control-css',
),
'disk' => '/rsrc/css/aphront/tokenizer.css',
),
'aphront-tooltip-css' =>
array(
'uri' => '/res/e0fa3a98/rsrc/css/aphront/tooltip.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/tooltip.css',
),
'aphront-typeahead-control-css' =>
array(
'uri' => '/res/311e8830/rsrc/css/aphront/typeahead.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/typeahead.css',
),
'autosprite-css' =>
array(
- 'uri' => '/res/e1084d7c/rsrc/css/autosprite.css',
+ 'uri' => '/res/dc17189f/rsrc/css/autosprite.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/autosprite.css',
),
'differential-changeset-view-css' =>
array(
'uri' => '/res/e26e4f76/rsrc/css/application/differential/changeset-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/differential/changeset-view.css',
),
'differential-core-view-css' =>
array(
'uri' => '/res/7901260e/rsrc/css/application/differential/core.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/differential/core.css',
),
'differential-inline-comment-editor' =>
array(
'uri' => '/res/1bc649b7/rsrc/js/application/differential/DifferentialInlineCommentEditor.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-dom',
1 => 'javelin-util',
2 => 'javelin-stratcom',
3 => 'javelin-install',
4 => 'javelin-request',
5 => 'javelin-workflow',
),
'disk' => '/rsrc/js/application/differential/DifferentialInlineCommentEditor.js',
),
'differential-local-commits-view-css' =>
array(
'uri' => '/res/8cdacd82/rsrc/css/application/differential/local-commits-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/differential/local-commits-view.css',
),
'differential-results-table-css' =>
array(
'uri' => '/res/470b474d/rsrc/css/application/differential/results-table.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/differential/results-table.css',
),
'differential-revision-add-comment-css' =>
array(
'uri' => '/res/849748d3/rsrc/css/application/differential/add-comment.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/differential/add-comment.css',
),
'differential-revision-comment-css' =>
array(
'uri' => '/res/5e613a7f/rsrc/css/application/differential/revision-comment.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/differential/revision-comment.css',
),
'differential-revision-comment-list-css' =>
array(
'uri' => '/res/3b31faa3/rsrc/css/application/differential/revision-comment-list.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/differential/revision-comment-list.css',
),
'differential-revision-history-css' =>
array(
'uri' => '/res/0d7d515d/rsrc/css/application/differential/revision-history.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/differential/revision-history.css',
),
'differential-revision-list-css' =>
array(
'uri' => '/res/7659ad8d/rsrc/css/application/differential/revision-list.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/differential/revision-list.css',
),
'differential-table-of-contents-css' =>
array(
'uri' => '/res/0ac99a19/rsrc/css/application/differential/table-of-contents.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/differential/table-of-contents.css',
),
'diffusion-commit-view-css' =>
array(
'uri' => '/res/b445944e/rsrc/css/application/diffusion/commit-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/diffusion/commit-view.css',
),
'diffusion-icons-css' =>
array(
'uri' => '/res/b93e32c9/rsrc/css/application/diffusion/diffusion-icons.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/diffusion/diffusion-icons.css',
),
'diffusion-source-css' =>
array(
'uri' => '/res/6a28b429/rsrc/css/application/diffusion/diffusion-source.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/diffusion/diffusion-source.css',
),
'files-css' =>
array(
'uri' => '/res/a265a77d/rsrc/css/application/files/files.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/files/files.css',
),
'herald-css' =>
array(
'uri' => '/res/5051f3ab/rsrc/css/application/herald/herald.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/herald/herald.css',
),
'herald-rule-editor' =>
array(
'uri' => '/res/3a2979de/rsrc/js/application/herald/HeraldRuleEditor.js',
'type' => 'js',
'requires' =>
array(
0 => 'multirow-row-manager',
1 => 'javelin-install',
2 => 'javelin-typeahead',
3 => 'javelin-util',
4 => 'javelin-dom',
5 => 'javelin-tokenizer',
6 => 'javelin-typeahead-preloaded-source',
7 => 'javelin-stratcom',
8 => 'javelin-json',
9 => 'phabricator-prefab',
),
'disk' => '/rsrc/js/application/herald/HeraldRuleEditor.js',
),
'herald-test-css' =>
array(
'uri' => '/res/c0cd6bdb/rsrc/css/application/herald/herald-test.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/herald/herald-test.css',
),
'inline-comment-summary-css' =>
array(
'uri' => '/res/338704f7/rsrc/css/application/diff/inline-comment-summary.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/diff/inline-comment-summary.css',
),
'javelin-aphlict' =>
array(
'uri' => '/res/c0b9e53f/rsrc/js/application/aphlict/Aphlict.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
),
'disk' => '/rsrc/js/application/aphlict/Aphlict.js',
),
'javelin-behavior' =>
array(
'uri' => '/res/ef4eda09/rsrc/js/javelin/lib/behavior.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-magical-init',
),
'disk' => '/rsrc/js/javelin/lib/behavior.js',
),
'javelin-behavior-aphlict-dropdown' =>
array(
- 'uri' => '/res/dc8f194b/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js',
+ 'uri' => '/res/e9b6fd18/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-request',
2 => 'javelin-stratcom',
3 => 'javelin-vector',
4 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js',
),
'javelin-behavior-aphlict-listen' =>
array(
'uri' => '/res/6dde3f43/rsrc/js/application/aphlict/behavior-aphlict-listen.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-aphlict',
2 => 'javelin-stratcom',
3 => 'javelin-request',
4 => 'javelin-uri',
5 => 'javelin-dom',
6 => 'javelin-json',
7 => 'phabricator-notification',
),
'disk' => '/rsrc/js/application/aphlict/behavior-aphlict-listen.js',
),
'javelin-behavior-aphront-basic-tokenizer' =>
array(
'uri' => '/res/cf049052/rsrc/js/application/core/behavior-tokenizer.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'phabricator-prefab',
),
'disk' => '/rsrc/js/application/core/behavior-tokenizer.js',
),
'javelin-behavior-aphront-drag-and-drop' =>
array(
'uri' => '/res/0910fc0a/rsrc/js/application/core/behavior-drag-and-drop.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-util',
3 => 'phabricator-drag-and-drop-file-upload',
),
'disk' => '/rsrc/js/application/core/behavior-drag-and-drop.js',
),
'javelin-behavior-aphront-drag-and-drop-textarea' =>
array(
'uri' => '/res/ad737ce4/rsrc/js/application/core/behavior-drag-and-drop-textarea.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'phabricator-drag-and-drop-file-upload',
3 => 'phabricator-paste-file-upload',
4 => 'phabricator-textareautils',
),
'disk' => '/rsrc/js/application/core/behavior-drag-and-drop-textarea.js',
),
'javelin-behavior-aphront-form-disable-on-submit' =>
array(
'uri' => '/res/ca54e8b9/rsrc/js/application/core/behavior-form.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/core/behavior-form.js',
),
'javelin-behavior-aphront-more' =>
array(
'uri' => '/res/9ad83c3c/rsrc/js/application/core/behavior-more.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/core/behavior-more.js',
),
'javelin-behavior-audit-preview' =>
array(
'uri' => '/res/3048b073/rsrc/js/application/diffusion/behavior-audit-preview.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-util',
3 => 'phabricator-shaped-request',
),
'disk' => '/rsrc/js/application/diffusion/behavior-audit-preview.js',
),
'javelin-behavior-countdown-timer' =>
array(
'uri' => '/res/7468acb7/rsrc/js/application/countdown/timer.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-util',
),
'disk' => '/rsrc/js/application/countdown/timer.js',
),
'javelin-behavior-dark-console' =>
array(
'uri' => '/res/3269c0bb/rsrc/js/application/core/behavior-dark-console.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-util',
3 => 'javelin-dom',
4 => 'javelin-request',
5 => 'phabricator-keyboard-shortcut',
6 => 'javelin-behavior-dark-console-ajax',
),
'disk' => '/rsrc/js/application/core/behavior-dark-console.js',
),
'javelin-behavior-dark-console-ajax' =>
array(
'uri' => '/res/ac3ab63a/rsrc/js/application/core/behavior-dark-console-ajax.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/core/behavior-dark-console-ajax.js',
),
'javelin-behavior-device' =>
array(
'uri' => '/res/b6bd0c33/rsrc/js/application/core/behavior-device.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-dom',
3 => 'javelin-vector',
4 => 'javelin-install',
),
'disk' => '/rsrc/js/application/core/behavior-device.js',
),
'javelin-behavior-differential-accept-with-errors' =>
array(
'uri' => '/res/ba5144c5/rsrc/js/application/differential/behavior-accept-with-errors.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/differential/behavior-accept-with-errors.js',
),
'javelin-behavior-differential-add-reviewers-and-ccs' =>
array(
'uri' => '/res/27be3f81/rsrc/js/application/differential/behavior-add-reviewers-and-ccs.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'phabricator-prefab',
),
'disk' => '/rsrc/js/application/differential/behavior-add-reviewers-and-ccs.js',
),
'javelin-behavior-differential-comment-jump' =>
array(
'uri' => '/res/b580229b/rsrc/js/application/differential/behavior-comment-jump.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-util',
2 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/differential/behavior-comment-jump.js',
),
'javelin-behavior-differential-diff-radios' =>
array(
'uri' => '/res/004cb66f/rsrc/js/application/differential/behavior-diff-radios.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/differential/behavior-diff-radios.js',
),
'javelin-behavior-differential-dropdown-menus' =>
array(
'uri' => '/res/752f5dfc/rsrc/js/application/differential/behavior-dropdown-menus.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-util',
3 => 'javelin-stratcom',
4 => 'phabricator-dropdown-menu',
5 => 'phabricator-menu-item',
),
'disk' => '/rsrc/js/application/differential/behavior-dropdown-menus.js',
),
'javelin-behavior-differential-edit-inline-comments' =>
array(
'uri' => '/res/70c1f3a3/rsrc/js/application/differential/behavior-edit-inline-comments.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-dom',
3 => 'javelin-util',
4 => 'javelin-vector',
5 => 'differential-inline-comment-editor',
),
'disk' => '/rsrc/js/application/differential/behavior-edit-inline-comments.js',
),
'javelin-behavior-differential-feedback-preview' =>
array(
'uri' => '/res/5fbce8db/rsrc/js/application/differential/behavior-comment-preview.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-dom',
3 => 'javelin-request',
4 => 'javelin-util',
5 => 'phabricator-shaped-request',
),
'disk' => '/rsrc/js/application/differential/behavior-comment-preview.js',
),
'javelin-behavior-differential-keyboard-navigation' =>
array(
'uri' => '/res/a7798465/rsrc/js/application/differential/behavior-keyboard-nav.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-stratcom',
3 => 'phabricator-keyboard-shortcut',
),
'disk' => '/rsrc/js/application/differential/behavior-keyboard-nav.js',
),
'javelin-behavior-differential-populate' =>
array(
'uri' => '/res/781dd9a5/rsrc/js/application/differential/behavior-populate.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-workflow',
2 => 'javelin-util',
3 => 'javelin-dom',
4 => 'javelin-stratcom',
5 => 'phabricator-tooltip',
),
'disk' => '/rsrc/js/application/differential/behavior-populate.js',
),
'javelin-behavior-differential-show-all-comments' =>
array(
'uri' => '/res/eaa12efc/rsrc/js/application/differential/behavior-show-all-comments.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/differential/behavior-show-all-comments.js',
),
'javelin-behavior-differential-show-field-details' =>
array(
'uri' => '/res/8d57f459/rsrc/js/application/differential/behavior-show-field-details.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/differential/behavior-show-field-details.js',
),
'javelin-behavior-differential-show-more' =>
array(
'uri' => '/res/88115daf/rsrc/js/application/differential/behavior-show-more.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-workflow',
3 => 'javelin-util',
4 => 'javelin-stratcom',
),
'disk' => '/rsrc/js/application/differential/behavior-show-more.js',
),
'javelin-behavior-differential-toggle-files' =>
array(
'uri' => '/res/ae937207/rsrc/js/application/differential/behavior-toggle-files.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-stratcom',
),
'disk' => '/rsrc/js/application/differential/behavior-toggle-files.js',
),
'javelin-behavior-differential-user-select' =>
array(
'uri' => '/res/23c51a5d/rsrc/js/application/differential/behavior-user-select.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-stratcom',
),
'disk' => '/rsrc/js/application/differential/behavior-user-select.js',
),
'javelin-behavior-diffusion-commit-branches' =>
array(
'uri' => '/res/1ede335a/rsrc/js/application/diffusion/behavior-commit-branches.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-util',
3 => 'javelin-request',
),
'disk' => '/rsrc/js/application/diffusion/behavior-commit-branches.js',
),
'javelin-behavior-diffusion-commit-graph' =>
array(
'uri' => '/res/cfe336e8/rsrc/js/application/diffusion/behavior-commit-graph.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-stratcom',
),
'disk' => '/rsrc/js/application/diffusion/behavior-commit-graph.js',
),
'javelin-behavior-diffusion-jump-to' =>
array(
'uri' => '/res/7c42e1ba/rsrc/js/application/diffusion/behavior-jump-to.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-util',
2 => 'javelin-vector',
3 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/diffusion/behavior-jump-to.js',
),
'javelin-behavior-diffusion-line-linker' =>
array(
'uri' => '/res/d3cf5499/rsrc/js/application/diffusion/behavior-line-linker.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-dom',
3 => 'javelin-uri',
),
'disk' => '/rsrc/js/application/diffusion/behavior-line-linker.js',
),
'javelin-behavior-diffusion-pull-lastmodified' =>
array(
'uri' => '/res/29fe2790/rsrc/js/application/diffusion/behavior-pull-lastmodified.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-util',
3 => 'javelin-request',
),
'disk' => '/rsrc/js/application/diffusion/behavior-pull-lastmodified.js',
),
'javelin-behavior-error-log' =>
array(
'uri' => '/res/f46289e9/rsrc/js/application/core/behavior-error-log.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/core/behavior-error-log.js',
),
'javelin-behavior-fancy-datepicker' =>
array(
'uri' => '/res/ae843244/rsrc/js/application/core/behavior-fancy-datepicker.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-util',
2 => 'javelin-dom',
3 => 'javelin-stratcom',
4 => 'javelin-vector',
),
'disk' => '/rsrc/js/application/core/behavior-fancy-datepicker.js',
),
'javelin-behavior-files-drag-and-drop' =>
array(
'uri' => '/res/4893f577/rsrc/js/application/core/behavior-files-drag-and-drop.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-uri',
3 => 'phabricator-drag-and-drop-file-upload',
),
'disk' => '/rsrc/js/application/core/behavior-files-drag-and-drop.js',
),
'javelin-behavior-herald-rule-editor' =>
array(
'uri' => '/res/77a0c945/rsrc/js/application/herald/herald-rule-editor.js',
'type' => 'js',
'requires' =>
array(
0 => 'herald-rule-editor',
1 => 'javelin-behavior',
),
'disk' => '/rsrc/js/application/herald/herald-rule-editor.js',
),
'javelin-behavior-konami' =>
array(
'uri' => '/res/5f4b32fe/rsrc/js/application/core/behavior-konami.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
),
'disk' => '/rsrc/js/application/core/behavior-konami.js',
),
'javelin-behavior-lightbox-attachments' =>
array(
'uri' => '/res/5efba371/rsrc/js/application/core/behavior-lightbox-attachments.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-dom',
3 => 'javelin-mask',
4 => 'javelin-util',
5 => 'phabricator-busy',
),
'disk' => '/rsrc/js/application/core/behavior-lightbox-attachments.js',
),
'javelin-behavior-line-chart' =>
array(
'uri' => '/res/1aa5ac88/rsrc/js/application/maniphest/behavior-line-chart.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-vector',
),
'disk' => '/rsrc/js/application/maniphest/behavior-line-chart.js',
),
'javelin-behavior-maniphest-batch-editor' =>
array(
'uri' => '/res/d22661be/rsrc/js/application/maniphest/behavior-batch-editor.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-util',
3 => 'phabricator-prefab',
4 => 'multirow-row-manager',
5 => 'javelin-json',
),
'disk' => '/rsrc/js/application/maniphest/behavior-batch-editor.js',
),
'javelin-behavior-maniphest-batch-selector' =>
array(
'uri' => '/res/398cf8d7/rsrc/js/application/maniphest/behavior-batch-selector.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-stratcom',
),
'disk' => '/rsrc/js/application/maniphest/behavior-batch-selector.js',
),
'javelin-behavior-maniphest-description-preview' =>
array(
'uri' => '/res/8acd6f07/rsrc/js/application/maniphest/behavior-task-preview.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-util',
3 => 'phabricator-shaped-request',
),
'disk' => '/rsrc/js/application/maniphest/behavior-task-preview.js',
),
'javelin-behavior-maniphest-subpriority-editor' =>
array(
'uri' => '/res/5e02f19a/rsrc/js/application/maniphest/behavior-subpriorityeditor.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-magical-init',
2 => 'javelin-dom',
3 => 'javelin-vector',
4 => 'javelin-stratcom',
5 => 'javelin-workflow',
),
'disk' => '/rsrc/js/application/maniphest/behavior-subpriorityeditor.js',
),
'javelin-behavior-maniphest-transaction-controls' =>
array(
'uri' => '/res/62465554/rsrc/js/application/maniphest/behavior-transaction-controls.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'phabricator-prefab',
),
'disk' => '/rsrc/js/application/maniphest/behavior-transaction-controls.js',
),
'javelin-behavior-maniphest-transaction-expand' =>
array(
'uri' => '/res/966410de/rsrc/js/application/maniphest/behavior-transaction-expand.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-workflow',
3 => 'javelin-stratcom',
),
'disk' => '/rsrc/js/application/maniphest/behavior-transaction-expand.js',
),
'javelin-behavior-maniphest-transaction-preview' =>
array(
'uri' => '/res/855c9f0c/rsrc/js/application/maniphest/behavior-transaction-preview.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-util',
3 => 'javelin-json',
4 => 'javelin-stratcom',
5 => 'phabricator-shaped-request',
),
'disk' => '/rsrc/js/application/maniphest/behavior-transaction-preview.js',
),
'javelin-behavior-owners-path-editor' =>
array(
'uri' => '/res/9cf78ffc/rsrc/js/application/owners/owners-path-editor.js',
'type' => 'js',
'requires' =>
array(
0 => 'owners-path-editor',
1 => 'javelin-behavior',
),
'disk' => '/rsrc/js/application/owners/owners-path-editor.js',
),
'javelin-behavior-phabricator-active-nav' =>
array(
'uri' => '/res/f879d4dd/rsrc/js/application/core/behavior-active-nav.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-vector',
3 => 'javelin-dom',
4 => 'javelin-uri',
),
'disk' => '/rsrc/js/application/core/behavior-active-nav.js',
),
'javelin-behavior-phabricator-autofocus' =>
array(
'uri' => '/res/2946bb89/rsrc/js/application/core/behavior-autofocus.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/core/behavior-autofocus.js',
),
'javelin-behavior-phabricator-keyboard-pager' =>
array(
'uri' => '/res/56d64eff/rsrc/js/application/core/behavior-keyboard-pager.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-uri',
2 => 'phabricator-keyboard-shortcut',
),
'disk' => '/rsrc/js/application/core/behavior-keyboard-pager.js',
),
'javelin-behavior-phabricator-keyboard-shortcuts' =>
array(
'uri' => '/res/c5eb65cd/rsrc/js/application/core/behavior-keyboard-shortcuts.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-workflow',
2 => 'javelin-json',
3 => 'javelin-dom',
4 => 'phabricator-keyboard-shortcut',
),
'disk' => '/rsrc/js/application/core/behavior-keyboard-shortcuts.js',
),
'javelin-behavior-phabricator-nav' =>
array(
'uri' => '/res/3d04f9ab/rsrc/js/application/core/behavior-phabricator-nav.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-behavior-device',
2 => 'javelin-stratcom',
3 => 'javelin-dom',
4 => 'javelin-magical-init',
5 => 'javelin-vector',
6 => 'javelin-util',
7 => 'javelin-fx',
),
'disk' => '/rsrc/js/application/core/behavior-phabricator-nav.js',
),
'javelin-behavior-phabricator-notification-example' =>
array(
'uri' => '/res/a6d51998/rsrc/js/application/uiexample/notification-example.js',
'type' => 'js',
'requires' =>
array(
0 => 'phabricator-notification',
1 => 'javelin-stratcom',
2 => 'javelin-behavior',
3 => 'javelin-uri',
),
'disk' => '/rsrc/js/application/uiexample/notification-example.js',
),
'javelin-behavior-phabricator-object-selector' =>
array(
'uri' => '/res/0c4b0d82/rsrc/js/application/core/behavior-object-selector.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-request',
3 => 'javelin-util',
),
'disk' => '/rsrc/js/application/core/behavior-object-selector.js',
),
'javelin-behavior-phabricator-oncopy' =>
array(
'uri' => '/res/f490b8d1/rsrc/js/application/core/behavior-oncopy.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/core/behavior-oncopy.js',
),
'javelin-behavior-phabricator-remarkup-assist' =>
array(
'uri' => '/res/8a4f3a35/rsrc/js/application/core/behavior-phabricator-remarkup-assist.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-dom',
3 => 'phabricator-textareautils',
),
'disk' => '/rsrc/js/application/core/behavior-phabricator-remarkup-assist.js',
),
'javelin-behavior-phabricator-search-typeahead' =>
array(
'uri' => '/res/046ab274/rsrc/js/application/core/behavior-search-typeahead.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-typeahead-ondemand-source',
2 => 'javelin-typeahead',
3 => 'javelin-dom',
4 => 'javelin-uri',
5 => 'javelin-util',
6 => 'javelin-stratcom',
),
'disk' => '/rsrc/js/application/core/behavior-search-typeahead.js',
),
'javelin-behavior-phabricator-tooltips' =>
array(
'uri' => '/res/e0b344c6/rsrc/js/application/core/behavior-tooltip.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-behavior-device',
2 => 'javelin-stratcom',
3 => 'phabricator-tooltip',
),
'disk' => '/rsrc/js/application/core/behavior-tooltip.js',
),
'javelin-behavior-phabricator-watch-anchor' =>
array(
'uri' => '/res/b20b1cc2/rsrc/js/application/core/behavior-watch-anchor.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-dom',
3 => 'javelin-vector',
),
'disk' => '/rsrc/js/application/core/behavior-watch-anchor.js',
),
'javelin-behavior-phame-post-preview' =>
array(
'uri' => '/res/ac4c503a/rsrc/js/application/phame/phame-post-preview.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-util',
3 => 'phabricator-shaped-request',
),
'disk' => '/rsrc/js/application/phame/phame-post-preview.js',
),
'javelin-behavior-phriction-document-preview' =>
array(
'uri' => '/res/f1665ecd/rsrc/js/application/phriction/phriction-document-preview.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-util',
3 => 'phabricator-shaped-request',
),
'disk' => '/rsrc/js/application/phriction/phriction-document-preview.js',
),
'javelin-behavior-ponder-feedback-preview' =>
array(
'uri' => '/res/2e802dd9/rsrc/js/application/ponder/behavior-comment-preview.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-util',
3 => 'phabricator-shaped-request',
),
'disk' => '/rsrc/js/application/ponder/behavior-comment-preview.js',
),
'javelin-behavior-ponder-votebox' =>
array(
'uri' => '/res/9d091af3/rsrc/js/application/ponder/behavior-votebox.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-util',
3 => 'javelin-stratcom',
4 => 'javelin-request',
),
'disk' => '/rsrc/js/application/ponder/behavior-votebox.js',
),
'javelin-behavior-project-create' =>
array(
'uri' => '/res/e91f3f8f/rsrc/js/application/projects/behavior-project-create.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-stratcom',
3 => 'javelin-workflow',
),
'disk' => '/rsrc/js/application/projects/behavior-project-create.js',
),
'javelin-behavior-refresh-csrf' =>
array(
'uri' => '/res/6fd76d0f/rsrc/js/application/core/behavior-refresh-csrf.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-request',
1 => 'javelin-behavior',
2 => 'javelin-dom',
3 => 'phabricator-busy',
),
'disk' => '/rsrc/js/application/core/behavior-refresh-csrf.js',
),
'javelin-behavior-repository-crossreference' =>
array(
'uri' => '/res/244c5251/rsrc/js/application/repository/repository-crossreference.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-stratcom',
3 => 'javelin-uri',
),
'disk' => '/rsrc/js/application/repository/repository-crossreference.js',
),
'javelin-behavior-stripe-payment-form' =>
array(
'uri' => '/res/87c7b043/rsrc/js/application/phortune/behavior-stripe-payment-form.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-json',
3 => 'stripe-core',
),
'disk' => '/rsrc/js/application/phortune/behavior-stripe-payment-form.js',
),
'javelin-behavior-toggle-class' =>
array(
'uri' => '/res/fa818e0f/rsrc/js/application/core/behavior-toggle-class.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/core/behavior-toggle-class.js',
),
'javelin-behavior-view-placeholder' =>
array(
'uri' => '/res/5b89bdf5/rsrc/js/javelin/ext/view/ViewPlaceholder.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-dom',
2 => 'javelin-view-renderer',
),
'disk' => '/rsrc/js/javelin/ext/view/ViewPlaceholder.js',
),
'javelin-behavior-workflow' =>
array(
'uri' => '/res/2b0e2754/rsrc/js/application/core/behavior-workflow.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-behavior',
1 => 'javelin-stratcom',
2 => 'javelin-workflow',
3 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/core/behavior-workflow.js',
),
'javelin-color' =>
array(
'uri' => '/res/b0439fc9/rsrc/js/javelin/ext/fx/Color.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
),
'disk' => '/rsrc/js/javelin/ext/fx/Color.js',
),
'javelin-cookie' =>
array(
'uri' => '/res/a9cddab0/rsrc/js/javelin/lib/Cookie.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
),
'disk' => '/rsrc/js/javelin/lib/Cookie.js',
),
'javelin-dom' =>
array(
'uri' => '/res/4c79cf8a/rsrc/js/javelin/lib/DOM.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-magical-init',
1 => 'javelin-install',
2 => 'javelin-util',
3 => 'javelin-vector',
4 => 'javelin-stratcom',
),
'disk' => '/rsrc/js/javelin/lib/DOM.js',
),
'javelin-dynval' =>
array(
'uri' => '/res/d89c6f88/rsrc/js/javelin/ext/reactor/core/DynVal.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-reactornode',
2 => 'javelin-util',
3 => 'javelin-reactor',
),
'disk' => '/rsrc/js/javelin/ext/reactor/core/DynVal.js',
),
'javelin-event' =>
array(
'uri' => '/res/3815b473/rsrc/js/javelin/core/Event.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
),
'disk' => '/rsrc/js/javelin/core/Event.js',
),
'javelin-fx' =>
array(
'uri' => '/res/30ef0914/rsrc/js/javelin/ext/fx/FX.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-color',
1 => 'javelin-install',
2 => 'javelin-util',
),
'disk' => '/rsrc/js/javelin/ext/fx/FX.js',
),
'javelin-history' =>
array(
'uri' => '/res/9bb36651/rsrc/js/javelin/lib/History.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-stratcom',
1 => 'javelin-install',
2 => 'javelin-uri',
3 => 'javelin-util',
),
'disk' => '/rsrc/js/javelin/lib/History.js',
),
'javelin-install' =>
array(
'uri' => '/res/cab679ff/rsrc/js/javelin/core/install.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-util',
1 => 'javelin-magical-init',
),
'disk' => '/rsrc/js/javelin/core/install.js',
),
'javelin-json' =>
array(
'uri' => '/res/561b8056/rsrc/js/javelin/lib/JSON.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
),
'disk' => '/rsrc/js/javelin/lib/JSON.js',
),
'javelin-magical-init' =>
array(
'uri' => '/res/4f3c705c/rsrc/js/javelin/core/init.js',
'type' => 'js',
'requires' =>
array(
),
'disk' => '/rsrc/js/javelin/core/init.js',
),
'javelin-mask' =>
array(
'uri' => '/res/d2a35fff/rsrc/js/javelin/lib/Mask.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-dom',
),
'disk' => '/rsrc/js/javelin/lib/Mask.js',
),
'javelin-reactor' =>
array(
'uri' => '/res/dfd87f3c/rsrc/js/javelin/ext/reactor/core/Reactor.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
),
'disk' => '/rsrc/js/javelin/ext/reactor/core/Reactor.js',
),
'javelin-reactor-dom' =>
array(
'uri' => '/res/701b6f39/rsrc/js/javelin/ext/reactor/dom/RDOM.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-dom',
1 => 'javelin-dynval',
2 => 'javelin-reactornode',
3 => 'javelin-install',
4 => 'javelin-util',
),
'disk' => '/rsrc/js/javelin/ext/reactor/dom/RDOM.js',
),
'javelin-reactor-node-calmer' =>
array(
'uri' => '/res/5a35920a/rsrc/js/javelin/ext/reactor/core/ReactorNodeCalmer.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-reactor',
2 => 'javelin-util',
),
'disk' => '/rsrc/js/javelin/ext/reactor/core/ReactorNodeCalmer.js',
),
'javelin-reactornode' =>
array(
'uri' => '/res/f278cc27/rsrc/js/javelin/ext/reactor/core/ReactorNode.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-reactor',
2 => 'javelin-util',
3 => 'javelin-reactor-node-calmer',
),
'disk' => '/rsrc/js/javelin/ext/reactor/core/ReactorNode.js',
),
'javelin-request' =>
array(
'uri' => '/res/e25d75b3/rsrc/js/javelin/lib/Request.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-stratcom',
2 => 'javelin-util',
3 => 'javelin-behavior',
4 => 'javelin-json',
5 => 'javelin-dom',
6 => 'javelin-resource',
),
'disk' => '/rsrc/js/javelin/lib/Request.js',
),
'javelin-resource' =>
array(
'uri' => '/res/d5a3f835/rsrc/js/javelin/lib/Resource.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-magical-init',
1 => 'javelin-stratcom',
2 => 'javelin-util',
3 => 'javelin-uri',
),
'disk' => '/rsrc/js/javelin/lib/Resource.js',
),
'javelin-stratcom' =>
array(
'uri' => '/res/3ec22c29/rsrc/js/javelin/core/Stratcom.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-event',
2 => 'javelin-util',
3 => 'javelin-magical-init',
),
'disk' => '/rsrc/js/javelin/core/Stratcom.js',
),
'javelin-tokenizer' =>
array(
'uri' => '/res/c75c9e12/rsrc/js/javelin/lib/control/tokenizer/Tokenizer.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-dom',
1 => 'javelin-util',
2 => 'javelin-stratcom',
3 => 'javelin-install',
),
'disk' => '/rsrc/js/javelin/lib/control/tokenizer/Tokenizer.js',
),
'javelin-typeahead' =>
array(
'uri' => '/res/dccb789e/rsrc/js/javelin/lib/control/typeahead/Typeahead.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-dom',
2 => 'javelin-vector',
3 => 'javelin-util',
),
'disk' => '/rsrc/js/javelin/lib/control/typeahead/Typeahead.js',
),
'javelin-typeahead-composite-source' =>
array(
'uri' => '/res/99705f64/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadCompositeSource.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-typeahead-source',
2 => 'javelin-util',
),
'disk' => '/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadCompositeSource.js',
),
'javelin-typeahead-normalizer' =>
array(
'uri' => '/res/a9e97c0d/rsrc/js/javelin/lib/control/typeahead/normalizer/TypeaheadNormalizer.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
),
'disk' => '/rsrc/js/javelin/lib/control/typeahead/normalizer/TypeaheadNormalizer.js',
),
'javelin-typeahead-ondemand-source' =>
array(
'uri' => '/res/81e531aa/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadOnDemandSource.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
2 => 'javelin-stratcom',
3 => 'javelin-request',
4 => 'javelin-typeahead-source',
),
'disk' => '/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadOnDemandSource.js',
),
'javelin-typeahead-preloaded-source' =>
array(
'uri' => '/res/d464efd2/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadPreloadedSource.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
2 => 'javelin-stratcom',
3 => 'javelin-request',
4 => 'javelin-typeahead-source',
),
'disk' => '/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadPreloadedSource.js',
),
'javelin-typeahead-source' =>
array(
'uri' => '/res/74b1f091/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadSource.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
2 => 'javelin-dom',
3 => 'javelin-typeahead-normalizer',
),
'disk' => '/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadSource.js',
),
'javelin-typeahead-static-source' =>
array(
'uri' => '/res/c8e247fc/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadStaticSource.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-typeahead-source',
),
'disk' => '/rsrc/js/javelin/lib/control/typeahead/source/TypeaheadStaticSource.js',
),
'javelin-uri' =>
array(
'uri' => '/res/c107d858/rsrc/js/javelin/lib/URI.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
2 => 'javelin-stratcom',
),
'disk' => '/rsrc/js/javelin/lib/URI.js',
),
'javelin-util' =>
array(
'uri' => '/res/25786b6c/rsrc/js/javelin/core/util.js',
'type' => 'js',
'requires' =>
array(
),
'disk' => '/rsrc/js/javelin/core/util.js',
),
'javelin-vector' =>
array(
'uri' => '/res/f240bdb3/rsrc/js/javelin/lib/Vector.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-event',
),
'disk' => '/rsrc/js/javelin/lib/Vector.js',
),
'javelin-view' =>
array(
'uri' => '/res/b98657a7/rsrc/js/javelin/ext/view/View.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
),
'disk' => '/rsrc/js/javelin/ext/view/View.js',
),
'javelin-view-html' =>
array(
'uri' => '/res/7e5a2122/rsrc/js/javelin/ext/view/HTMLView.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-view',
),
'disk' => '/rsrc/js/javelin/ext/view/HTMLView.js',
),
'javelin-view-interpreter' =>
array(
'uri' => '/res/17e911ca/rsrc/js/javelin/ext/view/ViewInterpreter.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-view',
1 => 'javelin-install',
),
'disk' => '/rsrc/js/javelin/ext/view/ViewInterpreter.js',
),
'javelin-view-renderer' =>
array(
'uri' => '/res/db4ed5a2/rsrc/js/javelin/ext/view/ViewRenderer.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
),
'disk' => '/rsrc/js/javelin/ext/view/ViewRenderer.js',
),
'javelin-view-visitor' =>
array(
'uri' => '/res/0ef9dc43/rsrc/js/javelin/ext/view/ViewVisitor.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
),
'disk' => '/rsrc/js/javelin/ext/view/ViewVisitor.js',
),
'javelin-workflow' =>
array(
'uri' => '/res/519c4e1a/rsrc/js/javelin/lib/Workflow.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-stratcom',
1 => 'javelin-request',
2 => 'javelin-dom',
3 => 'javelin-vector',
4 => 'javelin-install',
5 => 'javelin-util',
6 => 'javelin-mask',
7 => 'javelin-uri',
),
'disk' => '/rsrc/js/javelin/lib/Workflow.js',
),
'lightbox-attachment-css' =>
array(
'uri' => '/res/c1c3415d/rsrc/css/aphront/lightbox-attachment.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/lightbox-attachment.css',
),
'maniphest-batch-editor' =>
array(
'uri' => '/res/fb15d744/rsrc/css/application/maniphest/batch-editor.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/maniphest/batch-editor.css',
),
'maniphest-report-css' =>
array(
'uri' => '/res/2e633fcf/rsrc/css/application/maniphest/report.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/maniphest/report.css',
),
'maniphest-task-edit-css' =>
array(
'uri' => '/res/68c7863e/rsrc/css/application/maniphest/task-edit.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/maniphest/task-edit.css',
),
'maniphest-task-summary-css' =>
array(
'uri' => '/res/6e67cb30/rsrc/css/application/maniphest/task-summary.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/maniphest/task-summary.css',
),
'maniphest-transaction-detail-css' =>
array(
'uri' => '/res/24e5862f/rsrc/css/application/maniphest/transaction-detail.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/maniphest/transaction-detail.css',
),
'multirow-row-manager' =>
array(
'uri' => '/res/0a9b3dee/rsrc/js/application/core/MultirowRowManager.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-stratcom',
2 => 'javelin-dom',
3 => 'javelin-util',
),
'disk' => '/rsrc/js/application/core/MultirowRowManager.js',
),
'owners-path-editor' =>
array(
'uri' => '/res/e6c51eb6/rsrc/js/application/owners/OwnersPathEditor.js',
'type' => 'js',
'requires' =>
array(
0 => 'multirow-row-manager',
1 => 'javelin-install',
2 => 'path-typeahead',
3 => 'javelin-dom',
4 => 'javelin-util',
),
'disk' => '/rsrc/js/application/owners/OwnersPathEditor.js',
),
'owners-path-editor-css' =>
array(
'uri' => '/res/9bc5332c/rsrc/css/application/owners/owners-path-editor.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/owners/owners-path-editor.css',
),
'path-typeahead' =>
array(
'uri' => '/res/50246fb6/rsrc/js/application/herald/PathTypeahead.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-typeahead',
2 => 'javelin-dom',
3 => 'javelin-request',
4 => 'javelin-typeahead-ondemand-source',
5 => 'javelin-util',
),
'disk' => '/rsrc/js/application/herald/PathTypeahead.js',
),
'phabricator-action-list-view-css' =>
array(
'uri' => '/res/a5a123d0/rsrc/css/layout/phabricator-action-list-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/layout/phabricator-action-list-view.css',
),
'phabricator-app-buttons-css' =>
array(
'uri' => '/res/1a1f926e/rsrc/css/application/directory/phabricator-app-buttons.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/directory/phabricator-app-buttons.css',
),
'phabricator-application-launch-view-css' =>
array(
'uri' => '/res/cd9e0fcb/rsrc/css/application/base/phabricator-application-launch-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/base/phabricator-application-launch-view.css',
),
'phabricator-busy' =>
array(
'uri' => '/res/6ec372e1/rsrc/js/application/core/Busy.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/core/Busy.js',
),
'phabricator-chatlog-css' =>
array(
'uri' => '/res/f6631adc/rsrc/css/application/chatlog/chatlog.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/chatlog/chatlog.css',
),
'phabricator-content-source-view-css' =>
array(
'uri' => '/res/8c738a93/rsrc/css/application/contentsource/content-source-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/contentsource/content-source-view.css',
),
'phabricator-core-buttons-css' =>
array(
'uri' => '/res/f03fd11e/rsrc/css/core/buttons.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/core/buttons.css',
),
'phabricator-core-css' =>
array(
'uri' => '/res/a6bafd6e/rsrc/css/core/core.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/core/core.css',
),
'phabricator-countdown-css' =>
array(
'uri' => '/res/0f646281/rsrc/css/application/countdown/timer.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/countdown/timer.css',
),
'phabricator-directory-css' =>
array(
'uri' => '/res/61afca2b/rsrc/css/application/directory/phabricator-directory.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/directory/phabricator-directory.css',
),
'phabricator-drag-and-drop-file-upload' =>
array(
'uri' => '/res/496110e1/rsrc/js/application/core/DragAndDropFileUpload.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
2 => 'javelin-request',
3 => 'javelin-dom',
4 => 'javelin-uri',
5 => 'phabricator-file-upload',
),
'disk' => '/rsrc/js/application/core/DragAndDropFileUpload.js',
),
'phabricator-dropdown-menu' =>
array(
'uri' => '/res/2b4aa4d8/rsrc/js/application/core/DropdownMenu.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
2 => 'javelin-dom',
3 => 'javelin-vector',
4 => 'javelin-stratcom',
5 => 'phabricator-menu-item',
),
'disk' => '/rsrc/js/application/core/DropdownMenu.js',
),
'phabricator-feed-css' =>
array(
'uri' => '/res/8ddc1d44/rsrc/css/application/feed/feed.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/feed/feed.css',
),
'phabricator-file-upload' =>
array(
'uri' => '/res/2de10295/rsrc/js/application/core/FileUpload.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-dom',
2 => 'phabricator-notification',
),
'disk' => '/rsrc/js/application/core/FileUpload.js',
),
'phabricator-filetree-view-css' =>
array(
'uri' => '/res/214cbf2b/rsrc/css/layout/phabricator-filetree-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/layout/phabricator-filetree-view.css',
),
'phabricator-flag-css' =>
array(
'uri' => '/res/2eee890a/rsrc/css/application/flag/flag.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/flag/flag.css',
),
'phabricator-form-view-css' =>
array(
'uri' => '/res/7609ca21/rsrc/css/layout/phabricator-form-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/layout/phabricator-form-view.css',
),
'phabricator-header-view-css' =>
array(
'uri' => '/res/c89cc14d/rsrc/css/layout/phabricator-header-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/layout/phabricator-header-view.css',
),
'phabricator-jump-nav' =>
array(
'uri' => '/res/8bdc0fc3/rsrc/css/application/directory/phabricator-jump-nav.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/directory/phabricator-jump-nav.css',
),
'phabricator-keyboard-shortcut' =>
array(
'uri' => '/res/beed38cd/rsrc/js/application/core/KeyboardShortcut.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
2 => 'phabricator-keyboard-shortcut-manager',
),
'disk' => '/rsrc/js/application/core/KeyboardShortcut.js',
),
'phabricator-keyboard-shortcut-manager' =>
array(
'uri' => '/res/0be80136/rsrc/js/application/core/KeyboardShortcutManager.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
2 => 'javelin-stratcom',
3 => 'javelin-dom',
4 => 'javelin-vector',
),
'disk' => '/rsrc/js/application/core/KeyboardShortcutManager.js',
),
'phabricator-main-menu-view' =>
array(
- 'uri' => '/res/8c3aaa49/rsrc/css/application/base/main-menu-view.css',
+ 'uri' => '/res/1a088c24/rsrc/css/application/base/main-menu-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/base/main-menu-view.css',
),
'phabricator-menu-item' =>
array(
'uri' => '/res/32fc2325/rsrc/js/application/core/DropdownMenuItem.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/core/DropdownMenuItem.js',
),
'phabricator-nav-view-css' =>
array(
'uri' => '/res/84381dcf/rsrc/css/aphront/phabricator-nav-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/phabricator-nav-view.css',
),
'phabricator-notification' =>
array(
'uri' => '/res/ad727561/rsrc/js/application/core/Notification.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-dom',
2 => 'javelin-stratcom',
3 => 'javelin-util',
4 => 'phabricator-notification-css',
),
'disk' => '/rsrc/js/application/core/Notification.js',
),
'phabricator-notification-css' =>
array(
'uri' => '/res/91197237/rsrc/css/aphront/notification.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/notification.css',
),
'phabricator-notification-menu-css' =>
array(
'uri' => '/res/fc8a7fb9/rsrc/css/application/base/notification-menu.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/base/notification-menu.css',
),
'phabricator-object-item-list-view-css' =>
array(
'uri' => '/res/945fabe9/rsrc/css/layout/phabricator-object-item-list-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/layout/phabricator-object-item-list-view.css',
),
'phabricator-object-list-view-css' =>
array(
'uri' => '/res/4f183668/rsrc/css/application/projects/phabricator-object-list-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/projects/phabricator-object-list-view.css',
),
'phabricator-object-selector-css' =>
array(
'uri' => '/res/7eb4c705/rsrc/css/application/objectselector/object-selector.css',
'type' => 'css',
'requires' =>
array(
0 => 'aphront-dialog-view-css',
),
'disk' => '/rsrc/css/application/objectselector/object-selector.css',
),
'phabricator-paste-file-upload' =>
array(
'uri' => '/res/b0b8afd8/rsrc/js/application/core/PasteFileUpload.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
2 => 'javelin-request',
3 => 'javelin-dom',
4 => 'javelin-uri',
),
'disk' => '/rsrc/js/application/core/PasteFileUpload.js',
),
'phabricator-pinboard-view-css' =>
array(
'uri' => '/res/3a24d210/rsrc/css/layout/phabricator-pinboard-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/layout/phabricator-pinboard-view.css',
),
'phabricator-prefab' =>
array(
'uri' => '/res/2734e45f/rsrc/js/application/core/Prefab.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
2 => 'javelin-dom',
3 => 'javelin-typeahead',
4 => 'javelin-tokenizer',
5 => 'javelin-typeahead-preloaded-source',
6 => 'javelin-typeahead-ondemand-source',
7 => 'javelin-dom',
8 => 'javelin-stratcom',
9 => 'javelin-util',
),
'disk' => '/rsrc/js/application/core/Prefab.js',
),
'phabricator-profile-css' =>
array(
'uri' => '/res/9869d10b/rsrc/css/application/profile/profile-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/profile/profile-view.css',
),
'phabricator-profile-header-css' =>
array(
'uri' => '/res/4b1cb23b/rsrc/css/application/profile/profile-header-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/profile/profile-header-view.css',
),
'phabricator-project-tag-css' =>
array(
'uri' => '/res/6b0a5223/rsrc/css/application/projects/project-tag.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/projects/project-tag.css',
),
'phabricator-property-list-view-css' =>
array(
'uri' => '/res/da1e1227/rsrc/css/layout/phabricator-property-list-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/layout/phabricator-property-list-view.css',
),
'phabricator-remarkup-css' =>
array(
'uri' => '/res/2e0d0042/rsrc/css/core/remarkup.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/core/remarkup.css',
),
'phabricator-search-results-css' =>
array(
'uri' => '/res/f8a86e27/rsrc/css/application/search/search-results.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/search/search-results.css',
),
'phabricator-shaped-request' =>
array(
'uri' => '/res/fbdb92db/rsrc/js/application/core/ShapedRequest.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
2 => 'javelin-request',
),
'disk' => '/rsrc/js/application/core/ShapedRequest.js',
),
'phabricator-slowvote-css' =>
array(
'uri' => '/res/94d20443/rsrc/css/application/slowvote/slowvote.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/slowvote/slowvote.css',
),
'phabricator-source-code-view-css' =>
array(
'uri' => '/res/cf0c566c/rsrc/css/layout/phabricator-source-code-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/layout/phabricator-source-code-view.css',
),
'phabricator-standard-page-view' =>
array(
'uri' => '/res/92068207/rsrc/css/application/base/standard-page-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/base/standard-page-view.css',
),
'phabricator-tag-view-css' =>
array(
'uri' => '/res/e10bf844/rsrc/css/layout/phabricator-tag-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/layout/phabricator-tag-view.css',
),
'phabricator-textareautils' =>
array(
'uri' => '/res/703614ea/rsrc/js/application/core/TextAreaUtils.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
),
'disk' => '/rsrc/js/application/core/TextAreaUtils.js',
),
'phabricator-timeline-view-css' =>
array(
'uri' => '/res/aa995c54/rsrc/css/layout/phabricator-timeline-view.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/layout/phabricator-timeline-view.css',
),
'phabricator-tooltip' =>
array(
'uri' => '/res/bcddf5de/rsrc/js/application/core/ToolTip.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-util',
2 => 'javelin-dom',
3 => 'javelin-vector',
),
'disk' => '/rsrc/js/application/core/ToolTip.js',
),
'phabricator-transaction-view-css' =>
array(
'uri' => '/res/731959fb/rsrc/css/aphront/transaction.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/aphront/transaction.css',
),
'phabricator-ui-example-css' =>
array(
'uri' => '/res/376ab671/rsrc/css/application/uiexample/example.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/uiexample/example.css',
),
'phabricator-uiexample-javelin-view' =>
array(
'uri' => '/res/a2ce2cfc/rsrc/js/application/uiexample/JavelinViewExample.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-view',
2 => 'javelin-util',
3 => 'javelin-dom',
),
'disk' => '/rsrc/js/application/uiexample/JavelinViewExample.js',
),
'phabricator-uiexample-reactor-button' =>
array(
'uri' => '/res/142127f6/rsrc/js/application/uiexample/ReactorButtonExample.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-view',
2 => 'javelin-util',
3 => 'javelin-dom',
4 => 'javelin-reactor-dom',
),
'disk' => '/rsrc/js/application/uiexample/ReactorButtonExample.js',
),
'phabricator-uiexample-reactor-checkbox' =>
array(
'uri' => '/res/c75cb9e9/rsrc/js/application/uiexample/ReactorCheckboxExample.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-view',
2 => 'javelin-util',
3 => 'javelin-dom',
4 => 'javelin-reactor-dom',
),
'disk' => '/rsrc/js/application/uiexample/ReactorCheckboxExample.js',
),
'phabricator-uiexample-reactor-focus' =>
array(
'uri' => '/res/3cc992eb/rsrc/js/application/uiexample/ReactorFocusExample.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-view',
2 => 'javelin-util',
3 => 'javelin-dom',
4 => 'javelin-reactor-dom',
),
'disk' => '/rsrc/js/application/uiexample/ReactorFocusExample.js',
),
'phabricator-uiexample-reactor-input' =>
array(
'uri' => '/res/4953da16/rsrc/js/application/uiexample/ReactorInputExample.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-view',
2 => 'javelin-util',
3 => 'javelin-dom',
4 => 'javelin-reactor-dom',
5 => 'javelin-view-html',
6 => 'javelin-view-interpreter',
7 => 'javelin-view-renderer',
),
'disk' => '/rsrc/js/application/uiexample/ReactorInputExample.js',
),
'phabricator-uiexample-reactor-mouseover' =>
array(
'uri' => '/res/52a355b6/rsrc/js/application/uiexample/ReactorMouseoverExample.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-view',
2 => 'javelin-util',
3 => 'javelin-dom',
4 => 'javelin-reactor-dom',
),
'disk' => '/rsrc/js/application/uiexample/ReactorMouseoverExample.js',
),
'phabricator-uiexample-reactor-radio' =>
array(
'uri' => '/res/ae87f3af/rsrc/js/application/uiexample/ReactorRadioExample.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-view',
2 => 'javelin-util',
3 => 'javelin-dom',
4 => 'javelin-reactor-dom',
),
'disk' => '/rsrc/js/application/uiexample/ReactorRadioExample.js',
),
'phabricator-uiexample-reactor-select' =>
array(
'uri' => '/res/23cb448a/rsrc/js/application/uiexample/ReactorSelectExample.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-view',
2 => 'javelin-util',
3 => 'javelin-dom',
4 => 'javelin-reactor-dom',
),
'disk' => '/rsrc/js/application/uiexample/ReactorSelectExample.js',
),
'phabricator-uiexample-reactor-sendclass' =>
array(
'uri' => '/res/8cd34264/rsrc/js/application/uiexample/ReactorSendClassExample.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-view',
2 => 'javelin-util',
3 => 'javelin-dom',
4 => 'javelin-reactor-dom',
),
'disk' => '/rsrc/js/application/uiexample/ReactorSendClassExample.js',
),
'phabricator-uiexample-reactor-sendproperties' =>
array(
'uri' => '/res/18af54aa/rsrc/js/application/uiexample/ReactorSendPropertiesExample.js',
'type' => 'js',
'requires' =>
array(
0 => 'javelin-install',
1 => 'javelin-view',
2 => 'javelin-util',
3 => 'javelin-dom',
4 => 'javelin-reactor-dom',
),
'disk' => '/rsrc/js/application/uiexample/ReactorSendPropertiesExample.js',
),
'phame-css' =>
array(
'uri' => '/res/2e4c86eb/rsrc/css/application/phame/phame.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/phame/phame.css',
),
'phriction-document-css' =>
array(
'uri' => '/res/8d09bd7f/rsrc/css/application/phriction/phriction-document-css.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/phriction/phriction-document-css.css',
),
'ponder-comment-table-css' =>
array(
'uri' => '/res/a1bb9056/rsrc/css/application/ponder/comments.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/ponder/comments.css',
),
'ponder-core-view-css' =>
array(
'uri' => '/res/3a2d5e18/rsrc/css/application/ponder/core.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/ponder/core.css',
),
'ponder-feed-view-css' =>
array(
'uri' => '/res/df22bd20/rsrc/css/application/ponder/feed.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/ponder/feed.css',
),
'ponder-post-css' =>
array(
'uri' => '/res/013b9e2c/rsrc/css/application/ponder/post.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/ponder/post.css',
),
'ponder-vote-css' =>
array(
'uri' => '/res/ea8316c2/rsrc/css/application/ponder/vote.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/ponder/vote.css',
),
'raphael-core' =>
array(
'uri' => '/res/3f48575a/rsrc/js/raphael/raphael.js',
'type' => 'js',
'requires' =>
array(
),
'disk' => '/rsrc/js/raphael/raphael.js',
),
'raphael-g' =>
array(
'uri' => '/res/b07e5245/rsrc/js/raphael/g.raphael.js',
'type' => 'js',
'requires' =>
array(
),
'disk' => '/rsrc/js/raphael/g.raphael.js',
),
'raphael-g-line' =>
array(
'uri' => '/res/a59c8556/rsrc/js/raphael/g.raphael.line.js',
'type' => 'js',
'requires' =>
array(
),
'disk' => '/rsrc/js/raphael/g.raphael.line.js',
),
'sprite-icon-css' =>
array(
'uri' => '/res/ca19186e/rsrc/css/sprite-icon.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/sprite-icon.css',
),
+ 'sprite-menu-css' =>
+ array(
+ 'uri' => '/res/d0239d8c/rsrc/css/sprite-menu.css',
+ 'type' => 'css',
+ 'requires' =>
+ array(
+ ),
+ 'disk' => '/rsrc/css/sprite-menu.css',
+ ),
'stripe-core' =>
array(
'uri' => '/res/3b0f0ad4/rsrc/js/stripe/stripe_core.js',
'type' => 'js',
'requires' =>
array(
),
'disk' => '/rsrc/js/stripe/stripe_core.js',
),
'stripe-payment-form-css' =>
array(
'uri' => '/res/634a6371/rsrc/css/application/phortune/stripe-payment-form.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/application/phortune/stripe-payment-form.css',
),
'syntax-highlighting-css' =>
array(
'uri' => '/res/cb3b9dc0/rsrc/css/core/syntax.css',
'type' => 'css',
'requires' =>
array(
),
'disk' => '/rsrc/css/core/syntax.css',
),
), array(
'packages' =>
array(
- '230c5ef4' =>
+ 'a567467a' =>
array(
'name' => 'core.pkg.css',
'symbols' =>
array(
0 => 'phabricator-core-css',
1 => 'phabricator-core-buttons-css',
2 => 'phabricator-standard-page-view',
3 => 'aphront-dialog-view-css',
4 => 'aphront-form-view-css',
5 => 'aphront-panel-view-css',
6 => 'aphront-side-nav-view-css',
7 => 'aphront-table-view-css',
8 => 'aphront-crumbs-view-css',
9 => 'aphront-tokenizer-control-css',
10 => 'aphront-typeahead-control-css',
11 => 'aphront-list-filter-view-css',
12 => 'phabricator-directory-css',
13 => 'phabricator-jump-nav',
14 => 'phabricator-app-buttons-css',
15 => 'phabricator-remarkup-css',
16 => 'syntax-highlighting-css',
17 => 'aphront-pager-view-css',
18 => 'phabricator-transaction-view-css',
19 => 'aphront-tooltip-css',
20 => 'aphront-headsup-view-css',
21 => 'phabricator-flag-css',
22 => 'aphront-error-view-css',
23 => 'autosprite-css',
24 => 'sprite-icon-css',
25 => 'phabricator-main-menu-view',
26 => 'phabricator-notification-css',
27 => 'phabricator-notification-menu-css',
28 => 'lightbox-attachment-css',
29 => 'phabricator-header-view-css',
30 => 'phabricator-form-view-css',
31 => 'phabricator-filetree-view-css',
32 => 'phabricator-nav-view-css',
),
- 'uri' => '/res/pkg/230c5ef4/core.pkg.css',
+ 'uri' => '/res/pkg/a567467a/core.pkg.css',
'type' => 'css',
),
- 'd223b82c' =>
+ 'a29ae2c4' =>
array(
'name' => 'core.pkg.js',
'symbols' =>
array(
0 => 'javelin-behavior-aphront-basic-tokenizer',
1 => 'javelin-behavior-workflow',
2 => 'javelin-behavior-aphront-form-disable-on-submit',
3 => 'phabricator-keyboard-shortcut-manager',
4 => 'phabricator-keyboard-shortcut',
5 => 'javelin-behavior-phabricator-keyboard-shortcuts',
6 => 'javelin-behavior-refresh-csrf',
7 => 'javelin-behavior-phabricator-watch-anchor',
8 => 'javelin-behavior-phabricator-autofocus',
9 => 'phabricator-paste-file-upload',
10 => 'phabricator-menu-item',
11 => 'phabricator-dropdown-menu',
12 => 'javelin-behavior-phabricator-oncopy',
13 => 'phabricator-tooltip',
14 => 'javelin-behavior-phabricator-tooltips',
15 => 'phabricator-prefab',
16 => 'javelin-behavior-device',
17 => 'javelin-behavior-toggle-class',
18 => 'javelin-behavior-lightbox-attachments',
19 => 'phabricator-busy',
20 => 'javelin-aphlict',
21 => 'phabricator-notification',
22 => 'javelin-behavior-aphlict-listen',
23 => 'javelin-behavior-phabricator-search-typeahead',
24 => 'javelin-behavior-konami',
25 => 'javelin-behavior-aphlict-dropdown',
26 => 'javelin-behavior-phabricator-active-nav',
27 => 'javelin-behavior-phabricator-nav',
28 => 'javelin-behavior-phabricator-remarkup-assist',
29 => 'phabricator-textareautils',
30 => 'phabricator-file-upload',
),
- 'uri' => '/res/pkg/d223b82c/core.pkg.js',
+ 'uri' => '/res/pkg/a29ae2c4/core.pkg.js',
'type' => 'js',
),
'3c5efda9' =>
array(
'name' => 'darkconsole.pkg.js',
'symbols' =>
array(
0 => 'javelin-behavior-dark-console-ajax',
1 => 'javelin-behavior-dark-console',
2 => 'javelin-behavior-error-log',
),
'uri' => '/res/pkg/3c5efda9/darkconsole.pkg.js',
'type' => 'js',
),
47549184 =>
array(
'name' => 'differential.pkg.css',
'symbols' =>
array(
0 => 'differential-core-view-css',
1 => 'differential-changeset-view-css',
2 => 'differential-results-table-css',
3 => 'differential-revision-history-css',
4 => 'differential-revision-list-css',
5 => 'differential-table-of-contents-css',
6 => 'differential-revision-comment-css',
7 => 'differential-revision-add-comment-css',
8 => 'differential-revision-comment-list-css',
9 => 'phabricator-object-selector-css',
10 => 'aphront-headsup-action-list-view-css',
11 => 'phabricator-content-source-view-css',
12 => 'differential-local-commits-view-css',
13 => 'inline-comment-summary-css',
),
'uri' => '/res/pkg/47549184/differential.pkg.css',
'type' => 'css',
),
'7ecd31fa' =>
array(
'name' => 'differential.pkg.js',
'symbols' =>
array(
0 => 'phabricator-drag-and-drop-file-upload',
1 => 'phabricator-shaped-request',
2 => 'javelin-behavior-differential-feedback-preview',
3 => 'javelin-behavior-differential-edit-inline-comments',
4 => 'javelin-behavior-differential-populate',
5 => 'javelin-behavior-differential-show-more',
6 => 'javelin-behavior-differential-diff-radios',
7 => 'javelin-behavior-differential-accept-with-errors',
8 => 'javelin-behavior-differential-comment-jump',
9 => 'javelin-behavior-differential-add-reviewers-and-ccs',
10 => 'javelin-behavior-differential-keyboard-navigation',
11 => 'javelin-behavior-aphront-drag-and-drop',
12 => 'javelin-behavior-aphront-drag-and-drop-textarea',
13 => 'javelin-behavior-phabricator-object-selector',
14 => 'javelin-behavior-repository-crossreference',
15 => 'differential-inline-comment-editor',
16 => 'javelin-behavior-differential-dropdown-menus',
17 => 'javelin-behavior-differential-toggle-files',
18 => 'javelin-behavior-differential-user-select',
),
'uri' => '/res/pkg/7ecd31fa/differential.pkg.js',
'type' => 'js',
),
'c8ce2d88' =>
array(
'name' => 'diffusion.pkg.css',
'symbols' =>
array(
0 => 'diffusion-commit-view-css',
1 => 'diffusion-icons-css',
),
'uri' => '/res/pkg/c8ce2d88/diffusion.pkg.css',
'type' => 'css',
),
'5e68be89' =>
array(
'name' => 'diffusion.pkg.js',
'symbols' =>
array(
0 => 'javelin-behavior-diffusion-pull-lastmodified',
1 => 'javelin-behavior-diffusion-commit-graph',
2 => 'javelin-behavior-audit-preview',
),
'uri' => '/res/pkg/5e68be89/diffusion.pkg.js',
'type' => 'js',
),
20727878 =>
array(
'name' => 'javelin.pkg.js',
'symbols' =>
array(
0 => 'javelin-util',
1 => 'javelin-install',
2 => 'javelin-event',
3 => 'javelin-stratcom',
4 => 'javelin-behavior',
5 => 'javelin-resource',
6 => 'javelin-request',
7 => 'javelin-vector',
8 => 'javelin-dom',
9 => 'javelin-json',
10 => 'javelin-uri',
11 => 'javelin-workflow',
12 => 'javelin-mask',
13 => 'javelin-typeahead',
14 => 'javelin-typeahead-normalizer',
15 => 'javelin-typeahead-source',
16 => 'javelin-typeahead-preloaded-source',
17 => 'javelin-typeahead-ondemand-source',
18 => 'javelin-tokenizer',
19 => 'javelin-fx',
20 => 'javelin-color',
),
'uri' => '/res/pkg/20727878/javelin.pkg.js',
'type' => 'js',
),
'7839ae2d' =>
array(
'name' => 'maniphest.pkg.css',
'symbols' =>
array(
0 => 'maniphest-task-summary-css',
1 => 'maniphest-transaction-detail-css',
2 => 'aphront-attached-file-view-css',
3 => 'phabricator-project-tag-css',
),
'uri' => '/res/pkg/7839ae2d/maniphest.pkg.css',
'type' => 'css',
),
'7707de41' =>
array(
'name' => 'maniphest.pkg.js',
'symbols' =>
array(
0 => 'javelin-behavior-maniphest-batch-selector',
1 => 'javelin-behavior-maniphest-transaction-controls',
2 => 'javelin-behavior-maniphest-transaction-preview',
3 => 'javelin-behavior-maniphest-transaction-expand',
4 => 'javelin-behavior-maniphest-subpriority-editor',
),
'uri' => '/res/pkg/7707de41/maniphest.pkg.js',
'type' => 'js',
),
),
'reverse' =>
array(
'aphront-attached-file-view-css' => '7839ae2d',
- 'aphront-crumbs-view-css' => '230c5ef4',
- 'aphront-dialog-view-css' => '230c5ef4',
- 'aphront-error-view-css' => '230c5ef4',
- 'aphront-form-view-css' => '230c5ef4',
+ 'aphront-crumbs-view-css' => 'a567467a',
+ 'aphront-dialog-view-css' => 'a567467a',
+ 'aphront-error-view-css' => 'a567467a',
+ 'aphront-form-view-css' => 'a567467a',
'aphront-headsup-action-list-view-css' => '47549184',
- 'aphront-headsup-view-css' => '230c5ef4',
- 'aphront-list-filter-view-css' => '230c5ef4',
- 'aphront-pager-view-css' => '230c5ef4',
- 'aphront-panel-view-css' => '230c5ef4',
- 'aphront-side-nav-view-css' => '230c5ef4',
- 'aphront-table-view-css' => '230c5ef4',
- 'aphront-tokenizer-control-css' => '230c5ef4',
- 'aphront-tooltip-css' => '230c5ef4',
- 'aphront-typeahead-control-css' => '230c5ef4',
- 'autosprite-css' => '230c5ef4',
+ 'aphront-headsup-view-css' => 'a567467a',
+ 'aphront-list-filter-view-css' => 'a567467a',
+ 'aphront-pager-view-css' => 'a567467a',
+ 'aphront-panel-view-css' => 'a567467a',
+ 'aphront-side-nav-view-css' => 'a567467a',
+ 'aphront-table-view-css' => 'a567467a',
+ 'aphront-tokenizer-control-css' => 'a567467a',
+ 'aphront-tooltip-css' => 'a567467a',
+ 'aphront-typeahead-control-css' => 'a567467a',
+ 'autosprite-css' => 'a567467a',
'differential-changeset-view-css' => '47549184',
'differential-core-view-css' => '47549184',
'differential-inline-comment-editor' => '7ecd31fa',
'differential-local-commits-view-css' => '47549184',
'differential-results-table-css' => '47549184',
'differential-revision-add-comment-css' => '47549184',
'differential-revision-comment-css' => '47549184',
'differential-revision-comment-list-css' => '47549184',
'differential-revision-history-css' => '47549184',
'differential-revision-list-css' => '47549184',
'differential-table-of-contents-css' => '47549184',
'diffusion-commit-view-css' => 'c8ce2d88',
'diffusion-icons-css' => 'c8ce2d88',
'inline-comment-summary-css' => '47549184',
- 'javelin-aphlict' => 'd223b82c',
+ 'javelin-aphlict' => 'a29ae2c4',
'javelin-behavior' => '20727878',
- 'javelin-behavior-aphlict-dropdown' => 'd223b82c',
- 'javelin-behavior-aphlict-listen' => 'd223b82c',
- 'javelin-behavior-aphront-basic-tokenizer' => 'd223b82c',
+ 'javelin-behavior-aphlict-dropdown' => 'a29ae2c4',
+ 'javelin-behavior-aphlict-listen' => 'a29ae2c4',
+ 'javelin-behavior-aphront-basic-tokenizer' => 'a29ae2c4',
'javelin-behavior-aphront-drag-and-drop' => '7ecd31fa',
'javelin-behavior-aphront-drag-and-drop-textarea' => '7ecd31fa',
- 'javelin-behavior-aphront-form-disable-on-submit' => 'd223b82c',
+ 'javelin-behavior-aphront-form-disable-on-submit' => 'a29ae2c4',
'javelin-behavior-audit-preview' => '5e68be89',
'javelin-behavior-dark-console' => '3c5efda9',
'javelin-behavior-dark-console-ajax' => '3c5efda9',
- 'javelin-behavior-device' => 'd223b82c',
+ 'javelin-behavior-device' => 'a29ae2c4',
'javelin-behavior-differential-accept-with-errors' => '7ecd31fa',
'javelin-behavior-differential-add-reviewers-and-ccs' => '7ecd31fa',
'javelin-behavior-differential-comment-jump' => '7ecd31fa',
'javelin-behavior-differential-diff-radios' => '7ecd31fa',
'javelin-behavior-differential-dropdown-menus' => '7ecd31fa',
'javelin-behavior-differential-edit-inline-comments' => '7ecd31fa',
'javelin-behavior-differential-feedback-preview' => '7ecd31fa',
'javelin-behavior-differential-keyboard-navigation' => '7ecd31fa',
'javelin-behavior-differential-populate' => '7ecd31fa',
'javelin-behavior-differential-show-more' => '7ecd31fa',
'javelin-behavior-differential-toggle-files' => '7ecd31fa',
'javelin-behavior-differential-user-select' => '7ecd31fa',
'javelin-behavior-diffusion-commit-graph' => '5e68be89',
'javelin-behavior-diffusion-pull-lastmodified' => '5e68be89',
'javelin-behavior-error-log' => '3c5efda9',
- 'javelin-behavior-konami' => 'd223b82c',
- 'javelin-behavior-lightbox-attachments' => 'd223b82c',
+ 'javelin-behavior-konami' => 'a29ae2c4',
+ 'javelin-behavior-lightbox-attachments' => 'a29ae2c4',
'javelin-behavior-maniphest-batch-selector' => '7707de41',
'javelin-behavior-maniphest-subpriority-editor' => '7707de41',
'javelin-behavior-maniphest-transaction-controls' => '7707de41',
'javelin-behavior-maniphest-transaction-expand' => '7707de41',
'javelin-behavior-maniphest-transaction-preview' => '7707de41',
- 'javelin-behavior-phabricator-active-nav' => 'd223b82c',
- 'javelin-behavior-phabricator-autofocus' => 'd223b82c',
- 'javelin-behavior-phabricator-keyboard-shortcuts' => 'd223b82c',
- 'javelin-behavior-phabricator-nav' => 'd223b82c',
+ 'javelin-behavior-phabricator-active-nav' => 'a29ae2c4',
+ 'javelin-behavior-phabricator-autofocus' => 'a29ae2c4',
+ 'javelin-behavior-phabricator-keyboard-shortcuts' => 'a29ae2c4',
+ 'javelin-behavior-phabricator-nav' => 'a29ae2c4',
'javelin-behavior-phabricator-object-selector' => '7ecd31fa',
- 'javelin-behavior-phabricator-oncopy' => 'd223b82c',
- 'javelin-behavior-phabricator-remarkup-assist' => 'd223b82c',
- 'javelin-behavior-phabricator-search-typeahead' => 'd223b82c',
- 'javelin-behavior-phabricator-tooltips' => 'd223b82c',
- 'javelin-behavior-phabricator-watch-anchor' => 'd223b82c',
- 'javelin-behavior-refresh-csrf' => 'd223b82c',
+ 'javelin-behavior-phabricator-oncopy' => 'a29ae2c4',
+ 'javelin-behavior-phabricator-remarkup-assist' => 'a29ae2c4',
+ 'javelin-behavior-phabricator-search-typeahead' => 'a29ae2c4',
+ 'javelin-behavior-phabricator-tooltips' => 'a29ae2c4',
+ 'javelin-behavior-phabricator-watch-anchor' => 'a29ae2c4',
+ 'javelin-behavior-refresh-csrf' => 'a29ae2c4',
'javelin-behavior-repository-crossreference' => '7ecd31fa',
- 'javelin-behavior-toggle-class' => 'd223b82c',
- 'javelin-behavior-workflow' => 'd223b82c',
+ 'javelin-behavior-toggle-class' => 'a29ae2c4',
+ 'javelin-behavior-workflow' => 'a29ae2c4',
'javelin-color' => '20727878',
'javelin-dom' => '20727878',
'javelin-event' => '20727878',
'javelin-fx' => '20727878',
'javelin-install' => '20727878',
'javelin-json' => '20727878',
'javelin-mask' => '20727878',
'javelin-request' => '20727878',
'javelin-resource' => '20727878',
'javelin-stratcom' => '20727878',
'javelin-tokenizer' => '20727878',
'javelin-typeahead' => '20727878',
'javelin-typeahead-normalizer' => '20727878',
'javelin-typeahead-ondemand-source' => '20727878',
'javelin-typeahead-preloaded-source' => '20727878',
'javelin-typeahead-source' => '20727878',
'javelin-uri' => '20727878',
'javelin-util' => '20727878',
'javelin-vector' => '20727878',
'javelin-workflow' => '20727878',
- 'lightbox-attachment-css' => '230c5ef4',
+ 'lightbox-attachment-css' => 'a567467a',
'maniphest-task-summary-css' => '7839ae2d',
'maniphest-transaction-detail-css' => '7839ae2d',
- 'phabricator-app-buttons-css' => '230c5ef4',
- 'phabricator-busy' => 'd223b82c',
+ 'phabricator-app-buttons-css' => 'a567467a',
+ 'phabricator-busy' => 'a29ae2c4',
'phabricator-content-source-view-css' => '47549184',
- 'phabricator-core-buttons-css' => '230c5ef4',
- 'phabricator-core-css' => '230c5ef4',
- 'phabricator-directory-css' => '230c5ef4',
+ 'phabricator-core-buttons-css' => 'a567467a',
+ 'phabricator-core-css' => 'a567467a',
+ 'phabricator-directory-css' => 'a567467a',
'phabricator-drag-and-drop-file-upload' => '7ecd31fa',
- 'phabricator-dropdown-menu' => 'd223b82c',
- 'phabricator-file-upload' => 'd223b82c',
- 'phabricator-filetree-view-css' => '230c5ef4',
- 'phabricator-flag-css' => '230c5ef4',
- 'phabricator-form-view-css' => '230c5ef4',
- 'phabricator-header-view-css' => '230c5ef4',
- 'phabricator-jump-nav' => '230c5ef4',
- 'phabricator-keyboard-shortcut' => 'd223b82c',
- 'phabricator-keyboard-shortcut-manager' => 'd223b82c',
- 'phabricator-main-menu-view' => '230c5ef4',
- 'phabricator-menu-item' => 'd223b82c',
- 'phabricator-nav-view-css' => '230c5ef4',
- 'phabricator-notification' => 'd223b82c',
- 'phabricator-notification-css' => '230c5ef4',
- 'phabricator-notification-menu-css' => '230c5ef4',
+ 'phabricator-dropdown-menu' => 'a29ae2c4',
+ 'phabricator-file-upload' => 'a29ae2c4',
+ 'phabricator-filetree-view-css' => 'a567467a',
+ 'phabricator-flag-css' => 'a567467a',
+ 'phabricator-form-view-css' => 'a567467a',
+ 'phabricator-header-view-css' => 'a567467a',
+ 'phabricator-jump-nav' => 'a567467a',
+ 'phabricator-keyboard-shortcut' => 'a29ae2c4',
+ 'phabricator-keyboard-shortcut-manager' => 'a29ae2c4',
+ 'phabricator-main-menu-view' => 'a567467a',
+ 'phabricator-menu-item' => 'a29ae2c4',
+ 'phabricator-nav-view-css' => 'a567467a',
+ 'phabricator-notification' => 'a29ae2c4',
+ 'phabricator-notification-css' => 'a567467a',
+ 'phabricator-notification-menu-css' => 'a567467a',
'phabricator-object-selector-css' => '47549184',
- 'phabricator-paste-file-upload' => 'd223b82c',
- 'phabricator-prefab' => 'd223b82c',
+ 'phabricator-paste-file-upload' => 'a29ae2c4',
+ 'phabricator-prefab' => 'a29ae2c4',
'phabricator-project-tag-css' => '7839ae2d',
- 'phabricator-remarkup-css' => '230c5ef4',
+ 'phabricator-remarkup-css' => 'a567467a',
'phabricator-shaped-request' => '7ecd31fa',
- 'phabricator-standard-page-view' => '230c5ef4',
- 'phabricator-textareautils' => 'd223b82c',
- 'phabricator-tooltip' => 'd223b82c',
- 'phabricator-transaction-view-css' => '230c5ef4',
- 'sprite-icon-css' => '230c5ef4',
- 'syntax-highlighting-css' => '230c5ef4',
+ 'phabricator-standard-page-view' => 'a567467a',
+ 'phabricator-textareautils' => 'a29ae2c4',
+ 'phabricator-tooltip' => 'a29ae2c4',
+ 'phabricator-transaction-view-css' => 'a567467a',
+ 'sprite-icon-css' => 'a567467a',
+ 'syntax-highlighting-css' => 'a567467a',
),
));
diff --git a/src/infrastructure/celerity/CeleritySpriteGenerator.php b/src/infrastructure/celerity/CeleritySpriteGenerator.php
index febd36f653..77d588e40c 100644
--- a/src/infrastructure/celerity/CeleritySpriteGenerator.php
+++ b/src/infrastructure/celerity/CeleritySpriteGenerator.php
@@ -1,132 +1,196 @@
<?php
final class CeleritySpriteGenerator {
public function buildIconSheet() {
$icons = $this->getDirectoryList('icons_1x');
$colors = array(
'',
'grey',
'white',
);
$scales = array(
'1x' => 1,
'2x' => 2,
);
$template = id(new PhutilSprite())
->setSourceSize(14, 14);
$sprites = array();
foreach ($colors as $color) {
foreach ($icons as $icon) {
$prefix = 'icons_';
if (strlen($color)) {
$prefix .= $color.'_';
}
$suffix = '';
if (strlen($color)) {
$suffix = '-'.$color;
}
$sprite = id(clone $template)
->setName('action-'.$icon.$suffix);
if ($color == 'white') {
$sprite->setTargetCSS(
'.device-desktop .phabricator-action-view:hover .action-'.$icon);
} else {
$sprite->setTargetCSS('.action-'.$icon.$suffix);
}
foreach ($scales as $scale_key => $scale) {
$path = $this->getPath($prefix.$scale_key.'/'.$icon.'.png');
$sprite->setSourceFile($path, $scale);
}
$sprites[] = $sprite;
}
}
$remarkup_icons = $this->getDirectoryList('remarkup_1x');
foreach ($remarkup_icons as $icon) {
$prefix = 'remarkup_';
// Strip 'text_' from these file names.
$class_name = substr($icon, 5);
$sprite = id(clone $template)
->setName('remarkup-assist-'.$icon)
->setTargetCSS('.remarkup-assist-'.$class_name);
foreach ($scales as $scale_key => $scale) {
$path = $this->getPath($prefix.$scale_key.'/'.$icon.'.png');
$sprite->setSourceFile($path, $scale);
}
$sprites[] = $sprite;
}
$sheet = $this->buildSheet('icon');
$sheet->setScales($scales);
foreach ($sprites as $sprite) {
$sheet->addSprite($sprite);
}
return $sheet;
}
+ public function buildMenuSheet() {
+ $sprites = array();
+
+ $sources = array(
+ 'round_bubble' => array(
+ 'x' => 26,
+ 'y' => 26,
+ 'css' => '.phabricator-main-menu-alert-bubble'
+ ),
+ 'bubble' => array(
+ 'x' => 46,
+ 'y' => 26,
+ 'css' => '.phabricator-main-menu-alert-bubble.alert-unread'
+ ),
+ 'seen_read_all' => array(
+ 'x' => 14,
+ 'y' => 14,
+ 'css' =>
+ '.alert-notifications .phabricator-main-menu-alert-icon',
+ ),
+ 'seen_have_unread' => array(
+ 'x' => 14,
+ 'y' => 14,
+ 'css' =>
+ '.alert-notifications:hover .phabricator-main-menu-alert-icon',
+ ),
+ 'unseen_any' => array(
+ 'x' => 14,
+ 'y' => 14,
+ 'css' =>
+ '.alert-notifications.alert-unread .phabricator-main-menu-alert-icon',
+ ),
+ );
+
+ $scales = array(
+ '1x' => 1,
+ '2x' => 2,
+ );
+
+ $template = new PhutilSprite();
+ foreach ($sources as $name => $spec) {
+ $sprite = id(clone $template)
+ ->setName($name)
+ ->setSourceSize($spec['x'], $spec['y'])
+ ->setTargetCSS($spec['css']);
+
+ foreach ($scales as $scale_name => $scale) {
+ $path = 'notifications_'.$scale_name.'/'.$name.'.png';
+ $path = $this->getPath($path);
+
+ $sprite->setSourceFile($path, $scale);
+ }
+ $sprites[] = $sprite;
+ }
+
+ $sheet = $this->buildSheet('menu');
+ $sheet->setScales($scales);
+ foreach ($sprites as $sprite) {
+ $sheet->addSprite($sprite);
+ }
+
+ return $sheet;
+ }
+
private function getPath($to_path = null) {
$root = dirname(phutil_get_library_root('phabricator'));
return $root.'/resources/sprite/'.$to_path;
}
private function getDirectoryList($dir) {
$path = $this->getPath($dir);
$result = array();
$images = Filesystem::listDirectory($path, $include_hidden = false);
foreach ($images as $image) {
if (!preg_match('/\.png$/', $image)) {
throw new Exception(
"Expected file '{$image}' in '{$path}' to be a sprite source ".
"ending in '.png'.");
}
$result[] = substr($image, 0, -4);
}
return $result;
}
private function buildSheet($name) {
$sheet = new PhutilSpriteSheet();
$at = '@';
$sheet->setCSSHeader(<<<EOCSS
/**
* @provides sprite-{$name}-css
* {$at}generated
*/
.sprite-{$name} {
background-image: url(/rsrc/image/sprite-{$name}.png);
background-repeat: no-repeat;
}
@media
only screen and (min-device-pixel-ratio: 1.5),
only screen and (-webkit-min-device-pixel-ratio: 1.5) {
.sprite-{$name} {
background-image: url(/rsrc/image/sprite-{$name}-X2.png);
background-size: {X}px {Y}px;
}
}
EOCSS
);
return $sheet;
}
}
diff --git a/src/view/page/menu/PhabricatorMainMenuView.php b/src/view/page/menu/PhabricatorMainMenuView.php
index ba5b9035a2..fa9a4f8625 100644
--- a/src/view/page/menu/PhabricatorMainMenuView.php
+++ b/src/view/page/menu/PhabricatorMainMenuView.php
@@ -1,135 +1,136 @@
<?php
final class PhabricatorMainMenuView extends AphrontView {
private $user;
public function setUser(PhabricatorUser $user) {
$this->user = $user;
}
public function render() {
$user = $this->user;
require_celerity_resource('phabricator-main-menu-view');
$header_id = celerity_generate_unique_node_id();
$extra = '';
$group = new PhabricatorMainMenuGroupView();
$group->addClass('phabricator-main-menu-group-logo');
$group->setCollapsible(false);
$group->appendChild(
phutil_render_tag(
'a',
array(
'class' => 'phabricator-main-menu-logo',
'href' => '/',
),
'<span>Phabricator</span>'));
if (PhabricatorEnv::getEnvConfig('notification.enabled') &&
$user->isLoggedIn()) {
list($menu, $dropdown) = $this->renderNotificationMenu();
$group->appendChild($menu);
$extra .= $dropdown;
}
$group->appendChild(
javelin_render_tag(
'a',
array(
'class' => 'phabricator-main-menu-expand-button',
'sigil' => 'jx-toggle-class',
'meta' => array(
'map' => array(
$header_id => 'phabricator-main-menu-reveal',
),
),
),
'<span>Expand</span>'));
$logo = $group->render();
return phutil_render_tag(
'div',
array(
'class' => 'phabricator-main-menu',
'id' => $header_id,
),
$logo.$this->renderChildren()).
$extra;
}
private function renderNotificationMenu() {
$user = $this->user;
require_celerity_resource('phabricator-notification-css');
require_celerity_resource('phabricator-notification-menu-css');
+ require_celerity_resource('sprite-menu-css');
- $indicator_id = celerity_generate_unique_node_id();
+ $count_id = celerity_generate_unique_node_id();
$dropdown_id = celerity_generate_unique_node_id();
- $menu_id = celerity_generate_unique_node_id();
+ $bubble_id = celerity_generate_unique_node_id();
- $notification_count = id(new PhabricatorFeedStoryNotification())
+ $count_number = id(new PhabricatorFeedStoryNotification())
->countUnread($user);
- $classes = array(
- 'phabricator-main-menu-alert-indicator',
- );
- if ($notification_count) {
- $classes[] = 'phabricator-main-menu-alert-indicator-unread';
+ if ($count_number > 999) {
+ $count_number = "\xE2\x88\x9E";
}
- $notification_indicator = javelin_render_tag(
+ $count_tag = phutil_render_tag(
'span',
array(
- 'id' => $indicator_id,
- 'class' => implode(' ', $classes),
+ 'id' => $count_id,
+ 'class' => 'phabricator-main-menu-alert-count'
),
- $notification_count);
-
- $classes = array();
- $classes[] = 'phabricator-main-menu-alert-item';
- $classes[] = 'phabricator-main-menu-alert-item-notification';
- $classes[] = 'autosprite';
- $classes[] = 'main-menu-item-icon-notifications';
+ phutil_escape_html($count_number));
- $notification_icon = javelin_render_tag(
- 'a',
+ $icon_tag = phutil_render_tag(
+ 'span',
array(
- 'href' => '/notification/',
- 'class' => implode(' ', $classes),
- 'id' => $menu_id,
+ 'class' => 'sprite-menu phabricator-main-menu-alert-icon',
),
- $notification_indicator);
+ '');
- $notification_menu = javelin_render_tag(
- 'div',
+ $container_classes = array(
+ 'phabricator-main-menu-alert-bubble',
+ 'sprite-menu',
+ 'alert-notifications',
+ );
+ if ($count_number) {
+ $container_classes[] = 'alert-unread';
+ }
+
+ $bubble_tag = phutil_render_tag(
+ 'a',
array(
- 'class' => 'phabricator-main-menu-alert',
+ 'href' => '/notification/',
+ 'class' => implode(' ', $container_classes),
+ 'id' => $bubble_id,
),
- $notification_icon);
+ $icon_tag.$count_tag);
Javelin::initBehavior(
'aphlict-dropdown',
array(
- 'menuID' => $menu_id,
- 'indicatorID' => $indicator_id,
+ 'bubbleID' => $bubble_id,
+ 'countID' => $count_id,
'dropdownID' => $dropdown_id,
));
$notification_dropdown = javelin_render_tag(
'div',
array(
'id' => $dropdown_id,
'class' => 'phabricator-notification-menu',
'sigil' => 'phabricator-notification-menu',
'style' => 'display: none;',
),
'');
- return array($notification_menu, $notification_dropdown);
+ return array($bubble_tag, $notification_dropdown);
}
}
diff --git a/webroot/rsrc/css/application/base/main-menu-view.css b/webroot/rsrc/css/application/base/main-menu-view.css
index 686a0dfba5..198e2642af 100644
--- a/webroot/rsrc/css/application/base/main-menu-view.css
+++ b/webroot/rsrc/css/application/base/main-menu-view.css
@@ -1,375 +1,383 @@
/**
* @provides phabricator-main-menu-view
*/
/* - Main Menu -----------------------------------------------------------------
Main menu at the top of every page that has chrome. It reacts to resolution
changes in order to behave reasonably on tablets and phones.
*/
.phabricator-main-menu {
background: #2d3236;
background-image: url(/rsrc/image/main_texture.png);
position: relative;
box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.25);
height: 44px;
z-index: 6;
}
.phabricator-main-menu a:hover {
text-decoration: none;
}
.device-desktop .phabricator-main-menu {
text-align: right;
width: 100%;
}
/* - Main Menu Group -----------------------------------------------------------
Container representing a single item on the main menu. For desktops these lay
out horizontally; on phones they switch to vertical.
*/
.phabricator-main-menu-group {
height: 44px;
position: relative;
}
.device-desktop .phabricator-main-menu-group {
display: inline-block;
text-align: left;
}
.device-tablet .phabricator-main-menu-group,
.device-phone .phabricator-main-menu-group {
width: 100%;
display: block;
}
.device-tablet .phabricator-main-menu-group + .phabricator-main-menu-group,
.device-phone .phabricator-main-menu-group + .phabricator-main-menu-group {
margin-top: 1px;
}
/* - Logo ----------------------------------------------------------------------
The "Phabricator" logo group in the main menu. On tablet and phone devices,
this shows a "reveal" button to expand/collapse the rest of the menu.
*/
.device-desktop .phabricator-main-menu-group-logo {
float: left;
}
.phabricator-main-menu-logo {
display: inline-block;
height: 44px;
width: 170px;
margin-right: 12px;
background: 6px 9px url(/rsrc/image/header_logo.png) no-repeat;
}
.phabricator-main-menu-logo span {
display: none;
}
/* - Expand/Collapse Button ----------------------------------------------------
On phones, the menu switches to a vertical layout and uses a button to expand
or collapse the items.
*/
.phabricator-main-menu-expand-button {
position: absolute;
right: 10px;
top: 10px;
display: block;
width: 40px;
height: 28px;
text-align: center;
background: #22292d url(/rsrc/image/lines.png) no-repeat 8px 6px;
border-radius: 6px;
border: 1px solid #111111;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1),
0 1px 0 rgba(255, 255, 255, 0.075);
}
.device-desktop .phabricator-main-menu-expand-button {
display: none;
}
.device-tablet .phabricator-main-menu-expand-button,
.device-phone .phabricator-main-menu-expand-button {
display: block;
}
.phabricator-main-menu-expand-button span {
display: none;
}
.phabricator-main-menu-reveal .phabricator-main-menu-expand-button {
background-color: #55595d;
}
/* - Icon Menus ----------------------------------------------------------------
These are the small icons for actions like "Settings" and "Log Out" which
appear on the right side of the main menu. On tablets and phones these layout
vertically.
*/
.phabricator-main-menu-icon {
width: 26px;
height: 26px;
margin: 9px 6px;
display: inline-block;
}
.device-desktop .phabricator-main-menu-icon-label {
display: none;
}
.device-tablet .phabricator-main-menu-icon-label,
.device-phone .phabricator-main-menu-icon-label {
font-weight: bold;
color: #eeeeee;
position: absolute;
display: block;
line-height: 44px;
left: 60px;
right: 0px;
top: 0px;
}
.device-tablet .phabricator-main-menu-icon,
.device-phone .phabricator-main-menu-icon {
margin-left: 20px;
position: absolute;
}
.main-menu-item-icon-profile {
background-repeat: no-repeat;
background-size: 26px 26px;
}
.device-desktop .main-menu-item-icon-profile {
background-position: 12px 9px;
margin: 0 6px;
padding: 0 12px;
height: 44px;
border-width: 0 1px;
border-style: solid;
border-color: #44494d;
}
.main-menu-item-icon-profile-not-selected:hover {
background-color: #44494d;
}
.main-menu-item-icon-profile-selected {
background-color: #44494d;
}
/* - Search --------------------------------------------------------------------
The main search input in the menu bar.
*/
.device-desktop .phabricator-main-menu-search {
width: 220px;
}
.phabricator-main-menu-search-container {
padding: 10px 0;
position: relative;
height: 24px;
}
.phabricator-main-menu-search-target {
position: absolute;
top: 46px;
}
.device-desktop .phabricator-main-menu-search-target {
width: 320px;
margin-left: -150px;
}
.device-tablet .phabricator-main-menu-search-target,
.device-phone .phabricator-main-menu-search-target {
width: 100%;
margin-left: -25px;
}
.device-desktop .phabricator-main-menu-search-container {
margin: 0 8px 0 50px;
}
.device-tablet .phabricator-main-menu-search-container,
.device-phone .phabricator-main-menu-search-container {
margin: 0 18px 0 60px;
}
.phabricator-main-menu-search input {
outline: 0;
margin: 0;
width: 100%;
right: 0;
position: absolute;
border: 1px solid #333333;
border-radius: 12px;
background: #555555;
height: 12px;
line-height: 12px;
box-shadow: 0px 1px 1px rgba(128, 128, 128, 0.25);
padding: 6px 32px 6px 10px;
}
.phabricator-main-menu-search input:focus {
background: #c9c9c9;
}
.phabricator-main-menu-search input.jx-typeahead-placeholder {
color: #999999;
}
.phabricator-main-menu-search button {
position: absolute;
color: transparent;
background: transparent 5px 6px url(/rsrc/image/search.png) no-repeat;
border: none;
outline: none;
box-shadow: none;
text-shadow: none;
min-width: 0;
height: 20px;
width: 20px;
top: 11px;
right: 6px;
}
.phabricator-main-menu-search-target div.jx-typeahead-results {
border-radius: 4px;
box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.35);
border: 1px solid #33393d;
}
.phabricator-main-menu-search-target div.jx-typeahead-results a.jx-result {
border: 0;
}
.phabricator-main-menu-search-target div.jx-typeahead-results a.focused,
.phabricator-main-menu-search-target div.jx-typeahead-results a:hover {
background: #3875d7;
}
.phabricator-main-search-typeahead-result {
display: block;
padding: 4px 4px 4px 38px;
background-position: 4px 4px;
background-size: 25px 25px;
background-repeat: no-repeat;
}
.phabricator-main-search-typeahead-result .result-name {
display: block;
font-weight: bold;
color: #444444;
}
.focused .phabricator-main-search-typeahead-result .result-name,
a:hover .phabricator-main-search-typeahead-result .result-name {
color: #eeeeee;
}
.phabricator-main-search-typeahead-result .result-type {
color: #888888;
}
.focused .phabricator-main-search-typeahead-result .result-type,
a:hover .phabricator-main-search-typeahead-result .result-type {
color: #dddddd;
}
/* - Collapsible ---------------------------------------------------------------
By default, groups are collapsible, which means they'll be hidden on phones
and respond to the menu toggle button.
*/
.device-tablet .phabricator-main-menu-collapsible,
.device-phone .phabricator-main-menu-collapsible {
background: #44494d;
display: none;
}
.phabricator-main-menu-reveal {
height: auto;
}
.device-tablet .phabricator-main-menu-reveal .phabricator-main-menu-collapsible,
.device-phone .phabricator-main-menu-reveal .phabricator-main-menu-collapsible {
display: block;
}
/* - Alert ---------------------------------------------------------------------
Alert menus are like icon menus but don't obey collapse rules.
*/
-.phabricator-main-menu-alert {
+.phabricator-main-menu-alert-bubble {
display: inline-block;
position: relative;
-}
-
-.phabricator-main-menu-alert-item {
width: 26px;
height: 26px;
- margin: 9px;
- display: block;
+ margin-bottom: 9px;
}
-.phabricator-main-menu-alert-indicator {
- display: none;
+.phabricator-main-menu-alert-bubble.alert-unread {
+ width: 46px;
}
-.phabricator-main-menu-alert-indicator-unread {
+.phabricator-main-menu-alert-icon {
position: absolute;
- display: block;
-
- right: 0px;
- top: 2px;
- padding: 1px 4px 2px;
-
- background: #dd3333;
-
- border: 1px solid #aa0000;
- font-size: 11px;
+ width: 14px;
+ height: 14px;
+ top: 4px;
+ left: 5px;
+}
- box-shadow: 0px 0px 6px rgba(255, 255, 255, 0.5);
- border-radius: 6px;
+.phabricator-main-menu-alert-count {
+ position: absolute;
font-weight: bold;
+ line-height: 22px;
+ top: 1px;
+ right: 8px;
+ left: 20px;
color: #ffffff;
+ text-align: center;
+ display: none;
+}
+
+.phabricator-main-menu-alert-item {
+ width: 26px;
+ height: 26px;
+ margin: 9px;
+ display: block;
+}
+
+.alert-unread .phabricator-main-menu-alert-count {
+ display: block;
}
diff --git a/webroot/rsrc/css/autosprite.css b/webroot/rsrc/css/autosprite.css
index 982a668795..9fdfeb6e1c 100644
--- a/webroot/rsrc/css/autosprite.css
+++ b/webroot/rsrc/css/autosprite.css
@@ -1,729 +1,717 @@
/**
* @provides autosprite-css
* @generated
*/
.autosprite {
background-image: url(/rsrc/image/autosprite.png);
background-repeat: no-repeat;
}
.main-menu-item-icon-help {
background-position: 0px 0px;
}
.main-menu-item-icon-help-selected {
background-position: -31px 0px;
}
.main-menu-item-icon-help:hover {
background-position: -62px 0px;
}
.main-menu-item-icon-settings {
background-position: -93px 0px;
}
.main-menu-item-icon-settings-selected {
background-position: -124px 0px;
}
.main-menu-item-icon-settings:hover {
background-position: -155px 0px;
}
.main-menu-item-icon-logout {
background-position: -186px 0px;
}
.main-menu-item-icon-logout-selected {
background-position: -217px 0px;
}
.main-menu-item-icon-logout:hover {
background-position: -248px 0px;
}
-.main-menu-item-icon-notifications {
- background-position: -279px 0px;
-}
-
-.main-menu-item-icon-notifications-selected {
- background-position: -310px 0px;
-}
-
-.main-menu-item-icon-notifications:hover {
- background-position: -341px 0px;
-}
-
.main-menu-item-icon-task {
- background-position: -372px 0px;
+ background-position: -279px 0px;
}
.main-menu-item-icon-task-selected {
- background-position: -403px 0px;
+ background-position: -310px 0px;
}
.main-menu-item-icon-task:hover {
- background-position: -434px 0px;
+ background-position: -341px 0px;
}
.app-differential {
- background-position: -465px 0px;
+ background-position: -372px 0px;
}
.device-desktop .app-differential:hover {
- background-position: -496px 0px;
+ background-position: -403px 0px;
}
.app-differential-selected {
- background-position: -527px 0px;
+ background-position: -434px 0px;
}
.app-fact {
- background-position: -558px 0px;
+ background-position: -465px 0px;
}
.device-desktop .app-fact:hover {
- background-position: 0px -31px;
+ background-position: -496px 0px;
}
.app-fact-selected {
- background-position: -31px -31px;
+ background-position: -527px 0px;
}
.app-mail {
- background-position: -62px -31px;
+ background-position: -558px 0px;
}
.device-desktop .app-mail:hover {
- background-position: -93px -31px;
+ background-position: 0px -31px;
}
.app-mail-selected {
- background-position: -124px -31px;
+ background-position: -31px -31px;
}
.app-diffusion {
- background-position: -155px -31px;
+ background-position: -62px -31px;
}
.device-desktop .app-diffusion:hover {
- background-position: -186px -31px;
+ background-position: -93px -31px;
}
.app-diffusion-selected {
- background-position: -217px -31px;
+ background-position: -124px -31px;
}
.app-slowvote {
- background-position: -248px -31px;
+ background-position: -155px -31px;
}
.device-desktop .app-slowvote:hover {
- background-position: -279px -31px;
+ background-position: -186px -31px;
}
.app-slowvote-selected {
- background-position: -310px -31px;
+ background-position: -217px -31px;
}
.app-phriction {
- background-position: -341px -31px;
+ background-position: -248px -31px;
}
.device-desktop .app-phriction:hover {
- background-position: -372px -31px;
+ background-position: -279px -31px;
}
.app-phriction-selected {
- background-position: -403px -31px;
+ background-position: -310px -31px;
}
.app-maniphest {
- background-position: -434px -31px;
+ background-position: -341px -31px;
}
.device-desktop .app-maniphest:hover {
- background-position: -465px -31px;
+ background-position: -372px -31px;
}
.app-maniphest-selected {
- background-position: -496px -31px;
+ background-position: -403px -31px;
}
.app-flags {
- background-position: -527px -31px;
+ background-position: -434px -31px;
}
.device-desktop .app-flags:hover {
- background-position: -558px -31px;
+ background-position: -465px -31px;
}
.app-flags-selected {
- background-position: 0px -62px;
+ background-position: -496px -31px;
}
.app-settings {
- background-position: -31px -62px;
+ background-position: -527px -31px;
}
.device-desktop .app-settings:hover {
- background-position: -62px -62px;
+ background-position: -558px -31px;
}
.app-settings-selected {
- background-position: -93px -62px;
+ background-position: 0px -62px;
}
.app-applications {
- background-position: -124px -62px;
+ background-position: -31px -62px;
}
.device-desktop .app-applications:hover {
- background-position: -155px -62px;
+ background-position: -62px -62px;
}
.app-applications-selected {
- background-position: -186px -62px;
+ background-position: -93px -62px;
}
.app-default {
- background-position: -217px -62px;
+ background-position: -124px -62px;
}
.device-desktop .app-default:hover {
- background-position: -248px -62px;
+ background-position: -155px -62px;
}
.app-default-selected {
- background-position: -279px -62px;
+ background-position: -186px -62px;
}
.app-people {
- background-position: -310px -62px;
+ background-position: -217px -62px;
}
.device-desktop .app-people:hover {
- background-position: -341px -62px;
+ background-position: -248px -62px;
}
.app-people-selected {
- background-position: -372px -62px;
+ background-position: -279px -62px;
}
.app-ponder {
- background-position: -403px -62px;
+ background-position: -310px -62px;
}
.device-desktop .app-ponder:hover {
- background-position: -434px -62px;
+ background-position: -341px -62px;
}
.app-ponder-selected {
- background-position: -465px -62px;
+ background-position: -372px -62px;
}
.app-calendar {
- background-position: -496px -62px;
+ background-position: -403px -62px;
}
.device-desktop .app-calendar:hover {
- background-position: -527px -62px;
+ background-position: -434px -62px;
}
.app-calendar-selected {
- background-position: -558px -62px;
+ background-position: -465px -62px;
}
.app-files {
- background-position: 0px -93px;
+ background-position: -496px -62px;
}
.device-desktop .app-files:hover {
- background-position: -31px -93px;
+ background-position: -527px -62px;
}
.app-files-selected {
- background-position: -62px -93px;
+ background-position: -558px -62px;
}
.app-projects {
- background-position: -93px -93px;
+ background-position: 0px -93px;
}
.device-desktop .app-projects:hover {
- background-position: -124px -93px;
+ background-position: -31px -93px;
}
.app-projects-selected {
- background-position: -155px -93px;
+ background-position: -62px -93px;
}
.app-daemons {
- background-position: -186px -93px;
+ background-position: -93px -93px;
}
.device-desktop .app-daemons:hover {
- background-position: -217px -93px;
+ background-position: -124px -93px;
}
.app-daemons-selected {
- background-position: -248px -93px;
+ background-position: -155px -93px;
}
.app-herald {
- background-position: -279px -93px;
+ background-position: -186px -93px;
}
.device-desktop .app-herald:hover {
- background-position: -310px -93px;
+ background-position: -217px -93px;
}
.app-herald-selected {
- background-position: -341px -93px;
+ background-position: -248px -93px;
}
.app-countdown {
- background-position: -372px -93px;
+ background-position: -279px -93px;
}
.device-desktop .app-countdown:hover {
- background-position: -403px -93px;
+ background-position: -310px -93px;
}
.app-countdown-selected {
- background-position: -434px -93px;
+ background-position: -341px -93px;
}
.app-conduit {
- background-position: -465px -93px;
+ background-position: -372px -93px;
}
.device-desktop .app-conduit:hover {
- background-position: -496px -93px;
+ background-position: -403px -93px;
}
.app-conduit-selected {
- background-position: -527px -93px;
+ background-position: -434px -93px;
}
.app-feed {
- background-position: -558px -93px;
+ background-position: -465px -93px;
}
.device-desktop .app-feed:hover {
- background-position: 0px -124px;
+ background-position: -496px -93px;
}
.app-feed-selected {
- background-position: -31px -124px;
+ background-position: -527px -93px;
}
.app-paste {
- background-position: -62px -124px;
+ background-position: 0px -124px;
}
.device-desktop .app-paste:hover {
- background-position: -93px -124px;
+ background-position: -31px -124px;
}
.app-paste-selected {
- background-position: -124px -124px;
+ background-position: -62px -124px;
}
.app-audit {
- background-position: -155px -124px;
+ background-position: -93px -124px;
}
.device-desktop .app-audit:hover {
- background-position: -186px -124px;
+ background-position: -124px -124px;
}
.app-audit-selected {
- background-position: -217px -124px;
+ background-position: -155px -124px;
}
.app-uiexample {
- background-position: -248px -124px;
+ background-position: -186px -124px;
}
.device-desktop .app-uiexample:hover {
- background-position: -279px -124px;
+ background-position: -217px -124px;
}
.app-uiexample-selected {
- background-position: -310px -124px;
+ background-position: -248px -124px;
}
.app-phpast {
- background-position: -341px -124px;
+ background-position: -279px -124px;
}
.device-desktop .app-phpast:hover {
- background-position: -372px -124px;
+ background-position: -310px -124px;
}
.app-phpast-selected {
- background-position: -403px -124px;
+ background-position: -341px -124px;
}
.app-owners {
- background-position: -434px -124px;
+ background-position: -372px -124px;
}
.device-desktop .app-owners:hover {
- background-position: -465px -124px;
+ background-position: -403px -124px;
}
.app-owners-selected {
- background-position: -496px -124px;
+ background-position: -434px -124px;
}
.app-phid {
- background-position: -527px -124px;
+ background-position: -465px -124px;
}
.device-desktop .app-phid:hover {
- background-position: -558px -124px;
+ background-position: -496px -124px;
}
.app-phid-selected {
- background-position: 0px -155px;
+ background-position: -527px -124px;
}
.app-diviner {
- background-position: -31px -155px;
+ background-position: 0px -155px;
}
.device-desktop .app-diviner:hover {
- background-position: -62px -155px;
+ background-position: -31px -155px;
}
.app-diviner-selected {
- background-position: -93px -155px;
+ background-position: -62px -155px;
}
.app-repositories {
- background-position: -124px -155px;
+ background-position: -93px -155px;
}
.device-desktop .app-repositories:hover {
- background-position: -155px -155px;
+ background-position: -124px -155px;
}
.app-repositories-selected {
- background-position: -186px -155px;
+ background-position: -155px -155px;
}
.app-phame {
- background-position: -217px -155px;
+ background-position: -186px -155px;
}
.device-desktop .app-phame:hover {
- background-position: -248px -155px;
+ background-position: -217px -155px;
}
.app-phame-selected {
- background-position: -279px -155px;
+ background-position: -248px -155px;
}
.app-macro {
- background-position: -310px -155px;
+ background-position: -279px -155px;
}
.device-desktop .app-macro:hover {
- background-position: -341px -155px;
+ background-position: -310px -155px;
}
.app-macro-selected {
- background-position: -372px -155px;
+ background-position: -341px -155px;
}
.app-releeph {
- background-position: -403px -155px;
+ background-position: -372px -155px;
}
.device-desktop .app-releeph:hover {
- background-position: -434px -155px;
+ background-position: -403px -155px;
}
.app-releeph-selected {
- background-position: -465px -155px;
+ background-position: -434px -155px;
}
.app-drydock {
- background-position: -496px -155px;
+ background-position: -465px -155px;
}
.device-desktop .app-drydock:hover {
- background-position: -527px -155px;
+ background-position: -496px -155px;
}
.app-drydock-selected {
- background-position: -558px -155px;
+ background-position: -527px -155px;
}
.app-differential-large {
background-position: 0px -186px;
}
.device-desktop .phabricator-application-launch-container:hover .app-differential-large /* hover */ {
background-position: -61px -186px;
}
.app-fact-large {
background-position: -122px -186px;
}
.device-desktop .phabricator-application-launch-container:hover .app-fact-large /* hover */ {
background-position: -183px -186px;
}
.app-mail-large {
background-position: -244px -186px;
}
.device-desktop .phabricator-application-launch-container:hover .app-mail-large /* hover */ {
background-position: -305px -186px;
}
.app-diffusion-large {
background-position: -366px -186px;
}
.device-desktop .phabricator-application-launch-container:hover .app-diffusion-large /* hover */ {
background-position: -427px -186px;
}
.app-slowvote-large {
background-position: -488px -186px;
}
.device-desktop .phabricator-application-launch-container:hover .app-slowvote-large /* hover */ {
background-position: -549px -186px;
}
.app-phriction-large {
background-position: 0px -247px;
}
.device-desktop .phabricator-application-launch-container:hover .app-phriction-large /* hover */ {
background-position: -61px -247px;
}
.app-maniphest-large {
background-position: -122px -247px;
}
.device-desktop .phabricator-application-launch-container:hover .app-maniphest-large /* hover */ {
background-position: -183px -247px;
}
.app-flags-large {
background-position: -244px -247px;
}
.device-desktop .phabricator-application-launch-container:hover .app-flags-large /* hover */ {
background-position: -305px -247px;
}
.app-settings-large {
background-position: -366px -247px;
}
.device-desktop .phabricator-application-launch-container:hover .app-settings-large /* hover */ {
background-position: -427px -247px;
}
.app-applications-large {
background-position: -488px -247px;
}
.device-desktop .phabricator-application-launch-container:hover .app-applications-large /* hover */ {
background-position: -549px -247px;
}
.app-default-large {
background-position: 0px -308px;
}
.device-desktop .phabricator-application-launch-container:hover .app-default-large /* hover */ {
background-position: -61px -308px;
}
.app-people-large {
background-position: -122px -308px;
}
.device-desktop .phabricator-application-launch-container:hover .app-people-large /* hover */ {
background-position: -183px -308px;
}
.app-ponder-large {
background-position: -244px -308px;
}
.device-desktop .phabricator-application-launch-container:hover .app-ponder-large /* hover */ {
background-position: -305px -308px;
}
.app-calendar-large {
background-position: -366px -308px;
}
.device-desktop .phabricator-application-launch-container:hover .app-calendar-large /* hover */ {
background-position: -427px -308px;
}
.app-files-large {
background-position: -488px -308px;
}
.device-desktop .phabricator-application-launch-container:hover .app-files-large /* hover */ {
background-position: -549px -308px;
}
.app-projects-large {
background-position: 0px -369px;
}
.device-desktop .phabricator-application-launch-container:hover .app-projects-large /* hover */ {
background-position: -61px -369px;
}
.app-daemons-large {
background-position: -122px -369px;
}
.device-desktop .phabricator-application-launch-container:hover .app-daemons-large /* hover */ {
background-position: -183px -369px;
}
.app-herald-large {
background-position: -244px -369px;
}
.device-desktop .phabricator-application-launch-container:hover .app-herald-large /* hover */ {
background-position: -305px -369px;
}
.app-countdown-large {
background-position: -366px -369px;
}
.device-desktop .phabricator-application-launch-container:hover .app-countdown-large /* hover */ {
background-position: -427px -369px;
}
.app-conduit-large {
background-position: -488px -369px;
}
.device-desktop .phabricator-application-launch-container:hover .app-conduit-large /* hover */ {
background-position: 0px -430px;
}
.app-feed-large {
background-position: -61px -430px;
}
.device-desktop .phabricator-application-launch-container:hover .app-feed-large /* hover */ {
background-position: -122px -430px;
}
.app-paste-large {
background-position: -183px -430px;
}
.device-desktop .phabricator-application-launch-container:hover .app-paste-large /* hover */ {
background-position: -244px -430px;
}
.app-audit-large {
background-position: -305px -430px;
}
.device-desktop .phabricator-application-launch-container:hover .app-audit-large /* hover */ {
background-position: -366px -430px;
}
.app-uiexample-large {
background-position: -427px -430px;
}
.device-desktop .phabricator-application-launch-container:hover .app-uiexample-large /* hover */ {
background-position: -488px -430px;
}
.app-phpast-large {
background-position: 0px -491px;
}
.device-desktop .phabricator-application-launch-container:hover .app-phpast-large /* hover */ {
background-position: -61px -491px;
}
.app-owners-large {
background-position: -122px -491px;
}
.device-desktop .phabricator-application-launch-container:hover .app-owners-large /* hover */ {
background-position: -183px -491px;
}
.app-phid-large {
background-position: -244px -491px;
}
.device-desktop .phabricator-application-launch-container:hover .app-phid-large /* hover */ {
background-position: -305px -491px;
}
.app-diviner-large {
background-position: -366px -491px;
}
.device-desktop .phabricator-application-launch-container:hover .app-diviner-large /* hover */ {
background-position: -427px -491px;
}
.app-repositories-large {
background-position: -488px -491px;
}
.device-desktop .phabricator-application-launch-container:hover .app-repositories-large /* hover */ {
background-position: 0px -552px;
}
.app-phame-large {
background-position: -61px -552px;
}
.device-desktop .phabricator-application-launch-container:hover .app-phame-large /* hover */ {
background-position: -122px -552px;
}
.app-macro-large {
background-position: -183px -552px;
}
.device-desktop .phabricator-application-launch-container:hover .app-macro-large /* hover */ {
background-position: -244px -552px;
}
.app-releeph-large {
background-position: -305px -552px;
}
.device-desktop .phabricator-application-launch-container:hover .app-releeph-large /* hover */ {
background-position: -366px -552px;
}
.app-drydock-large {
background-position: -427px -552px;
}
.device-desktop .phabricator-application-launch-container:hover .app-drydock-large /* hover */ {
background-position: -488px -552px;
}
diff --git a/webroot/rsrc/css/sprite-menu.css b/webroot/rsrc/css/sprite-menu.css
new file mode 100644
index 0000000000..a5a62bcfcb
--- /dev/null
+++ b/webroot/rsrc/css/sprite-menu.css
@@ -0,0 +1,38 @@
+/**
+ * @provides sprite-menu-css
+ * @generated
+ */
+
+.sprite-menu {
+ background-image: url(/rsrc/image/sprite-menu.png);
+ background-repeat: no-repeat;
+}
+
+@media
+only screen and (min-device-pixel-ratio: 1.5),
+only screen and (-webkit-min-device-pixel-ratio: 1.5) {
+ .sprite-menu {
+ background-image: url(/rsrc/image/sprite-menu-X2.png);
+ background-size: 47px 69px;
+ }
+}
+
+.alert-notifications .phabricator-main-menu-alert-icon {
+ background-position: 0px 0px;
+}
+
+.alert-notifications:hover .phabricator-main-menu-alert-icon {
+ background-position: -15px 0px;
+}
+
+.phabricator-main-menu-alert-bubble.alert-unread {
+ background-position: 0px -15px;
+}
+
+.phabricator-main-menu-alert-bubble {
+ background-position: 0px -42px;
+}
+
+.alert-notifications.alert-unread .phabricator-main-menu-alert-icon {
+ background-position: -27px -42px;
+}
diff --git a/webroot/rsrc/image/autosprite.png b/webroot/rsrc/image/autosprite.png
index 98e0dc238f..2fe3829f8e 100644
Binary files a/webroot/rsrc/image/autosprite.png and b/webroot/rsrc/image/autosprite.png differ
diff --git a/webroot/rsrc/image/sprite-menu-X2.png b/webroot/rsrc/image/sprite-menu-X2.png
new file mode 100644
index 0000000000..a89c3ef5ed
Binary files /dev/null and b/webroot/rsrc/image/sprite-menu-X2.png differ
diff --git a/webroot/rsrc/image/sprite-menu.png b/webroot/rsrc/image/sprite-menu.png
new file mode 100644
index 0000000000..b471e69f18
Binary files /dev/null and b/webroot/rsrc/image/sprite-menu.png differ
diff --git a/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js b/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js
index 1c9ed4e7bf..74b6809472 100644
--- a/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js
+++ b/webroot/rsrc/js/application/aphlict/behavior-aphlict-dropdown.js
@@ -1,73 +1,79 @@
/**
* @provides javelin-behavior-aphlict-dropdown
* @requires javelin-behavior
* javelin-request
* javelin-stratcom
* javelin-vector
* javelin-dom
*/
JX.behavior('aphlict-dropdown', function(config) {
var dropdown = JX.$(config.dropdownID);
- var indicator = JX.$(config.indicatorID);
- var menu = JX.$(config.menuID);
+ var count = JX.$(config.countID);
+ var bubble = JX.$(config.bubbleID);
var visible = false;
var request = null;
function refresh() {
if (request) { //already fetching
return;
}
request = new JX.Request('/notification/panel/', function(response) {
- JX.DOM.setContent(indicator, response.number);
+ var display = (response.number > 999)
+ ? "\u221E"
+ : response.number;
+
+ JX.DOM.setContent(count, display);
if (response.number == 0) {
- JX.DOM.alterClass(indicator,
- "phabricator-main-menu-alert-indicator-unread", false);
+ JX.DOM.alterClass(bubble, 'alert-unread', false);
} else {
- JX.DOM.alterClass(indicator,
- "phabricator-main-menu-alert-indicator-unread", true);
+ JX.DOM.alterClass(bubble, 'alert-unread', true);
}
JX.DOM.setContent(dropdown, JX.$H(response.content));
request = null;
});
request.send();
}
- refresh();
-
JX.Stratcom.listen(
'click',
null,
function(e) {
if(e.getNode('phabricator-notification-menu')) {
// Click is inside the dropdown.
return;
}
JX.DOM.hide(dropdown);
visible = false;
});
JX.DOM.listen(
- menu,
+ bubble,
'click',
null,
function(e) {
+ if (!e.isNormalClick()) {
+ return;
+ }
+
if (visible) {
JX.DOM.hide(dropdown);
} else {
- var p = JX.$V(menu);
+ refresh();
+
+ var p = JX.$V(bubble);
p.y = null;
p.x -= 6;
p.setPos(dropdown);
JX.DOM.show(dropdown);
}
visible = !visible;
e.kill();
}
)
JX.Stratcom.listen('notification-panel-update', null, refresh);
});
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Jan 19 2025, 23:32 (6 w, 6 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1129937
Default Alt Text
(206 KB)
Attached To
Mode
rP Phorge
Attached
Detach File
Event Timeline
Log In to Comment