diff --git a/resources/sprite/icons_1x/action-menu.png b/resources/sprite/icons_1x/action-menu.png new file mode 100644 index 0000000000..a1f7eb270d Binary files /dev/null and b/resources/sprite/icons_1x/action-menu.png differ diff --git a/resources/sprite/icons_2x/action-menu.png b/resources/sprite/icons_2x/action-menu.png new file mode 100644 index 0000000000..8f68391f31 Binary files /dev/null and b/resources/sprite/icons_2x/action-menu.png differ diff --git a/resources/sprite/icons_grey_1x/action-menu.png b/resources/sprite/icons_grey_1x/action-menu.png new file mode 100644 index 0000000000..47b5a6ba76 Binary files /dev/null and b/resources/sprite/icons_grey_1x/action-menu.png differ diff --git a/resources/sprite/icons_grey_2x/action-menu.png b/resources/sprite/icons_grey_2x/action-menu.png new file mode 100644 index 0000000000..6003b18dd4 Binary files /dev/null and b/resources/sprite/icons_grey_2x/action-menu.png differ diff --git a/resources/sprite/icons_white_1x/action-menu.png b/resources/sprite/icons_white_1x/action-menu.png new file mode 100644 index 0000000000..b764229e4b Binary files /dev/null and b/resources/sprite/icons_white_1x/action-menu.png differ diff --git a/resources/sprite/icons_white_2x/action-menu.png b/resources/sprite/icons_white_2x/action-menu.png new file mode 100644 index 0000000000..5e76129539 Binary files /dev/null and b/resources/sprite/icons_white_2x/action-menu.png differ diff --git a/resources/sprite/manifest/icon.json b/resources/sprite/manifest/icon.json index 184f84eb34..e97f2c292f 100644 --- a/resources/sprite/manifest/icon.json +++ b/resources/sprite/manifest/icon.json @@ -1,6 +1,21 @@ { "version" : 1, "sprites" : { + "action-action-menu" : { + "name" : "action-action-menu", + "rule" : ".action-action-menu", + "hash" : "533fe3e36cfbf890ad7348330a2328a9" + }, + "action-action-menu-grey" : { + "name" : "action-action-menu-grey", + "rule" : ".action-action-menu-grey", + "hash" : "9bc229a81b33bb62bcb4e025283ffbe5" + }, + "action-action-menu-white" : { + "name" : "action-action-menu-white", + "rule" : ".action-action-menu-white, .device-desktop .phabricator-action-view:hover .action-action-menu", + "hash" : "db0ff28b9ee23cdbf6125a7864b693b0" + }, "action-arrow_left" : { "name" : "action-arrow_left", "rule" : ".action-arrow_left", diff --git a/src/__celerity_resource_map__.php b/src/__celerity_resource_map__.php index 65763cf878..889616545c 100644 --- a/src/__celerity_resource_map__.php +++ b/src/__celerity_resource_map__.php @@ -597,15 +597,15 @@ celerity_register_resource_map(array( ), '/rsrc/image/sprite-icon-X2.png' => array( - 'hash' => 'c9fae25bc6221922ce26517e654a18e4', - 'uri' => '/res/c9fae25b/rsrc/image/sprite-icon-X2.png', + 'hash' => '1610d410ca8730ec26232cd5698a962a', + 'uri' => '/res/1610d410/rsrc/image/sprite-icon-X2.png', 'disk' => '/rsrc/image/sprite-icon-X2.png', 'type' => 'png', ), '/rsrc/image/sprite-icon.png' => array( - 'hash' => 'b690ea69bf5f2abe84d0a6e9ef64b03d', - 'uri' => '/res/b690ea69/rsrc/image/sprite-icon.png', + 'hash' => '891dea483c37bdc43c00372944c98165', + 'uri' => '/res/891dea48/rsrc/image/sprite-icon.png', 'disk' => '/rsrc/image/sprite-icon.png', 'type' => 'png', ), @@ -2849,7 +2849,7 @@ celerity_register_resource_map(array( ), 'phabricator-action-list-view-css' => array( - 'uri' => '/res/7a67c3b9/rsrc/css/layout/phabricator-action-list-view.css', + 'uri' => '/res/3d02ca59/rsrc/css/layout/phabricator-action-list-view.css', 'type' => 'css', 'requires' => array( @@ -2923,7 +2923,7 @@ celerity_register_resource_map(array( ), 'phabricator-crumbs-view-css' => array( - 'uri' => '/res/2857d229/rsrc/css/layout/phabricator-crumbs-view.css', + 'uri' => '/res/31ef131e/rsrc/css/layout/phabricator-crumbs-view.css', 'type' => 'css', 'requires' => array( @@ -3830,7 +3830,7 @@ celerity_register_resource_map(array( ), 'sprite-icon-css' => array( - 'uri' => '/res/e7d63fcf/rsrc/css/sprite-icon.css', + 'uri' => '/res/fa36bb72/rsrc/css/sprite-icon.css', 'type' => 'css', 'requires' => array( @@ -3903,7 +3903,7 @@ celerity_register_resource_map(array( ), array( 'packages' => array( - '90eede2c' => + '60914b69' => array( 'name' => 'core.pkg.css', 'symbols' => @@ -3945,7 +3945,7 @@ celerity_register_resource_map(array( 34 => 'phabricator-object-item-list-view-css', 35 => 'global-drag-and-drop-css', ), - 'uri' => '/res/pkg/90eede2c/core.pkg.css', + 'uri' => '/res/pkg/60914b69/core.pkg.css', 'type' => 'css', ), 'bf16b308' => @@ -4135,16 +4135,16 @@ celerity_register_resource_map(array( 'reverse' => array( 'aphront-attached-file-view-css' => '6b1fccc6', - 'aphront-dialog-view-css' => '90eede2c', - 'aphront-error-view-css' => '90eede2c', - 'aphront-form-view-css' => '90eede2c', - 'aphront-list-filter-view-css' => '90eede2c', - 'aphront-pager-view-css' => '90eede2c', - 'aphront-panel-view-css' => '90eede2c', - 'aphront-table-view-css' => '90eede2c', - 'aphront-tokenizer-control-css' => '90eede2c', - 'aphront-tooltip-css' => '90eede2c', - 'aphront-typeahead-control-css' => '90eede2c', + 'aphront-dialog-view-css' => '60914b69', + 'aphront-error-view-css' => '60914b69', + 'aphront-form-view-css' => '60914b69', + 'aphront-list-filter-view-css' => '60914b69', + 'aphront-pager-view-css' => '60914b69', + 'aphront-panel-view-css' => '60914b69', + 'aphront-table-view-css' => '60914b69', + 'aphront-tokenizer-control-css' => '60914b69', + 'aphront-tooltip-css' => '60914b69', + 'aphront-typeahead-control-css' => '60914b69', 'differential-changeset-view-css' => '8aaacd1b', 'differential-core-view-css' => '8aaacd1b', 'differential-inline-comment-editor' => 'e96b08f8', @@ -4158,7 +4158,7 @@ celerity_register_resource_map(array( 'differential-table-of-contents-css' => '8aaacd1b', 'diffusion-commit-view-css' => 'c8ce2d88', 'diffusion-icons-css' => 'c8ce2d88', - 'global-drag-and-drop-css' => '90eede2c', + 'global-drag-and-drop-css' => '60914b69', 'inline-comment-summary-css' => '8aaacd1b', 'javelin-aphlict' => 'bf16b308', 'javelin-behavior' => 'a2f94024', @@ -4230,47 +4230,47 @@ celerity_register_resource_map(array( 'javelin-util' => 'a2f94024', 'javelin-vector' => 'a2f94024', 'javelin-workflow' => 'a2f94024', - 'lightbox-attachment-css' => '90eede2c', + 'lightbox-attachment-css' => '60914b69', 'maniphest-task-summary-css' => '6b1fccc6', 'maniphest-transaction-detail-css' => '6b1fccc6', 'phabricator-busy' => 'bf16b308', 'phabricator-content-source-view-css' => '8aaacd1b', - 'phabricator-core-buttons-css' => '90eede2c', - 'phabricator-core-css' => '90eede2c', - 'phabricator-crumbs-view-css' => '90eede2c', - 'phabricator-directory-css' => '90eede2c', + 'phabricator-core-buttons-css' => '60914b69', + 'phabricator-core-css' => '60914b69', + 'phabricator-crumbs-view-css' => '60914b69', + 'phabricator-directory-css' => '60914b69', 'phabricator-drag-and-drop-file-upload' => 'e96b08f8', 'phabricator-dropdown-menu' => 'bf16b308', 'phabricator-file-upload' => 'bf16b308', - 'phabricator-filetree-view-css' => '90eede2c', - 'phabricator-flag-css' => '90eede2c', - 'phabricator-form-view-css' => '90eede2c', - 'phabricator-header-view-css' => '90eede2c', - 'phabricator-jump-nav' => '90eede2c', + 'phabricator-filetree-view-css' => '60914b69', + 'phabricator-flag-css' => '60914b69', + 'phabricator-form-view-css' => '60914b69', + 'phabricator-header-view-css' => '60914b69', + 'phabricator-jump-nav' => '60914b69', 'phabricator-keyboard-shortcut' => 'bf16b308', 'phabricator-keyboard-shortcut-manager' => 'bf16b308', - 'phabricator-main-menu-view' => '90eede2c', + 'phabricator-main-menu-view' => '60914b69', 'phabricator-menu-item' => 'bf16b308', - 'phabricator-nav-view-css' => '90eede2c', + 'phabricator-nav-view-css' => '60914b69', 'phabricator-notification' => 'bf16b308', - 'phabricator-notification-css' => '90eede2c', - 'phabricator-notification-menu-css' => '90eede2c', - 'phabricator-object-item-list-view-css' => '90eede2c', + 'phabricator-notification-css' => '60914b69', + 'phabricator-notification-menu-css' => '60914b69', + 'phabricator-object-item-list-view-css' => '60914b69', 'phabricator-object-selector-css' => '8aaacd1b', 'phabricator-prefab' => 'bf16b308', 'phabricator-project-tag-css' => '6b1fccc6', - 'phabricator-remarkup-css' => '90eede2c', + 'phabricator-remarkup-css' => '60914b69', 'phabricator-shaped-request' => 'e96b08f8', - 'phabricator-side-menu-view-css' => '90eede2c', - 'phabricator-standard-page-view' => '90eede2c', + 'phabricator-side-menu-view-css' => '60914b69', + 'phabricator-standard-page-view' => '60914b69', 'phabricator-textareautils' => 'bf16b308', 'phabricator-tooltip' => 'bf16b308', - 'phabricator-transaction-view-css' => '90eede2c', - 'phabricator-zindex-css' => '90eede2c', - 'sprite-apps-large-css' => '90eede2c', - 'sprite-gradient-css' => '90eede2c', - 'sprite-icon-css' => '90eede2c', - 'sprite-menu-css' => '90eede2c', - 'syntax-highlighting-css' => '90eede2c', + 'phabricator-transaction-view-css' => '60914b69', + 'phabricator-zindex-css' => '60914b69', + 'sprite-apps-large-css' => '60914b69', + 'sprite-gradient-css' => '60914b69', + 'sprite-icon-css' => '60914b69', + 'sprite-menu-css' => '60914b69', + 'syntax-highlighting-css' => '60914b69', ), )); diff --git a/src/applications/maniphest/controller/ManiphestTaskDetailController.php b/src/applications/maniphest/controller/ManiphestTaskDetailController.php index 4b66aea52c..357b33383b 100644 --- a/src/applications/maniphest/controller/ManiphestTaskDetailController.php +++ b/src/applications/maniphest/controller/ManiphestTaskDetailController.php @@ -335,12 +335,14 @@ final class ManiphestTaskDetailController extends ManiphestController { $user, $task->getPHID()); $object_name = 'T'.$task->getID(); + $actions = $this->buildActionView($task); $crumbs = $this->buildApplicationCrumbs(); $crumbs->addCrumb( id(new PhabricatorCrumbView()) ->setName($object_name) ->setHref('/'.$object_name)) + ->setActionList($actions) ->addAction( id(new PhabricatorMenuItemView()) ->setHref($this->getApplicationURI('/task/create/')) @@ -348,7 +350,6 @@ final class ManiphestTaskDetailController extends ManiphestController { ->setIcon('create')); $header = $this->buildHeaderView($task); - $actions = $this->buildActionView($task); $properties = $this->buildPropertyView($task, $aux_fields, $edges, $engine); return $this->buildApplicationPage( diff --git a/src/view/layout/PhabricatorActionListView.php b/src/view/layout/PhabricatorActionListView.php index 2497090e14..bed4291536 100644 --- a/src/view/layout/PhabricatorActionListView.php +++ b/src/view/layout/PhabricatorActionListView.php @@ -4,6 +4,7 @@ final class PhabricatorActionListView extends AphrontView { private $actions = array(); private $object; + private $id = null; public function setObject(PhabricatorLiskDAO $object) { $this->object = $object; @@ -15,6 +16,11 @@ final class PhabricatorActionListView extends AphrontView { return $this; } + public function setID($id) { + $this->id = $id; + return $this; + } + public function render() { if (!$this->user) { throw new Exception(pht("Call setUser() before render()!")); @@ -41,6 +47,7 @@ final class PhabricatorActionListView extends AphrontView { 'ul', array( 'class' => 'phabricator-action-list-view', + 'id' => $this->id ), $actions); } diff --git a/src/view/layout/PhabricatorCrumbsView.php b/src/view/layout/PhabricatorCrumbsView.php index ae97d8b162..95441c8282 100644 --- a/src/view/layout/PhabricatorCrumbsView.php +++ b/src/view/layout/PhabricatorCrumbsView.php @@ -4,6 +4,7 @@ final class PhabricatorCrumbsView extends AphrontView { private $crumbs = array(); private $actions = array(); + private $actionListID = null; protected function canAppendChild() { return false; @@ -14,10 +15,14 @@ final class PhabricatorCrumbsView extends AphrontView { return $this; } - public function addAction(PhabricatorMenuItemView $action) { $this->actions[] = $action; + return $this; + } + public function setActionList(PhabricatorActionListView $list) { + $this->actionListID = celerity_generate_unique_node_id(); + $list->setId($this->actionListID); return $this; } @@ -44,6 +49,7 @@ final class PhabricatorCrumbsView extends AphrontView { ), $action->getName() ); + $actions[] = javelin_tag( 'a', array( @@ -57,6 +63,42 @@ final class PhabricatorCrumbsView extends AphrontView { )); } + if ($this->actionListID) { + $icon_id = celerity_generate_unique_node_id(); + $icon = phutil_tag( + 'span', + array( + 'class' => 'sprite-icon action-action-menu' + ), + ''); + $name = phutil_tag( + 'span', + array( + 'class' => 'phabricator-crumbs-action-name' + ), + pht('Actions')); + + $actions[] = javelin_tag( + 'a', + array( + 'href' => '#', + 'class' => + 'phabricator-crumbs-action phabricator-crumbs-action-menu', + 'sigil' => 'jx-toggle-class', + 'id' => $icon_id, + 'meta' => array( + 'map' => array( + $this->actionListID => 'phabricator-action-list-toggle', + $icon_id => 'phabricator-crumbs-action-menu-open' + ), + ), + ), + array( + $icon, + $name, + )); + } + $action_view = phutil_tag( 'div', array( diff --git a/webroot/rsrc/css/layout/phabricator-action-list-view.css b/webroot/rsrc/css/layout/phabricator-action-list-view.css index b3adc53e52..dcf5070953 100644 --- a/webroot/rsrc/css/layout/phabricator-action-list-view.css +++ b/webroot/rsrc/css/layout/phabricator-action-list-view.css @@ -29,11 +29,18 @@ } .device .phabricator-action-list-view { - background: #f3f3f3; border-top: 1px solid #dcdcdc; padding: .5em 0; } +.device .phabricator-action-list-view { + display: none; +} + +.device .phabricator-action-list-view.phabricator-action-list-toggle { + display: block; +} + .phabricator-action-view { padding: 1px 0; position: relative; diff --git a/webroot/rsrc/css/layout/phabricator-crumbs-view.css b/webroot/rsrc/css/layout/phabricator-crumbs-view.css index bcc4fc3498..02382e65b5 100644 --- a/webroot/rsrc/css/layout/phabricator-crumbs-view.css +++ b/webroot/rsrc/css/layout/phabricator-crumbs-view.css @@ -25,6 +25,18 @@ text-shadow: 0 1px 2px rgba(255, 255, 255, 0.9); } +.phabricator-crumbs-action.phabricator-crumbs-action-menu { + display: none; +} + +.device .phabricator-crumbs-action.phabricator-crumbs-action-menu { + display: inline-block; +} + +.device .phabricator-crumbs-action-menu-open { + background: rgba(0,0,0,.1); +} + .phabricator-crumbs-view + .phabricator-header-shell { border-top: none; } diff --git a/webroot/rsrc/css/sprite-icon.css b/webroot/rsrc/css/sprite-icon.css index a96f31ef7e..cad864f148 100644 --- a/webroot/rsrc/css/sprite-icon.css +++ b/webroot/rsrc/css/sprite-icon.css @@ -18,806 +18,818 @@ only screen and (-webkit-min-device-pixel-ratio: 1.5) { } -.action-arrow_left { +.action-action-menu { background-position: 0px 0px; } -.action-arrow_right { +.action-arrow_left { background-position: -15px 0px; } -.action-attach { +.action-arrow_right { background-position: -30px 0px; } -.action-blame { +.action-attach { background-position: -45px 0px; } -.action-check { +.action-blame { background-position: -60px 0px; } -.action-comment { +.action-check { background-position: -75px 0px; } -.action-computer { +.action-comment { background-position: -90px 0px; } -.action-create { +.action-computer { background-position: -105px 0px; } -.action-delete { +.action-create { background-position: -120px 0px; } -.action-disable { +.action-delete { background-position: -135px 0px; } -.action-dislike { +.action-disable { background-position: -150px 0px; } -.action-download-alt { +.action-dislike { background-position: -165px 0px; } -.action-download { +.action-download-alt { background-position: -180px 0px; } -.action-edit { +.action-download { background-position: -195px 0px; } -.action-enable { +.action-edit { background-position: 0px -15px; } -.action-file { +.action-enable { background-position: -15px -15px; } -.action-flag-0 { +.action-file { background-position: -30px -15px; } -.action-flag-1 { +.action-flag-0 { background-position: -45px -15px; } -.action-flag-2 { +.action-flag-1 { background-position: -60px -15px; } -.action-flag-3 { +.action-flag-2 { background-position: -75px -15px; } -.action-flag-4 { +.action-flag-3 { background-position: -90px -15px; } -.action-flag-5 { +.action-flag-4 { background-position: -105px -15px; } -.action-flag-6 { +.action-flag-5 { background-position: -120px -15px; } -.action-flag-7 { +.action-flag-6 { background-position: -135px -15px; } -.action-flag-ghost { +.action-flag-7 { background-position: -150px -15px; } -.action-flag { +.action-flag-ghost { background-position: -165px -15px; } -.action-folder-open { +.action-flag { background-position: -180px -15px; } -.action-fork { +.action-folder-open { background-position: -195px -15px; } -.action-herald { +.action-fork { background-position: 0px -30px; } -.action-highlight { +.action-herald { background-position: -15px -30px; } -.action-history { +.action-highlight { background-position: -30px -30px; } -.action-image { +.action-history { background-position: -45px -30px; } -.action-like { +.action-image { background-position: -60px -30px; } -.action-link { +.action-like { background-position: -75px -30px; } -.action-lint-info { +.action-link { background-position: -90px -30px; } -.action-lint-ok { +.action-lint-info { background-position: -105px -30px; } -.action-lint-warning { +.action-lint-ok { background-position: -120px -30px; } -.action-lock { +.action-lint-warning { background-position: -135px -30px; } -.action-love { +.action-lock { background-position: -150px -30px; } -.action-merge { +.action-love { background-position: -165px -30px; } -.action-message { +.action-merge { background-position: -180px -30px; } -.action-meta-mta { +.action-message { background-position: -195px -30px; } -.action-move { +.action-meta-mta { background-position: 0px -45px; } -.action-new { +.action-move { background-position: -15px -45px; } -.action-none { +.action-new { background-position: -30px -45px; } -.action-perflab { +.action-none { background-position: -45px -45px; } -.action-preview { +.action-perflab { background-position: -60px -45px; } -.action-refresh { +.action-preview { background-position: -75px -45px; } -.action-remove { +.action-refresh { background-position: -90px -45px; } -.action-search { +.action-remove { background-position: -105px -45px; } -.action-start-sandcastle { +.action-search { background-position: -120px -45px; } -.action-subscribe-add { +.action-start-sandcastle { background-position: -135px -45px; } -.action-subscribe-auto { +.action-subscribe-add { background-position: -150px -45px; } -.action-subscribe-delete { +.action-subscribe-auto { background-position: -165px -45px; } -.action-tag { +.action-subscribe-delete { background-position: -180px -45px; } -.action-transcript { +.action-tag { background-position: -195px -45px; } -.action-undo { +.action-transcript { background-position: 0px -60px; } -.action-unlock { +.action-undo { background-position: -15px -60px; } -.action-unmerge { +.action-unlock { background-position: -30px -60px; } -.action-unpublish { +.action-unmerge { background-position: -45px -60px; } -.action-upload { +.action-unpublish { background-position: -60px -60px; } -.action-warning { +.action-upload { background-position: -75px -60px; } -.action-world { +.action-warning { background-position: -90px -60px; } -.action-arrow_left-grey { +.action-world { background-position: -105px -60px; } -.action-arrow_right-grey { +.action-action-menu-grey { background-position: -120px -60px; } -.action-attach-grey { +.action-arrow_left-grey { background-position: -135px -60px; } -.action-blame-grey { +.action-arrow_right-grey { background-position: -150px -60px; } -.action-check-grey { +.action-attach-grey { background-position: -165px -60px; } -.action-comment-grey { +.action-blame-grey { background-position: -180px -60px; } -.action-computer-grey { +.action-check-grey { background-position: -195px -60px; } -.action-create-grey { +.action-comment-grey { background-position: 0px -75px; } -.action-delete-grey { +.action-computer-grey { background-position: -15px -75px; } -.action-disable-grey { +.action-create-grey { background-position: -30px -75px; } -.action-dislike-grey { +.action-delete-grey { background-position: -45px -75px; } -.action-download-alt-grey { +.action-disable-grey { background-position: -60px -75px; } -.action-download-grey { +.action-dislike-grey { background-position: -75px -75px; } -.action-edit-grey { +.action-download-alt-grey { background-position: -90px -75px; } -.action-enable-grey { +.action-download-grey { background-position: -105px -75px; } -.action-file-grey { +.action-edit-grey { background-position: -120px -75px; } -.action-flag-0-grey { +.action-enable-grey { background-position: -135px -75px; } -.action-flag-1-grey { +.action-file-grey { background-position: -150px -75px; } -.action-flag-2-grey { +.action-flag-0-grey { background-position: -165px -75px; } -.action-flag-3-grey { +.action-flag-1-grey { background-position: -180px -75px; } -.action-flag-4-grey { +.action-flag-2-grey { background-position: -195px -75px; } -.action-flag-5-grey { +.action-flag-3-grey { background-position: 0px -90px; } -.action-flag-6-grey { +.action-flag-4-grey { background-position: -15px -90px; } -.action-flag-7-grey { +.action-flag-5-grey { background-position: -30px -90px; } -.action-flag-ghost-grey { +.action-flag-6-grey { background-position: -45px -90px; } -.action-flag-grey { +.action-flag-7-grey { background-position: -60px -90px; } -.action-folder-open-grey { +.action-flag-ghost-grey { background-position: -75px -90px; } -.action-fork-grey { +.action-flag-grey { background-position: -90px -90px; } -.action-herald-grey { +.action-folder-open-grey { background-position: -105px -90px; } -.action-highlight-grey { +.action-fork-grey { background-position: -120px -90px; } -.action-history-grey { +.action-herald-grey { background-position: -135px -90px; } -.action-image-grey { +.action-highlight-grey { background-position: -150px -90px; } -.action-like-grey { +.action-history-grey { background-position: -165px -90px; } -.action-link-grey { +.action-image-grey { background-position: -180px -90px; } -.action-lint-info-grey { +.action-like-grey { background-position: -195px -90px; } -.action-lint-ok-grey { +.action-link-grey { background-position: 0px -105px; } -.action-lint-warning-grey { +.action-lint-info-grey { background-position: -15px -105px; } -.action-lock-grey { +.action-lint-ok-grey { background-position: -30px -105px; } -.action-love-grey { +.action-lint-warning-grey { background-position: -45px -105px; } -.action-merge-grey { +.action-lock-grey { background-position: -60px -105px; } -.action-message-grey { +.action-love-grey { background-position: -75px -105px; } -.action-meta-mta-grey { +.action-merge-grey { background-position: -90px -105px; } -.action-move-grey { +.action-message-grey { background-position: -105px -105px; } -.action-new-grey { +.action-meta-mta-grey { background-position: -120px -105px; } -.action-none-grey { +.action-move-grey { background-position: -135px -105px; } -.action-perflab-grey { +.action-new-grey { background-position: -150px -105px; } -.action-preview-grey { +.action-none-grey { background-position: -165px -105px; } -.action-refresh-grey { +.action-perflab-grey { background-position: -180px -105px; } -.action-remove-grey { +.action-preview-grey { background-position: -195px -105px; } -.action-search-grey { +.action-refresh-grey { background-position: 0px -120px; } -.action-start-sandcastle-grey { +.action-remove-grey { background-position: -15px -120px; } -.action-subscribe-add-grey { +.action-search-grey { background-position: -30px -120px; } -.action-subscribe-auto-grey { +.action-start-sandcastle-grey { background-position: -45px -120px; } -.action-subscribe-delete-grey { +.action-subscribe-add-grey { background-position: -60px -120px; } -.action-tag-grey { +.action-subscribe-auto-grey { background-position: -75px -120px; } -.action-transcript-grey { +.action-subscribe-delete-grey { background-position: -90px -120px; } -.action-undo-grey { +.action-tag-grey { background-position: -105px -120px; } -.action-unlock-grey { +.action-transcript-grey { background-position: -120px -120px; } -.action-unmerge-grey { +.action-undo-grey { background-position: -135px -120px; } -.action-unpublish-grey { +.action-unlock-grey { background-position: -150px -120px; } -.action-upload-grey { +.action-unmerge-grey { background-position: -165px -120px; } -.action-warning-grey { +.action-unpublish-grey { background-position: -180px -120px; } -.action-world-grey { +.action-upload-grey { background-position: -195px -120px; } -.action-arrow_left-white, .device-desktop .phabricator-action-view:hover .action-arrow_left { +.action-warning-grey { background-position: 0px -135px; } -.action-arrow_right-white, .device-desktop .phabricator-action-view:hover .action-arrow_right { +.action-world-grey { background-position: -15px -135px; } -.action-attach-white, .device-desktop .phabricator-action-view:hover .action-attach { +.action-action-menu-white, .device-desktop .phabricator-action-view:hover .action-action-menu { background-position: -30px -135px; } -.action-blame-white, .device-desktop .phabricator-action-view:hover .action-blame { +.action-arrow_left-white, .device-desktop .phabricator-action-view:hover .action-arrow_left { background-position: -45px -135px; } -.action-check-white, .device-desktop .phabricator-action-view:hover .action-check { +.action-arrow_right-white, .device-desktop .phabricator-action-view:hover .action-arrow_right { background-position: -60px -135px; } -.action-comment-white, .device-desktop .phabricator-action-view:hover .action-comment { +.action-attach-white, .device-desktop .phabricator-action-view:hover .action-attach { background-position: -75px -135px; } -.action-computer-white, .device-desktop .phabricator-action-view:hover .action-computer { +.action-blame-white, .device-desktop .phabricator-action-view:hover .action-blame { background-position: -90px -135px; } -.action-create-white, .device-desktop .phabricator-action-view:hover .action-create { +.action-check-white, .device-desktop .phabricator-action-view:hover .action-check { background-position: -105px -135px; } -.action-delete-white, .device-desktop .phabricator-action-view:hover .action-delete { +.action-comment-white, .device-desktop .phabricator-action-view:hover .action-comment { background-position: -120px -135px; } -.action-disable-white, .device-desktop .phabricator-action-view:hover .action-disable { +.action-computer-white, .device-desktop .phabricator-action-view:hover .action-computer { background-position: -135px -135px; } -.action-dislike-white, .device-desktop .phabricator-action-view:hover .action-dislike { +.action-create-white, .device-desktop .phabricator-action-view:hover .action-create { background-position: -150px -135px; } -.action-download-alt-white, .device-desktop .phabricator-action-view:hover .action-download-alt { +.action-delete-white, .device-desktop .phabricator-action-view:hover .action-delete { background-position: -165px -135px; } -.action-download-white, .device-desktop .phabricator-action-view:hover .action-download { +.action-disable-white, .device-desktop .phabricator-action-view:hover .action-disable { background-position: -180px -135px; } -.action-edit-white, .device-desktop .phabricator-action-view:hover .action-edit { +.action-dislike-white, .device-desktop .phabricator-action-view:hover .action-dislike { background-position: -195px -135px; } -.action-enable-white, .device-desktop .phabricator-action-view:hover .action-enable { +.action-download-alt-white, .device-desktop .phabricator-action-view:hover .action-download-alt { background-position: 0px -150px; } -.action-file-white, .device-desktop .phabricator-action-view:hover .action-file { +.action-download-white, .device-desktop .phabricator-action-view:hover .action-download { background-position: -15px -150px; } -.action-flag-0-white, .device-desktop .phabricator-action-view:hover .action-flag-0 { +.action-edit-white, .device-desktop .phabricator-action-view:hover .action-edit { background-position: -30px -150px; } -.action-flag-1-white, .device-desktop .phabricator-action-view:hover .action-flag-1 { +.action-enable-white, .device-desktop .phabricator-action-view:hover .action-enable { background-position: -45px -150px; } -.action-flag-2-white, .device-desktop .phabricator-action-view:hover .action-flag-2 { +.action-file-white, .device-desktop .phabricator-action-view:hover .action-file { background-position: -60px -150px; } -.action-flag-3-white, .device-desktop .phabricator-action-view:hover .action-flag-3 { +.action-flag-0-white, .device-desktop .phabricator-action-view:hover .action-flag-0 { background-position: -75px -150px; } -.action-flag-4-white, .device-desktop .phabricator-action-view:hover .action-flag-4 { +.action-flag-1-white, .device-desktop .phabricator-action-view:hover .action-flag-1 { background-position: -90px -150px; } -.action-flag-5-white, .device-desktop .phabricator-action-view:hover .action-flag-5 { +.action-flag-2-white, .device-desktop .phabricator-action-view:hover .action-flag-2 { background-position: -105px -150px; } -.action-flag-6-white, .device-desktop .phabricator-action-view:hover .action-flag-6 { +.action-flag-3-white, .device-desktop .phabricator-action-view:hover .action-flag-3 { background-position: -120px -150px; } -.action-flag-7-white, .device-desktop .phabricator-action-view:hover .action-flag-7 { +.action-flag-4-white, .device-desktop .phabricator-action-view:hover .action-flag-4 { background-position: -135px -150px; } -.action-flag-ghost-white, .device-desktop .phabricator-action-view:hover .action-flag-ghost { +.action-flag-5-white, .device-desktop .phabricator-action-view:hover .action-flag-5 { background-position: -150px -150px; } -.action-flag-white, .device-desktop .phabricator-action-view:hover .action-flag { +.action-flag-6-white, .device-desktop .phabricator-action-view:hover .action-flag-6 { background-position: -165px -150px; } -.action-folder-open-white, .device-desktop .phabricator-action-view:hover .action-folder-open { +.action-flag-7-white, .device-desktop .phabricator-action-view:hover .action-flag-7 { background-position: -180px -150px; } -.action-fork-white, .device-desktop .phabricator-action-view:hover .action-fork { +.action-flag-ghost-white, .device-desktop .phabricator-action-view:hover .action-flag-ghost { background-position: -195px -150px; } -.action-herald-white, .device-desktop .phabricator-action-view:hover .action-herald { +.action-flag-white, .device-desktop .phabricator-action-view:hover .action-flag { background-position: 0px -165px; } -.action-highlight-white, .device-desktop .phabricator-action-view:hover .action-highlight { +.action-folder-open-white, .device-desktop .phabricator-action-view:hover .action-folder-open { background-position: -15px -165px; } -.action-history-white, .device-desktop .phabricator-action-view:hover .action-history { +.action-fork-white, .device-desktop .phabricator-action-view:hover .action-fork { background-position: -30px -165px; } -.action-image-white, .device-desktop .phabricator-action-view:hover .action-image { +.action-herald-white, .device-desktop .phabricator-action-view:hover .action-herald { background-position: -45px -165px; } -.action-like-white, .device-desktop .phabricator-action-view:hover .action-like { +.action-highlight-white, .device-desktop .phabricator-action-view:hover .action-highlight { background-position: -60px -165px; } -.action-link-white, .device-desktop .phabricator-action-view:hover .action-link { +.action-history-white, .device-desktop .phabricator-action-view:hover .action-history { background-position: -75px -165px; } -.action-lint-info-white, .device-desktop .phabricator-action-view:hover .action-lint-info { +.action-image-white, .device-desktop .phabricator-action-view:hover .action-image { background-position: -90px -165px; } -.action-lint-ok-white, .device-desktop .phabricator-action-view:hover .action-lint-ok { +.action-like-white, .device-desktop .phabricator-action-view:hover .action-like { background-position: -105px -165px; } -.action-lint-warning-white, .device-desktop .phabricator-action-view:hover .action-lint-warning { +.action-link-white, .device-desktop .phabricator-action-view:hover .action-link { background-position: -120px -165px; } -.action-lock-white, .device-desktop .phabricator-action-view:hover .action-lock { +.action-lint-info-white, .device-desktop .phabricator-action-view:hover .action-lint-info { background-position: -135px -165px; } -.action-love-white, .device-desktop .phabricator-action-view:hover .action-love { +.action-lint-ok-white, .device-desktop .phabricator-action-view:hover .action-lint-ok { background-position: -150px -165px; } -.action-merge-white, .device-desktop .phabricator-action-view:hover .action-merge { +.action-lint-warning-white, .device-desktop .phabricator-action-view:hover .action-lint-warning { background-position: -165px -165px; } -.action-message-white, .device-desktop .phabricator-action-view:hover .action-message { +.action-lock-white, .device-desktop .phabricator-action-view:hover .action-lock { background-position: -180px -165px; } -.action-meta-mta-white, .device-desktop .phabricator-action-view:hover .action-meta-mta { +.action-love-white, .device-desktop .phabricator-action-view:hover .action-love { background-position: -195px -165px; } -.action-move-white, .device-desktop .phabricator-action-view:hover .action-move { +.action-merge-white, .device-desktop .phabricator-action-view:hover .action-merge { background-position: 0px -180px; } -.action-new-white, .device-desktop .phabricator-action-view:hover .action-new, .phabricator-application-launch-create:hover .phabricator-application-create-icon.action-new-grey { +.action-message-white, .device-desktop .phabricator-action-view:hover .action-message { background-position: -15px -180px; } -.action-none-white, .device-desktop .phabricator-action-view:hover .action-none { +.action-meta-mta-white, .device-desktop .phabricator-action-view:hover .action-meta-mta { background-position: -30px -180px; } -.action-perflab-white, .device-desktop .phabricator-action-view:hover .action-perflab { +.action-move-white, .device-desktop .phabricator-action-view:hover .action-move { background-position: -45px -180px; } -.action-preview-white, .device-desktop .phabricator-action-view:hover .action-preview { +.action-new-white, .device-desktop .phabricator-action-view:hover .action-new, .phabricator-application-launch-create:hover .phabricator-application-create-icon.action-new-grey { background-position: -60px -180px; } -.action-refresh-white, .device-desktop .phabricator-action-view:hover .action-refresh { +.action-none-white, .device-desktop .phabricator-action-view:hover .action-none { background-position: -75px -180px; } -.action-remove-white, .device-desktop .phabricator-action-view:hover .action-remove { +.action-perflab-white, .device-desktop .phabricator-action-view:hover .action-perflab { background-position: -90px -180px; } -.action-search-white, .device-desktop .phabricator-action-view:hover .action-search { +.action-preview-white, .device-desktop .phabricator-action-view:hover .action-preview { background-position: -105px -180px; } -.action-start-sandcastle-white, .device-desktop .phabricator-action-view:hover .action-start-sandcastle { +.action-refresh-white, .device-desktop .phabricator-action-view:hover .action-refresh { background-position: -120px -180px; } -.action-subscribe-add-white, .device-desktop .phabricator-action-view:hover .action-subscribe-add { +.action-remove-white, .device-desktop .phabricator-action-view:hover .action-remove { background-position: -135px -180px; } -.action-subscribe-auto-white, .device-desktop .phabricator-action-view:hover .action-subscribe-auto { +.action-search-white, .device-desktop .phabricator-action-view:hover .action-search { background-position: -150px -180px; } -.action-subscribe-delete-white, .device-desktop .phabricator-action-view:hover .action-subscribe-delete { +.action-start-sandcastle-white, .device-desktop .phabricator-action-view:hover .action-start-sandcastle { background-position: -165px -180px; } -.action-tag-white, .device-desktop .phabricator-action-view:hover .action-tag { +.action-subscribe-add-white, .device-desktop .phabricator-action-view:hover .action-subscribe-add { background-position: -180px -180px; } -.action-transcript-white, .device-desktop .phabricator-action-view:hover .action-transcript { +.action-subscribe-auto-white, .device-desktop .phabricator-action-view:hover .action-subscribe-auto { background-position: -195px -180px; } -.action-undo-white, .device-desktop .phabricator-action-view:hover .action-undo { +.action-subscribe-delete-white, .device-desktop .phabricator-action-view:hover .action-subscribe-delete { background-position: 0px -195px; } -.action-unlock-white, .device-desktop .phabricator-action-view:hover .action-unlock { +.action-tag-white, .device-desktop .phabricator-action-view:hover .action-tag { background-position: -15px -195px; } -.action-unmerge-white, .device-desktop .phabricator-action-view:hover .action-unmerge { +.action-transcript-white, .device-desktop .phabricator-action-view:hover .action-transcript { background-position: -30px -195px; } -.action-unpublish-white, .device-desktop .phabricator-action-view:hover .action-unpublish { +.action-undo-white, .device-desktop .phabricator-action-view:hover .action-undo { background-position: -45px -195px; } -.action-upload-white, .device-desktop .phabricator-action-view:hover .action-upload { +.action-unlock-white, .device-desktop .phabricator-action-view:hover .action-unlock { background-position: -60px -195px; } -.action-warning-white, .device-desktop .phabricator-action-view:hover .action-warning { +.action-unmerge-white, .device-desktop .phabricator-action-view:hover .action-unmerge { background-position: -75px -195px; } -.action-world-white, .device-desktop .phabricator-action-view:hover .action-world { +.action-unpublish-white, .device-desktop .phabricator-action-view:hover .action-unpublish { background-position: -90px -195px; } -.remarkup-assist-b { +.action-upload-white, .device-desktop .phabricator-action-view:hover .action-upload { background-position: -105px -195px; } -.remarkup-assist-code { +.action-warning-white, .device-desktop .phabricator-action-view:hover .action-warning { background-position: -120px -195px; } -.remarkup-assist-help { +.action-world-white, .device-desktop .phabricator-action-view:hover .action-world { background-position: -135px -195px; } -.remarkup-assist-i { +.remarkup-assist-b { background-position: -150px -195px; } -.remarkup-assist-image { +.remarkup-assist-code { background-position: -165px -195px; } -.remarkup-assist-larger { +.remarkup-assist-help { background-position: -180px -195px; } -.remarkup-assist-meme { +.remarkup-assist-i { background-position: -195px -195px; } -.remarkup-assist-ol { +.remarkup-assist-image { background-position: 0px -210px; } -.remarkup-assist-table { +.remarkup-assist-larger { background-position: -15px -210px; } -.remarkup-assist-tag { +.remarkup-assist-meme { background-position: -30px -210px; } -.remarkup-assist-tt { +.remarkup-assist-ol { background-position: -45px -210px; } -.remarkup-assist-ul { +.remarkup-assist-table { background-position: -60px -210px; } + +.remarkup-assist-tag { + background-position: -75px -210px; +} + +.remarkup-assist-tt { + background-position: -90px -210px; +} + +.remarkup-assist-ul { + background-position: -105px -210px; +} diff --git a/webroot/rsrc/image/sprite-icon-X2.png b/webroot/rsrc/image/sprite-icon-X2.png index aac5c9c961..dab0698832 100644 Binary files a/webroot/rsrc/image/sprite-icon-X2.png and b/webroot/rsrc/image/sprite-icon-X2.png differ diff --git a/webroot/rsrc/image/sprite-icon.png b/webroot/rsrc/image/sprite-icon.png index 1787ed8173..740e2a07ac 100644 Binary files a/webroot/rsrc/image/sprite-icon.png and b/webroot/rsrc/image/sprite-icon.png differ