Merge "Hide TOC with CSS instead of JavaScript"
[lhc/web/wiklou.git] / resources / Resources.php
index 399f837..fc24035 100644 (file)
@@ -58,9 +58,6 @@ return [
        'user.options' => [ 'class' => ResourceLoaderUserOptionsModule::class ],
        'user.tokens' => [ 'class' => ResourceLoaderUserTokensModule::class ],
 
-       // Scripts for the dynamic language specific data, like grammar forms.
-       'mediawiki.language.data' => [ 'class' => ResourceLoaderLanguageDataModule::class ],
-
        /* MediaWiki base skinning modules */
 
        /**
@@ -84,8 +81,7 @@ return [
         *     The highest level, this stylesheet contains extra common styles for classes like
         *     .firstHeading, #contentSub, et cetera which are not outputted by MediaWiki but are common
         *     to skins like MonoBook, Vector, etc... Essentially this level is for styles that are
-        *     common to MonoBook clones. And since practically every skin that currently exists within
-        *     core is a MonoBook clone, all our core skins currently use this level.
+        *     common to MonoBook clones.
         *
         * These modules are typically loaded by addModuleStyles(), which has absolutely no concept of
         * dependency management. As a result they contain duplicate stylesheet references instead of
@@ -136,7 +132,7 @@ return [
 
        'mediawiki.skinning.content.externallinks' => [
                'styles' => [
-                       'resources/src/mediawiki.skinning/content.externallinks.css' => [ 'media' => 'screen' ],
+                       'resources/src/mediawiki.skinning/content.externallinks.less' => [ 'media' => 'screen' ],
                ],
        ],
 
@@ -216,15 +212,6 @@ return [
        'jquery.expandableField' => [
                'scripts' => 'resources/src/jquery/jquery.expandableField.js',
        ],
-       'jquery.farbtastic' => [
-               'scripts' => 'resources/src/jquery/jquery.farbtastic.js',
-               'styles' => 'resources/src/jquery/jquery.farbtastic.css',
-               'dependencies' => 'jquery.colorUtil',
-       ],
-       'jquery.footHovzer' => [
-               'scripts' => 'resources/src/jquery/jquery.footHovzer.js',
-               'styles' => 'resources/src/jquery/jquery.footHovzer.css',
-       ],
        'jquery.form' => [
                'scripts' => 'resources/lib/jquery/jquery.form.js',
        ],
@@ -237,6 +224,7 @@ return [
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'jquery.hidpi' => [
+               'deprecated' => 'Use of the srcset polyfill is deprecated since MediaWiki 1.32.0',
                'scripts' => 'resources/src/jquery/jquery.hidpi.js',
                'targets' => [ 'desktop', 'mobile' ],
        ],
@@ -307,8 +295,8 @@ return [
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'jquery.spinner' => [
-               'scripts' => 'resources/src/jquery/jquery.spinner.js',
-               'styles' => 'resources/src/jquery/jquery.spinner.css',
+               'scripts' => 'resources/src/jquery.spinner/spinner.js',
+               'styles' => 'resources/src/jquery.spinner/spinner.css',
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'jquery.jStorage' => [
@@ -325,21 +313,15 @@ return [
                'scripts' => 'resources/src/jquery/jquery.tabIndex.js',
        ],
        'jquery.tablesorter' => [
+               'targets' => [ 'desktop', 'mobile' ],
                'scripts' => 'resources/src/jquery.tablesorter/jquery.tablesorter.js',
                'styles' => 'resources/src/jquery.tablesorter/jquery.tablesorter.less',
                'messages' => [ 'sort-descending', 'sort-ascending' ],
                'dependencies' => [
-                       'jquery.tablesorter.styles',
                        'mediawiki.RegExp',
                        'mediawiki.language.months',
                ],
        ],
-       'jquery.tablesorter.styles' => [
-               'targets' => [ 'desktop', 'mobile' ],
-               'styles' => [
-                       'resources/src/jquery/jquery.tablesorter.styles.less',
-               ],
-       ],
        'jquery.textSelection' => [
                'scripts' => 'resources/src/jquery/jquery.textSelection.js',
                'dependencies' => 'jquery.client',
@@ -720,12 +702,6 @@ return [
                'group' => 'jquery.ui',
        ],
 
-       /* json2 */
-       'json' => [
-               'deprecated' => 'Use of the "json" module is deprecated since MediaWiki 1.29.0',
-               'targets' => [ 'desktop', 'mobile' ],
-       ],
-
        /* Moment.js */
 
        'moment' => [
@@ -857,15 +833,12 @@ return [
 
        /* MediaWiki */
 
-       'mediawiki' => [
-               'class' => ResourceLoaderRawFileModule::class,
+       'mediawiki.base' => [
                // Keep in sync with maintenance/jsduck/eg-iframe.html
                'scripts' => [
-                       'resources/src/mediawiki/mediawiki.js',
-                       'resources/src/mediawiki/mediawiki.requestIdleCallback.js',
-                       'resources/src/mediawiki/mediawiki.errorLogger.js',
+                       'resources/src/mediawiki.base/mediawiki.errorLogger.js',
+                       'resources/src/mediawiki.base/mediawiki.base.js',
                ],
-               'debugScripts' => 'resources/src/mediawiki/mediawiki.log.js',
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.apihelp' => [
@@ -894,75 +867,73 @@ return [
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.api' => [
-               'scripts' => 'resources/src/mediawiki.api.js',
+               'scripts' => [
+                       'resources/src/mediawiki.api/index.js',
+                       'resources/src/mediawiki.api/category.js',
+                       'resources/src/mediawiki.api/edit.js',
+                       'resources/src/mediawiki.api/login.js',
+                       'resources/src/mediawiki.api/messages.js',
+                       'resources/src/mediawiki.api/options.js',
+                       'resources/src/mediawiki.api/parse.js',
+                       'resources/src/mediawiki.api/rollback.js',
+                       'resources/src/mediawiki.api/upload.js',
+                       'resources/src/mediawiki.api/user.js',
+                       'resources/src/mediawiki.api/watch.js',
+               ],
                'dependencies' => [
+                       'mediawiki.Title',
                        'mediawiki.util',
                        'user.tokens',
                ],
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.api.category' => [
-               'scripts' => 'resources/src/mediawiki.api.category.js',
-               'dependencies' => [
-                       'mediawiki.api',
-                       'mediawiki.Title',
-               ],
+               'deprecated' => 'Use "mediawiki.api" instead.',
+               'dependencies' => 'mediawiki.api',
        ],
        'mediawiki.api.edit' => [
-               'scripts' => 'resources/src/mediawiki.api.edit.js',
+               'deprecated' => 'Use "mediawiki.api" instead.',
                'dependencies' => [
                        'mediawiki.api',
-                       'mediawiki.user',
                ],
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.api.login' => [
-               'scripts' => 'resources/src/mediawiki.api.login.js',
+               'deprecated' => 'Use "mediawiki.api" instead.',
                'dependencies' => 'mediawiki.api',
        ],
        'mediawiki.api.options' => [
-               'scripts' => 'resources/src/mediawiki.api.options.js',
+               'deprecated' => 'Use "mediawiki.api" instead.',
                'dependencies' => 'mediawiki.api',
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.api.parse' => [
-               'scripts' => 'resources/src/mediawiki.api.parse.js',
+               'deprecated' => 'Use "mediawiki.api" instead.',
                'dependencies' => 'mediawiki.api',
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.api.upload' => [
-               'scripts' => 'resources/src/mediawiki.api.upload.js',
-               'dependencies' => [
-                       'mediawiki.api',
-                       'mediawiki.api.edit',
-               ],
+               'deprecated' => 'Use "mediawiki.api" instead.',
+               'dependencies' => 'mediawiki.api',
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.api.user' => [
-               'scripts' => 'resources/src/mediawiki.api.user.js',
-               'dependencies' => [
-                       'mediawiki.api',
-               ],
+               'deprecated' => 'Use "mediawiki.api" instead.',
+               'dependencies' => 'mediawiki.api',
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.api.watch' => [
-               'scripts' => 'resources/src/mediawiki.api.watch.js',
-               'dependencies' => [
-                       'mediawiki.api',
-               ],
+               'deprecated' => 'Use "mediawiki.api" instead.',
+               'dependencies' => 'mediawiki.api',
        ],
        'mediawiki.api.messages' => [
-               'scripts' => 'resources/src/mediawiki.api.messages.js',
-               'dependencies' => [
-                       'mediawiki.api',
-               ],
+               'deprecated' => 'Use "mediawiki.api" instead.',
+               'dependencies' => 'mediawiki.api',
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.api.rollback' => [
-               'scripts' => 'resources/src/mediawiki.api.rollback.js',
-               'dependencies' => [
-                       'mediawiki.api',
-               ],
+               'deprecated' => 'Use "mediawiki.api" instead.',
+               'dependencies' => 'mediawiki.api',
        ],
        'mediawiki.content.json' => [
                'styles' => 'resources/src/mediawiki.content.json.less',
@@ -975,13 +946,14 @@ return [
        ],
        'mediawiki.debug' => [
                'scripts' => [
+                       'resources/src/mediawiki.debug/jquery.footHovzer.js',
                        'resources/src/mediawiki.debug/debug.js',
                ],
                'styles' => [
+                       'resources/src/mediawiki.debug/jquery.footHovzer.css',
                        'resources/src/mediawiki.debug/debug.less',
                ],
                'dependencies' => [
-                       'jquery.footHovzer',
                        'oojs-ui-core',
                ],
        ],
@@ -1060,12 +1032,6 @@ return [
                ],
                'targets' => [ 'desktop', 'mobile' ],
        ],
-       'mediawiki.hidpi' => [
-               'scripts' => 'resources/src/mediawiki.hidpi/hidpi.js',
-               'dependencies' => 'jquery.hidpi',
-               'skipFunction' => 'resources/src/mediawiki.hidpi/skip.js',
-               'targets' => [ 'desktop', 'mobile' ],
-       ],
        'mediawiki.hlist' => [
                'targets' => [ 'desktop', 'mobile' ],
                'styles' => [
@@ -1153,7 +1119,7 @@ return [
                        'resources/src/mediawiki.messagePoster.wikitext/WikitextMessagePoster.js',
                ],
                'dependencies' => [
-                       'mediawiki.api.edit',
+                       'mediawiki.api',
                        'mediawiki.messagePoster',
                ],
                'targets' => [ 'desktop', 'mobile' ],
@@ -1234,7 +1200,7 @@ return [
        'mediawiki.Upload' => [
                'scripts' => 'resources/src/mediawiki.Upload.js',
                'dependencies' => [
-                       'mediawiki.api.upload',
+                       'mediawiki.api',
                ],
        ],
        'mediawiki.ForeignUpload' => [
@@ -1334,7 +1300,7 @@ return [
                        'mediawiki.widgets.CategoryMultiselectWidget',
                        'mediawiki.widgets.DateInputWidget',
                        'mediawiki.jqueryMsg',
-                       'mediawiki.api.messages',
+                       'mediawiki.api',
                        'moment',
                        'mediawiki.libs.jpegmeta',
                ],
@@ -1387,7 +1353,6 @@ return [
                'scripts' => 'resources/src/mediawiki.user.js',
                'dependencies' => [
                        'mediawiki.api',
-                       'mediawiki.api.user',
                        'mediawiki.storage',
                        'user.options',
                        'user.tokens',
@@ -1604,7 +1569,9 @@ return [
        /* MediaWiki Language */
 
        'mediawiki.language' => [
+               'class' => ResourceLoaderLanguageDataModule::class,
                'scripts' => [
+                       'resources/src/mediawiki.language/mediawiki.language.init.js',
                        'resources/src/mediawiki.language/mediawiki.language.js',
                        'resources/src/mediawiki.language/mediawiki.language.numbers.js',
                        'resources/src/mediawiki.language/mediawiki.language.fallback.js',
@@ -1622,10 +1589,8 @@ return [
                        'sl' => 'resources/src/mediawiki.language/languages/sl.js',
                ],
                'dependencies' => [
-                       'mediawiki.language.data',
                        'mediawiki.cldr',
                ],
-               'targets' => [ 'desktop', 'mobile' ],
                'messages' => [
                        'and',
                        'comma-separator',
@@ -1649,11 +1614,6 @@ return [
                'targets' => [ 'desktop', 'mobile' ],
        ],
 
-       'mediawiki.language.init' => [
-               'scripts' => 'resources/src/mediawiki.language/mediawiki.language.init.js',
-               'targets' => [ 'desktop', 'mobile' ],
-       ],
-
        'mediawiki.jqueryMsg' => [
                // Add data for mediawiki.jqueryMsg, such as allowed tags
                'class' => ResourceLoaderJqueryMsgModule::class,
@@ -1667,6 +1627,7 @@ return [
        ],
 
        'mediawiki.language.months' => [
+               'targets' => [ 'desktop', 'mobile' ],
                'scripts' => 'resources/src/mediawiki.language/mediawiki.language.months.js',
                'dependencies' => 'mediawiki.language',
                'messages' => array_merge(
@@ -1728,7 +1689,6 @@ return [
                'dependencies' => [
                        'jquery.accessKeyLabel',
                        'jquery.checkboxShiftClick',
-                       'jquery.mw-jump',
                ],
                'targets' => [ 'desktop', 'mobile' ],
        ],
@@ -1755,7 +1715,7 @@ return [
        'mediawiki.page.watch.ajax' => [
                'scripts' => 'resources/src/mediawiki.page.watch.ajax.js',
                'dependencies' => [
-                       'mediawiki.api.watch',
+                       'mediawiki.api',
                        'mediawiki.notify',
                        'mediawiki.util',
                        'mediawiki.Title',
@@ -1780,7 +1740,7 @@ return [
        'mediawiki.page.rollback' => [
                'scripts' => 'resources/src/mediawiki.page.rollback.js',
                'dependencies' => [
-                       'mediawiki.api.rollback',
+                       'mediawiki.api',
                        'mediawiki.notify',
                        'mediawiki.util',
                        'jquery.spinner',
@@ -1828,7 +1788,6 @@ return [
                        'mediawiki.String',
                        'oojs',
                        'mediawiki.api',
-                       'mediawiki.api.options',
                        'mediawiki.jqueryMsg',
                        'mediawiki.Uri',
                        'mediawiki.user',
@@ -1863,6 +1822,7 @@ return [
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.SaveFiltersPopupButtonWidget.js',
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FormWrapperWidget.js',
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterItemHighlightButton.js',
+                       'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.HighlightPopupWidget.js',
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.HighlightColorPickerWidget.js',
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.LiveUpdateButtonWidget.js',
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.MarkSeenButtonWidget.js',
@@ -1916,6 +1876,10 @@ return [
                'messages' => [
                        'rcfilters-tag-remove',
                        'rcfilters-activefilters',
+                       'rcfilters-activefilters-hide',
+                       'rcfilters-activefilters-show',
+                       'rcfilters-activefilters-hide-tooltip',
+                       'rcfilters-activefilters-show-tooltip',
                        'rcfilters-advancedfilters',
                        'rcfilters-group-results-by-page',
                        'rcfilters-limit-title',
@@ -2010,18 +1974,21 @@ return [
        ],
        'mediawiki.special' => [
                'styles' => [
-                       'resources/src/mediawiki.special/mediawiki.special.css',
-                       'resources/src/mediawiki.special/mediawiki.special.userrights.css',
+                       'resources/src/mediawiki.special/special.css',
+                       'resources/src/mediawiki.special/apisandbox.css',
+                       'resources/src/mediawiki.special/comparepages.less',
+                       'resources/src/mediawiki.special/edittags.css',
+                       'resources/src/mediawiki.special/movePage.css',
+                       'resources/src/mediawiki.special/pagesWithProp.css',
+                       'resources/src/mediawiki.special/upload.css',
+                       'resources/src/mediawiki.special/userrights.css',
+                       'resources/src/mediawiki.special/watchlist.css',
                ],
                'targets' => [ 'desktop', 'mobile' ],
        ],
-       'mediawiki.special.apisandbox.styles' => [
-               'targets' => [ 'desktop', 'mobile' ],
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.apisandbox.top.css',
-       ],
        'mediawiki.special.apisandbox' => [
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.apisandbox.css',
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.apisandbox.js',
+               'styles' => 'resources/src/mediawiki.special.apisandbox/apisandbox.css',
+               'scripts' => 'resources/src/mediawiki.special.apisandbox/apisandbox.js',
                'targets' => [ 'desktop', 'mobile' ],
                'dependencies' => [
                        'mediawiki.api',
@@ -2050,6 +2017,7 @@ return [
                        'apisandbox-dynamic-parameters-add-label',
                        'apisandbox-dynamic-parameters-add-placeholder',
                        'apisandbox-dynamic-error-exists',
+                       'apisandbox-templated-parameter-reason',
                        'apisandbox-deprecated-parameters',
                        'apisandbox-no-parameters',
                        'api-help-param-limit',
@@ -2086,10 +2054,13 @@ return [
                        'apisandbox-multivalue-all-values',
                        'api-format-prettyprint-status',
                        'blanknamespace',
+                       'comma-separator',
+                       'word-separator',
+                       'and'
                ],
        ],
        'mediawiki.special.block' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.block.js',
+               'scripts' => 'resources/src/mediawiki.special.block.js',
                'dependencies' => [
                        'oojs-ui-core',
                        'oojs-ui.styles.icons-editing-core',
@@ -2102,7 +2073,7 @@ return [
                ],
        ],
        'mediawiki.special.changecredentials.js' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.changecredentials.js',
+               'scripts' => 'resources/src/mediawiki.special.changecredentials.js',
                'dependencies' => [
                        'mediawiki.api',
                        'mediawiki.htmlform.ooui'
@@ -2110,39 +2081,33 @@ return [
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.special.changeslist' => [
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.css',
+               'styles' => 'resources/src/mediawiki.special.changeslist.css',
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.special.changeslist.enhanced' => [
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.enhanced.css',
+               'styles' => 'resources/src/mediawiki.special.changeslist.enhanced.css',
        ],
        'mediawiki.special.changeslist.legend' => [
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.legend.css',
+               'styles' => 'resources/src/mediawiki.special.changeslist.legend.css',
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.special.changeslist.legend.js' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.legend.js',
+               'scripts' => 'resources/src/mediawiki.special.changeslist.legend.js',
                'dependencies' => [
                        'jquery.makeCollapsible',
                        'mediawiki.cookie',
                ],
                'targets' => [ 'desktop', 'mobile' ],
        ],
-       'mediawiki.special.changeslist.visitedstatus' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.visitedstatus.js',
-       ],
-       'mediawiki.special.comparepages.styles' => [
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.comparepages.styles.less',
-       ],
        'mediawiki.special.contributions' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.contributions.js',
+               'scripts' => 'resources/src/mediawiki.special.contributions.js',
                'dependencies' => [
                        'mediawiki.widgets.DateInputWidget',
                        'mediawiki.jqueryMsg',
                ]
        ],
        'mediawiki.special.edittags' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.edittags.js',
+               'scripts' => 'resources/src/mediawiki.special.edittags.js',
                'dependencies' => [
                        'jquery.chosen',
                        'jquery.lengthLimit',
@@ -2152,39 +2117,30 @@ return [
                        'tags-edit-chosen-no-results',
                ],
        ],
-       'mediawiki.special.edittags.styles' => [
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.edittags.css',
-       ],
        'mediawiki.special.import' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.import.js',
+               'scripts' => 'resources/src/mediawiki.special.import.js',
        ],
        'mediawiki.special.movePage' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.movePage.js',
+               'scripts' => 'resources/src/mediawiki.special.movePage.js',
                'dependencies' => [
                        'mediawiki.widgets.visibleLengthLimit',
                        'mediawiki.widgets',
                ],
        ],
-       'mediawiki.special.movePage.styles' => [
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.movePage.css',
-       ],
        'mediawiki.special.pageLanguage' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.pageLanguage.js',
+               'scripts' => 'resources/src/mediawiki.special.pageLanguage.js',
                'dependencies' => [
                        'oojs-ui-core',
                ],
        ],
-       'mediawiki.special.pagesWithProp' => [
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.pagesWithProp.css',
-       ],
        'mediawiki.special.preferences' => [
                'targets' => [ 'desktop', 'mobile' ],
                'scripts' => [
-                       'resources/src/mediawiki.special/mediawiki.special.preferences.confirmClose.js',
-                       'resources/src/mediawiki.special/mediawiki.special.preferences.convertmessagebox.js',
-                       'resources/src/mediawiki.special/mediawiki.special.preferences.tabs.legacy.js',
-                       'resources/src/mediawiki.special/mediawiki.special.preferences.timezone.js',
-                       'resources/src/mediawiki.special/mediawiki.special.preferences.personalEmail.js',
+                       'resources/src/mediawiki.special.preferences/confirmClose.js',
+                       'resources/src/mediawiki.special.preferences/convertmessagebox.js',
+                       'resources/src/mediawiki.special.preferences/tabs.legacy.js',
+                       'resources/src/mediawiki.special.preferences/timezone.js',
+                       'resources/src/mediawiki.special.preferences/personalEmail.js',
                ],
                'messages' => [
                        'prefs-tabs-navigation-hint',
@@ -2200,17 +2156,19 @@ return [
        ],
        'mediawiki.special.preferences.styles' => [
                'targets' => [ 'desktop', 'mobile' ],
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.preferences.styles.legacy.css',
+               // legacy
+               'styles' => 'resources/src/mediawiki.special.preferences.styles.css',
        ],
        'mediawiki.special.preferences.ooui' => [
                'targets' => [ 'desktop', 'mobile' ],
                'scripts' => [
-                       'resources/src/mediawiki.special/mediawiki.special.preferences.confirmClose.js',
-                       'resources/src/mediawiki.special/mediawiki.special.preferences.convertmessagebox.js',
-                       'resources/src/mediawiki.special/mediawiki.special.preferences.editfont.js',
-                       'resources/src/mediawiki.special/mediawiki.special.preferences.tabs.js',
-                       'resources/src/mediawiki.special/mediawiki.special.preferences.timezone.js',
-                       'resources/src/mediawiki.special/mediawiki.special.preferences.personalEmail.js',
+                       // FIXME: This uses files already belonging to another module
+                       'resources/src/mediawiki.special.preferences/confirmClose.js',
+                       'resources/src/mediawiki.special.preferences/convertmessagebox.js',
+                       'resources/src/mediawiki.special.preferences.ooui/editfont.js',
+                       'resources/src/mediawiki.special.preferences.ooui/tabs.js',
+                       'resources/src/mediawiki.special.preferences/timezone.js',
+                       'resources/src/mediawiki.special.preferences/personalEmail.js',
                ],
                'messages' => [
                        'prefs-tabs-navigation-hint',
@@ -2229,14 +2187,14 @@ return [
        ],
        'mediawiki.special.preferences.styles.ooui' => [
                'targets' => [ 'desktop', 'mobile' ],
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.preferences.styles.css',
+               'styles' => 'resources/src/mediawiki.special.preferences.styles.ooui.less',
        ],
        'mediawiki.special.recentchanges' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.recentchanges.js',
+               'scripts' => 'resources/src/mediawiki.special.recentchanges.js',
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.special.revisionDelete' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.revisionDelete.js',
+               'scripts' => 'resources/src/mediawiki.special.revisionDelete.js',
                'messages' => [
                        // @todo Load this message in content language
                        'colon-separator',
@@ -2247,8 +2205,8 @@ return [
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.special.search' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.search.js',
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.search.css',
+               'scripts' => 'resources/src/mediawiki.special.search/search.js',
+               'styles' => 'resources/src/mediawiki.special.search/search.css',
                'dependencies' => 'mediawiki.widgets.SearchInputWidget',
                'messages' => [
                        'powersearch-togglelabel',
@@ -2257,7 +2215,7 @@ return [
                ],
        ],
        'mediawiki.special.search.commonsInterwikiWidget' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.search.commonsInterwikiWidget.js',
+               'scripts' => 'resources/src/mediawiki.special.search.commonsInterwikiWidget.js',
                'dependencies' => [
                        'mediawiki.api',
                        'mediawiki.Uri',
@@ -2270,24 +2228,23 @@ return [
                ],
        ],
        'mediawiki.special.search.interwikiwidget.styles' => [
-               'styles' => 'resources/src/mediawiki.special/'
-                       . 'mediawiki.special.search.interwikiwidget.styles.less',
+               'styles' => 'resources/src/mediawiki.special.search.interwikiwidget.styles.less',
                'targets' => [ 'desktop', 'mobile' ]
        ],
        'mediawiki.special.search.styles' => [
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.search.styles.css',
+               'styles' => 'resources/src/mediawiki.special.search.styles.css',
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'mediawiki.special.undelete' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.undelete.js',
+               'scripts' => 'resources/src/mediawiki.special.undelete.js',
                'dependencies' => [
                        'mediawiki.widgets.visibleLengthLimit',
                        'mediawiki.widgets',
                ],
        ],
        'mediawiki.special.unwatchedPages' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.unwatchedPages.js',
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.unwatchedPages.css',
+               'scripts' => 'resources/src/mediawiki.special.unwatchedPages/unwatchedPages.js',
+               'styles' => 'resources/src/mediawiki.special.unwatchedPages/unwatchedPages.css',
                'messages' => [
                        'addedwatchtext-short',
                        'removedwatchtext-short',
@@ -2299,7 +2256,6 @@ return [
                ],
                'dependencies' => [
                        'mediawiki.api',
-                       'mediawiki.api.watch',
                        'mediawiki.notify',
                        'mediawiki.Title',
                        'mediawiki.util',
@@ -2307,9 +2263,9 @@ return [
        ],
        'mediawiki.special.upload' => [
                'templates' => [
-                       'thumbnail.html' => 'resources/src/mediawiki.special/templates/thumbnail.html',
+                       'thumbnail.html' => 'resources/src/mediawiki.special.upload/templates/thumbnail.html',
                ],
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.upload.js',
+               'scripts' => 'resources/src/mediawiki.special.upload/upload.js',
                'messages' => [
                        'widthheight',
                        'size-bytes',
@@ -2322,11 +2278,10 @@ return [
                        'prefs-editing',
                ],
                'dependencies' => [
-                       'mediawiki.special.upload.styles',
+                       'mediawiki.special',
                        'jquery.spinner',
                        'mediawiki.jqueryMsg',
                        'mediawiki.api',
-                       'mediawiki.api.parse',
                        'mediawiki.libs.jpegmeta',
                        'mediawiki.Title',
                        'mediawiki.util',
@@ -2334,22 +2289,19 @@ return [
                        'user.options',
                ],
        ],
-       'mediawiki.special.upload.styles' => [
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.upload.styles.css',
-       ],
        'mediawiki.special.userlogin.common.styles' => [
                'targets' => [ 'desktop', 'mobile' ],
                'skinStyles' => [
-                       'default' => 'resources/src/mediawiki.special/mediawiki.special.userlogin.common.css',
+                       'default' => 'resources/src/mediawiki.special.userlogin.common.styles/userlogin.css',
                ],
        ],
        'mediawiki.special.userlogin.login.styles' => [
                'styles' => [
-                       'resources/src/mediawiki.special/mediawiki.special.userlogin.login.css',
+                       'resources/src/mediawiki.special.userlogin.login.styles/login.css',
                ],
        ],
        'mediawiki.special.userlogin.signup.js' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.userlogin.signup.js',
+               'scripts' => 'resources/src/mediawiki.special.userlogin.signup.js',
                'messages' => [
                        'createacct-emailrequired',
                        'noname',
@@ -2364,18 +2316,21 @@ return [
        ],
        'mediawiki.special.userlogin.signup.styles' => [
                'styles' => [
-                       'resources/src/mediawiki.special/mediawiki.special.userlogin.signup.css',
+                       'resources/src/mediawiki.special.userlogin.signup.styles/signup.css',
                ],
        ],
        'mediawiki.special.userrights' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.userrights.js',
+               'scripts' => 'resources/src/mediawiki.special.userrights.js',
                'dependencies' => [
                        'mediawiki.notification.convertmessagebox',
                        'jquery.lengthLimit',
                ],
        ],
        'mediawiki.special.watchlist' => [
-               'scripts' => 'resources/src/mediawiki.special/mediawiki.special.watchlist.js',
+               'scripts' => [
+                       'resources/src/mediawiki.special.watchlist/watchlist.js',
+                       'resources/src/mediawiki.special.watchlist/visitedstatus.js',
+               ],
                'messages' => [
                        'addedwatchtext',
                        'addedwatchtext-talk',
@@ -2387,7 +2342,7 @@ return [
                        'watchlist-unwatch-undo',
                ],
                'dependencies' => [
-                       'mediawiki.api.watch',
+                       'mediawiki.api',
                        'mediawiki.jqueryMsg',
                        'mediawiki.Title',
                        'mediawiki.util',
@@ -2395,11 +2350,8 @@ return [
                        'user.options',
                ],
        ],
-       'mediawiki.special.watchlist.styles' => [
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.watchlist.css',
-       ],
        'mediawiki.special.version' => [
-               'styles' => 'resources/src/mediawiki.special/mediawiki.special.version.css',
+               'styles' => 'resources/src/mediawiki.special.version.css',
        ],
 
        /* MediaWiki Installer */
@@ -2585,11 +2537,6 @@ return [
                ],
                'targets' => [ 'desktop', 'mobile' ],
        ],
-       'mediawiki.widgets.visibleByteLimit' => [
-               'dependencies' => 'mediawiki.widgets.visibleLengthLimit',
-               'deprecated' => 'Use "mediawiki.widgets.visibleLengthLimit" instead.',
-               'targets' => [ 'desktop', 'mobile' ]
-       ],
        'mediawiki.widgets.visibleLengthLimit' => [
                'scripts' => [
                        'resources/src/mediawiki.widgets.visibleLengthLimit/mediawiki.widgets.visibleLengthLimit.js'
@@ -2684,7 +2631,7 @@ return [
        ],
        'mediawiki.widgets.CategoryMultiselectWidget' => [
                'scripts' => [
-                       'resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js',
+                       'resources/src/mediawiki.widgets/mw.widgets.CategoryTagItemWidget.js',
                        'resources/src/mediawiki.widgets/mw.widgets.CategoryMultiselectWidget.js',
                ],
                'dependencies' => [
@@ -2809,18 +2756,6 @@ return [
                ],
        ],
 
-       /* es5-shim */
-       'es5-shim' => [
-               'deprecated' => 'Use of the "es5-shim" module is deprecated since MediaWiki 1.29.0',
-               'targets' => [ 'desktop', 'mobile' ],
-       ],
-
-       /* dom-level2-shim */
-       'dom-level2-shim' => [
-               'deprecated' => 'Use of the "dom-level2-shim" module is deprecated since MediaWiki 1.29.0',
-               'targets' => [ 'desktop', 'mobile' ],
-       ],
-
        /**
         * html5shiv
         *
@@ -2914,9 +2849,9 @@ return [
        'oojs-ui-widgets' => [
                'class' => ResourceLoaderOOUIFileModule::class,
                'scripts' => 'resources/lib/oojs-ui/oojs-ui-widgets.js',
-               'themeStyles' => 'widgets',
                'dependencies' => [
                        'oojs-ui-core',
+                       'oojs-ui-widgets.styles',
                        'oojs-ui.styles.icons-interactions',
                        'oojs-ui.styles.icons-content',
                        'oojs-ui.styles.icons-editing-advanced',
@@ -2935,6 +2870,14 @@ return [
                ],
                'targets' => [ 'desktop', 'mobile' ],
        ],
+       // You should never directly load this module. The CSS classes it defines are not a public API,
+       // they depend on the internal structure of OOUI widgets, which can change at any time. If you
+       // find that you need to load this module, you're probably doing something wrong or very hacky.
+       'oojs-ui-widgets.styles' => [
+               'class' => ResourceLoaderOOUIFileModule::class,
+               'themeStyles' => 'widgets',
+               'targets' => [ 'desktop', 'mobile' ],
+       ],
        // Toolbar and tools module.
        'oojs-ui-toolbars' => [
                'class' => ResourceLoaderOOUIFileModule::class,