From: James D. Forrester Date: Wed, 18 Jan 2017 00:12:07 +0000 (-0800) Subject: Update OOjs UI to v0.18.4 X-Git-Tag: 1.31.0-rc.0~4299^2~1 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22suivi_revisions%22%2C%22id_auteur=%24connecte%22%29%20.%20%22?a=commitdiff_plain;h=58d61a72489bcabec5c5971ae5f53ef48cfd9643;p=lhc%2Fweb%2Fwiklou.git Update OOjs UI to v0.18.4 Release notes: https://phabricator.wikimedia.org/diffusion/GOJU/browse/master/History.md;v0.18.4 Change-Id: I09eacfe7597b26e33ef50e606afcee0cefca1d1c --- diff --git a/composer.json b/composer.json index e103d9c277..e8251528a1 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,7 @@ "ext-xml": "*", "liuggio/statsd-php-client": "1.0.18", "mediawiki/at-ease": "1.1.0", - "oojs/oojs-ui": "0.18.3", + "oojs/oojs-ui": "0.18.4", "oyejorge/less.php": "1.7.0.10", "php": ">=5.5.9", "psr/log": "1.0.0", diff --git a/resources/lib/oojs-ui/oojs-ui-apex.js b/resources/lib/oojs-ui/oojs-ui-apex.js index 556196cec0..870f6054de 100644 --- a/resources/lib/oojs-ui/oojs-ui-apex.js +++ b/resources/lib/oojs-ui/oojs-ui-apex.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.18.3 + * OOjs UI v0.18.4 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2017 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2017-01-04T00:22:40Z + * Date: 2017-01-18T00:07:07Z */ ( function ( OO ) { diff --git a/resources/lib/oojs-ui/oojs-ui-core-apex.css b/resources/lib/oojs-ui/oojs-ui-core-apex.css index c36774ace2..842ddfde47 100644 --- a/resources/lib/oojs-ui/oojs-ui-core-apex.css +++ b/resources/lib/oojs-ui/oojs-ui-core-apex.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.18.3 + * OOjs UI v0.18.4 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2017 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2017-01-04T00:22:45Z + * Date: 2017-01-18T00:07:12Z */ .oo-ui-element-hidden { display: none !important; @@ -211,7 +211,8 @@ .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button, .oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button { opacity: 0.5; - -webkit-transform: translate3d(0, 0, 0); + -webkit-transform: translateZ(0); + transform: translateZ(0); box-shadow: none; color: #333; background: #eee; @@ -230,6 +231,7 @@ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; + min-height: 3.125em; } .oo-ui-iconElement .oo-ui-iconElement-icon, .oo-ui-iconElement.oo-ui-iconElement-icon { @@ -277,57 +279,77 @@ .oo-ui-fieldLayout:after { clear: both; } -.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label, -.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label, +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header, +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header, +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help, +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help, .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field, .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field { display: block; float: left; } -.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label { +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header { text-align: right; } .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body { display: table; + width: 100%; } -.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label, +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header, .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field { display: table-cell; vertical-align: middle; } -.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-top > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label { - display: inline-block; +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field { + width: 1px; } -.oo-ui-fieldLayout > .oo-ui-fieldLayout-help { +.oo-ui-fieldLayout .oo-ui-fieldLayout-help { float: right; } -.oo-ui-fieldLayout > .oo-ui-fieldLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup { +.oo-ui-fieldLayout .oo-ui-fieldLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup { z-index: 1; } -.oo-ui-fieldLayout > .oo-ui-fieldLayout-help .oo-ui-fieldLayout-help-content { +.oo-ui-fieldLayout .oo-ui-fieldLayout-help .oo-ui-fieldLayout-help-content { padding: 0.5em 0.75em; line-height: 1.5; } +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top .oo-ui-fieldLayout-help, +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline .oo-ui-fieldLayout-help { + margin-top: -0.3em; +} .oo-ui-fieldLayout:last-child { margin-bottom: 0; } -.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label, -.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label { - padding-top: 0.5em; - margin-right: 5%; - width: 35%; +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help, +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help { + margin-right: 0; + margin-left: -1.875em; } .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field, .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field { width: 60%; } +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header, +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header { + margin-right: 5%; + width: 35%; +} +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label, +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label { + display: block; + padding-top: 0.5em; +} .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline { margin-bottom: 1.25em; } -.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label { - padding: 0.25em 0.25em 0.25em 0.5em; +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body { + max-width: 50em; +} +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header { + padding: 0.25em 0 0.25em 0.5em; } -.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label { +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header { + max-width: 50em; padding: 0.5em 0; } .oo-ui-fieldLayout > .oo-ui-popupButtonWidget { @@ -337,7 +359,7 @@ .oo-ui-fieldLayout > .oo-ui-popupButtonWidget:last-child { margin-right: 0; } -.oo-ui-fieldLayout-disabled > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label { +.oo-ui-fieldLayout-disabled > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label { color: #ccc; } .oo-ui-fieldLayout-messages { @@ -362,9 +384,6 @@ line-height: 1.5em; vertical-align: middle; } -.oo-ui-actionFieldLayout { - max-width: 50em; -} .oo-ui-actionFieldLayout-input, .oo-ui-actionFieldLayout-button { display: table-cell; @@ -377,6 +396,9 @@ width: 1%; white-space: nowrap; } +.oo-ui-actionFieldLayout.oo-ui-fieldLayout-align-top { + max-width: 50em; +} .oo-ui-fieldsetLayout { position: relative; min-width: 0; @@ -387,11 +409,11 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { display: table-cell; } -.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon { +.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-fieldsetLayout-header > .oo-ui-iconElement-icon { display: block; position: absolute; } -.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label { +.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-fieldsetLayout-header { color: inherit; display: inline-table; box-sizing: border-box; @@ -400,44 +422,48 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { white-space: normal; float: left; } -.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label:empty { +.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-fieldsetLayout-header > .oo-ui-labelElement-label:empty { display: none; } .oo-ui-fieldsetLayout-group { clear: both; } -.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help { +.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help { float: right; } -.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup { +.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup { z-index: 1; } -.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help .oo-ui-fieldsetLayout-help-content { +.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help .oo-ui-fieldsetLayout-help-content { padding: 0.5em 0.75em; line-height: 1.4; } +.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-header { + width: 50em; +} .oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout, .oo-ui-fieldsetLayout + .oo-ui-formLayout { margin-top: 2em; } -.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label { +.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-fieldsetLayout-header > .oo-ui-labelElement-label { + display: inline-block; font-size: 1.1em; margin-bottom: 0.5em; padding: 0.25em 0; font-weight: bold; } -.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label { +.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-fieldsetLayout-header > .oo-ui-labelElement-label { padding-left: 2em; line-height: 1.8em; } -.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon { +.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-fieldsetLayout-header > .oo-ui-iconElement-icon { left: 0; top: 0.25em; } -.oo-ui-fieldsetLayout > .oo-ui-popupButtonWidget { +.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-header > .oo-ui-popupButtonWidget { margin-right: 0; } -.oo-ui-fieldsetLayout > .oo-ui-popupButtonWidget:last-child { +.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-header > .oo-ui-popupButtonWidget:last-child { margin-right: 0; } .oo-ui-formLayout + .oo-ui-fieldsetLayout, @@ -449,8 +475,8 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { } .oo-ui-panelLayout-scrollable { overflow-y: auto; - /* Make scrolling smooth */ - -webkit-transform: translate3d(0, 0, 0); + -webkit-transform: translateZ(0); + transform: translateZ(0); } .oo-ui-panelLayout-expanded { position: absolute; @@ -464,7 +490,6 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { } .oo-ui-panelLayout-framed { border-radius: 0.5em; - box-shadow: 0 0.25em 1em rgba(0, 0, 0, 0.25); } .oo-ui-panelLayout-padded.oo-ui-panelLayout-framed { margin: 1em 0; @@ -598,7 +623,7 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { border-radius: 0.3em; margin-right: 0.5em; } -.oo-ui-buttonGroupWidget .oo-ui-buttonElement-active .oo-ui-buttonElement-button { +.oo-ui-buttonGroupWidget .oo-ui-buttonWidget.oo-ui-buttonElement-active .oo-ui-buttonElement-button { cursor: default; } .oo-ui-buttonGroupWidget:last-child { @@ -640,8 +665,8 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor { display: block; position: absolute; - top: 0; - /* @noflip */ + /* `top` property is to be set in theme's selector due to specific `@size-anchor` values + /* @noflip */ left: 0; background-repeat: no-repeat; } @@ -669,9 +694,12 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { border-radius: 0.25em; box-shadow: 0 0.15em 0.5em 0 rgba(0, 0, 0, 0.2); } -.oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup { +.oo-ui-popupWidget-anchored { margin-top: 6px; } +.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor { + top: -6px; +} .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before, .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after { content: ''; @@ -873,6 +901,11 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { -ms-user-select: none; user-select: none; } +.oo-ui-textInputWidget-php > .oo-ui-iconElement-icon, +.oo-ui-textInputWidget-php > .oo-ui-indicatorElement-indicator, +.oo-ui-textInputWidget-php > .oo-ui-labelElement-label { + pointer-events: none; +} .oo-ui-textInputWidget input, .oo-ui-textInputWidget textarea { padding: 0.5em; diff --git a/resources/lib/oojs-ui/oojs-ui-core-mediawiki.css b/resources/lib/oojs-ui/oojs-ui-core-mediawiki.css index 68d6413f82..89b2164961 100644 --- a/resources/lib/oojs-ui/oojs-ui-core-mediawiki.css +++ b/resources/lib/oojs-ui/oojs-ui-core-mediawiki.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.18.3 + * OOjs UI v0.18.4 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2017 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2017-01-04T00:22:45Z + * Date: 2017-01-18T00:07:12Z */ .oo-ui-element-hidden { display: none !important; @@ -377,6 +377,7 @@ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; + min-height: 3.125em; } .oo-ui-iconElement .oo-ui-iconElement-icon, .oo-ui-iconElement.oo-ui-iconElement-icon { @@ -416,37 +417,44 @@ .oo-ui-fieldLayout:after { clear: both; } -.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label, -.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label, +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header, +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header, +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help, +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help, .oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field, .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field { display: block; float: left; } -.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label { +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header { text-align: right; } .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body { display: table; + width: 100%; } -.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label, +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header, .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field { display: table-cell; vertical-align: middle; } -.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-top > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label { - display: inline-block; +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field { + width: 1px; } -.oo-ui-fieldLayout > .oo-ui-fieldLayout-help { +.oo-ui-fieldLayout .oo-ui-fieldLayout-help { float: right; } -.oo-ui-fieldLayout > .oo-ui-fieldLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup { +.oo-ui-fieldLayout .oo-ui-fieldLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup { z-index: 1; } -.oo-ui-fieldLayout > .oo-ui-fieldLayout-help .oo-ui-fieldLayout-help-content { +.oo-ui-fieldLayout .oo-ui-fieldLayout-help .oo-ui-fieldLayout-help-content { padding: 0.5em 0.75em; line-height: 1.5; } +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top .oo-ui-fieldLayout-help, +.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline .oo-ui-fieldLayout-help { + margin-top: -0.3em; +} .oo-ui-fieldLayout.oo-ui-labelElement, .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline { margin-top: 1.171875em; @@ -456,24 +464,40 @@ .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline:first-child { margin-top: 0; } -.oo-ui-fieldLayout.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label { +.oo-ui-fieldLayout.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header { padding-bottom: 0.3125em; +} +.oo-ui-fieldLayout.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label { line-height: 1.4; } -.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label { - padding: 0.3125em 0.46875em; +.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-top > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header, +.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body { + max-width: 50em; } -.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label, -.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label { +.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header, +.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header { width: 35%; margin-right: 5%; +} +.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label, +.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label { + display: block; padding-top: 0.3125em; } +.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help, +.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-help { + margin-right: 0; + margin-left: -1.875em; +} .oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field, .oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field { width: 60%; } -.oo-ui-fieldLayout-disabled > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label { +.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header { + padding: 0.3125em 0.46875em; + padding-right: 0; +} +.oo-ui-fieldLayout-disabled > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header > .oo-ui-labelElement-label { color: #72777d; } .oo-ui-fieldLayout > .oo-ui-popupButtonWidget { @@ -501,9 +525,6 @@ line-height: 1.4; vertical-align: middle; } -.oo-ui-actionFieldLayout { - max-width: 50em; -} .oo-ui-actionFieldLayout-input, .oo-ui-actionFieldLayout-button { display: table-cell; @@ -516,6 +537,9 @@ width: 1%; white-space: nowrap; } +.oo-ui-actionFieldLayout.oo-ui-fieldLayout-align-top { + max-width: 50em; +} .oo-ui-fieldsetLayout { position: relative; min-width: 0; @@ -526,11 +550,11 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { display: table-cell; } -.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon { +.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-fieldsetLayout-header > .oo-ui-iconElement-icon { display: block; position: absolute; } -.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label { +.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-fieldsetLayout-header { color: inherit; display: inline-table; box-sizing: border-box; @@ -539,44 +563,48 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { white-space: normal; float: left; } -.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label:empty { +.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-fieldsetLayout-header > .oo-ui-labelElement-label:empty { display: none; } .oo-ui-fieldsetLayout-group { clear: both; } -.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help { +.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help { float: right; } -.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup { +.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup { z-index: 1; } -.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help .oo-ui-fieldsetLayout-help-content { +.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-help .oo-ui-fieldsetLayout-help-content { padding: 0.5em 0.75em; line-height: 1.4; } +.oo-ui-fieldsetLayout .oo-ui-fieldsetLayout-header { + width: 50em; +} .oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout, .oo-ui-fieldsetLayout + .oo-ui-formLayout { margin-top: 2em; } -.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label { +.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-fieldsetLayout-header > .oo-ui-labelElement-label { + display: inline-block; margin-bottom: 0.56818em; font-size: 1.1em; font-weight: bold; line-height: 1.4; } -.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label { +.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-fieldsetLayout-header > .oo-ui-labelElement-label { padding-left: 2em; line-height: 1.8; } -.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon { +.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-fieldsetLayout-header > .oo-ui-iconElement-icon { top: 0; left: 0; } -.oo-ui-fieldsetLayout > .oo-ui-popupButtonWidget { +.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-header > .oo-ui-popupButtonWidget { margin-right: 0; } -.oo-ui-fieldsetLayout > .oo-ui-popupButtonWidget:last-child { +.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-header > .oo-ui-popupButtonWidget:last-child { margin-right: 0; } .oo-ui-formLayout + .oo-ui-fieldsetLayout, @@ -588,8 +616,8 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { } .oo-ui-panelLayout-scrollable { overflow-y: auto; - /* Make scrolling smooth */ - -webkit-transform: translate3d(0, 0, 0); + -webkit-transform: translateZ(0); + transform: translateZ(0); } .oo-ui-panelLayout-expanded { position: absolute; @@ -601,10 +629,13 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { .oo-ui-panelLayout-padded { padding: 1.25em; } +.oo-ui-panelLayout-padded.oo-ui-formLayout > .oo-ui-fieldsetLayout .oo-ui-labelElement-label, +.oo-ui-panelLayout-padded.oo-ui-formLayout > .oo-ui-fieldsetLayout .oo-ui-iconElement-icon { + margin-top: -0.25em; +} .oo-ui-panelLayout-framed { border: 1px solid #a2a9b1; border-radius: 2px; - box-shadow: 0 0.15em 0 0 rgba(0, 0, 0, 0.15); } .oo-ui-panelLayout-padded.oo-ui-panelLayout-framed { margin: 1em 0; @@ -737,7 +768,7 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { z-index: 0; position: relative; } -.oo-ui-buttonGroupWidget .oo-ui-buttonElement-active .oo-ui-buttonElement-button { +.oo-ui-buttonGroupWidget .oo-ui-buttonWidget.oo-ui-buttonElement-active .oo-ui-buttonElement-button { cursor: default; } .oo-ui-buttonGroupWidget:last-child { @@ -792,8 +823,8 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor { display: block; position: absolute; - top: 0; - /* @noflip */ + /* `top` property is to be set in theme's selector due to specific `@size-anchor` values + /* @noflip */ left: 0; background-repeat: no-repeat; } @@ -819,11 +850,14 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { background-color: #fff; border: 1px solid #a2a9b1; border-radius: 2px; - box-shadow: 0 0.15em 0 0 rgba(0, 0, 0, 0.15); + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.25); } -.oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup { +.oo-ui-popupWidget-anchored { margin-top: 9px; } +.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor { + top: -9px; +} .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before, .oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after { content: ''; @@ -1232,6 +1266,11 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { -ms-user-select: none; user-select: none; } +.oo-ui-textInputWidget-php > .oo-ui-iconElement-icon, +.oo-ui-textInputWidget-php > .oo-ui-indicatorElement-indicator, +.oo-ui-textInputWidget-php > .oo-ui-labelElement-label { + pointer-events: none; +} .oo-ui-textInputWidget input, .oo-ui-textInputWidget textarea { font-size: inherit; @@ -1365,7 +1404,7 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { margin-top: -1px; border: 1px solid #a2a9b1; border-radius: 0 0 2px 2px; - box-shadow: 0 0.15em 0 0 rgba(0, 0, 0, 0.15); + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.25); } .oo-ui-menuSelectWidget input { position: absolute; @@ -1626,7 +1665,6 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { overflow: hidden; } .oo-ui-progressBarWidget-bar { - background-color: #36c; height: 1em; -webkit-transition: width 200ms; -moz-transition: width 200ms; @@ -1643,8 +1681,11 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { transform: translate(-25%); border-left-width: 1px; } -.oo-ui-progressBarWidget.oo-ui-widget-disabled { - opacity: 0.6; +.oo-ui-progressBarWidget.oo-ui-widget-enabled .oo-ui-progressBarWidget-bar { + background-color: #36c; +} +.oo-ui-progressBarWidget.oo-ui-widget-disabled .oo-ui-progressBarWidget-bar { + background-color: #c8ccd1; } @-webkit-keyframes oo-ui-progressBarWidget-slide { from { diff --git a/resources/lib/oojs-ui/oojs-ui-core.js b/resources/lib/oojs-ui/oojs-ui-core.js index 872d81ff64..1542c4b82a 100644 --- a/resources/lib/oojs-ui/oojs-ui-core.js +++ b/resources/lib/oojs-ui/oojs-ui-core.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.18.3 + * OOjs UI v0.18.4 * https://www.mediawiki.org/wiki/OOjs_UI * * Copyright 2011–2017 OOjs UI Team and other contributors. * Released under the MIT license * http://oojs.mit-license.org * - * Date: 2017-01-04T00:22:40Z + * Date: 2017-01-18T00:07:07Z */ ( function ( OO ) { @@ -57,17 +57,18 @@ OO.ui.MouseButtons = { /** * @property {number} + * @private */ OO.ui.elementId = 0; /** * Generate a unique ID for element * - * @return {string} [id] + * @return {string} ID */ OO.ui.generateElementId = function () { - OO.ui.elementId += 1; - return 'oojsui-' + OO.ui.elementId; + OO.ui.elementId++; + return 'ooui-' + OO.ui.elementId; }; /** @@ -386,15 +387,49 @@ OO.ui.infuse = function ( idOrNode ) { /** * Get a localized message. * - * In environments that provide a localization system, this function should be overridden to - * return the message translated in the user's language. The default implementation always returns - * English messages. - * * After the message key, message parameters may optionally be passed. In the default implementation, * any occurrences of $1 are replaced with the first parameter, $2 with the second parameter, etc. * Alternative implementations of OO.ui.msg may use any substitution system they like, as long as * they support unnamed, ordered message parameters. * + * In environments that provide a localization system, this function should be overridden to + * return the message translated in the user's language. The default implementation always returns + * English messages. An example of doing this with [jQuery.i18n](https://github.com/wikimedia/jquery.i18n) + * follows. + * + * @example + * var i, iLen, button, + * messagePath = 'oojs-ui/dist/i18n/', + * languages = [ $.i18n().locale, 'ur', 'en' ], + * languageMap = {}; + * + * for ( i = 0, iLen = languages.length; i < iLen; i++ ) { + * languageMap[ languages[ i ] ] = messagePath + languages[ i ].toLowerCase() + '.json'; + * } + * + * $.i18n().load( languageMap ).done( function() { + * // Replace the built-in `msg` only once we've loaded the internationalization. + * // OOjs UI uses `OO.ui.deferMsg` for all initially-loaded messages. So long as + * // you put off creating any widgets until this promise is complete, no English + * // will be displayed. + * OO.ui.msg = $.i18n; + * + * // A button displaying "OK" in the default locale + * button = new OO.ui.ButtonWidget( { + * label: OO.ui.msg( 'ooui-dialog-message-accept' ), + * icon: 'check' + * } ); + * $( 'body' ).append( button.$element ); + * + * // A button displaying "OK" in Urdu + * $.i18n().locale = 'ur'; + * button = new OO.ui.ButtonWidget( { + * label: OO.ui.msg( 'ooui-dialog-message-accept' ), + * icon: 'check' + * } ); + * $( 'body' ).append( button.$element ); + * } ); + * * @param {string} key Message key * @param {...Mixed} [params] Message parameters * @return {string} Translated message with parameters substituted @@ -554,7 +589,6 @@ OO.ui.Element = function OoUiElement( config ) { this.$element = config.$element || $( document.createElement( this.getTagName() ) ); this.elementGroup = null; - this.debouncedUpdateThemeClassesHandler = OO.ui.debounce( this.debouncedUpdateThemeClasses ); // Initialization if ( Array.isArray( config.classes ) ) { @@ -792,7 +826,7 @@ OO.ui.Element.static.reusePreInfuseDOM = function ( node, config ) { }; /** - * Gather the dynamic state (focus, value of form inputs, scroll position, etc.) of a HTML DOM node + * Gather the dynamic state (focus, value of form inputs, scroll position, etc.) of an HTML DOM node * (and its children) that represent an Element of the same class and the given configuration, * generated by the PHP implementation. * @@ -1129,6 +1163,9 @@ OO.ui.Element.static.scrollIntoView = function ( el, config ) { animations = {}; callback = typeof config.complete === 'function' && config.complete; + if ( callback ) { + OO.ui.warnDeprecation( 'Element#scrollIntoView: The `complete` callback config option is deprecated. Use the return promise instead.' ); + } container = this.getClosestScrollableContainer( el, config.direction ); $container = $( container ); elementDimensions = this.getDimensions( el ); @@ -1297,16 +1334,7 @@ OO.ui.Element.prototype.supports = function ( methods ) { * guaranteeing that theme updates do not occur within an element's constructor */ OO.ui.Element.prototype.updateThemeClasses = function () { - this.debouncedUpdateThemeClassesHandler(); -}; - -/** - * @private - * @localdoc This method is called directly from the QUnit tests instead of #updateThemeClasses, to - * make them synchronous. - */ -OO.ui.Element.prototype.debouncedUpdateThemeClasses = function () { - OO.ui.theme.updateElementClasses( this ); + OO.ui.theme.queueUpdateElementClasses( this ); }; /** @@ -1512,7 +1540,7 @@ OO.mixinClass( OO.ui.Widget, OO.EventEmitter ); /* Static Properties */ /** - * Whether this widget will behave reasonably when wrapped in a HTML `