diff --git a/resources/celerity/map.php b/resources/celerity/map.php --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -9,7 +9,7 @@ 'names' => array( 'conpherence.pkg.css' => 'ff161f2d', 'conpherence.pkg.js' => 'b5b51108', - 'core.pkg.css' => '0c6e11ed', + 'core.pkg.css' => 'eb39b754', 'core.pkg.js' => '1475bd91', 'darkconsole.pkg.js' => '1f9a31bc', 'differential.pkg.css' => 'a2755617', @@ -39,7 +39,7 @@ 'rsrc/css/aphront/typeahead.css' => '8a84cc7d', 'rsrc/css/application/almanac/almanac.css' => 'dbb9b3af', 'rsrc/css/application/auth/auth.css' => '0877ed6e', - 'rsrc/css/application/base/main-menu-view.css' => 'de9fe8c4', + 'rsrc/css/application/base/main-menu-view.css' => '16053029', 'rsrc/css/application/base/notification-menu.css' => '6a697e43', 'rsrc/css/application/base/phui-theme.css' => '9f261c6b', 'rsrc/css/application/base/standard-page-view.css' => 'eb5b80c5', @@ -140,7 +140,7 @@ 'rsrc/css/phui/phui-basic-nav-view.css' => 'a0705f53', 'rsrc/css/phui/phui-big-info-view.css' => 'bd903741', 'rsrc/css/phui/phui-box.css' => '269cbc99', - 'rsrc/css/phui/phui-button.css' => 'e14854c3', + 'rsrc/css/phui/phui-button.css' => '7ffbeee7', 'rsrc/css/phui/phui-chart.css' => '6bf6f78e', 'rsrc/css/phui/phui-cms.css' => '504b4b23', 'rsrc/css/phui/phui-comment-form.css' => '57af2e14', @@ -524,7 +524,7 @@ 'rsrc/js/phuix/PHUIXActionListView.js' => 'b5c256b8', 'rsrc/js/phuix/PHUIXActionView.js' => 'b3465b9b', 'rsrc/js/phuix/PHUIXAutocomplete.js' => 'f6699267', - 'rsrc/js/phuix/PHUIXButtonView.js' => 'da1c2a6b', + 'rsrc/js/phuix/PHUIXButtonView.js' => '0f13520b', 'rsrc/js/phuix/PHUIXDropdownMenu.js' => '8018ee50', 'rsrc/js/phuix/PHUIXExample.js' => '68af71ca', 'rsrc/js/phuix/PHUIXFormControl.js' => '83e03671', @@ -783,7 +783,7 @@ 'phabricator-flag-css' => 'bba8f811', 'phabricator-keyboard-shortcut' => '1ae869f2', 'phabricator-keyboard-shortcut-manager' => 'c19dd9b9', - 'phabricator-main-menu-view' => 'de9fe8c4', + 'phabricator-main-menu-view' => '16053029', 'phabricator-nav-view-css' => 'faf6a6fc', 'phabricator-notification' => 'ccf1cbf8', 'phabricator-notification-css' => '3f6c89c9', @@ -817,7 +817,7 @@ 'phui-basic-nav-view-css' => 'a0705f53', 'phui-big-info-view-css' => 'bd903741', 'phui-box-css' => '269cbc99', - 'phui-button-css' => 'e14854c3', + 'phui-button-css' => '7ffbeee7', 'phui-calendar-css' => '477acfaa', 'phui-calendar-day-css' => '572b1893', 'phui-calendar-list-css' => '576be600', @@ -874,7 +874,7 @@ 'phuix-action-list-view' => 'b5c256b8', 'phuix-action-view' => 'b3465b9b', 'phuix-autocomplete' => 'f6699267', - 'phuix-button-view' => 'da1c2a6b', + 'phuix-button-view' => '0f13520b', 'phuix-dropdown-menu' => '8018ee50', 'phuix-form-control-view' => '83e03671', 'phuix-icon-view' => 'bff6884b', @@ -953,6 +953,10 @@ 'javelin-dom', 'javelin-router', ), + '0f13520b' => array( + 'javelin-install', + 'javelin-dom', + ), '0f764c35' => array( 'javelin-install', 'javelin-util', @@ -969,6 +973,9 @@ 'javelin-dom', 'javelin-history', ), + 16053029 => array( + 'phui-theme-css', + ), '17bb8539' => array( 'javelin-behavior', 'javelin-stratcom', @@ -2004,10 +2011,6 @@ 'javelin-util', 'phabricator-shaped-request', ), - 'da1c2a6b' => array( - 'javelin-install', - 'javelin-dom', - ), 'de2e896f' => array( 'javelin-behavior', 'javelin-dom', @@ -2015,9 +2018,6 @@ 'javelin-typeahead-ondemand-source', 'javelin-dom', ), - 'de9fe8c4' => array( - 'phui-theme-css', - ), 'e0ec7f2f' => array( 'javelin-behavior', 'javelin-dom', diff --git a/src/applications/uiexample/examples/PHUIButtonExample.php b/src/applications/uiexample/examples/PHUIButtonExample.php --- a/src/applications/uiexample/examples/PHUIButtonExample.php +++ b/src/applications/uiexample/examples/PHUIButtonExample.php @@ -123,6 +123,18 @@ 'icon' => 'fa-exclamation-triangle', ), array( + 'icon' => 'fa-rocket', + ), + array( + 'icon' => 'fa-clipboard', + ), + array( + 'icon' => 'fa-upload', + ), + array( + 'icon' => 'fa-street-view', + ), + array( 'text' => pht('Copy "Quack" to Clipboard'), 'icon' => 'fa-clipboard', 'copy' => pht('Quack'), diff --git a/src/view/form/control/AphrontFormPolicyControl.php b/src/view/form/control/AphrontFormPolicyControl.php --- a/src/view/form/control/AphrontFormPolicyControl.php +++ b/src/view/form/control/AphrontFormPolicyControl.php @@ -324,7 +324,7 @@ javelin_tag( 'a', array( - 'class' => 'grey button dropdown has-icon policy-control', + 'class' => 'grey button dropdown has-icon has-text policy-control', 'href' => '#', 'mustcapture' => true, 'sigil' => 'policy-control', diff --git a/src/view/phui/PHUIButtonView.php b/src/view/phui/PHUIButtonView.php --- a/src/view/phui/PHUIButtonView.php +++ b/src/view/phui/PHUIButtonView.php @@ -174,6 +174,10 @@ $classes[] = 'has-icon'; } + if (strlen($this->text)) { + $classes[] = 'has-text'; + } + if ($this->iconFirst == false) { $classes[] = 'icon-last'; } @@ -226,10 +230,24 @@ $subtext = null; if ($this->subtext) { $subtext = phutil_tag( - 'div', array('class' => 'phui-button-subtext'), $this->subtext); + 'div', + array( + 'class' => 'phui-button-subtext', + ), + $this->subtext); + } + + if (strlen($this->text)) { + $text = phutil_tag( + 'div', + array( + 'class' => 'phui-button-text', + ), + array( + $text, + $subtext, + )); } - $text = phutil_tag( - 'div', array('class' => 'phui-button-text'), array($text, $subtext)); } $caret = null; diff --git a/webroot/rsrc/css/application/base/main-menu-view.css b/webroot/rsrc/css/application/base/main-menu-view.css --- a/webroot/rsrc/css/application/base/main-menu-view.css +++ b/webroot/rsrc/css/application/base/main-menu-view.css @@ -247,6 +247,7 @@ font-size: 15px; top: 4px; left: 8px; + position: absolute; } .phabricator-main-menu-search-dropdown .caret { diff --git a/webroot/rsrc/css/phui/phui-button.css b/webroot/rsrc/css/phui/phui-button.css --- a/webroot/rsrc/css/phui/phui-button.css +++ b/webroot/rsrc/css/phui/phui-button.css @@ -41,7 +41,7 @@ font-weight: bold; font-size: {$normalfontsize}; display: inline-block; - padding: 4px 16px 5px; + padding: 4px 14px 5px; text-align: center; white-space: nowrap; border-radius: 3px; @@ -301,7 +301,7 @@ position: relative; } -.button .phui-icon-view { +.button.has-text .phui-icon-view { display: inline-block; position: absolute; top: 7px; @@ -313,10 +313,6 @@ right: 10px; } -.phui-button-bar .button .phui-icon-view { - left: 14px; -} - .button.has-icon .phui-button-text { margin-left: 16px; } @@ -374,12 +370,6 @@ border: 0; } -.phui-button-bar a.button.has-icon { - display: inline-block; - height: 18px; - width: 6px; -} - .phui-button-bar .phui-button-bar-first { border-top-right-radius: 0px; border-bottom-right-radius: 0px; diff --git a/webroot/rsrc/js/phuix/PHUIXButtonView.js b/webroot/rsrc/js/phuix/PHUIXButtonView.js --- a/webroot/rsrc/js/phuix/PHUIXButtonView.js +++ b/webroot/rsrc/js/phuix/PHUIXButtonView.js @@ -102,6 +102,7 @@ } JX.DOM.alterClass(node, 'has-icon', !!icon); + JX.DOM.alterClass(node, 'has-text', !!text); JX.DOM.setContent(node, content); } }