From: jenkins-bot Date: Wed, 29 Mar 2017 20:48:46 +0000 (+0000) Subject: Merge "Update OOjs UI to v0.20.1" X-Git-Tag: 1.31.0-rc.0~3666 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22config_fonctions%22%2C%20%22image_process=%24process%22%29%20.%20%22?a=commitdiff_plain;h=d10ace77d37899fd1110fc0b51e17e9e518c5615;hp=f6432ba07cf71ae75254c1c0c13d01c05dd30518;p=lhc%2Fweb%2Fwiklou.git Merge "Update OOjs UI to v0.20.1" --- 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 0000000000..b009bff6b9 Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/advanced-invert.png differ diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/advanced-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/advanced-invert.svg new file mode 100644 index 0000000000..2e06beb8da --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/advanced-invert.svg @@ -0,0 +1,6 @@ + + + + + + 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 0000000000..b7529a242c Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/cancel-invert.png differ diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/cancel-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/cancel-invert.svg new file mode 100644 index 0000000000..a7c1dcd093 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/cancel-invert.svg @@ -0,0 +1,6 @@ + + + + + + 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 0000000000..a5f25e78e8 Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/check-invert.png differ 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 0000000000..05d6e22fd2 Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/close-invert.png differ diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/close-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/close-invert.svg new file mode 100644 index 0000000000..f100370394 --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/close-invert.svg @@ -0,0 +1,4 @@ + + + + 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 0000000000..7d57d117ca Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/ellipsis-invert.png differ 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 0000000000..35d8f226de Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/help-ltr-invert.png differ 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 0000000000..9cb8cb285d Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/help-rtl-invert.png differ diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/help-rtl-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/help-rtl-invert.svg new file mode 100644 index 0000000000..2c16f5f57a --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/help-rtl-invert.svg @@ -0,0 +1,10 @@ + + + + + + + + + + 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 0000000000..4b2913bc6e Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/search-ltr-invert.png differ 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 0000000000..e8e99f843d Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/search-ltr.png differ 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 0000000000..0409aa4909 Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/search-rtl-invert.png differ diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/search-rtl-invert.svg b/resources/lib/oojs-ui/themes/apex/images/icons/search-rtl-invert.svg new file mode 100644 index 0000000000..81cab992aa --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/search-rtl-invert.svg @@ -0,0 +1,6 @@ + + + + + + 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 0000000000..3ab96becd9 Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/search-rtl.png differ 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 7b4753987e..0000000000 Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/search.png and /dev/null differ 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 0000000000..34c6afe5a6 Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/settings-invert.png differ 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 0000000000..5423b36ea9 Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-ltr.png differ 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 0000000000..0ff3d7cf8e Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/stripeFlow-rtl.png differ 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 0000000000..e031527d99 Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/stripeSideMenu.png differ 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 0000000000..ce15bd87bf Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-ltr.png differ 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 0000000000..82ca2bf5f0 Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/stripeSummary-rtl.png differ 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 0000000000..b482d3e61a Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-ltr.png differ diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-ltr.svg new file mode 100644 index 0000000000..d7c202e8dd --- /dev/null +++ b/resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-ltr.svg @@ -0,0 +1,4 @@ + + + + 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 0000000000..516bc2c2b0 Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/stripeToC-rtl.png differ 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 0000000000..13fe420726 Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/viewCompact.png differ 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 0000000000..4341f0e6a9 Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-ltr.png differ 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 0000000000..338294c071 Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/viewDetails-rtl.png differ 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/mapTrail-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-invert.png new file mode 100644 index 0000000000..075f84e087 Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-invert.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-invert.svg new file mode 100644 index 0000000000..17d3645b0e --- /dev/null +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-invert.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-progressive.png new file mode 100644 index 0000000000..2b26e15577 Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-progressive.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-progressive.svg new file mode 100644 index 0000000000..2b49b99073 --- /dev/null +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr-progressive.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr.png new file mode 100644 index 0000000000..331fd595f3 Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr.svg new file mode 100644 index 0000000000..cb073b9d04 --- /dev/null +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-ltr.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-invert.png new file mode 100644 index 0000000000..75c8dcfcdd Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-invert.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-invert.svg new file mode 100644 index 0000000000..fbb9cabdb8 --- /dev/null +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-invert.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-progressive.png new file mode 100644 index 0000000000..fc0b2d929d Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-progressive.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-progressive.svg new file mode 100644 index 0000000000..a2f62ff07d --- /dev/null +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl-progressive.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl.png new file mode 100644 index 0000000000..62f1fe91af Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl.png differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl.svg new file mode 100644 index 0000000000..e8b1a08c08 --- /dev/null +++ b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapTrail-rtl.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.png deleted file mode 100644 index 075f84e087..0000000000 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.svg deleted file mode 100644 index 17d3645b0e..0000000000 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-invert.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-progressive.png deleted file mode 100644 index 2b26e15577..0000000000 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-progressive.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-progressive.svg deleted file mode 100644 index 2b49b99073..0000000000 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr-progressive.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.png deleted file mode 100644 index 331fd595f3..0000000000 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.svg deleted file mode 100644 index cb073b9d04..0000000000 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.png deleted file mode 100644 index 75c8dcfcdd..0000000000 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.svg deleted file mode 100644 index fbb9cabdb8..0000000000 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-invert.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-progressive.png deleted file mode 100644 index fc0b2d929d..0000000000 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-progressive.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-progressive.svg deleted file mode 100644 index a2f62ff07d..0000000000 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl-progressive.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.png deleted file mode 100644 index 62f1fe91af..0000000000 Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.png and /dev/null differ diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.svg deleted file mode 100644 index e8b1a08c08..0000000000 --- a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - -