* 'default' -- default value when the form is displayed
* 'id' -- HTML id attribute
* 'cssclass' -- CSS class
+ * 'csshelpclass' -- CSS class used to style help text
* 'options' -- associative array mapping labels to values.
* Some field types support multi-level arrays.
* 'options-messages' -- associative array mapping message keys to values.
protected $mLabel; # String label. Set on construction
protected $mID;
protected $mClass = '';
+ protected $mHelpClass = false;
protected $mDefault;
protected $mOptions = false;
protected $mOptionsLabelsNotFromMessage = false;
$this->mClass = $params['cssclass'];
}
+ if ( isset( $params['csshelpclass'] ) ) {
+ $this->mHelpClass = $params['csshelpclass'];
+ }
+
if ( isset( $params['validation-callback'] ) ) {
$this->mValidationCallback = $params['validation-callback'];
}
$rowAttributes['class'] = 'mw-htmlform-hide-if';
}
- $row = Html::rawElement( 'td', array( 'colspan' => 2, 'class' => 'htmlform-tip' ), $helptext );
+ $tdClasses = array( 'htmlform-tip' );
+ if ( $this->mHelpClass !== false ) {
+ $tdClasses[] = $this->mHelpClass;
+ }
+ $row = Html::rawElement( 'td', array( 'colspan' => 2, 'class' => $tdClasses ), $helptext );
$row = Html::rawElement( 'tr', $rowAttributes, $row );
return $row;
if ( !is_null( $this->mUserName ) ) {
# Append the username to the query string
foreach ( $queries as &$query ) {
- $query['user'] = $this->mUserName;
+ if ( $query !== false ) {
+ $query['user'] = $this->mUserName;
+ }
}
}
"Mido",
"OsamaK",
"زكريا",
- "مشعل الحربي"
+ "مشعل الحربي",
+ "ترجمان05"
]
},
- "ooui-dialog-action-close": "أغلق",
"ooui-outline-control-move-down": "انقل العنصر للأسفل",
"ooui-outline-control-move-up": "انقل العنصر للأعلى",
- "ooui-toolbar-more": "مزيد"
+ "ooui-toolbar-more": "مزيد",
+ "ooui-dialog-process-retry": "حاول مرة أخرى"
}
"ශ්වෙත"
]
},
- "ooui-dialog-action-close": "Zavřít",
"ooui-outline-control-move-down": "Přesunout položku dolů",
"ooui-outline-control-move-up": "Přesunout položku nahoru",
"ooui-outline-control-remove": "Odstranit položku",
"ooui-toolbar-more": "Další",
- "ooui-dialog-confirm-title": "Potvrzení",
- "ooui-dialog-confirm-default-prompt": "Opravdu?",
- "ooui-dialog-confirm-default-ok": "OK",
- "ooui-dialog-confirm-default-cancel": "Storno"
+ "ooui-dialog-message-accept": "OK",
+ "ooui-dialog-message-reject": "Storno",
+ "ooui-dialog-process-error": "Něco se pokazilo",
+ "ooui-dialog-process-dismiss": "Zavřít",
+ "ooui-dialog-process-retry": "Zkusit znovu"
}
"Pikne"
]
},
- "ooui-dialog-action-close": "Sule",
"ooui-outline-control-move-down": "Liiguta üksust allapoole",
"ooui-outline-control-move-up": "Liiguta üksust ülespoole",
"ooui-outline-control-remove": "Eemalda üksus",
"ooui-toolbar-more": "Veel",
- "ooui-dialog-confirm-title": "Kinnitus",
- "ooui-dialog-confirm-default-prompt": "Kas oled kindel?",
- "ooui-dialog-confirm-default-ok": "Sobib",
- "ooui-dialog-confirm-default-cancel": "Loobu"
+ "ooui-dialog-message-accept": "Sobib",
+ "ooui-dialog-message-reject": "Loobu",
+ "ooui-dialog-process-error": "Midagi läks valesti",
+ "ooui-dialog-process-dismiss": "Hülga",
+ "ooui-dialog-process-retry": "Proovi uuesti"
}
"Ontsed"
]
},
- "ooui-dialog-action-close": "Chiudi",
"ooui-outline-control-move-down": "Sposta in basso",
"ooui-outline-control-move-up": "Sposta in alto",
"ooui-outline-control-remove": "Rimuovi elemento",
"ooui-toolbar-more": "Altro",
- "ooui-dialog-confirm-title": "Conferma",
- "ooui-dialog-confirm-default-prompt": "Sei sicuro?",
- "ooui-dialog-confirm-default-ok": "OK",
- "ooui-dialog-confirm-default-cancel": "Annulla"
+ "ooui-dialog-message-accept": "OK",
+ "ooui-dialog-message-reject": "Annulla",
+ "ooui-dialog-process-error": "Qualcosa è andato storto",
+ "ooui-dialog-process-dismiss": "Nascondi",
+ "ooui-dialog-process-retry": "Riprova"
}
"PeterisP"
]
},
- "ooui-dialog-action-close": "Aizvērt",
"ooui-outline-control-move-down": "Pārvietot vienumu uz leju",
"ooui-outline-control-move-up": "Pārvietot vienumu uz augšu",
"ooui-toolbar-more": "Vairāk",
- "ooui-dialog-confirm-title": "Apstiprināt",
- "ooui-dialog-confirm-default-prompt": "Vai esat pārliecināts?",
- "ooui-dialog-confirm-default-ok": "Labi",
- "ooui-dialog-confirm-default-cancel": "Atcelt"
+ "ooui-dialog-message-accept": "Labi",
+ "ooui-dialog-message-reject": "Atcelt",
+ "ooui-dialog-process-retry": "Mēģināt vēlreiz"
}
"ooui-dialog-message-accept": "OK",
"ooui-dialog-message-reject": "Anuluj",
"ooui-dialog-process-error": "Coś poszło nie tak",
+ "ooui-dialog-process-dismiss": "Ukryj",
"ooui-dialog-process-retry": "Spróbuj ponownie"
}
"Милан Јелисавчић"
]
},
- "ooui-dialog-action-close": "Затвори",
"ooui-outline-control-move-down": "Премести ставку на доле",
"ooui-outline-control-move-up": "Премести ставку на горе",
"ooui-outline-control-remove": "Уклони ставку",
"ooui-toolbar-more": "Више",
- "ooui-dialog-confirm-title": "Потврди",
- "ooui-dialog-confirm-default-prompt": "Јесте ли сигурни?",
- "ooui-dialog-confirm-default-ok": "У реду",
- "ooui-dialog-confirm-default-cancel": "Откажи"
+ "ooui-dialog-message-accept": "У реду",
+ "ooui-dialog-message-reject": "Откажи",
+ "ooui-dialog-process-error": "Нешто је пошло наопако",
+ "ooui-dialog-process-dismiss": "Одбаци",
+ "ooui-dialog-process-retry": "Покушај поново"
}
"Lokal Profil"
]
},
- "ooui-dialog-action-close": "Stäng",
"ooui-outline-control-move-down": "Flytta ned objekt",
"ooui-outline-control-move-up": "Flytta upp objekt",
"ooui-outline-control-remove": "Ta bort objekt",
"ooui-toolbar-more": "Mer",
- "ooui-dialog-confirm-title": "Bekräfta",
- "ooui-dialog-confirm-default-prompt": "Är du säker?",
- "ooui-dialog-confirm-default-ok": "OK",
- "ooui-dialog-confirm-default-cancel": "Avbryt"
+ "ooui-dialog-message-accept": "OK",
+ "ooui-dialog-message-reject": "Avbryt",
+ "ooui-dialog-process-error": "Något gick fel",
+ "ooui-dialog-process-dismiss": "Stäng",
+ "ooui-dialog-process-retry": "Försök igen"
}
"Minh Nguyen"
]
},
- "ooui-dialog-action-close": "Đóng",
"ooui-outline-control-move-down": "Chuyển mục xuống",
"ooui-outline-control-move-up": "Chuyển mục lên",
"ooui-outline-control-remove": "Xóa khoản",
"ooui-toolbar-more": "Thêm",
- "ooui-dialog-confirm-title": "Xác nhận",
- "ooui-dialog-confirm-default-prompt": "Bạn có chắc chắn?",
- "ooui-dialog-confirm-default-ok": "OK",
- "ooui-dialog-confirm-default-cancel": "Hủy bỏ"
+ "ooui-dialog-message-accept": "OK",
+ "ooui-dialog-message-reject": "Hủy bỏ",
+ "ooui-dialog-process-error": "Đã bị trục trặc",
+ "ooui-dialog-process-dismiss": "Bỏ qua",
+ "ooui-dialog-process-retry": "Thử lại"
}
/*!
- * OOjs UI v0.1.0-pre (d2451ac748)
+ * OOjs UI v0.1.0-pre (97dbb50137)
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2014 OOjs Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2014-07-14T16:49:51Z
+ * Date: 2014-07-16T22:59:48Z
*/
-.oo-ui-dialog-content .oo-ui-window-closeButton {
+.oo-ui-dialog-content > .oo-ui-window-head,
+.oo-ui-dialog-content > .oo-ui-window-body,
+.oo-ui-dialog-content > .oo-ui-window-foot {
position: absolute;
- top: 0;
+ right: 0;
left: 0;
+ overflow: hidden;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
}
-.oo-ui-dialog-content .oo-ui-window-icon {
- margin-left: 3.35em;
+.oo-ui-dialog-content > .oo-ui-window-head {
+ top: 0;
+ z-index: 1;
}
-.oo-ui-dialog-content .oo-ui-window-body {
- position: absolute;
- top: 3.35em;
- right: 0;
+.oo-ui-dialog-content > .oo-ui-window-body {
+ top: 0;
bottom: 0;
- left: 0;
- overflow-y: auto;
+ z-index: 2;
}
-.oo-ui-dialog-content .oo-ui-window-foot {
- position: absolute;
- top: 0;
- right: 0;
- height: 3.35em;
+.oo-ui-dialog-content > .oo-ui-window-foot {
+ bottom: 0;
+ z-index: 1;
}
-.oo-ui-dialog-content .oo-ui-window-foot .oo-ui-buttonedElement-button {
- height: 100%;
+.oo-ui-dialog-content > .oo-ui-window-overlay {
+ z-index: 3;
}
-.oo-ui-dialog-content .oo-ui-window-foot .oo-ui-buttonedElement-button .oo-ui-labeledElement-label {
- display: inline-block;
- width: 0;
- text-indent: -9999px;
+.oo-ui-windowManager-modal > .oo-ui-dialog {
+ background-color: rgba(255, 255, 255, 0.5);
+ opacity: 0;
+ -webkit-transition: opacity 250ms ease-in-out;
+ -moz-transition: opacity 250ms ease-in-out;
+ -ms-transition: opacity 250ms ease-in-out;
+ -o-transition: opacity 250ms ease-in-out;
+ transition: opacity 250ms ease-in-out;
}
-.oo-ui-dialog-medium .oo-ui-window-frame {
- top: 0;
- bottom: 0;
- background-color: white;
+.oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
+ top: 1em;
+ bottom: 1em;
+ background-color: #fff;
+ -webkit-transform: translate3d(0, -200%, 0);
+ -moz-transform: translate3d(0, -200%, 0);
+ -ms-transform: translate3d(0, -200%, 0);
+ -o-transform: translate3d(0, -200%, 0);
+ transform: translate3d(0, -200%, 0);
+ -webkit-transition: transform 250ms ease-in-out;
+ -moz-transition: transform 250ms ease-in-out;
+ -ms-transition: transform 250ms ease-in-out;
+ -o-transition: transform 250ms ease-in-out;
+ transition: transform 250ms ease-in-out;
+}
+
+.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
+ opacity: 1;
+}
+
+.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame {
+ -webkit-transform: translate3d(0, 0, 0);
+ -moz-transform: translate3d(0, 0, 0);
+ -ms-transform: translate3d(0, 0, 0);
+ -o-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+}
+
+.oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
+ border: solid 1px #ccc;
+ border-radius: 0.5em;
+ box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
+}
+
+.oo-ui-messageDialog-title,
+.oo-ui-messageDialog-message {
+ display: block;
+ padding-top: 0.5em;
+ text-align: center;
+}
+
+.oo-ui-messageDialog-title {
+ font-size: 1.5em;
+ line-height: 1em;
+ color: #000;
+}
+
+.oo-ui-messageDialog-message {
+ font-size: 0.9em;
+ line-height: 1.25em;
+ color: #666;
+}
+
+.oo-ui-messageDialog-message-verbose {
+ font-size: 1.1em;
+ line-height: 1.5em;
+ text-align: left;
+}
+
+.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
+ border-right: solid 1px #e5e5e5;
+}
+
+.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
+ border-right-width: 0;
+}
+
+.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
+ border-bottom: solid 1px #e5e5e5;
+}
+
+.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
+ border-bottom-width: 0;
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labeledElement-label {
+ padding: 0 2em;
+ line-height: 3.4em;
+ text-align: center;
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
+ background-color: rgba(0, 0, 0, 0.05);
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget:active {
+ background-color: rgba(0, 0, 0, 0.1);
}
-.oo-ui-window-head {
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggableElement-primary:hover {
+ background-color: rgba(8, 126, 204, 0.05);
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggableElement-primary:active {
+ background-color: rgba(8, 126, 204, 0.1);
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggableElement-primary .oo-ui-labeledElement-label {
+ font-weight: bold;
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggableElement-constructive:hover {
+ background-color: rgba(118, 171, 54, 0.05);
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggableElement-constructive:active {
+ background-color: rgba(118, 171, 54, 0.1);
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggableElement-destructive:hover {
+ background-color: rgba(212, 83, 83, 0.05);
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggableElement-destructive:active {
+ background-color: rgba(212, 83, 83, 0.1);
+}
+
+.oo-ui-processDialog-content .oo-ui-window-head {
height: 3.35em;
border-bottom: 1px solid #dddddd;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
-.oo-ui-window-body {
- padding: 2em 3.35em;
+.oo-ui-processDialog-content .oo-ui-window-body {
+ top: 3.35em;
+ padding: 2em 0;
}
-.oo-ui-window-icon {
- width: 3.35em;
+.oo-ui-processDialog-navigation {
+ position: relative;
height: 3.35em;
- background-size: 2em auto;
- border-left: 1px solid #dddddd;
+ padding: 0 1em;
+}
+
+.oo-ui-processDialog-location {
+ height: 3.35em;
+ padding: 0.25em 0;
+ text-align: center;
+ cursor: default;
+}
+
+.oo-ui-processDialog-title {
+ font-weight: bold;
+ line-height: 1.85em;
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonedElement-button,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonedElement-button,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonedElement-button {
+ min-width: 1.85em;
+ min-height: 1.85em;
+ padding-top: 0.75em;
+ padding-bottom: 0.75em;
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labeledElement-label,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labeledElement-label,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labeledElement-label {
+ padding: 0 1em;
+ line-height: 1.85em;
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-iconedElement-icon,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-iconedElement-icon,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-iconedElement-icon {
+ position: absolute;
+ margin-top: -0.125em;
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button {
+ padding: 0;
+ vertical-align: middle;
+}
+
+.oo-ui-processDialog-actions-safe.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button,
+.oo-ui-processDialog-actions-primary.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button {
+ margin: 0.75em;
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:hover {
+ background-color: rgba(0, 0, 0, 0.05);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:active {
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggableElement-primary:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggableElement-primary:hover {
+ background-color: rgba(8, 126, 204, 0.05);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggableElement-primary:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggableElement-primary:active {
+ background-color: rgba(8, 126, 204, 0.1);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggableElement-primary .oo-ui-labeledElement-label,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggableElement-primary .oo-ui-labeledElement-label {
+ font-weight: bold;
}
-.oo-ui-window-title {
- line-height: 3.35em;
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggableElement-constructive:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggableElement-constructive:hover {
+ background-color: rgba(118, 171, 54, 0.05);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggableElement-constructive:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggableElement-constructive:active {
+ background-color: rgba(118, 171, 54, 0.1);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggableElement-destructive:hover,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggableElement-destructive:hover {
+ background-color: rgba(212, 83, 83, 0.05);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggableElement-destructive:active,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggableElement-destructive:active {
+ background-color: rgba(212, 83, 83, 0.1);
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconedElement .oo-ui-iconedElement-icon {
+ left: 0.5em;
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconedElement .oo-ui-labeledElement-label {
+ padding-left: 2.25em;
+}
+
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconedElement .oo-ui-iconedElement-icon {
+ right: 0.5em;
+}
+
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconedElement .oo-ui-labeledElement-label {
+ padding-right: 2.25em;
+}
+
+.oo-ui-processDialog-actions-other:not(:empty) {
+ padding: 0.75em;
+}
+
+.oo-ui-processDialog-actions-other:not(:empty) .oo-ui-actionWidget {
+ margin: 0 0.75em 0 0;
+ border: solid 1px #ccc;
+ border-radius: 0.25em;
+}
+
+.oo-ui-processDialog > .oo-ui-window-frame {
+ min-height: 5em;
+}
+
+.oo-ui-processDialog-errors {
+ padding: 3em 3em 1.5em 3em;
+ text-align: center;
+ background-color: rgba(255, 255, 255, 0.9);
+}
+
+.oo-ui-processDialog-errors .oo-ui-buttonWidget {
+ margin: 2em 1em 2em 1em;
+}
+
+.oo-ui-processDialog-errors-title {
+ margin-bottom: 2em;
+ font-size: 1.5em;
+ color: #000;
+}
+
+.oo-ui-processDialog-error {
+ padding: 1em;
+ margin: 1em;
+ text-align: left;
+ background-color: #fff7f7;
+ border: solid 1px #ff9e9e;
+ border-radius: 0.25em;
}
.oo-ui-buttonedElement.oo-ui-indicatedElement .oo-ui-buttonedElement-button > .oo-ui-indicatedElement-indicator,
padding: 0;
}
+.oo-ui-lookupWidget-menu {
+ background-color: #fff;
+}
+
.oo-ui-menuItemWidget.oo-ui-optionWidget-selected {
color: #ffffff;
background: #347bff;
/*!
- * OOjs UI v0.1.0-pre (d2451ac748)
+ * OOjs UI v0.1.0-pre (97dbb50137)
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2014 OOjs Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2014-07-14T16:49:51Z
+ * Date: 2014-07-16T22:59:48Z
*/
.oo-ui-dialog-content > .oo-ui-window-head,
.oo-ui-dialog-content > .oo-ui-window-body,
color: #000;
}
-.oo-ui-window > .oo-ui-window-frame {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-
.oo-ui-window-content {
background: transparent;
}
}
.oo-ui-windowManager-modal > .oo-ui-dialog {
- background-color: #fff;
background-color: rgba(255, 255, 255, 0.5);
opacity: 0;
-webkit-transition: opacity 250ms ease-in-out;
top: 1em;
bottom: 1em;
background-color: #fff;
- border: solid 1px #ccc;
- border-radius: 0.5em;
-webkit-transform: scale(0.5);
-moz-transform: scale(0.5);
-ms-transform: scale(0.5);
-o-transform: scale(0.5);
transform: scale(0.5);
- box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
-webkit-transition: all 250ms ease-in-out;
-moz-transition: all 250ms ease-in-out;
-ms-transition: all 250ms ease-in-out;
transform: scale(1);
}
-.oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
- top: 0;
- bottom: 0;
- width: 100%;
- height: 100%;
- border: none;
- border-radius: 0;
- box-shadow: none;
+.oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
+ border: solid 1px #ccc;
+ border-radius: 0.5em;
+ box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
}
-.oo-ui-messageDialog-text.oo-ui-panelLayout {
- bottom: auto;
+.oo-ui-messageDialog-content .oo-ui-window-body {
+ box-shadow: 0 0 0.33em rgba(0, 0, 0, 0.33);
}
-.oo-ui-messageDialog-title {
+.oo-ui-messageDialog-title,
+.oo-ui-messageDialog-message {
display: block;
- padding-top: 0;
+ padding-top: 0.5em;
+ text-align: center;
+}
+
+.oo-ui-messageDialog-title {
font-size: 1.5em;
+ line-height: 1em;
color: #000;
- text-align: center;
}
.oo-ui-messageDialog-message {
- display: block;
font-size: 0.9em;
line-height: 1.25em;
color: #666;
- text-align: center;
}
.oo-ui-messageDialog-message-verbose {
text-align: left;
}
-.oo-ui-messageDialog-content > .oo-ui-window-body {
- bottom: 3.4em;
- box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
-}
-
-.oo-ui-messageDialog-content > .oo-ui-window-foot {
- min-height: 3.4em;
-}
-
-.oo-ui-messageDialog-actions-horizontal {
- display: table;
- width: 100%;
- table-layout: fixed;
-}
-
.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
- display: table-cell;
- width: 1%;
border-right: solid 1px #e5e5e5;
}
border-right-width: 0;
}
-.oo-ui-messageDialog-actions-vertical {
- display: block;
-}
-
.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
- display: block;
- overflow: hidden;
- text-overflow: ellipsis;
border-bottom: solid 1px #e5e5e5;
}
border-bottom-width: 0;
}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget {
- position: relative;
- height: 3.4em;
- padding: 0;
+.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labeledElement-label {
+ padding: 0 2em;
+ line-height: 3.4em;
text-align: center;
}
background-color: rgba(212, 83, 83, 0.1);
}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonedElement-button {
- display: block;
-}
-
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labeledElement-label {
- position: relative;
- top: auto;
- bottom: auto;
- display: inline;
- padding: 0 2em;
- line-height: 3.4em;
- white-space: nowrap;
-}
-
-.oo-ui-processDialog-content > .oo-ui-window-head {
+.oo-ui-processDialog-content .oo-ui-window-head {
height: 3.4em;
}
-.oo-ui-processDialog-content > .oo-ui-window-body {
+.oo-ui-processDialog-content .oo-ui-window-body {
top: 3.4em;
- box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
+ box-shadow: 0 0 0.33em rgba(0, 0, 0, 0.33);
}
.oo-ui-processDialog-navigation {
position: relative;
height: 3.4em;
padding: 0 1em;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- -webkit-touch-callout: none;
}
.oo-ui-processDialog-location {
height: 1.9em;
padding: 0.75em 0;
- overflow: hidden;
text-align: center;
- text-overflow: ellipsis;
- white-space: nowrap;
cursor: default;
}
-.oo-ui-processDialog-location .oo-ui-labelWidget {
- display: inline;
-}
-
.oo-ui-processDialog-title {
font-weight: bold;
line-height: 1.9em;
}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget {
- white-space: nowrap;
-}
-
.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonedElement-button,
.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonedElement-button,
.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonedElement-button {
vertical-align: middle;
}
-.oo-ui-processDialog-actions-safe,
-.oo-ui-processDialog-actions-primary {
- position: absolute;
- top: 0;
- bottom: 0;
-}
-
.oo-ui-processDialog-actions-safe.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button,
.oo-ui-processDialog-actions-primary.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button {
margin: 0.75em;
background-color: rgba(212, 83, 83, 0.1);
}
-.oo-ui-processDialog-actions-safe {
- left: 0;
-}
-
.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconedElement .oo-ui-iconedElement-icon {
left: 0.5em;
}
padding-left: 2.25em;
}
-.oo-ui-processDialog-actions-primary {
- right: 0;
-}
-
.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconedElement .oo-ui-iconedElement-icon {
right: 0.5em;
}
}
.oo-ui-processDialog-errors {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 2;
- display: none;
padding: 3em 3em 1.5em 3em;
- overflow-x: hidden;
- overflow-y: auto;
text-align: center;
background-color: rgba(255, 255, 255, 0.9);
}
font-size: 1.5em;
}
-.oo-ui-panelLayout {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
-}
-
.oo-ui-panelLayout-padded {
padding: 1.25em;
}
/*!
- * OOjs UI v0.1.0-pre (d2451ac748)
+ * OOjs UI v0.1.0-pre (97dbb50137)
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2014 OOjs Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2014-07-14T16:49:51Z
+ * Date: 2014-07-16T22:59:48Z
*/
( function ( OO ) {
// Properties
this.factory = config.factory;
- this.modal = config.modal === undefined ? true : !!config.modal;
+ this.modal = config.modal === undefined || !!config.modal;
this.windows = {};
this.opening = null;
this.opened = null;
}
this.$element.toggleClass( 'oo-ui-windowManager-fullscreen', size === 'full' );
+ this.$element.toggleClass( 'oo-ui-windowManager-floating', size !== 'full' );
win.setDimensions( sizes[size] );
return this;
};
/**
- * Process error.
- *
* @abstract
* @class
*
// Properties
this.message = message instanceof jQuery ? message : String( message );
- this.recoverable = config.recoverable === undefined ? true : !!config.recoverable;
+ this.recoverable = config.recoverable === undefined || !!config.recoverable;
};
/* Setup */
/**
* Element with a button.
*
+ * Buttons are used for controls which can be clicked. They can be configured to use tab indexing
+ * and access keys for accessibility purposes.
+ *
* @abstract
* @class
*
/**
* Element containing an icon.
*
+ * Icons are graphics, about the size of normal text. They can be used to aid the user in locating
+ * a control or convey information in a more space efficient way. Icons should rarely be used
+ * without labels; such as in a toolbar where space is at a premium or within a context where the
+ * meaning is very clear to the user.
+ *
* @abstract
* @class
*
/**
* Element containing an indicator.
*
+ * Indicators are graphics, smaller than normal text. They can be used to describe unique status or
+ * behavior. Indicators should only be used in exceptional cases; such as a button that opens a menu
+ * instead of performing an action directly, or an item in a list which has errors that need to be
+ * resolved.
+ *
* @abstract
* @class
*
};
/**
- * Popuppable element.
+ * Element containing an OO.ui.PopupWidget object.
*
* @abstract
* @class
/**
* Element with a title.
*
+ * Titles are rendered by the browser and are made visible when hovering the element. Titles are
+ * not visible on touch devices.
+ *
* @abstract
* @class
*
this.getElementDocument().addEventListener(
'mouseup', this.onCapturedMouseUpHandler, true
);
- return false;
}
}
+ return false;
};
/**
'$': this.$, 'scrollable': true, 'classes': [ 'oo-ui-messageDialog-container' ]
} );
this.text = new OO.ui.PanelLayout( {
- '$': this.$, 'padded': true, 'classes': [ 'oo-ui-messageDialog-text' ]
+ '$': this.$, 'padded': true, 'expanded': false, 'classes': [ 'oo-ui-messageDialog-text' ]
} );
this.message = new OO.ui.LabelWidget( {
'$': this.$, 'classes': [ 'oo-ui-messageDialog-message' ]
this.pages = {};
this.ignoreFocus = false;
this.stackLayout = new OO.ui.StackLayout( { '$': this.$, 'continuous': !!config.continuous } );
- this.autoFocus = config.autoFocus === undefined ? true : !!config.autoFocus;
+ this.autoFocus = config.autoFocus === undefined || !!config.autoFocus;
this.outlineVisible = false;
this.outlined = !!config.outlined;
if ( this.outlined ) {
* @param {OO.ui.Widget} field Field widget
* @param {Object} [config] Configuration options
* @cfg {string} [align='left'] Alignment mode, either 'left', 'right', 'top' or 'inline'
+ * @cfg {string} [help] Explanatory text shown as a '?' icon.
*/
OO.ui.FieldLayout = function OoUiFieldLayout( field, config ) {
+ var popupButtonWidget;
// Config initialization
config = $.extend( { 'align': 'left' }, config );
OO.ui.FieldLayout.super.call( this, config );
// Mixin constructors
+ this.$help = this.$( '<div>' );
OO.ui.LabeledElement.call( this, this.$( '<label>' ), config );
+ if ( config.help ) {
+ popupButtonWidget = new OO.ui.PopupButtonWidget( $.extend(
+ {
+ '$': this.$,
+ 'frameless': true,
+ 'icon': 'info',
+ 'title': config.help
+ },
+ config,
+ { label: null }
+ ) );
+ popupButtonWidget.getPopup().$body.append( this.getElementDocument().createTextNode( config.help ) );
+ this.$help = popupButtonWidget.$element;
+ }
// Properties
this.$field = this.$( '<div>' );
}
// Reorder elements
if ( value === 'inline' ) {
- this.$element.append( this.$field, this.$label );
+ this.$element.append( this.$field, this.$label, this.$help );
} else {
- this.$element.append( this.$label, this.$field );
+ this.$element.append( this.$help, this.$label, this.$field );
}
// Set classes
if ( this.align ) {
OO.ui.FieldsetLayout.static.tagName = 'div';
/**
- * Form layout.
+ * Layout with an HTML form.
*
* @class
* @extends OO.ui.Layout
*
* @constructor
* @param {Object} [config] Configuration options
- * @cfg {boolean} [scrollable] Allow vertical scrolling
- * @cfg {boolean} [padded] Pad the content from the edges
+ * @cfg {boolean} [scrollable=false] Allow vertical scrolling
+ * @cfg {boolean} [padded=false] Pad the content from the edges
+ * @cfg {boolean} [expanded=true] Expand size to fill the entire parent element
*/
OO.ui.PanelLayout = function OoUiPanelLayout( config ) {
// Config initialization
if ( config.padded ) {
this.$element.addClass( 'oo-ui-panelLayout-padded' );
}
+
+ if ( config.expanded === undefined || config.expanded ) {
+ this.$element.addClass( 'oo-ui-panelLayout-expanded' );
+ }
};
/* Setup */
};
/**
- * Group widget.
- *
- * Mixin for OO.ui.Widget subclasses.
+ * Mixin for OO.ui.Widget subclasses to provide OO.ui.GroupElement.
*
* Use together with OO.ui.ItemWidget to make disabled state inheritable.
*
};
/**
- * Item widget.
+ * Mixin for widgets used as items in widgets that inherit OO.ui.GroupWidget.
+ *
+ * Item widgets have a reference to a OO.ui.GroupWidget while they are attached to the group. This
+ * allows bidrectional communication.
*
* Use together with OO.ui.GroupWidget to make disabled state inheritable.
*
};
/**
- * Lookup input widget.
+ * Mixin that adds a menu showing suggested values for a text input.
*
- * Mixin that adds a menu showing suggested values to a text input. Subclasses must handle `select`
- * and `choose` events on #lookupMenu to make use of selections.
+ * Subclasses must handle `select` and `choose` events on #lookupMenu to make use of selections.
*
* @class
* @abstract
};
/**
- * Creates an OO.ui.OutlineControlsWidget object.
+ * Set of controls for an OO.ui.OutlineWidget.
*
- * Use together with OO.ui.OutlineWidget.js
+ * Controls include moving items up and down, removing items, and adding different kinds of items.
*
* @class
+ * @extends OO.ui.Widget
+ * @mixins OO.ui.GroupElement
+ * @mixins OO.ui.IconedElement
*
* @constructor
* @param {OO.ui.OutlineWidget} outline Outline to control
};
/**
- * Width with on and off states.
- *
- * Mixin for widgets with a boolean state.
+ * Mixin for widgets with a boolean on/off state.
*
* @abstract
* @class
};
/**
- * Container for multiple related buttons.
+ * Group widget for multiple related buttons.
*
* Use together with OO.ui.ButtonWidget.
*
OO.mixinClass( OO.ui.ButtonGroupWidget, OO.ui.GroupElement );
/**
- * Button widget.
+ * Generic widget for buttons.
*
* @class
* @extends OO.ui.Widget
};
/**
- * ActionButton widget.
+ * Button widget that executes an action and is managed by an OO.ui.ActionSet.
*
* @class
* @extends OO.ui.ButtonWidget
/**
* Indicator widget.
*
+ * See OO.ui.IndicatedElement for more information.
+ *
* @class
* @extends OO.ui.Widget
* @mixins OO.ui.IndicatedElement
/**
* Inline menu of options.
*
+ * Inline menus provide a control for accessing a menu and compose a menu within the widget, which
+ * can be accessed using the #getMenu method.
+ *
* Use with OO.ui.MenuOptionWidget.
*
* @class
OO.ui.TitledElement.call( this, this.$label, config );
// Properties
- this.menu = new OO.ui.MenuWidget( $.extend( { '$': this.$ }, config.menu ) );
+ this.menu = new OO.ui.MenuWidget( $.extend( { '$': this.$, 'widget': this }, config.menu ) );
this.$handle = this.$( '<span>' );
// Events
};
/**
- * Input widget.
+ * Base class for input widgets.
*
* @abstract
* @class
};
/**
- * Checkbox widget.
+ * Checkbox input widget.
*
* @class
* @extends OO.ui.InputWidget
};
/**
- * Text input widget.
+ * Input widget with a text field.
*
* @class
* @extends OO.ui.InputWidget
};
/**
- * Option widget.
- *
- * Use with OO.ui.SelectWidget.
+ * Generic option widget for use with OO.ui.SelectWidget.
*
* @class
* @extends OO.ui.Widget
};
/**
- * Option with an option icon and indicator.
+ * Option widget with an option icon and indicator.
*
* Use together with OO.ui.SelectWidget.
*
};
/**
- * Menu item widget.
- *
- * Use with OO.ui.MenuWidget.
+ * Item of an OO.ui.MenuWidget.
*
* @class
* @extends OO.ui.DecoratedOptionWidget
OO.inheritClass( OO.ui.MenuItemWidget, OO.ui.DecoratedOptionWidget );
/**
- * Menu section item widget.
- *
- * Use with OO.ui.MenuWidget.
+ * Section to group one or more items in a OO.ui.MenuWidget.
*
* @class
* @extends OO.ui.DecoratedOptionWidget
OO.ui.MenuSectionItemWidget.static.highlightable = false;
/**
- * Creates an OO.ui.OutlineItemWidget object.
- *
- * Use with OO.ui.OutlineWidget.
+ * Items for an OO.ui.OutlineWidget.
*
* @class
* @extends OO.ui.DecoratedOptionWidget
this.autoClose = !!config.autoClose;
this.$autoCloseIgnore = config.$autoCloseIgnore;
this.transitionTimeout = null;
- this.anchor = false;
+ this.anchor = null;
this.width = config.width !== undefined ? config.width : 320;
this.height = config.height !== undefined ? config.height : null;
this.align = config.align || 'center';
this.closeButton.connect( this, { 'click': 'onCloseButtonClick' } );
// Initialization
- this.toggleAnchor( config.anchor !== undefined ? !!config.anchor : true );
+ this.toggleAnchor( config.anchor === undefined || config.anchor );
this.$body.addClass( 'oo-ui-popupWidget-body' );
this.$anchor.addClass( 'oo-ui-popupWidget-anchor' );
this.$head
/**
* Search widget.
*
- * Combines query and results selection widgets.
+ * Search widgets combine a query input, placed above, and a results selection widget, placed below.
+ * Results are cleared and populated each time the query is changed.
*
* @class
* @extends OO.ui.Widget
};
/**
- * Selection of options.
+ * Generic selection of options.
+ *
+ * Items can contain any rendering, and are uniquely identified by a has of thier data. Any widget
+ * that provides options, from which the user must choose one, should be built on this class.
*
* Use together with OO.ui.OptionWidget.
*
OO.inheritClass( OO.ui.ButtonSelectWidget, OO.ui.SelectWidget );
/**
- * Menu widget.
+ * Overlaid menu of options.
+ *
+ * Menus are clipped to the visible viewport. They do not provide a control for opening or closing
+ * the menu.
*
* Use together with OO.ui.MenuItemWidget.
*
* @constructor
* @param {Object} [config] Configuration options
* @cfg {OO.ui.InputWidget} [input] Input to bind keyboard handlers to
+ * @cfg {OO.ui.Widget} [widget] Widget to bind mouse handlers to
* @cfg {boolean} [autoHide=true] Hide the menu when the mouse is pressed outside the menu
*/
OO.ui.MenuWidget = function OoUiMenuWidget( config ) {
this.newItems = null;
this.autoHide = config.autoHide === undefined || !!config.autoHide;
this.$input = config.input ? config.input.$input : null;
+ this.$widget = config.widget ? config.widget.$element : null;
this.$previousFocus = null;
this.isolated = !config.input;
this.onKeyDownHandler = OO.ui.bind( this.onKeyDown, this );
* @param {jQuery.Event} e Key down event
*/
OO.ui.MenuWidget.prototype.onDocumentMouseDown = function ( e ) {
- if ( !$.contains( this.$element[0], e.target ) ) {
+ if ( !$.contains( this.$element[0], e.target ) && ( !this.$widget || !$.contains( this.$widget[0], e.target ) ) ) {
this.toggle( false );
}
};
/**
* Menu for a text input widget.
*
+ * This menu is specially designed to be positioned beneeth the text input widget. Even if the input
+ * is in a different frame, the menu's position is automatically calulated and maintained when the
+ * menu is toggled or the window is resized.
+ *
* @class
* @extends OO.ui.MenuWidget
*
};
/**
- * Create an OO.ui.OutlineWidget object.
+ * Structured list of items.
*
* Use with OO.ui.OutlineItemWidget.
*
/*!
- * OOjs UI v0.1.0-pre (d2451ac748)
+ * OOjs UI v0.1.0-pre (97dbb50137)
* https://www.mediawiki.org/wiki/OOjs_UI
*
* Copyright 2011–2014 OOjs Team and other contributors.
* Released under the MIT license
* http://oojs.mit-license.org
*
- * Date: 2014-07-14T16:49:51Z
+ * Date: 2014-07-16T22:59:48Z
*/
/* Textures */
line-height: 1em;
}
-.oo-ui-window-frame > .oo-ui-frame {
+> .oo-ui-window-frame {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+> .oo-ui-window-frame > .oo-ui-frame {
width: 100%;
height: 100%;
}
height: 100%;
}
+.oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
+ top: 0;
+ bottom: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.oo-ui-messageDialog-actions-horizontal {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+}
+
+.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
+ display: table-cell;
+ width: 1%;
+}
+
+.oo-ui-messageDialog-actions-vertical {
+ display: block;
+}
+
+.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
+ display: block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget {
+ position: relative;
+ text-align: center;
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonedElement-button {
+ display: block;
+}
+
+.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labeledElement-label {
+ position: relative;
+ top: auto;
+ bottom: auto;
+ display: inline;
+ white-space: nowrap;
+}
+
+.oo-ui-processDialog-location {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.oo-ui-processDialog-title {
+ display: inline;
+}
+
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget {
+ white-space: nowrap;
+}
+
+.oo-ui-processDialog-actions-safe,
+.oo-ui-processDialog-actions-primary {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+}
+
+.oo-ui-processDialog-actions-safe {
+ left: 0;
+}
+
+.oo-ui-processDialog-actions-primary {
+ right: 0;
+}
+
+.oo-ui-processDialog-errors {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 2;
+ display: none;
+ padding: 3em 3em 1.5em 3em;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
.oo-ui-buttonedElement > .oo-ui-buttonedElement-button {
display: inline-block;
vertical-align: middle;
padding: 0.5em 0;
}
+.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-buttonedElement-button > .oo-ui-iconedElement-icon {
+ margin-top: 0.25em;
+}
+
+.oo-ui-fieldLayout > .oo-ui-popupButtonWidget > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
+ z-index: 1;
+}
+
.oo-ui-fieldsetLayout {
position: relative;
padding: 0;
padding: 0.5em 0;
}
+.oo-ui-panelLayout {
+ position: relative;
+}
+
.oo-ui-panelLayout-scrollable {
overflow-y: auto;
}
+.oo-ui-panelLayout-expanded {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+}
+
.oo-ui-stackLayout > .oo-ui-panelLayout {
display: none;
}
}
.oo-ui-menuToolGroup .oo-ui-tool-active .oo-ui-tool-link .oo-ui-iconedElement-icon {
- background-image: /* @embed */ url(images/icons/check.png);
+ background-image: /* @embed */ url(images/icons/check.svg);
}
.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {