From 5df9a27b27c67e196f5eff48d86615735ec9378c Mon Sep 17 00:00:00 2001 From: Volker E Date: Tue, 28 Mar 2017 16:25:58 -0700 Subject: [PATCH] Update OOjs UI to v0.20.1 Release notes: https://phabricator.wikimedia.org/diffusion/GOJU/browse/master/History.md;v0.20.1 Depends-On: I9b50eee459085eaa00819cbabe340ac442a332bd Change-Id: I9b50eee459085eaa00819cbabe340ac442a332db --- composer.json | 2 +- resources/lib/oojs-ui/i18n/bqi.json | 5 + resources/lib/oojs-ui/oojs-ui-apex.js | 4 +- resources/lib/oojs-ui/oojs-ui-core-apex.css | 11 +- .../lib/oojs-ui/oojs-ui-core-mediawiki.css | 13 +- resources/lib/oojs-ui/oojs-ui-core.js | 268 ++++++++---------- resources/lib/oojs-ui/oojs-ui-mediawiki.js | 4 +- .../lib/oojs-ui/oojs-ui-toolbars-apex.css | 4 +- .../oojs-ui/oojs-ui-toolbars-mediawiki.css | 10 +- resources/lib/oojs-ui/oojs-ui-toolbars.js | 4 +- .../lib/oojs-ui/oojs-ui-widgets-apex.css | 18 +- .../lib/oojs-ui/oojs-ui-widgets-mediawiki.css | 26 +- resources/lib/oojs-ui/oojs-ui-widgets.js | 86 +++++- .../lib/oojs-ui/oojs-ui-windows-apex.css | 4 +- .../lib/oojs-ui/oojs-ui-windows-mediawiki.css | 4 +- resources/lib/oojs-ui/oojs-ui-windows.js | 6 +- .../lib/oojs-ui/themes/apex/icons-alerts.json | 3 + .../oojs-ui/themes/apex/icons-content.json | 6 +- .../themes/apex/icons-interactions.json | 18 ++ .../lib/oojs-ui/themes/apex/icons-layout.json | 25 ++ .../oojs-ui/themes/apex/icons-movement.json | 12 + resources/lib/oojs-ui/themes/apex/icons.json | 66 +++-- .../apex/images/icons/advanced-invert.png | Bin 0 -> 421 bytes .../apex/images/icons/advanced-invert.svg | 6 + .../apex/images/icons/cancel-invert.png | Bin 0 -> 329 bytes .../apex/images/icons/cancel-invert.svg | 6 + .../themes/apex/images/icons/check-invert.png | Bin 0 -> 217 bytes .../themes/apex/images/icons/check-invert.svg | 4 + .../themes/apex/images/icons/close-invert.png | Bin 0 -> 209 bytes .../themes/apex/images/icons/close-invert.svg | 4 + .../apex/images/icons/ellipsis-invert.png | Bin 0 -> 146 bytes .../apex/images/icons/ellipsis-invert.svg | 4 + .../apex/images/icons/help-ltr-invert.png | Bin 0 -> 503 bytes .../apex/images/icons/help-ltr-invert.svg | 10 + .../apex/images/icons/help-rtl-invert.png | Bin 0 -> 515 bytes .../apex/images/icons/help-rtl-invert.svg | 10 + .../apex/images/icons/search-ltr-invert.png | Bin 0 -> 334 bytes .../apex/images/icons/search-ltr-invert.svg | 6 + .../themes/apex/images/icons/search-ltr.png | Bin 0 -> 358 bytes .../themes/apex/images/icons/search-ltr.svg | 6 + .../apex/images/icons/search-rtl-invert.png | Bin 0 -> 332 bytes .../apex/images/icons/search-rtl-invert.svg | 6 + .../themes/apex/images/icons/search-rtl.png | Bin 0 -> 331 bytes .../themes/apex/images/icons/search-rtl.svg | 6 + .../themes/apex/images/icons/search.png | Bin 350 -> 0 bytes .../themes/apex/images/icons/search.svg | 6 - .../apex/images/icons/settings-invert.png | Bin 0 -> 175 bytes .../apex/images/icons/settings-invert.svg | 6 + .../apex/images/icons/stripeFlow-ltr.png | Bin 0 -> 136 bytes .../apex/images/icons/stripeFlow-ltr.svg | 4 + .../apex/images/icons/stripeFlow-rtl.png | Bin 0 -> 140 bytes .../apex/images/icons/stripeFlow-rtl.svg | 4 + .../apex/images/icons/stripeSideMenu.png | Bin 0 -> 115 bytes .../apex/images/icons/stripeSideMenu.svg | 4 + .../apex/images/icons/stripeSummary-ltr.png | Bin 0 -> 123 bytes .../apex/images/icons/stripeSummary-ltr.svg | 4 + .../apex/images/icons/stripeSummary-rtl.png | Bin 0 -> 124 bytes .../apex/images/icons/stripeSummary-rtl.svg | 4 + .../apex/images/icons/stripeToC-ltr.png | Bin 0 -> 137 bytes .../apex/images/icons/stripeToC-ltr.svg | 4 + .../apex/images/icons/stripeToC-rtl.png | Bin 0 -> 135 bytes .../apex/images/icons/stripeToC-rtl.svg | 4 + .../themes/apex/images/icons/viewCompact.png | Bin 0 -> 146 bytes .../themes/apex/images/icons/viewCompact.svg | 14 + .../apex/images/icons/viewDetails-ltr.png | Bin 0 -> 165 bytes .../apex/images/icons/viewDetails-ltr.svg | 9 + .../apex/images/icons/viewDetails-rtl.png | Bin 0 -> 165 bytes .../apex/images/icons/viewDetails-rtl.svg | 9 + .../themes/mediawiki/icons-alerts.json | 3 + .../themes/mediawiki/icons-content.json | 6 +- .../themes/mediawiki/icons-interactions.json | 18 ++ .../themes/mediawiki/icons-layout.json | 1 + .../themes/mediawiki/icons-location.json | 11 +- .../themes/mediawiki/icons-movement.json | 12 + .../lib/oojs-ui/themes/mediawiki/icons.json | 63 ++-- ...ltr-invert.png => mapTrail-ltr-invert.png} | Bin ...ltr-invert.svg => mapTrail-ltr-invert.svg} | 0 ...ssive.png => mapTrail-ltr-progressive.png} | Bin ...ssive.svg => mapTrail-ltr-progressive.svg} | 0 .../{wikitrail-ltr.png => mapTrail-ltr.png} | Bin .../{wikitrail-ltr.svg => mapTrail-ltr.svg} | 0 ...rtl-invert.png => mapTrail-rtl-invert.png} | Bin ...rtl-invert.svg => mapTrail-rtl-invert.svg} | 0 ...ssive.png => mapTrail-rtl-progressive.png} | Bin ...ssive.svg => mapTrail-rtl-progressive.svg} | 0 .../{wikitrail-rtl.png => mapTrail-rtl.png} | Bin .../{wikitrail-rtl.svg => mapTrail-rtl.svg} | 0 87 files changed, 581 insertions(+), 272 deletions(-) create mode 100644 resources/lib/oojs-ui/themes/apex/icons-layout.json create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/advanced-invert.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/advanced-invert.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/cancel-invert.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/cancel-invert.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/check-invert.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/check-invert.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/close-invert.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/close-invert.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/ellipsis-invert.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/ellipsis-invert.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/help-ltr-invert.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/help-ltr-invert.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/help-rtl-invert.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/help-rtl-invert.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/search-ltr-invert.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/search-ltr-invert.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/search-ltr.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/search-ltr.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/search-rtl-invert.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/search-rtl-invert.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/search-rtl.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/search-rtl.svg delete mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/search.png delete mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/search.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/settings-invert.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/settings-invert.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-ltr.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-ltr.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-rtl.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-rtl.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/stripeSideMenu.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/stripeSideMenu.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-ltr.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-ltr.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-rtl.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-rtl.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-ltr.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-ltr.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-rtl.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-rtl.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/viewCompact.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/viewCompact.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-ltr.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-ltr.svg create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-rtl.png create mode 100644 resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-rtl.svg rename resources/lib/oojs-ui/themes/mediawiki/images/icons/{wikitrail-ltr-invert.png => mapTrail-ltr-invert.png} (100%) rename resources/lib/oojs-ui/themes/mediawiki/images/icons/{wikitrail-ltr-invert.svg => mapTrail-ltr-invert.svg} (100%) rename resources/lib/oojs-ui/themes/mediawiki/images/icons/{wikitrail-ltr-progressive.png => mapTrail-ltr-progressive.png} (100%) rename resources/lib/oojs-ui/themes/mediawiki/images/icons/{wikitrail-ltr-progressive.svg => mapTrail-ltr-progressive.svg} (100%) rename resources/lib/oojs-ui/themes/mediawiki/images/icons/{wikitrail-ltr.png => mapTrail-ltr.png} (100%) rename resources/lib/oojs-ui/themes/mediawiki/images/icons/{wikitrail-ltr.svg => mapTrail-ltr.svg} (100%) rename resources/lib/oojs-ui/themes/mediawiki/images/icons/{wikitrail-rtl-invert.png => mapTrail-rtl-invert.png} (100%) rename resources/lib/oojs-ui/themes/mediawiki/images/icons/{wikitrail-rtl-invert.svg => mapTrail-rtl-invert.svg} (100%) rename resources/lib/oojs-ui/themes/mediawiki/images/icons/{wikitrail-rtl-progressive.png => mapTrail-rtl-progressive.png} (100%) rename resources/lib/oojs-ui/themes/mediawiki/images/icons/{wikitrail-rtl-progressive.svg => mapTrail-rtl-progressive.svg} (100%) rename resources/lib/oojs-ui/themes/mediawiki/images/icons/{wikitrail-rtl.png => mapTrail-rtl.png} (100%) rename resources/lib/oojs-ui/themes/mediawiki/images/icons/{wikitrail-rtl.svg => mapTrail-rtl.svg} (100%) diff --git a/composer.json b/composer.json index cd8f310c4a..7841f81e7e 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.20.0", + "oojs/oojs-ui": "0.20.1", "oyejorge/less.php": "1.7.0.13", "php": ">=5.5.9", "psr/log": "1.0.2", diff --git a/resources/lib/oojs-ui/i18n/bqi.json b/resources/lib/oojs-ui/i18n/bqi.json index a84374a29a..a0e53b3684 100644 --- a/resources/lib/oojs-ui/i18n/bqi.json +++ b/resources/lib/oojs-ui/i18n/bqi.json @@ -4,14 +4,19 @@ "Mogoeilor" ] }, + "ooui-outline-control-move-down": "ڤا دڤۈن بوردن آیتم", + "ooui-outline-control-move-up": "ڤارو بردن آیتم", + "ooui-outline-control-remove": "ڤورداشتن آیتم", "ooui-toolbar-more": "بیشتر", "ooui-toolgroup-expand": "بیشتر", "ooui-toolgroup-collapse": "کمتر", "ooui-dialog-message-accept": "خۈڤإ", "ooui-dialog-message-reject": "أنجومشيڤ کردن", + "ooui-dialog-process-error": "یأ چي ايچو إشتوا إ", "ooui-dialog-process-retry": "ز نۉ تلاش کونين", "ooui-dialog-process-continue": "ديندا گرهڌن", "ooui-selectfile-button-select": "گولإڤورچين کردن جانیا", + "ooui-selectfile-not-supported": "گول ڤورچی کردن جانیا کونشتکاری نڤابیڌ", "ooui-selectfile-placeholder": "هيژ جانيایي گولإ ڤورچين نڤابيڌإ", "ooui-selectfile-dragdrop-placeholder": "جانيانأ ڤأنين ايچو" } diff --git a/resources/lib/oojs-ui/oojs-ui-apex.js b/resources/lib/oojs-ui/oojs-ui-apex.js index a13441be25..f5f2a041cc 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.20.0 + * OOjs UI v0.20.1 * 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-03-15T17:06:24Z + * Date: 2017-03-28T22:19:29Z */ ( 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 382c13b486..d6b5dcb8ff 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.20.0 + * OOjs UI v0.20.1 * 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-03-15T17:06:28Z + * Date: 2017-03-28T22:19:34Z */ .oo-ui-element-hidden { display: none !important; @@ -32,6 +32,10 @@ -ms-user-select: none; user-select: none; } +.oo-ui-buttonElement > .oo-ui-buttonElement-button::-moz-focus-inner { + border-color: transparent; + padding: 0; +} .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon, .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator { display: none; @@ -1130,9 +1134,6 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { .oo-ui-menuSelectWidget-invisible { display: none; } -.oo-ui-menuOptionWidget { - position: relative; -} .oo-ui-menuOptionWidget .oo-ui-iconElement-icon { display: none; } diff --git a/resources/lib/oojs-ui/oojs-ui-core-mediawiki.css b/resources/lib/oojs-ui/oojs-ui-core-mediawiki.css index c4fdf20e8b..3929842161 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.20.0 + * OOjs UI v0.20.1 * 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-03-15T17:06:28Z + * Date: 2017-03-28T22:19:34Z */ .oo-ui-element-hidden { display: none !important; @@ -32,6 +32,10 @@ -ms-user-select: none; user-select: none; } +.oo-ui-buttonElement > .oo-ui-buttonElement-button::-moz-focus-inner { + border-color: transparent; + padding: 0; +} .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon, .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator { display: none; @@ -60,9 +64,6 @@ border-radius: 2px; outline: 0; } -.oo-ui-buttonElement > .oo-ui-buttonElement-button:focus::-moz-focus-inner { - border-color: transparent; -} .oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator { margin-right: 0.25em; margin-left: 0.46875em; @@ -670,7 +671,6 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { .oo-ui-optionWidget { position: relative; display: block; - border: 0; } .oo-ui-optionWidget.oo-ui-widget-enabled { cursor: pointer; @@ -1566,7 +1566,6 @@ body:not( :-moz-handler-blocked ) .oo-ui-fieldsetLayout { display: none; } .oo-ui-menuOptionWidget { - position: relative; padding: 0.5em 1em; -webkit-transition: background-color 100ms, color 100ms; -moz-transition: background-color 100ms, color 100ms; diff --git a/resources/lib/oojs-ui/oojs-ui-core.js b/resources/lib/oojs-ui/oojs-ui-core.js index fe11d68f8d..e6029ddd08 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.20.0 + * OOjs UI v0.20.1 * 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-03-15T17:06:24Z + * Date: 2017-03-28T22:19:29Z */ ( function ( OO ) { @@ -90,7 +90,7 @@ OO.ui.isFocusableElement = function ( $element ) { // Check if the element is visible if ( !( // This is quicker than calling $element.is( ':visible' ) - $.expr.filters.visible( element ) && + $.expr.pseudos.visible( element ) && // Check that all parents are visible !$element.parents().addBack().filter( function () { return $.css( this, 'visibility' ) === 'hidden'; @@ -883,7 +883,7 @@ OO.ui.Element.static.getDocument = function ( obj ) { // Window obj.document || // HTMLDocument - ( obj.nodeType === 9 && obj ) || + ( obj.nodeType === Node.DOCUMENT_NODE && obj ) || null; }; @@ -912,7 +912,7 @@ OO.ui.Element.static.getDir = function ( obj ) { if ( obj instanceof jQuery ) { obj = obj[ 0 ]; } - isDoc = obj.nodeType === 9; + isDoc = obj.nodeType === Node.DOCUMENT_NODE; isWin = obj.document !== undefined; if ( isDoc || isWin ) { if ( isWin ) { @@ -1140,17 +1140,18 @@ OO.ui.Element.static.getScrollLeft = ( function () { }() ); /** - * Get scrollable object parent + * Get the root scrollable element of given element's document. * - * documentElement can't be used to get or set the scrollTop - * property on Blink. Changing and testing its value lets us - * use 'body' or 'documentElement' based on what is working. + * On Blink-based browsers (Chrome etc.), `document.documentElement` can't be used to get or set + * the scrollTop property; instead we have to use `document.body`. Changing and testing the value + * lets us use 'body' or 'documentElement' based on what is working. * * https://code.google.com/p/chromium/issues/detail?id=303131 * * @static - * @param {HTMLElement} el Element to find scrollable parent for - * @return {HTMLElement} Scrollable parent + * @param {HTMLElement} el Element to find root scrollable parent for + * @return {HTMLElement} Scrollable parent, `document.body` or `document.documentElement` + * depending on browser */ OO.ui.Element.static.getRootScrollableElement = function ( el ) { var scrollTop, body; @@ -1174,8 +1175,8 @@ OO.ui.Element.static.getRootScrollableElement = function ( el ) { /** * Get closest scrollable container. * - * Traverses up until either a scrollable element or the root is reached, in which case the window - * will be returned. + * Traverses up until either a scrollable element or the root is reached, in which case the root + * scrollable element will be returned (see #getRootScrollableElement). * * @static * @param {HTMLElement} el Element to find scrollable container for @@ -1193,6 +1194,12 @@ OO.ui.Element.static.getClosestScrollableContainer = function ( el, dimension ) props = [ 'overflow-' + dimension ]; } + // Special case for the document root (which doesn't really have any scrollable container, since + // it is the ultimate scrollable container, but this is probably saner than null or exception) + if ( $( el ).is( 'html, body' ) ) { + return this.getRootScrollableElement( el ); + } + while ( $parent.length ) { if ( $parent[ 0 ] === this.getRootScrollableElement( el ) ) { return $parent[ 0 ]; @@ -1211,7 +1218,8 @@ OO.ui.Element.static.getClosestScrollableContainer = function ( el, dimension ) } $parent = $parent.parent(); } - return this.getDocument( el ).body; + // The element is unattached... return something mostly sane + return this.getRootScrollableElement( el ); }; /** @@ -2181,6 +2189,7 @@ OO.ui.mixin.ButtonElement.prototype.isActive = function () { * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Elements/Groups * * @abstract + * @mixins OO.EmitterList * @class * * @constructor @@ -2192,15 +2201,20 @@ OO.ui.mixin.GroupElement = function OoUiMixinGroupElement( config ) { // Configuration initialization config = config || {}; + // Mixin constructors + OO.EmitterList.call( this, config ); + // Properties this.$group = null; - this.items = []; - this.aggregateItemEvents = {}; // Initialization this.setGroupElement( config.$group || $( '
' ) ); }; +/* Setup */ + +OO.mixinClass( OO.ui.mixin.GroupElement, OO.EmitterList ); + /* Events */ /** @@ -2229,28 +2243,6 @@ OO.ui.mixin.GroupElement.prototype.setGroupElement = function ( $group ) { } }; -/** - * Check if a group contains no items. - * - * @return {boolean} Group is empty - */ -OO.ui.mixin.GroupElement.prototype.isEmpty = function () { - return !this.items.length; -}; - -/** - * Get all items in the group. - * - * The method returns an array of item references (e.g., [button1, button2, button3]) and is useful - * when synchronizing groups of items, or whenever the references are required (e.g., when removing items - * from a group). - * - * @return {OO.ui.Element[]} An array of items. - */ -OO.ui.mixin.GroupElement.prototype.getItems = function () { - return this.items.slice( 0 ); -}; - /** * Get an item by its data. * @@ -2297,62 +2289,6 @@ OO.ui.mixin.GroupElement.prototype.getItemsFromData = function ( data ) { return items; }; -/** - * Aggregate the events emitted by the group. - * - * When events are aggregated, the group will listen to all contained items for the event, - * and then emit the event under a new name. The new event will contain an additional leading - * parameter containing the item that emitted the original event. Other arguments emitted from - * the original event are passed through. - * - * @param {Object.} events An object keyed by the name of the event that should be - * aggregated (e.g., ‘click’) and the value of the new name to use (e.g., ‘groupClick’). - * A `null` value will remove aggregated events. - - * @throws {Error} An error is thrown if aggregation already exists. - */ -OO.ui.mixin.GroupElement.prototype.aggregate = function ( events ) { - var i, len, item, add, remove, itemEvent, groupEvent; - - for ( itemEvent in events ) { - groupEvent = events[ itemEvent ]; - - // Remove existing aggregated event - if ( Object.prototype.hasOwnProperty.call( this.aggregateItemEvents, itemEvent ) ) { - // Don't allow duplicate aggregations - if ( groupEvent ) { - throw new Error( 'Duplicate item event aggregation for ' + itemEvent ); - } - // Remove event aggregation from existing items - for ( i = 0, len = this.items.length; i < len; i++ ) { - item = this.items[ i ]; - if ( item.connect && item.disconnect ) { - remove = {}; - remove[ itemEvent ] = [ 'emit', this.aggregateItemEvents[ itemEvent ], item ]; - item.disconnect( this, remove ); - } - } - // Prevent future items from aggregating event - delete this.aggregateItemEvents[ itemEvent ]; - } - - // Add new aggregate event - if ( groupEvent ) { - // Make future items aggregate event - this.aggregateItemEvents[ itemEvent ] = groupEvent; - // Add event aggregation to existing items - for ( i = 0, len = this.items.length; i < len; i++ ) { - item = this.items[ i ]; - if ( item.connect && item.disconnect ) { - add = {}; - add[ itemEvent ] = [ 'emit', groupEvent, item ]; - item.connect( this, add ); - } - } - } - } -}; - /** * Add items to the group. * @@ -2364,48 +2300,76 @@ OO.ui.mixin.GroupElement.prototype.aggregate = function ( events ) { * @chainable */ OO.ui.mixin.GroupElement.prototype.addItems = function ( items, index ) { - var i, len, item, itemEvent, events, currentIndex, + var i, len, item, itemElements = []; + // Mixin method + OO.EmitterList.prototype.addItems.call( this, items, index ); + for ( i = 0, len = items.length; i < len; i++ ) { item = items[ i ]; - // Check if item exists then remove it first, effectively "moving" it - currentIndex = this.items.indexOf( item ); - if ( currentIndex >= 0 ) { - this.removeItems( [ item ] ); - // Adjust index to compensate for removal - if ( currentIndex < index ) { - index--; - } - } // Add the item - if ( item.connect && item.disconnect && !$.isEmptyObject( this.aggregateItemEvents ) ) { - events = {}; - for ( itemEvent in this.aggregateItemEvents ) { - events[ itemEvent ] = [ 'emit', this.aggregateItemEvents[ itemEvent ], item ]; - } - item.connect( this, events ); - } item.setElementGroup( this ); itemElements.push( item.$element.get( 0 ) ); } - if ( index === undefined || index < 0 || index >= this.items.length ) { - this.$group.append( itemElements ); - this.items.push.apply( this.items, items ); - } else if ( index === 0 ) { - this.$group.prepend( itemElements ); - this.items.unshift.apply( this.items, items ); - } else { - this.items[ index ].$element.before( itemElements ); - this.items.splice.apply( this.items, [ index, 0 ].concat( items ) ); - } + this.insertItemElements( items, index ); this.emit( 'change', this.getItems() ); return this; }; +/** + * @inheritdoc + */ +OO.ui.mixin.GroupElement.prototype.moveItem = function ( items, newIndex ) { + // Mixin method + newIndex = OO.EmitterList.prototype.moveItem.call( this, items, newIndex ); + + this.insertItemElements( items, newIndex ); + + return newIndex; +}; + +/** + * @inheritdoc + */ +OO.ui.mixin.GroupElement.prototype.insertItem = function ( item, index ) { + // Mixin method + index = OO.EmitterList.prototype.insertItem.call( this, item, index ); + + this.insertItemElements( item, index ); + + return index; +}; + +/** + * Insert element into the group + * + * @param {OO.ui.Element|OO.ui.Element[]} itemWidgets Items to insert + * @param {number} index Insertion index + */ +OO.ui.mixin.GroupElement.prototype.insertItemElements = function ( itemWidgets, index ) { + var i, len, item; + + if ( !Array.isArray( itemWidgets ) ) { + itemWidgets = [ itemWidgets ]; + } + + for ( i = 0, len = itemWidgets.length; i < len; i++ ) { + item = itemWidgets[ i ]; + + if ( index === undefined || index < 0 || index >= this.items.length ) { + this.$group.append( item.$element.get( 0 ) ); + } else if ( index === 0 ) { + this.$group.prepend( item.$element.get( 0 ) ); + } else { + this.items[ index ].$element.before( item.$element.get( 0 ) ); + } + } +}; + /** * Remove the specified items from a group. * @@ -2416,26 +2380,21 @@ OO.ui.mixin.GroupElement.prototype.addItems = function ( items, index ) { * @chainable */ OO.ui.mixin.GroupElement.prototype.removeItems = function ( items ) { - var i, len, item, index, events, itemEvent; + var i, len, item, index; - // Remove specific items + // Remove specific items elements for ( i = 0, len = items.length; i < len; i++ ) { item = items[ i ]; index = this.items.indexOf( item ); if ( index !== -1 ) { - if ( item.connect && item.disconnect && !$.isEmptyObject( this.aggregateItemEvents ) ) { - events = {}; - for ( itemEvent in this.aggregateItemEvents ) { - events[ itemEvent ] = [ 'emit', this.aggregateItemEvents[ itemEvent ], item ]; - } - item.disconnect( this, events ); - } item.setElementGroup( null ); - this.items.splice( index, 1 ); item.$element.detach(); } } + // Mixin method + OO.EmitterList.prototype.removeItems.call( this, items ); + this.emit( 'change', this.getItems() ); return this; }; @@ -2449,27 +2408,18 @@ OO.ui.mixin.GroupElement.prototype.removeItems = function ( items ) { * @chainable */ OO.ui.mixin.GroupElement.prototype.clearItems = function () { - var i, len, item, remove, itemEvent; + var i, len; - // Remove all items + // Remove all item elements for ( i = 0, len = this.items.length; i < len; i++ ) { - item = this.items[ i ]; - if ( - item.connect && item.disconnect && - !$.isEmptyObject( this.aggregateItemEvents ) - ) { - remove = {}; - if ( Object.prototype.hasOwnProperty.call( this.aggregateItemEvents, itemEvent ) ) { - remove[ itemEvent ] = [ 'emit', this.aggregateItemEvents[ itemEvent ], item ]; - } - item.disconnect( this, remove ); - } - item.setElementGroup( null ); - item.$element.detach(); + this.items[ i ].setElementGroup( null ); + this.items[ i ].$element.detach(); } + // Mixin method + OO.EmitterList.prototype.clearItems.call( this ); + this.emit( 'change', this.getItems() ); - this.items = []; return this; }; @@ -4303,6 +4253,20 @@ OO.ui.mixin.FloatableElement.prototype.position = function () { return this; } + if ( !( + // To continue, some things need to be true: + // The element must actually be in the DOM + this.isElementAttached() && ( + // The closest scrollable is the current window + this.$floatableClosestScrollable[ 0 ] === this.getElementWindow() || + // OR is an element in the element's DOM + $.contains( this.getElementDocument(), this.$floatableClosestScrollable[ 0 ] ) + ) + ) ) { + // Abort early if important parts of the widget are no longer attached to the DOM + return this; + } + if ( this.hideWhenOutOfView && !this.isElementInViewport( this.$floatableContainer, this.$floatableClosestScrollable ) ) { this.$floatable.addClass( 'oo-ui-element-hidden' ); return this; @@ -4883,6 +4847,14 @@ OO.mixinClass( OO.ui.PopupWidget, OO.ui.mixin.LabelElement ); OO.mixinClass( OO.ui.PopupWidget, OO.ui.mixin.ClippableElement ); OO.mixinClass( OO.ui.PopupWidget, OO.ui.mixin.FloatableElement ); +/* Events */ + +/** + * @event ready + * + * The popup is ready: it is visible and has been positioned and clipped. + */ + /* Methods */ /** @@ -5016,6 +4988,7 @@ OO.ui.PopupWidget.prototype.hasAnchor = function () { * Side-effects may include broken interface and exceptions being thrown. This wasn't always * strictly enforced, so currently it only generates a warning in the browser console. * + * @fires ready * @inheritdoc */ OO.ui.PopupWidget.prototype.toggle = function ( show ) { @@ -5046,6 +5019,7 @@ OO.ui.PopupWidget.prototype.toggle = function ( show ) { } this.updateDimensions(); this.toggleClipping( true ); + this.emit( 'ready' ); } else { this.toggleClipping( false ); if ( this.autoClose ) { diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki.js b/resources/lib/oojs-ui/oojs-ui-mediawiki.js index b4a63926cf..4d8061f12f 100644 --- a/resources/lib/oojs-ui/oojs-ui-mediawiki.js +++ b/resources/lib/oojs-ui/oojs-ui-mediawiki.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.20.0 + * OOjs UI v0.20.1 * 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-03-15T17:06:24Z + * Date: 2017-03-28T22:19:29Z */ ( function ( OO ) { diff --git a/resources/lib/oojs-ui/oojs-ui-toolbars-apex.css b/resources/lib/oojs-ui/oojs-ui-toolbars-apex.css index 479e2a5ab7..ddd17f5fd1 100644 --- a/resources/lib/oojs-ui/oojs-ui-toolbars-apex.css +++ b/resources/lib/oojs-ui/oojs-ui-toolbars-apex.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.20.0 + * OOjs UI v0.20.1 * 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-03-15T17:06:28Z + * Date: 2017-03-28T22:19:34Z */ .oo-ui-popupTool .oo-ui-popupWidget-popup, .oo-ui-popupTool .oo-ui-popupWidget-anchor { diff --git a/resources/lib/oojs-ui/oojs-ui-toolbars-mediawiki.css b/resources/lib/oojs-ui/oojs-ui-toolbars-mediawiki.css index df77684c3a..9248f7d81a 100644 --- a/resources/lib/oojs-ui/oojs-ui-toolbars-mediawiki.css +++ b/resources/lib/oojs-ui/oojs-ui-toolbars-mediawiki.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.20.0 + * OOjs UI v0.20.1 * 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-03-15T17:06:28Z + * Date: 2017-03-28T22:19:34Z */ .oo-ui-tool.oo-ui-widget-enabled { -webkit-transition: background-color 100ms; @@ -214,11 +214,11 @@ height: 2.5em; } .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator { - width: 0.9375em; - height: 1.625em; - margin: 0.78125em 0.5em; top: 0; right: 0; + width: 0.9375em; + height: 100%; + margin: 0 0.5em; opacity: 0.3; } .oo-ui-toolbar-narrow .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator { diff --git a/resources/lib/oojs-ui/oojs-ui-toolbars.js b/resources/lib/oojs-ui/oojs-ui-toolbars.js index 7d09854533..353a5b598c 100644 --- a/resources/lib/oojs-ui/oojs-ui-toolbars.js +++ b/resources/lib/oojs-ui/oojs-ui-toolbars.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.20.0 + * OOjs UI v0.20.1 * 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-03-15T17:06:24Z + * Date: 2017-03-28T22:19:29Z */ ( function ( OO ) { diff --git a/resources/lib/oojs-ui/oojs-ui-widgets-apex.css b/resources/lib/oojs-ui/oojs-ui-widgets-apex.css index 7f8389e136..75e2180442 100644 --- a/resources/lib/oojs-ui/oojs-ui-widgets-apex.css +++ b/resources/lib/oojs-ui/oojs-ui-widgets-apex.css @@ -1,35 +1,35 @@ /*! - * OOjs UI v0.20.0 + * OOjs UI v0.20.1 * 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-03-15T17:06:28Z + * Date: 2017-03-28T22:19:34Z */ -.oo-ui-draggableElement-handle, -.oo-ui-draggableElement-handle.oo-ui-widget { +.oo-ui-draggableElement:not( .oo-ui-draggableElement-undraggable )-handle, +.oo-ui-draggableElement:not( .oo-ui-draggableElement-undraggable )-handle.oo-ui-widget { cursor: move; cursor: url(images/grab.cur ); cursor: -webkit-grab; cursor: -moz-grab; cursor: grab; } -.oo-ui-draggableElement-handle:active { +.oo-ui-draggableElement:not( .oo-ui-draggableElement-undraggable )-handle:active { cursor: url(images/grabbing.cur ); cursor: -webkit-grabbing; cursor: -moz-grabbing; cursor: grabbing; } -.oo-ui-draggableElement-handle.oo-ui-widget-disabled, -.oo-ui-widget-disabled .oo-ui-draggableElement-handle { +.oo-ui-draggableElement:not( .oo-ui-draggableElement-undraggable )-handle.oo-ui-widget-disabled, +.oo-ui-widget-disabled .oo-ui-draggableElement:not( .oo-ui-draggableElement-undraggable )-handle { cursor: default; } -.oo-ui-draggableElement-placeholder { +.oo-ui-draggableElement:not( .oo-ui-draggableElement-undraggable )-placeholder { opacity: 0.2; } -.oo-ui-draggableGroupElement-horizontal .oo-ui-draggableElement { +.oo-ui-draggableGroupElement-horizontal .oo-ui-draggableElement:not( .oo-ui-draggableElement-undraggable ) { display: inline-block; } .oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous > .oo-ui-panelLayout-scrollable { diff --git a/resources/lib/oojs-ui/oojs-ui-widgets-mediawiki.css b/resources/lib/oojs-ui/oojs-ui-widgets-mediawiki.css index c79dc853f0..656a9bef4b 100644 --- a/resources/lib/oojs-ui/oojs-ui-widgets-mediawiki.css +++ b/resources/lib/oojs-ui/oojs-ui-widgets-mediawiki.css @@ -1,38 +1,38 @@ /*! - * OOjs UI v0.20.0 + * OOjs UI v0.20.1 * 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-03-15T17:06:28Z + * Date: 2017-03-28T22:19:34Z */ -.oo-ui-draggableElement-handle, -.oo-ui-draggableElement-handle.oo-ui-widget { +.oo-ui-draggableElement:not( .oo-ui-draggableElement-undraggable )-handle, +.oo-ui-draggableElement:not( .oo-ui-draggableElement-undraggable )-handle.oo-ui-widget { cursor: move; cursor: url(images/grab.cur ); cursor: -webkit-grab; cursor: -moz-grab; cursor: grab; } -.oo-ui-draggableElement-handle:active { +.oo-ui-draggableElement:not( .oo-ui-draggableElement-undraggable )-handle:active { cursor: url(images/grabbing.cur ); cursor: -webkit-grabbing; cursor: -moz-grabbing; cursor: grabbing; } -.oo-ui-draggableElement-handle.oo-ui-widget-disabled, -.oo-ui-widget-disabled .oo-ui-draggableElement-handle { +.oo-ui-draggableElement:not( .oo-ui-draggableElement-undraggable )-handle.oo-ui-widget-disabled, +.oo-ui-widget-disabled .oo-ui-draggableElement:not( .oo-ui-draggableElement-undraggable )-handle { cursor: default; } -.oo-ui-draggableElement-placeholder { +.oo-ui-draggableElement:not( .oo-ui-draggableElement-undraggable )-placeholder { opacity: 0.2; } -.oo-ui-draggableGroupElement-horizontal .oo-ui-draggableElement { +.oo-ui-draggableGroupElement-horizontal .oo-ui-draggableElement:not( .oo-ui-draggableElement-undraggable ) { display: inline-block; } -.oo-ui-draggableElement-handle:focus { +.oo-ui-draggableElement:not( .oo-ui-draggableElement-undraggable )-handle:focus { border-radius: 2px; box-shadow: inset 0 0 0 1px #36c, 0 0 0 1px #36c; outline: 0; @@ -210,7 +210,6 @@ } .oo-ui-buttonOptionWidget { display: inline-block; - padding: 0; } .oo-ui-buttonOptionWidget.oo-ui-buttonElement-active .oo-ui-buttonElement-button { cursor: default; @@ -221,11 +220,6 @@ display: inline-block; vertical-align: middle; } -.oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected, -.oo-ui-buttonOptionWidget.oo-ui-optionWidget-pressed, -.oo-ui-buttonOptionWidget.oo-ui-optionWidget-highlighted { - background-color: transparent; -} .oo-ui-toggleButtonWidget { margin-right: 0.5em; } diff --git a/resources/lib/oojs-ui/oojs-ui-widgets.js b/resources/lib/oojs-ui/oojs-ui-widgets.js index c2e62fd950..6b5d3bdbdb 100644 --- a/resources/lib/oojs-ui/oojs-ui-widgets.js +++ b/resources/lib/oojs-ui/oojs-ui-widgets.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.20.0 + * OOjs UI v0.20.1 * 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-03-15T17:06:24Z + * Date: 2017-03-28T22:19:29Z */ ( function ( OO ) { @@ -24,6 +24,9 @@ * @constructor * @param {Object} [config] Configuration options * @cfg {jQuery} [$handle] The part of the element which can be used for dragging, defaults to the whole element + * @cfg {boolean} [draggable] The items are draggable. This can change with #toggleDraggable + * but the draggable state should be called from the DraggableGroupElement, which updates + * the whole group */ OO.ui.mixin.DraggableElement = function OoUiMixinDraggableElement( config ) { config = config || {}; @@ -32,6 +35,7 @@ OO.ui.mixin.DraggableElement = function OoUiMixinDraggableElement( config ) { this.index = null; this.$handle = config.$handle || this.$element; this.wasHandleUsed = null; + this.draggable = config.draggable === undefined ? true : !!config.draggable; // Initialize and events this.$element.addClass( 'oo-ui-draggableElement' ) @@ -81,6 +85,32 @@ OO.ui.mixin.DraggableElement.static.cancelButtonMouseDownEvents = false; /* Methods */ +/** + * Change the draggable state of this widget. + * This allows users to temporarily halt the dragging operations. + * + * @param {boolean} isDraggable Widget supports draggable operations + * @fires draggable + */ +OO.ui.mixin.DraggableElement.prototype.toggleDraggable = function ( isDraggable ) { + isDraggable = isDraggable !== undefined ? !!isDraggable : !this.draggable; + + if ( this.draggable !== isDraggable ) { + this.draggable = isDraggable; + + this.$element.toggleClass( 'oo-ui-draggableElement-undraggable', !this.draggable ); + } +}; + +/** + * Check the draggable state of this widget + * + * @return {boolean} Widget supports draggable operations + */ +OO.ui.mixin.DraggableElement.prototype.isDraggable = function () { + return this.draggable; +}; + /** * Respond to mousedown event. * @@ -88,6 +118,10 @@ OO.ui.mixin.DraggableElement.static.cancelButtonMouseDownEvents = false; * @param {jQuery.Event} e Drag event */ OO.ui.mixin.DraggableElement.prototype.onDragMouseDown = function ( e ) { + if ( !this.isDraggable() ) { + return; + } + this.wasHandleUsed = // Optimization: if the handle is the whole element this is always true this.$handle[ 0 ] === this.$element[ 0 ] || @@ -107,7 +141,7 @@ OO.ui.mixin.DraggableElement.prototype.onDragStart = function ( e ) { var element = this, dataTransfer = e.originalEvent.dataTransfer; - if ( !this.wasHandleUsed ) { + if ( !this.wasHandleUsed || !this.isDraggable() ) { return false; } @@ -208,6 +242,7 @@ OO.ui.mixin.DraggableElement.prototype.getIndex = function () { * should match the layout of the items. Items displayed in a single row * or in several rows should use horizontal orientation. The vertical orientation should only be * used when the items are displayed in a single column. Defaults to 'vertical' + * @cfg {boolean} [draggable] The items are draggable. This can change with #toggleDraggable */ OO.ui.mixin.DraggableGroupElement = function OoUiMixinDraggableGroupElement( config ) { // Configuration initialization @@ -222,6 +257,7 @@ OO.ui.mixin.DraggableGroupElement = function OoUiMixinDraggableGroupElement( con this.itemKeys = {}; this.dir = null; this.itemsOrder = null; + this.draggable = config.draggable === undefined ? true : !!config.draggable; // Events this.aggregate( { @@ -260,15 +296,54 @@ OO.mixinClass( OO.ui.mixin.DraggableGroupElement, OO.ui.mixin.GroupElement ); */ /** - * And item has been dropped at a new position. + * An item has been dropped at a new position. * * @event reorder * @param {OO.ui.mixin.DraggableElement} item Reordered item * @param {number} [newIndex] New index for the item */ +/** + * Draggable state of this widget has changed. + * + * @event draggable + * @param {boolean} [draggable] Widget is draggable + */ + /* Methods */ +/** + * Change the draggable state of this widget. + * This allows users to temporarily halt the dragging operations. + * + * @param {boolean} isDraggable Widget supports draggable operations + * @fires draggable + */ +OO.ui.mixin.DraggableGroupElement.prototype.toggleDraggable = function ( isDraggable ) { + isDraggable = isDraggable !== undefined ? !!isDraggable : !this.draggable; + + if ( this.draggable !== isDraggable ) { + this.draggable = isDraggable; + + // Tell the items their draggable state changed + this.getItems().forEach( function ( item ) { + item.toggleDraggable( this.draggable ); + }.bind( this ) ); + + // Emit event + this.emit( 'draggable', this.draggable ); + } +}; + +/** + * Check the draggable state of this widget + * + * @return {boolean} Widget supports draggable operations + */ +OO.ui.mixin.DraggableGroupElement.prototype.isDraggable = function () { + return this.draggable; +}; + /** * Respond to item drag start event * @@ -276,6 +351,9 @@ OO.mixinClass( OO.ui.mixin.DraggableGroupElement, OO.ui.mixin.GroupElement ); * @param {OO.ui.mixin.DraggableElement} item Dragged item */ OO.ui.mixin.DraggableGroupElement.prototype.onItemDragStart = function ( item ) { + if ( !this.isDraggable() ) { + return; + } // Make a shallow copy of this.items so we can re-order it during previews // without affecting the original array. this.itemsOrder = this.items.slice(); diff --git a/resources/lib/oojs-ui/oojs-ui-windows-apex.css b/resources/lib/oojs-ui/oojs-ui-windows-apex.css index 17caa332fe..e6d624dc09 100644 --- a/resources/lib/oojs-ui/oojs-ui-windows-apex.css +++ b/resources/lib/oojs-ui/oojs-ui-windows-apex.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.20.0 + * OOjs UI v0.20.1 * 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-03-15T17:06:28Z + * Date: 2017-03-28T22:19:34Z */ .oo-ui-actionWidget.oo-ui-pendingElement-pending { background-image: /* @embed */ url(themes/apex/images/textures/pending.gif); diff --git a/resources/lib/oojs-ui/oojs-ui-windows-mediawiki.css b/resources/lib/oojs-ui/oojs-ui-windows-mediawiki.css index 0530610b0e..300539d80e 100644 --- a/resources/lib/oojs-ui/oojs-ui-windows-mediawiki.css +++ b/resources/lib/oojs-ui/oojs-ui-windows-mediawiki.css @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.20.0 + * OOjs UI v0.20.1 * 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-03-15T17:06:28Z + * Date: 2017-03-28T22:19:34Z */ .oo-ui-window { background: transparent; diff --git a/resources/lib/oojs-ui/oojs-ui-windows.js b/resources/lib/oojs-ui/oojs-ui-windows.js index ab78a4a24c..2274591aee 100644 --- a/resources/lib/oojs-ui/oojs-ui-windows.js +++ b/resources/lib/oojs-ui/oojs-ui-windows.js @@ -1,12 +1,12 @@ /*! - * OOjs UI v0.20.0 + * OOjs UI v0.20.1 * 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-03-15T17:06:24Z + * Date: 2017-03-28T22:19:29Z */ ( function ( OO ) { @@ -1333,7 +1333,7 @@ OO.ui.WindowManager.prototype.openWindow = function ( win, data ) { manager.toggleGlobalEvents( true ); manager.toggleAriaIsolation( true ); } - manager.$returnFocusTo = data.$returnFocusTo || $( document.activeElement ); + manager.$returnFocusTo = data.$returnFocusTo !== undefined ? data.$returnFocusTo : $( document.activeElement ); manager.currentWindow = win; manager.opening = opening; manager.preparingToOpen = null; diff --git a/resources/lib/oojs-ui/themes/apex/icons-alerts.json b/resources/lib/oojs-ui/themes/apex/icons-alerts.json index 892b8dbfe9..c3977eb5ac 100644 --- a/resources/lib/oojs-ui/themes/apex/icons-alerts.json +++ b/resources/lib/oojs-ui/themes/apex/icons-alerts.json @@ -2,17 +2,20 @@ "prefix": "oo-ui-icon", "intro": "@import '../../../../src/styles/common';", "images": { + "alert": { "file": "images/icons/alert.svg" }, "bell": { "file": "images/icons/bell.svg" }, "bellOn": { "file": { "ltr": "images/icons/bellOn-ltr.svg", "rtl": "images/icons/bellOn-rtl.svg" } }, + "comment": { "file": "images/icons/comment.svg" }, "eye": { "file": "images/icons/eye.svg" }, "eyeClosed": { "file": "images/icons/eyeClosed.svg" }, "message": { "file": { "ltr": "images/icons/message-ltr.svg", "rtl": "images/icons/message-rtl.svg" } }, + "notice": { "file": "images/icons/notice.svg" }, "signature": { "file": { "ltr": "images/icons/signature-ltr.svg", "rtl": "images/icons/signature-rtl.svg" diff --git a/resources/lib/oojs-ui/themes/apex/icons-content.json b/resources/lib/oojs-ui/themes/apex/icons-content.json index 0cd901f62b..a9db33f787 100644 --- a/resources/lib/oojs-ui/themes/apex/icons-content.json +++ b/resources/lib/oojs-ui/themes/apex/icons-content.json @@ -10,13 +10,17 @@ "ltr": "images/icons/articleRedirect-ltr.svg", "rtl": "images/icons/articleRedirect-rtl.svg" } }, + "history": { "file": "images/icons/history.svg" }, + "info": { "file": "images/icons/info.svg" }, "journal": { "file": { "ltr": "images/icons/journal-ltr.svg", "rtl": "images/icons/journal-rtl.svg" } }, + "tag": { "file": "images/icons/tag.svg" }, "upload": { "file": { "ltr": "images/icons/upload-ltr.svg", "rtl": "images/icons/upload-rtl.svg" - } } + } }, + "window": { "file": "images/icons/window.svg" } } } diff --git a/resources/lib/oojs-ui/themes/apex/icons-interactions.json b/resources/lib/oojs-ui/themes/apex/icons-interactions.json index 5b6ac3c80d..3fafe3cfe9 100644 --- a/resources/lib/oojs-ui/themes/apex/icons-interactions.json +++ b/resources/lib/oojs-ui/themes/apex/icons-interactions.json @@ -9,6 +9,7 @@ }, "images": { "add": { "file": "images/icons/add.svg" }, + "advanced": { "file": "images/icons/advanced.svg" }, "bookmark": { "file": { "ltr": "images/icons/bookmark-ltr.svg", "rtl": "images/icons/bookmark-rtl.svg" @@ -17,8 +18,12 @@ "ltr": "images/icons/browser-ltr.svg", "rtl": "images/icons/browser-rtl.svg" } }, + "cancel": { "file": "images/icons/cancel.svg" }, + "check": { "file": "images/icons/check.svg" }, "clear": { "file": "images/icons/clear.svg" }, "clock": { "file": "images/icons/clock.svg" }, + "close": { "file": "images/icons/close.svg" }, + "ellipsis": { "file": "images/icons/ellipsis.svg" }, "feedback": { "file": { "ltr": "images/icons/feedback-ltr.svg", "rtl": "images/icons/feedback-rtl.svg" @@ -28,6 +33,13 @@ "rtl": "images/icons/funnel-rtl.svg" } }, "heart": { "file": "images/icons/heart.svg" }, + "help": { "file": { + "ltr": "images/icons/help-ltr.svg", + "rtl": "images/icons/help-rtl.svg", + "lang": { + "he,yi": "images/icons/help-ltr.svg" + } + } }, "key": { "file": { "ltr": "images/icons/key-ltr.svg", "rtl": "images/icons/key-rtl.svg" @@ -48,6 +60,12 @@ "ltr": "images/icons/printer-ltr.svg", "rtl": "images/icons/printer-rtl.svg" } }, + "search": { "file": { + "ltr": "images/icons/search-ltr.svg", + "rtl": "images/icons/search-rtl.svg" + } + }, + "settings": { "file": "images/icons/settings.svg" }, "subtract": { "file": "images/icons/subtract.svg" }, "sun": { "file": { "ltr": "images/icons/sun-ltr.svg", diff --git a/resources/lib/oojs-ui/themes/apex/icons-layout.json b/resources/lib/oojs-ui/themes/apex/icons-layout.json new file mode 100644 index 0000000000..173b284d80 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/icons-layout.json @@ -0,0 +1,25 @@ +{ + "prefix": "oo-ui-icon", + "intro": "@import '../../../../src/styles/common';", + "images": { + "menu": { "file": "images/icons/menu.svg" }, + "stripeFlow": { "file": { + "ltr": "images/icons/stripeFlow-ltr.svg", + "rtl": "images/icons/stripeFlow-rtl.svg" + } }, + "stripeSideMenu": { "file": "images/icons/stripeSideMenu.svg" }, + "stripeSummary": { "file": { + "ltr": "images/icons/stripeSummary-ltr.svg", + "rtl": "images/icons/stripeSummary-rtl.svg" + } }, + "stripeToC": { "file": { + "ltr": "images/icons/stripeToC-ltr.svg", + "rtl": "images/icons/stripeToC-rtl.svg" + } }, + "viewCompact": { "file": "images/icons/viewCompact.svg" }, + "viewDetails": { "file": { + "ltr": "images/icons/viewDetails-ltr.svg", + "rtl": "images/icons/viewDetails-rtl.svg" + } } + } +} diff --git a/resources/lib/oojs-ui/themes/apex/icons-movement.json b/resources/lib/oojs-ui/themes/apex/icons-movement.json index 9aa1b80960..7ab6eaa31f 100644 --- a/resources/lib/oojs-ui/themes/apex/icons-movement.json +++ b/resources/lib/oojs-ui/themes/apex/icons-movement.json @@ -20,8 +20,20 @@ } }, "caretDown": { "file": "images/icons/caretDown.svg" }, "caretUp": { "file": "images/icons/caretUp.svg" }, + "collapse": { "file": "images/icons/collapse.svg" }, "downTriangle": { "file": "images/icons/downTriangle.svg" }, + "expand": { "file": "images/icons/expand.svg" }, "move": { "file": "images/icons/move.svg" }, + "next": { "file": { + "ltr": "images/icons/move-ltr.svg", + "rtl": "images/icons/move-rtl.svg" + } + }, + "previous": { "file": { + "ltr": "images/icons/move-rtl.svg", + "rtl": "images/icons/move-ltr.svg" + } + }, "upTriangle": { "file": "images/icons/upTriangle.svg" } } } diff --git a/resources/lib/oojs-ui/themes/apex/icons.json b/resources/lib/oojs-ui/themes/apex/icons.json index f4a2dc9269..c0ccb36abc 100644 --- a/resources/lib/oojs-ui/themes/apex/icons.json +++ b/resources/lib/oojs-ui/themes/apex/icons.json @@ -2,49 +2,63 @@ "prefix": "oo-ui-icon", "intro": "@import '../../../../src/styles/common';", "images": { - "add": { "file": "images/icons/add.svg", "deprecated": "Moved since v0.19.5, use from the 'interactive' pack instead." }, - "advanced": { "file": "images/icons/advanced.svg" }, - "alert": { "file": "images/icons/alert.svg" }, - "cancel": { "file": "images/icons/cancel.svg" }, - "check": { "file": "images/icons/check.svg" }, - "circle": { "file": "images/icons/circle.svg" }, - "close": { "file": "images/icons/close.svg" }, - "code": { "file": "images/icons/code.svg" }, - "collapse": { "file": "images/icons/collapse.svg" }, - "comment": { "file": "images/icons/comment.svg" }, - "ellipsis": { "file": "images/icons/ellipsis.svg" }, - "expand": { "file": "images/icons/expand.svg" }, + "add": { "file": "images/icons/add.svg", "deprecated": "Moved since v0.19.5, use from the 'interactions' pack instead." }, + "advanced": { "file": "images/icons/advanced.svg", "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." }, + "alert": { "file": "images/icons/alert.svg", "deprecated": "Moved since v0.20.1, use from the 'alerts' pack instead." }, + "cancel": { "file": "images/icons/cancel.svg", "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." }, + "check": { "file": "images/icons/check.svg", "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." }, + "circle": { "file": "images/icons/circle.svg", "deprecated": "Deprecated since v0.20.1, do not use." }, + "close": { "file": "images/icons/close.svg", "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." }, + "code": { "file": "images/icons/code.svg", "deprecated": "Moved since v0.16.2, use from the 'editing-advanced' pack instead." }, + "collapse": { "file": "images/icons/collapse.svg", "deprecated": "Moved since v0.20.1, use from the 'movement' pack instead." }, + "comment": { "file": "images/icons/comment.svg", "deprecated": "Moved since v0.20.1, use from the 'alerts' pack instead." }, + "ellipsis": { "file": "images/icons/ellipsis.svg", "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." }, + "expand": { "file": "images/icons/expand.svg", "deprecated": "Moved since v0.20.1, use from the 'movement' pack instead." }, "help": { "file": { "ltr": "images/icons/help-ltr.svg", "rtl": "images/icons/help-rtl.svg", "lang": { "he,yi": "images/icons/help-ltr.svg" - } + }, + "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." } }, - "history": { "file": "images/icons/history.svg" }, - "info": { "file": "images/icons/info.svg" }, - "menu": { "file": "images/icons/menu.svg" }, + "history": { "file": "images/icons/history.svg", "deprecated": "Moved since v0.20.1, use from the 'content' pack instead." }, + "info": { "file": "images/icons/info.svg", "deprecated": "Moved since v0.20.1, use from the 'content' pack instead." }, + "menu": { "file": "images/icons/menu.svg", "deprecated": "Moved since v0.20.1, use from the 'layout' pack instead." }, "next": { "file": { "ltr": "images/icons/move-ltr.svg", "rtl": "images/icons/move-rtl.svg" - } }, - "notice": { "file": "images/icons/notice.svg" }, + }, + "deprecated": "Moved since v0.20.1, use from the 'movement' pack instead." + }, + "notice": { "file": "images/icons/notice.svg", "deprecated": "Moved since v0.20.1, use from the 'alerts' pack instead." }, "previous": { "file": { "ltr": "images/icons/move-rtl.svg", "rtl": "images/icons/move-ltr.svg" - } }, + }, + "deprecated": "Moved since v0.20.1, use from the 'movement' pack instead." + }, "redo": { "file": { "ltr": "images/icons/arched-arrow-ltr.svg", "rtl": "images/icons/arched-arrow-rtl.svg" - } }, - "remove": { "file": "images/icons/trash.svg" }, - "search": { "file": "images/icons/search.svg" }, - "settings": { "file": "images/icons/settings.svg" }, - "tag": { "file": "images/icons/tag.svg" }, + }, + "deprecated": "Moved since v0.16.2, use from the 'editing-core' pack instead." + }, + "remove": { "file": "images/icons/trash.svg", "deprecated": "Replaced since v0.14.0, use 'trash' from the 'moderation' pack instead." }, + "search": { "file": { + "ltr": "images/icons/search-ltr.svg", + "rtl": "images/icons/search-rtl.svg" + }, + "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." + }, + "settings": { "file": "images/icons/settings.svg", "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." }, + "tag": { "file": "images/icons/tag.svg", "deprecated": "Moved since v0.20.1, use from the 'content' pack instead." }, "undo": { "file": { "ltr": "images/icons/arched-arrow-rtl.svg", "rtl": "images/icons/arched-arrow-ltr.svg" - } }, - "window": { "file": "images/icons/window.svg" } + }, + "deprecated": "Moved since v0.16.2, use from the 'editing-core' pack instead." + }, + "window": { "file": "images/icons/window.svg", "deprecated": "Moved since v0.20.1, use from the 'content' pack instead." } } } diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/advanced-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/advanced-invert.png new file mode 100644 index 0000000000000000000000000000000000000000..b009bff6b9211ce2ec28b5a21c99cf76bec4a780 GIT binary patch literal 421 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM%)r37VBOysASW}xC&bmgz~?_*z}-b0x*4k7RyrpO>lM15|y|)5S4F zLUQgw_n^ZL3=9VY?}TnrNuO==zh321&^ApANAu36Nh}(vshkoU(gHsVM1{?cc+2SM zaChU4PtgUJnt4}W9a#0j)I~kaf2PBh)IjYC z+N%%Btty{1*Yo76-x6oK+GhVcu|MbaXJh-4vk`kztIl?Be7Qs0egDm=cb>AZp642G z$$w`~EX$-ju4kt|R=w;Y^tGz$VcPzSTF)xilx%*kXJU0$@0sW91I`)?uX0amtpCNL Yl`8PT>EEX9Ku + + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/cancel-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/cancel-invert.png new file mode 100644 index 0000000000000000000000000000000000000000..b7529a242cc2981841702a51aebb07292f646231 GIT binary patch literal 329 zcmV-P0k-~$P)K)IClEF%X8~h@@Cr3Pcwq2<=`a4P7J(8W26lAvp#l z6{HB + + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/check-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/check-invert.png new file mode 100644 index 0000000000000000000000000000000000000000..a5f25e78e8369a40dc31bcc36305c861f30839f6 GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-MYpGm zV~9uR+jELSjENG*ABt|%a9g;thdD!U@s74fEW4htq~$BD$}lj?7@>$?}d?18-7w--zJ_Vk2EEP0%pyZ=37W9D+Ltvp4sKxZ*{ My85}Sb4q9e0O)>F-T(jq literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/check-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/check-invert.svg new file mode 100644 index 0000000000..68e6c3d6a0 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/check-invert.svg @@ -0,0 +1,4 @@ + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/close-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/close-invert.png new file mode 100644 index 0000000000000000000000000000000000000000..05d6e22fd2086f440c8e97ac4061e04e689a3dd9 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-MYE@i zV~9uR+bQ0B4GKK0SFIoD?$miydCXUMW0G=M*`Ah`0HgJ~^E0KSUTG;Xtrm=Le9_4K zWLD>a@|&0Qlp11Yuqc0vNbNq!#v(a=tN({XDjXaND|hm*^ATDecX&G6{GZ8n+j_+Q zUi!b>`P=L(4_0a2Hx1=~J8h}gfv>ZE*N8ehuP + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/ellipsis-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/ellipsis-invert.png new file mode 100644 index 0000000000000000000000000000000000000000..7d57d117ca59d93cc405625be2cb78378f706a0f GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-g^Q<) zV~9uR+w&Va85DR}125h!`LD^OS7_FCLxXMOFaAq0lT}y*CssSKt?~c%?JiTYQNH}6 o#Q3T!)A_jqey1M2?fPUfn`LXOe(a?%U7&dkp00i_>zopr0BO=JX8-^I literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/ellipsis-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/ellipsis-invert.svg new file mode 100644 index 0000000000..b169c7b576 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/ellipsis-invert.svg @@ -0,0 +1,4 @@ + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/help-ltr-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/help-ltr-invert.png new file mode 100644 index 0000000000000000000000000000000000000000..35d8f226def02f40eb05ca3c587fa69e1e461d45 GIT binary patch literal 503 zcmVQ4odC6$??ZkW^x0D_W|c_y;Q3nKYUgun|PX z(q|A0A4AX=P!JSJQmU;MLMj_U5n=JOaMtYJ{Y&gJ5SGk2bLQ^sz2{2Z9C;F;K<`t469`| zSPEzE<)?vf;1O5{mVsB}u6f)m%P*!iI5BX`%l86@z<4AVe%x)3TebXgT7z2yO9?Q} z+ce$_FzjI^!;)tMcm_TT#7BX5e$T>W2Im8K3jg=y38ut>qyb5%&bj*>-k(E68#E>L z6^v-bo@Z&G)%KfKqCvwGNsBRiK4jplo>r`T>Nf2pinghvWp1e!5uUOPEIerSycI;P zBC$)d8W6XN`MkIE&90J5Zmm2tyZs`5SmfJvm84x)iQ9F1;t`Q~pg}y+E}VMaSaPpS tz)4z=R95TClv-EjxpVHiqm_4E`~cZwTyjO#=BEGv002ovPDHLkV1ioq+Y|r* literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/help-ltr-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/help-ltr-invert.svg new file mode 100644 index 0000000000..68a64bd41b --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/help-ltr-invert.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/help-rtl-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/help-rtl-invert.png new file mode 100644 index 0000000000000000000000000000000000000000..9cb8cb285d72c60d0ea412b0b028cca5e9ecf87a GIT binary patch literal 515 zcmV+e0{s1nP)Q4odCjVOqSg{Bb%dx=(J;ZLF{f|bNVlNYcN z)PSweVBu>BK7r99AjU=nTN|;n5fKr>XORis-0WZM99VXlIdjhanVpgTySbzw;3O?c z+LkmgX;RXFq*qDzk}f4(JLl+I8CV2v>9#L>e7ggd`XP3}A+umDGCcB78h!{!awhzdU2Irp3&Fh{%oKY*zO0cW`9jxXoMW6RMw z_aNz9(uky5(k? + + + + + + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/search-ltr-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/search-ltr-invert.png new file mode 100644 index 0000000000000000000000000000000000000000..4b2913bc6e3c1fe20b0477fb07dc66c93336c6d8 GIT binary patch literal 334 zcmV-U0kQsxP)K)Gub0>NWw+6aPTCs--y zEd+ZHASehz8d1SUNmhS0-xh+|an}?gdCfPw^XC0$hMDPfX8O~@Do$~YHw zVc%qpu!H%wfP)AcV}Kl4)B(!q-)bHUfXbs1>$0P1=gu|&pYT*5U1KGk8p0PP~ gKtL9>eY$7*1cqv&(KL&4TL1t607*qoM6N<$f);>@i2wiq literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/search-ltr-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/search-ltr-invert.svg new file mode 100644 index 0000000000..10490eab67 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/search-ltr-invert.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/search-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/search-ltr.png new file mode 100644 index 0000000000000000000000000000000000000000..e8e99f843d88abadd28f195de8f8b64a36fc34b6 GIT binary patch literal 358 zcmV-s0h#`ZP)K)G9{={+Z5fBS!ZZ3f!qT+F zHSA$r-~()9rmDbx5Dn2q6OD*njADPQ3V9Q+LEbLFv_oW|Lc0zkyKVxv6S!Vkftxtk zOyF99>z5UHjDw8?t`WGWNuc^C|L!8rCj=HEUY8X(kGP%?$oDT3xDU1}D}5w=i$+*1 zE5Q2=8OFLL>v=1_^Eo)JLQdAYUA!os=G;4zh>AvijFa#><|6A`9OD8jfnAe5EoYTV znP44XsHE~^CCj)btAHP@WE1yzz{Yoz=QeA)Zv16?1I&<43U>nSAOHXW07*qoM6N<$ Ef{#6sEC2ui literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/search-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/search-ltr.svg new file mode 100644 index 0000000000..ebc654a2b1 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/search-ltr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/search-rtl-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/search-rtl-invert.png new file mode 100644 index 0000000000000000000000000000000000000000..0409aa4909e34d3e9643a76914673ad8c45bafd8 GIT binary patch literal 332 zcmV-S0ki&zP)K(=kdzQ4odUps|eGu(1i|720GMu0Y&I()z?gu@gH3 zSw>di0z?ZzNFk_TqnPBgnFkt3uJ0uxLQXTqoco{Q-nq5fO8-V^qK_foaf2Rq76sSQ z!H3y8#ah*XPC!P;(Ly6?j&bzQs=%8u`3UV9o_2&x&?+0ykLmJ+?>Kx{WdnwBaPDNt z!gp6T;4Ka|628swy-xR1FMk_#E8#2pk7Wa{qwXhsMSqa+eHXT4L&iVYBG@Yx5P-qd zKgilzsMd9bTz&)PufJ^KyWAbik$e+L?-~cap#^F-oUqb5G e_!am{)A|Gfx1$J;b?fo~0000 + + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/search-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/search-rtl.png new file mode 100644 index 0000000000000000000000000000000000000000..3ab96becd9685bf2e090b2edb63186142435a226 GIT binary patch literal 331 zcmV-R0kr;!P)K(>+Q9Q541T9~#TJ4I7)FQ)rW2xB_t-N$ZG(VkdSA zS%xcc0iuN!Wzz}b^#sxNJ1-H<{ zJEj%q2un=^dI1?B$0piQbBv>Z+yvf<$w%l`c)AfXiO^aa#B_PWcM!hwx&gzun3^mL z-)-H1*SOeD_*TRB^1YGz^EXk~627wkP&eQz>Q2H}_Ae8@A6i#z$XI%drr53?vagQ@>&13R@6Ud*yVHeMM!rr{$rCM0| dE%-uT^a1m{QA}4ujko{+002ovPDHLkV1mEajBfw{ literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/search-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/search-rtl.svg new file mode 100644 index 0000000000..c51d4cb09f --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/search-rtl.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/search.png b/resources/lib/oojs-ui/themes/apex/images/icons/search.png deleted file mode 100644 index 7b4753987e05c287064653bc49d3a5b675332c68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmV-k0iphhP)K)4NJTK@^4IPcfi2+SrLif`wT60%9Xt*;oj^frV{4 z3m-ucENldyLL?Sq7x7X{w3LXX5>&ht*<#S#7;>t(;IM~Tv)6xSnBiZ2tsIKD!ZV(5 zjHOPMRiq=J(y!oQWtpZAHr0Fp08dFWubY5)KL07*qoM6N<$f=XeJ*Z=?k diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/search.svg b/resources/lib/oojs-ui/themes/apex/images/icons/search.svg deleted file mode 100644 index 823ebf28d2..0000000000 --- a/resources/lib/oojs-ui/themes/apex/images/icons/search.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/settings-invert.png b/resources/lib/oojs-ui/themes/apex/images/icons/settings-invert.png new file mode 100644 index 0000000000000000000000000000000000000000..34c6afe5a69786001933876c2a4f378939ce437f GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-MWUyR zV~9uR+bNEG3<5kXYyba0d2{tOUP0e3uc{Y!Cgi2~E)m(|u&F2@&u9b7CV7S#*Du{O z6M3=o=d-Z1h!BxKjVTxR^{!ZHvEah>{$)byqO4^)d&A$(@w$9@{?+Bn7CtkVdeqc# U;!jEJMWAI2p00i_>zopr0Q~_$2><{9 literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/settings-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/settings-invert.svg new file mode 100644 index 0000000000..0cda50c625 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/settings-invert.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-ltr.png new file mode 100644 index 0000000000000000000000000000000000000000..5423b36ea963774eb04e77259ea730117c5280ee GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-g_Wm^ zV~9s*a)JcwVL5{&!QcMA#xpfcdK4DyWHn*G(!rdQcHrO%9;H2wO?+*20vBa^#6%Y- dh!_|!FjU*H2uhtfF%4)6gQu&X%Q~loCIIDGBD(+p literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-ltr.svg new file mode 100644 index 0000000000..2112bb2da3 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-ltr.svg @@ -0,0 +1,4 @@ + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-rtl.png new file mode 100644 index 0000000000000000000000000000000000000000..0ff3d7cf8e5b910a4905c96c433b1f87311b2ee8 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-g`KC1 zV~9s*a)JcwVL5{&!QcMA#xpfcdK4DyWHn*G@rXfof|UA~UglZMNlhHG0$iIC#av9- h7rP$SkYMHEVeqzL5xgXPWGc`k22WQ%mvv4FO#mjpA;SOw literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-rtl.svg new file mode 100644 index 0000000000..39790a9a21 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-rtl.svg @@ -0,0 +1,4 @@ + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/stripeSideMenu.png b/resources/lib/oojs-ui/themes/apex/images/icons/stripeSideMenu.png new file mode 100644 index 0000000000000000000000000000000000000000..e031527d99c6a58c7db0d287371b33c8cadf39b2 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaT%)r37cHewmAcrl$C&bmgzz4{juhkL=q!>$r z{DK)Ap4~_Ta-=<7978ywlM@t}Zpb$%tqICd5j*hzKXVw+R8L**uQm(2tbocGJYD@< J);T3K0RUN-8}tAG literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/stripeSideMenu.svg b/resources/lib/oojs-ui/themes/apex/images/icons/stripeSideMenu.svg new file mode 100644 index 0000000000..e63a7d5cb8 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/stripeSideMenu.svg @@ -0,0 +1,4 @@ + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-ltr.png new file mode 100644 index 0000000000000000000000000000000000000000..ce15bd87bfb37539a520298c1cf4a785515efaf0 GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaT%)r37cHewmAcrl$C&bmgzz4{juhkL=q!>$r z{DK)Ap4~_Ta+Ez?978y+Cnq>Caz;e(@O)#JC}3PLg_l|J!2kcuE&m!qr5HjxSbzM> S-<1wj&fw|l=d#Wzp$PzC_#k2c literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-ltr.svg new file mode 100644 index 0000000000..767d6cda4b --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-ltr.svg @@ -0,0 +1,4 @@ + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-rtl.png new file mode 100644 index 0000000000000000000000000000000000000000..82ca2bf5f092bb85749ba98c6d6b4ce39b789338 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-g`TI2 zV~9s*a)Jcw;slWkG6qS4zx{oUXKI+_JYd|Wpv1z#`p|%TQJ?{r8>1`(gJd-myTXc$ QX+WI}p00i_>zopr0PS%begFUf literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-rtl.svg new file mode 100644 index 0000000000..4d16337e49 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-rtl.svg @@ -0,0 +1,4 @@ + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-ltr.png new file mode 100644 index 0000000000000000000000000000000000000000..b482d3e61a74efa282b48016b7d318187d35caa0 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-g|(-P zV~9s*a)JaaGq1$Pj=#&7&GZqGauc|4rzy}uAV6C*(YU>_G0{Y{m&3tN>(I=k4UHE= cOt{*BdKpZZ1#Wq+{|aJyy85}Sb4q9e00Vd + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-rtl.png new file mode 100644 index 0000000000000000000000000000000000000000..516bc2c2b052a651c584a0d6bc113214abb5160d GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-g{7y9 zV~9s*a)JaaGq1$Pj=#&7&GZqGauc|4rzy}uAi>-9M8g~r(^*|^QVLVLHZVGAW}Ari cHZ5dhxT4A|@GZ0Z8qg31Pgg&ebxsLQ0Oigj(f|Me literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-rtl.svg new file mode 100644 index 0000000000..0859be6b41 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-rtl.svg @@ -0,0 +1,4 @@ + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/viewCompact.png b/resources/lib/oojs-ui/themes/apex/images/icons/viewCompact.png new file mode 100644 index 0000000000000000000000000000000000000000..13fe420726427161c8fe3dcc06d6140022bd3565 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-g^Q<) zV~9uR+e-&I85DS&FZO>f{V%zzHLhwZS7^Y==9nVQDGhf{F!V<(oL{uSea{8v3t@Wi p%Ko^%zuXlR73ihymFYTP@^Oyu)I%LpBY@^Hc)I$ztaD0e0sty!FZBQb literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/viewCompact.svg b/resources/lib/oojs-ui/themes/apex/images/icons/viewCompact.svg new file mode 100644 index 0000000000..d96a2e3fee --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/viewCompact.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-ltr.png new file mode 100644 index 0000000000000000000000000000000000000000..4341f0e6a9fcc6ffa49be8bcbe8f857fd311e250 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#S9GG!XV7ZFl!D-MYyMn zV~9s*a)Jcw;)Yue^BNly&6$}Gr)%i;t9+mD(j)rDEqF`!ExR8*X$RAVY8x15T==1W z;m7fbH+ozWnjGda3hB&WXtK{jf^`ey;-3u6JFVdQ I&MBb@0Al(yp8x;= literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-ltr.svg new file mode 100644 index 0000000000..1a5092a3a9 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-ltr.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-rtl.png new file mode 100644 index 0000000000000000000000000000000000000000..338294c07120419b08bcb8db67238933064f382e GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaN%)r2y8Yd772cUqhr;B5V#MI;jAP8kpOkrb7;N@^wn0RR6LPkHnghGYZQ-|3d ww0av&CUCV%XnRbNsXSm3!oc3Xs|u)HZ3o}c=+_qy0S#jCboFyt=akR{0F|gH?*IS* literal 0 HcmV?d00001 diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-rtl.svg new file mode 100644 index 0000000000..f43b05f129 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-rtl.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-alerts.json b/resources/lib/oojs-ui/themes/mediawiki/icons-alerts.json index e6fa863c12..c169b56fec 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/icons-alerts.json +++ b/resources/lib/oojs-ui/themes/mediawiki/icons-alerts.json @@ -22,17 +22,20 @@ } }, "images": { + "alert": { "file": "images/icons/alert.svg", "variants": [ "warning" ] }, "bell": { "file": "images/icons/bell.svg" }, "bellOn": { "file": { "ltr": "images/icons/bellOn-ltr.svg", "rtl": "images/icons/bellOn-rtl.svg" } }, + "comment": { "file": "images/icons/comment.svg" }, "eye": { "file": "images/icons/eye.svg" }, "eyeClosed": { "file": "images/icons/eyeClosed.svg" }, "message": { "file": { "ltr": "images/icons/message-ltr.svg", "rtl": "images/icons/message-rtl.svg" } }, + "notice": { "file": "images/icons/notice.svg" }, "signature": { "file": { "ltr": "images/icons/signature-ltr.svg", "rtl": "images/icons/signature-rtl.svg" diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-content.json b/resources/lib/oojs-ui/themes/mediawiki/icons-content.json index 80bbcaf2b3..e952108ae2 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/icons-content.json +++ b/resources/lib/oojs-ui/themes/mediawiki/icons-content.json @@ -62,6 +62,8 @@ "ltr": "images/icons/folderPlaceholder-ltr.svg", "rtl": "images/icons/folderPlaceholder-rtl.svg" } }, + "history": { "file": "images/icons/history.svg" }, + "info": { "file": "images/icons/info.svg" }, "journal": { "file": { "ltr": "images/icons/journal-ltr.svg", "rtl": "images/icons/journal-rtl.svg" @@ -70,9 +72,11 @@ "ltr": "images/icons/newspaper-ltr.svg", "rtl": "images/icons/newspaper-rtl.svg" } }, + "tag": { "file": "images/icons/tag.svg", "variants": [ "destructive", "warning", "constructive" ] }, "upload": { "file": { "ltr": "images/icons/upload-ltr.svg", "rtl": "images/icons/upload-rtl.svg" - } } + } }, + "window": { "file": "images/icons/window.svg" } } } diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-interactions.json b/resources/lib/oojs-ui/themes/mediawiki/icons-interactions.json index f693e3fba1..668173fc8e 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/icons-interactions.json +++ b/resources/lib/oojs-ui/themes/mediawiki/icons-interactions.json @@ -23,6 +23,7 @@ }, "images": { "add": { "file": "images/icons/add.svg", "variants": [ "constructive", "progressive" ] }, + "advanced": { "file": "images/icons/advanced.svg" }, "bookmark": { "file": { "ltr": "images/icons/bookmark-ltr.svg", "rtl": "images/icons/bookmark-rtl.svg" @@ -31,8 +32,12 @@ "ltr": "images/icons/browser-ltr.svg", "rtl": "images/icons/browser-rtl.svg" } }, + "cancel": { "file": "images/icons/cancel.svg", "variants": [ "destructive" ] }, + "check": { "file": "images/icons/check.svg", "variants": [ "constructive", "progressive", "destructive" ] }, "clear": { "file": "images/icons/clear.svg" }, "clock": { "file": "images/icons/clock.svg" }, + "close": { "file": "images/icons/close.svg" }, + "ellipsis": { "file": "images/icons/ellipsis.svg" }, "feedback": { "file": { "ltr": "images/icons/feedback-ltr.svg", @@ -45,6 +50,13 @@ "rtl": "images/icons/funnel-rtl.svg" } }, "heart": { "file": "images/icons/heart.svg" }, + "help": { "file": { + "ltr": "images/icons/help-ltr.svg", + "rtl": "images/icons/help-rtl.svg", + "lang": { + "he,yi": "images/icons/help-ltr.svg" + } + } }, "key": { "file": { "ltr": "images/icons/key-ltr.svg", "rtl": "images/icons/key-rtl.svg" @@ -65,6 +77,12 @@ "ltr": "images/icons/printer-ltr.svg", "rtl": "images/icons/printer-rtl.svg" } }, + "search": { "file": { + "ltr": "images/icons/search-ltr.svg", + "rtl": "images/icons/search-rtl.svg" + } + }, + "settings": { "file": "images/icons/settings.svg" }, "subtract": { "file": "images/icons/subtract.svg" }, "sun": { "file": { "ltr": "images/icons/sun-ltr.svg", diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-layout.json b/resources/lib/oojs-ui/themes/mediawiki/icons-layout.json index 6ff4a0e0d3..f720a25ee4 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/icons-layout.json +++ b/resources/lib/oojs-ui/themes/mediawiki/icons-layout.json @@ -22,6 +22,7 @@ } }, "images": { + "menu": { "file": "images/icons/menu.svg" }, "stripeFlow": { "file": { "ltr": "images/icons/stripeFlow-ltr.svg", "rtl": "images/icons/stripeFlow-rtl.svg" diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-location.json b/resources/lib/oojs-ui/themes/mediawiki/icons-location.json index 7098f2304b..58feb234fd 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/icons-location.json +++ b/resources/lib/oojs-ui/themes/mediawiki/icons-location.json @@ -31,9 +31,14 @@ "ltr": "images/icons/mapPinAdd-ltr.svg", "rtl": "images/icons/mapPinAdd-rtl.svg" } }, + "mapTrail": { "file": { + "ltr": "images/icons/mapTrail-ltr.svg", + "rtl": "images/icons/mapTrail-rtl.svg" + } }, "wikitrail": { "file": { - "ltr": "images/icons/wikitrail-ltr.svg", - "rtl": "images/icons/wikitrail-rtl.svg" - } } + "ltr": "images/icons/mapTrail-ltr.svg", + "rtl": "images/icons/mapTrail-rtl.svg" + }, "deprecated": "Renamed to 'mapTrail' since v0.20.1." + } } } diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-movement.json b/resources/lib/oojs-ui/themes/mediawiki/icons-movement.json index 059073f408..0dc88e3088 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/icons-movement.json +++ b/resources/lib/oojs-ui/themes/mediawiki/icons-movement.json @@ -40,8 +40,20 @@ } }, "caretDown": { "file": "images/icons/caretDown.svg" }, "caretUp": { "file": "images/icons/caretUp.svg" }, + "collapse": { "file": "images/icons/collapse.svg" }, "downTriangle": { "file": "images/icons/downTriangle.svg" }, + "expand": { "file": "images/icons/expand.svg" }, "move": { "file": "images/icons/move.svg" }, + "next": { "file": { + "ltr": "images/icons/move-ltr.svg", + "rtl": "images/icons/move-rtl.svg" + } + }, + "previous": { "file": { + "ltr": "images/icons/move-rtl.svg", + "rtl": "images/icons/move-ltr.svg" + } + }, "upTriangle": { "file": "images/icons/upTriangle.svg" } } } diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons.json b/resources/lib/oojs-ui/themes/mediawiki/icons.json index 60c05f3e9a..958e7e30bb 100644 --- a/resources/lib/oojs-ui/themes/mediawiki/icons.json +++ b/resources/lib/oojs-ui/themes/mediawiki/icons.json @@ -22,52 +22,63 @@ } }, "images": { - "add": { "file": "images/icons/add.svg", "variants": [ "constructive", "progressive" ], "deprecated": "Moved since v0.19.5, use from the 'interactive' pack instead." }, - "advanced": { "file": "images/icons/advanced.svg" }, - "alert": { "file": "images/icons/alert.svg", "variants": [ "warning" ] }, - "cancel": { "file": "images/icons/cancel.svg", "variants": [ "destructive" ] }, - "check": { "file": "images/icons/check.svg", "variants": [ "constructive", "progressive", "destructive" ] }, - "circle": { "file": "images/icons/circle.svg", "variants": [ "constructive", "progressive" ] }, - "close": { "file": "images/icons/close.svg" }, - "code": { "file": "images/icons/code.svg" }, - "collapse": { "file": "images/icons/collapse.svg" }, - "comment": { "file": "images/icons/comment.svg" }, - "ellipsis": { "file": "images/icons/ellipsis.svg" }, - "expand": { "file": "images/icons/expand.svg" }, + "add": { "file": "images/icons/add.svg", "variants": [ "constructive", "progressive" ], "deprecated": "Moved since v0.19.5, use from the 'interactions' pack instead." }, + "advanced": { "file": "images/icons/advanced.svg", "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." }, + "alert": { "file": "images/icons/alert.svg", "variants": [ "warning" ], "deprecated": "Moved since v0.20.1, use from the 'alerts' pack instead." }, + "cancel": { "file": "images/icons/cancel.svg", "variants": [ "destructive" ], "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." }, + "check": { "file": "images/icons/check.svg", "variants": [ "constructive", "progressive", "destructive" ], "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." }, + "circle": { "file": "images/icons/circle.svg", "variants": [ "constructive", "progressive" ], "deprecated": "Deprecated since v0.20.1, do not use." }, + "close": { "file": "images/icons/close.svg", "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." }, + "code": { "file": "images/icons/code.svg", "deprecated": "Moved since v0.16.2, use from the 'editing-advanced' pack instead." }, + "collapse": { "file": "images/icons/collapse.svg", "deprecated": "Moved since v0.20.1, use from the 'movement' pack instead." }, + "comment": { "file": "images/icons/comment.svg", "deprecated": "Moved since v0.20.1, use from the 'alerts' pack instead." }, + "ellipsis": { "file": "images/icons/ellipsis.svg", "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." }, + "expand": { "file": "images/icons/expand.svg", "deprecated": "Moved since v0.20.1, use from the 'movement' pack instead." }, "help": { "file": { "ltr": "images/icons/help-ltr.svg", "rtl": "images/icons/help-rtl.svg", "lang": { "he,yi": "images/icons/help-ltr.svg" - } + }, + "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." } }, - "history": { "file": "images/icons/history.svg" }, - "info": { "file": "images/icons/info.svg" }, - "menu": { "file": "images/icons/menu.svg" }, + "history": { "file": "images/icons/history.svg", "deprecated": "Moved since v0.20.1, use from the 'content' pack instead." }, + "info": { "file": "images/icons/info.svg", "deprecated": "Moved since v0.20.1, use from the 'content' pack instead." }, + "menu": { "file": "images/icons/menu.svg", "deprecated": "Moved since v0.20.1, use from the 'layout' pack instead." }, "next": { "file": { "ltr": "images/icons/move-ltr.svg", "rtl": "images/icons/move-rtl.svg" - } }, - "notice": { "file": "images/icons/notice.svg" }, + }, + "deprecated": "Moved since v0.20.1, use from the 'movement' pack instead." + }, + "notice": { "file": "images/icons/notice.svg", "deprecated": "Moved since v0.20.1, use from the 'alerts' pack instead." }, "previous": { "file": { "ltr": "images/icons/move-rtl.svg", "rtl": "images/icons/move-ltr.svg" - } }, + }, + "deprecated": "Moved since v0.20.1, use from the 'movement' pack instead." + }, "redo": { "file": { "ltr": "images/icons/arched-arrow-ltr.svg", "rtl": "images/icons/arched-arrow-rtl.svg" - } }, - "remove": { "file": "images/icons/trash.svg", "variants": [ "destructive" ] }, + }, + "deprecated": "Moved since v0.16.2, use from the 'editing-core' pack instead." + }, + "remove": { "file": "images/icons/trash.svg", "variants": [ "destructive" ], "deprecated": "Replaced since v0.14.0, use 'trash' from the 'moderation' pack instead." }, "search": { "file": { "ltr": "images/icons/search-ltr.svg", "rtl": "images/icons/search-rtl.svg" - } }, - "settings": { "file": "images/icons/settings.svg" }, - "tag": { "file": "images/icons/tag.svg", "variants": [ "destructive", "warning", "constructive" ] }, + }, + "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." + }, + "settings": { "file": "images/icons/settings.svg", "deprecated": "Moved since v0.20.1, use from the 'interactions' pack instead." }, + "tag": { "file": "images/icons/tag.svg", "variants": [ "destructive", "warning", "constructive" ], "deprecated": "Moved since v0.20.1, use from the 'content' pack instead." }, "undo": { "file": { "ltr": "images/icons/arched-arrow-rtl.svg", "rtl": "images/icons/arched-arrow-ltr.svg" - } }, - "window": { "file": "images/icons/window.svg" } + }, + "deprecated": "Moved since v0.16.2, use from the 'editing-core' pack instead." + }, + "window": { "file": "images/icons/window.svg", "deprecated": "Moved since v0.20.1, use from the 'content' pack instead." } } } diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-invert.png similarity index 100% rename from resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.png rename to resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-invert.png diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-invert.svg similarity index 100% rename from resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.svg rename to resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-invert.svg diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-progressive.png similarity index 100% rename from resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-progressive.png rename to resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-progressive.png diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-progressive.svg similarity index 100% rename from resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-progressive.svg rename to resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-progressive.svg diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr.png similarity index 100% rename from resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.png rename to resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr.png diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr.svg similarity index 100% rename from resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.svg rename to resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr.svg diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-invert.png similarity index 100% rename from resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.png rename to resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-invert.png diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-invert.svg similarity index 100% rename from resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.svg rename to resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-invert.svg diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-progressive.png similarity index 100% rename from resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-progressive.png rename to resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-progressive.png diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-progressive.svg similarity index 100% rename from resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-progressive.svg rename to resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-progressive.svg diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl.png similarity index 100% rename from resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.png rename to resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl.png diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl.svg similarity index 100% rename from resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.svg rename to resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl.svg -- 2.20.1