From 14b3d8964ae325d632c60e19a18743fc6fbf11a7 Mon Sep 17 00:00:00 2001 From: Colin Finck Date: Mon, 14 May 2018 18:32:04 +0200 Subject: [PATCH] [WIKI] Commit the parts we will customize of the unmodified Vector skin of MediaWiki 1.30.0 and remove our customized MediaWiki 1.23.x skin. --- .../wiki/resources/Resources.php | 1418 ----------------- www/www.reactos.org/wiki/skins/Vector.php | 468 ------ .../wiki/skins/Vector/VectorTemplate.php | 554 +++++++ .../wiki/skins/Vector/skin.json | 119 ++ .../skins/{vector => Vector}/variables.less | 30 +- .../wiki/skins/vector/collapsibleNav.js | 152 -- .../wiki/skins/vector/collapsibleTabs.js | 208 --- .../skins/vector/components/animations.less | 28 - .../vector/components/collapsibleNav.less | 91 -- .../wiki/skins/vector/components/common.less | 141 -- .../vector/components/externalLinks.less | 10 - .../wiki/skins/vector/components/footer.less | 57 - .../skins/vector/components/navigation.less | 134 -- .../vector/components/notifications.less | 20 - .../skins/vector/components/personalMenu.less | 41 - .../wiki/skins/vector/components/search.less | 113 -- .../wiki/skins/vector/components/tabs.less | 274 ---- .../skins/vector/components/watchstar.less | 46 - .../wiki/skins/vector/csshover.htc | 284 ---- .../wiki/skins/vector/csshover.min.htc | 12 - .../wiki/skins/vector/screen-hd.less | 30 - .../wiki/skins/vector/screen.less | 10 - .../wiki/skins/vector/special.less | 7 - .../skins/vector/special.preferences.less | 114 -- .../wiki/skins/vector/vector.js | 55 - 25 files changed, 688 insertions(+), 3728 deletions(-) delete mode 100644 www/www.reactos.org/wiki/resources/Resources.php delete mode 100644 www/www.reactos.org/wiki/skins/Vector.php create mode 100644 www/www.reactos.org/wiki/skins/Vector/VectorTemplate.php create mode 100644 www/www.reactos.org/wiki/skins/Vector/skin.json rename www/www.reactos.org/wiki/skins/{vector => Vector}/variables.less (59%) delete mode 100644 www/www.reactos.org/wiki/skins/vector/collapsibleNav.js delete mode 100644 www/www.reactos.org/wiki/skins/vector/collapsibleTabs.js delete mode 100644 www/www.reactos.org/wiki/skins/vector/components/animations.less delete mode 100644 www/www.reactos.org/wiki/skins/vector/components/collapsibleNav.less delete mode 100644 www/www.reactos.org/wiki/skins/vector/components/common.less delete mode 100644 www/www.reactos.org/wiki/skins/vector/components/externalLinks.less delete mode 100644 www/www.reactos.org/wiki/skins/vector/components/footer.less delete mode 100644 www/www.reactos.org/wiki/skins/vector/components/navigation.less delete mode 100644 www/www.reactos.org/wiki/skins/vector/components/notifications.less delete mode 100644 www/www.reactos.org/wiki/skins/vector/components/personalMenu.less delete mode 100644 www/www.reactos.org/wiki/skins/vector/components/search.less delete mode 100644 www/www.reactos.org/wiki/skins/vector/components/tabs.less delete mode 100644 www/www.reactos.org/wiki/skins/vector/components/watchstar.less delete mode 100644 www/www.reactos.org/wiki/skins/vector/csshover.htc delete mode 100644 www/www.reactos.org/wiki/skins/vector/csshover.min.htc delete mode 100644 www/www.reactos.org/wiki/skins/vector/screen-hd.less delete mode 100644 www/www.reactos.org/wiki/skins/vector/screen.less delete mode 100644 www/www.reactos.org/wiki/skins/vector/special.less delete mode 100644 www/www.reactos.org/wiki/skins/vector/special.preferences.less delete mode 100644 www/www.reactos.org/wiki/skins/vector/vector.js diff --git a/www/www.reactos.org/wiki/resources/Resources.php b/www/www.reactos.org/wiki/resources/Resources.php deleted file mode 100644 index 854047f2..00000000 --- a/www/www.reactos.org/wiki/resources/Resources.php +++ /dev/null @@ -1,1418 +0,0 @@ - array( 'class' => 'ResourceLoaderSiteModule' ), - 'noscript' => array( 'class' => 'ResourceLoaderNoscriptModule' ), - 'startup' => array( 'class' => 'ResourceLoaderStartUpModule' ), - 'filepage' => array( 'class' => 'ResourceLoaderFilePageModule' ), - 'user.groups' => array( 'class' => 'ResourceLoaderUserGroupsModule' ), - - // Scripts managed by the current user (stored in their user space) - 'user' => array( 'class' => 'ResourceLoaderUserModule' ), - - // Scripts generated based on the current user's preferences - 'user.cssprefs' => array( 'class' => 'ResourceLoaderUserCSSPrefsModule' ), - - // Populate mediawiki.user placeholders with information about the current user - 'user.options' => array( 'class' => 'ResourceLoaderUserOptionsModule' ), - 'user.tokens' => array( 'class' => 'ResourceLoaderUserTokensModule' ), - - // Scripts for the dynamic language specific data, like grammar forms. - 'mediawiki.language.data' => array( 'class' => 'ResourceLoaderLanguageDataModule' ), - - /* MediaWiki base skinning modules */ - - /** - * Common skin styles, grouped into three graded levels. - * - * Level 1 "elements": - * The base level that only contains the most basic of common skin styles. - * Only styles for single elements are included, no styling for complex structures like the - * TOC is present. This level is for skins that want to implement the entire style of even - * content area structures like the TOC themselves. - * - * Level 2 "content": - * The most commonly used level for skins implemented from scratch. This level includes all - * the single element styles from "elements" as well as styles for complex structures such - * as the TOC that are output in the content area by MediaWiki rather than the skin. - * Essentially this is the common level that lets skins leave the style of the content area - * as it is normally styled, while leaving the rest of the skin up to the skin - * implementation. - * - * Level 3 "interface": - * 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. - * - * 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 - * setting 'dependencies' to the lower level the module is based on. For this reason avoid - * including more than one of them into your skin as this will result in duplicate CSS. - */ - 'mediawiki.skinning.elements' => array( - 'styles' => array( - 'common/commonElements.css' => array( 'media' => 'screen' ), - ), - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - ), - 'mediawiki.skinning.content' => array( - 'styles' => array( - 'common/commonElements.css' => array( 'media' => 'screen' ), - 'common/commonContent.css' => array( 'media' => 'screen' ), - ), - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - ), - 'mediawiki.skinning.interface' => array( - // Used in the web installer. Test it after modifying this definition! - 'styles' => array( - 'common/commonElements.css' => array( 'media' => 'screen' ), - 'common/commonContent.css' => array( 'media' => 'screen' ), - 'common/commonInterface.css' => array( 'media' => 'screen' ), - ), - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - ), - - /** - * Skins - * Be careful not to add 'scripts' to these modules, - * since they are loaded with OutputPage::addModuleStyles so that the skin styles - * apply without javascript. - * If a skin needs custom js in the interface, register a separate module - * and add it to the load queue with OutputPage::addModules. - * - * See Vector for an example. - */ - 'skins.cologneblue' => array( - 'styles' => array( - 'cologneblue/screen.css' => array( 'media' => 'screen' ), - 'cologneblue/print.css' => array( 'media' => 'print' ), - ), - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - ), - 'skins.modern' => array( - 'styles' => array( - 'modern/main.css' => array( 'media' => 'screen' ), - 'modern/print.css' => array( 'media' => 'print' ), - ), - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - ), - 'skins.vector.styles' => array( - // Used in the web installer. Test it after modifying this definition! - 'styles' => array( - 'vector/screen.less' => array( 'media' => 'screen' ), - 'vector/screen-hd.less' => array( 'media' => 'screen and (min-width: 982px)' ), - '../../rosweb/css/static-header.css' => array( 'media' => 'screen' ), - 'vector/reactos.css' => array( 'media' => 'screen' ) - ), - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - ), - 'skins.monobook.styles' => array( - 'styles' => array( - 'monobook/main.css' => array( 'media' => 'screen' ), - ), - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - ), - 'skins.vector.js' => array( - 'scripts' => array( - 'vector/collapsibleTabs.js', - 'vector/vector.js', - ), - 'position' => 'top', - 'dependencies' => 'jquery.throttle-debounce', - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - ), - 'skins.vector.collapsibleNav' => array( - 'scripts' => array( - 'vector/collapsibleNav.js', - ), - 'messages' => array( - 'vector-collapsiblenav-more', - ), - 'dependencies' => array( - 'jquery.client', - 'jquery.cookie', - 'jquery.tabIndex', - ), - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - 'position' => 'bottom', - ), - - /* jQuery */ - - 'jquery' => array( - 'scripts' => 'resources/lib/jquery/jquery.js', - 'debugRaw' => false, - 'targets' => array( 'desktop', 'mobile' ), - ), - - /* jQuery Plugins */ - - 'jquery.appear' => array( - 'scripts' => 'resources/lib/jquery/jquery.appear.js', - ), - 'jquery.arrowSteps' => array( - 'scripts' => 'resources/src/jquery/jquery.arrowSteps.js', - 'styles' => 'resources/src/jquery/jquery.arrowSteps.css', - ), - 'jquery.async' => array( - 'scripts' => 'resources/lib/jquery/jquery.async.js', - ), - 'jquery.autoEllipsis' => array( - 'scripts' => 'resources/src/jquery/jquery.autoEllipsis.js', - 'dependencies' => 'jquery.highlightText', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'jquery.badge' => array( - 'scripts' => 'resources/src/jquery/jquery.badge.js', - 'styles' => 'resources/src/jquery/jquery.badge.css', - 'dependencies' => 'mediawiki.language', - ), - 'jquery.byteLength' => array( - 'scripts' => 'resources/src/jquery/jquery.byteLength.js', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'jquery.byteLimit' => array( - 'scripts' => 'resources/src/jquery/jquery.byteLimit.js', - 'dependencies' => 'jquery.byteLength', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'jquery.checkboxShiftClick' => array( - 'scripts' => 'resources/src/jquery/jquery.checkboxShiftClick.js', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'jquery.chosen' => array( - 'scripts' => 'resources/lib/jquery.chosen/chosen.jquery.js', - 'styles' => 'resources/lib/jquery.chosen/chosen.css', - ), - 'jquery.client' => array( - 'scripts' => 'resources/src/jquery/jquery.client.js', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'jquery.color' => array( - 'scripts' => 'resources/src/jquery/jquery.color.js', - 'dependencies' => 'jquery.colorUtil', - ), - 'jquery.colorUtil' => array( - 'scripts' => 'resources/src/jquery/jquery.colorUtil.js', - ), - 'jquery.cookie' => array( - 'scripts' => 'resources/lib/jquery/jquery.cookie.js', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'jquery.delayedBind' => array( - 'scripts' => 'resources/src/jquery/jquery.delayedBind.js', - ), - 'jquery.expandableField' => array( - 'scripts' => 'resources/src/jquery/jquery.expandableField.js', - ), - 'jquery.farbtastic' => array( - 'scripts' => 'resources/src/jquery/jquery.farbtastic.js', - 'styles' => 'resources/src/jquery/jquery.farbtastic.css', - 'dependencies' => 'jquery.colorUtil', - ), - 'jquery.footHovzer' => array( - 'scripts' => 'resources/src/jquery/jquery.footHovzer.js', - 'styles' => 'resources/src/jquery/jquery.footHovzer.css', - ), - 'jquery.form' => array( - 'scripts' => 'resources/lib/jquery/jquery.form.js', - ), - 'jquery.fullscreen' => array( - 'scripts' => 'resources/lib/jquery/jquery.fullscreen.js', - ), - 'jquery.getAttrs' => array( - 'scripts' => 'resources/src/jquery/jquery.getAttrs.js', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'jquery.hidpi' => array( - 'scripts' => 'resources/src/jquery/jquery.hidpi.js', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'jquery.highlightText' => array( - 'scripts' => 'resources/src/jquery/jquery.highlightText.js', - 'dependencies' => 'jquery.mwExtension', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'jquery.hoverIntent' => array( - 'scripts' => 'resources/lib/jquery/jquery.hoverIntent.js', - ), - 'jquery.json' => array( - 'scripts' => 'resources/lib/jquery/jquery.json.js', - 'targets' => array( 'mobile', 'desktop' ), - ), - 'jquery.localize' => array( - 'scripts' => 'resources/src/jquery/jquery.localize.js', - ), - 'jquery.makeCollapsible' => array( - 'scripts' => 'resources/src/jquery/jquery.makeCollapsible.js', - 'styles' => 'resources/src/jquery/jquery.makeCollapsible.css', - 'messages' => array( 'collapsible-expand', 'collapsible-collapse' ), - 'targets' => array( 'desktop', 'mobile' ), - ), - 'jquery.mockjax' => array( - 'scripts' => 'resources/lib/jquery/jquery.mockjax.js', - ), - 'jquery.mw-jump' => array( - 'scripts' => 'resources/src/jquery/jquery.mw-jump.js', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'jquery.mwExtension' => array( - 'scripts' => 'resources/src/jquery/jquery.mwExtension.js', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'jquery.placeholder' => array( - 'scripts' => 'resources/src/jquery/jquery.placeholder.js', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'jquery.qunit' => array( - 'scripts' => 'resources/lib/jquery/jquery.qunit.js', - 'styles' => 'resources/lib/jquery/jquery.qunit.css', - 'position' => 'top', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'jquery.qunit.completenessTest' => array( - 'scripts' => 'resources/src/jquery/jquery.qunit.completenessTest.js', - 'dependencies' => 'jquery.qunit', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'jquery.spinner' => array( - 'scripts' => 'resources/src/jquery/jquery.spinner.js', - 'styles' => 'resources/src/jquery/jquery.spinner.css', - ), - 'jquery.jStorage' => array( - 'scripts' => 'resources/lib/jquery/jquery.jStorage.js', - 'dependencies' => 'jquery.json', - ), - 'jquery.suggestions' => array( - 'scripts' => 'resources/src/jquery/jquery.suggestions.js', - 'styles' => 'resources/src/jquery/jquery.suggestions.css', - 'dependencies' => 'jquery.highlightText', - ), - 'jquery.tabIndex' => array( - 'scripts' => 'resources/src/jquery/jquery.tabIndex.js', - ), - 'jquery.tablesorter' => array( - 'scripts' => 'resources/src/jquery/jquery.tablesorter.js', - 'styles' => 'resources/src/jquery/jquery.tablesorter.css', - 'messages' => array( 'sort-descending', 'sort-ascending' ), - 'dependencies' => array( - 'jquery.mwExtension', - 'mediawiki.language.months', - ), - ), - 'jquery.textSelection' => array( - 'scripts' => 'resources/src/jquery/jquery.textSelection.js', - 'dependencies' => 'jquery.client', - ), - 'jquery.throttle-debounce' => array( - 'scripts' => 'resources/lib/jquery/jquery.ba-throttle-debounce.js', - ), - 'jquery.validate' => array( - 'scripts' => 'resources/lib/jquery/jquery.validate.js', - ), - 'jquery.xmldom' => array( - 'scripts' => 'resources/lib/jquery/jquery.xmldom.js', - ), - - /* jQuery Tipsy */ - - 'jquery.tipsy' => array( - 'scripts' => 'resources/src/jquery.tipsy/jquery.tipsy.js', - 'styles' => 'resources/src/jquery.tipsy/jquery.tipsy.css', - ), - - /* jQuery UI */ - - // Core - 'jquery.ui.core' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.core.js', - 'skinStyles' => array( - 'default' => array( - 'resources/lib/jquery.ui/themes/default/jquery.ui.core.css', - 'resources/lib/jquery.ui/themes/default/jquery.ui.theme.css', - ), - 'vector' => array( - 'resources/src/jquery.ui-themes/vector/jquery.ui.core.css', - 'resources/src/jquery.ui-themes/vector/jquery.ui.theme.css', - ), - ), - 'group' => 'jquery.ui', - ), - 'jquery.ui.widget' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.widget.js', - 'group' => 'jquery.ui', - ), - 'jquery.ui.mouse' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.mouse.js', - 'dependencies' => 'jquery.ui.widget', - 'group' => 'jquery.ui', - ), - 'jquery.ui.position' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.position.js', - 'group' => 'jquery.ui', - ), - // Interactions - 'jquery.ui.draggable' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.draggable.js', - 'dependencies' => array( 'jquery.ui.core', 'jquery.ui.mouse', 'jquery.ui.widget' ), - 'group' => 'jquery.ui', - ), - 'jquery.ui.droppable' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.droppable.js', - 'dependencies' => array( - 'jquery.ui.core', 'jquery.ui.mouse', 'jquery.ui.widget', 'jquery.ui.draggable', - ), - 'group' => 'jquery.ui', - ), - 'jquery.ui.resizable' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.resizable.js', - 'skinStyles' => array( - 'default' => 'resources/lib/jquery.ui/themes/default/jquery.ui.resizable.css', - 'vector' => 'resources/src/jquery.ui-themes/vector/jquery.ui.resizable.css', - ), - 'dependencies' => array( 'jquery.ui.core', 'jquery.ui.widget', 'jquery.ui.mouse' ), - 'group' => 'jquery.ui', - ), - 'jquery.ui.selectable' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.selectable.js', - 'skinStyles' => array( - 'default' => 'resources/lib/jquery.ui/themes/default/jquery.ui.selectable.css', - 'vector' => 'resources/src/jquery.ui-themes/vector/jquery.ui.selectable.css', - ), - 'dependencies' => array( 'jquery.ui.core', 'jquery.ui.widget', 'jquery.ui.mouse' ), - 'group' => 'jquery.ui', - ), - 'jquery.ui.sortable' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.sortable.js', - 'dependencies' => array( 'jquery.ui.core', 'jquery.ui.widget', 'jquery.ui.mouse' ), - 'group' => 'jquery.ui', - ), - // Widgets - 'jquery.ui.accordion' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.accordion.js', - 'dependencies' => array( 'jquery.ui.core', 'jquery.ui.widget' ), - 'skinStyles' => array( - 'default' => 'resources/lib/jquery.ui/themes/default/jquery.ui.accordion.css', - 'vector' => 'resources/src/jquery.ui-themes/vector/jquery.ui.accordion.css', - ), - 'group' => 'jquery.ui', - ), - 'jquery.ui.autocomplete' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.autocomplete.js', - 'dependencies' => array( 'jquery.ui.core', 'jquery.ui.widget', 'jquery.ui.position' ), - 'skinStyles' => array( - 'default' => 'resources/lib/jquery.ui/themes/default/jquery.ui.autocomplete.css', - 'vector' => 'resources/src/jquery.ui-themes/vector/jquery.ui.autocomplete.css', - ), - 'group' => 'jquery.ui', - ), - 'jquery.ui.button' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.button.js', - 'dependencies' => array( 'jquery.ui.core', 'jquery.ui.widget' ), - 'skinStyles' => array( - 'default' => 'resources/lib/jquery.ui/themes/default/jquery.ui.button.css', - 'vector' => 'resources/src/jquery.ui-themes/vector/jquery.ui.button.css', - ), - 'group' => 'jquery.ui', - ), - 'jquery.ui.datepicker' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.datepicker.js', - 'dependencies' => 'jquery.ui.core', - 'skinStyles' => array( - 'default' => 'resources/lib/jquery.ui/themes/default/jquery.ui.datepicker.css', - 'vector' => 'resources/src/jquery.ui-themes/vector/jquery.ui.datepicker.css', - ), - 'languageScripts' => array( - 'af' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-af.js', - 'ar' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ar.js', - 'az' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-az.js', - 'bg' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-bg.js', - 'bs' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-bs.js', - 'ca' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ca.js', - 'cs' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-cs.js', - 'da' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-da.js', - 'de' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-de.js', - 'el' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-el.js', - 'en-gb' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-en-GB.js', - 'eo' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-eo.js', - 'es' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-es.js', - 'et' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-et.js', - 'eu' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-eu.js', - 'fa' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-fa.js', - 'fi' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-fi.js', - 'fo' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-fo.js', - 'fr' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-fr.js', - 'gl' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-gl.js', - 'he' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-he.js', - 'hi' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-hi.js', - 'hr' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-hr.js', - 'hu' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-hu.js', - 'hy' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-hy.js', - 'id' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-id.js', - 'is' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-is.js', - 'it' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-it.js', - 'ja' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ja.js', - 'ka' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ka.js', - 'kk' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-kk.js', - 'km' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-km.js', - 'ko' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ko.js', - 'lb' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-lb.js', - 'lt' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-lt.js', - 'lv' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-lv.js', - 'mk' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-mk.js', - 'ml' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ml.js', - 'ms' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ms.js', - 'nl' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-nl.js', - 'no' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-no.js', - 'pl' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-pl.js', - 'pt' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-pt.js', - 'pt-br' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-pt-BR.js', - 'rm' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-rm.js', - 'ro' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ro.js', - 'ru' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ru.js', - 'sk' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sk.js', - 'sl' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sl.js', - 'sq' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sq.js', - 'sr-sr' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sr-SR.js', - 'sr' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sr.js', - 'sv' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-sv.js', - 'ta' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-ta.js', - 'th' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-th.js', - 'tr' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-tr.js', - 'uk' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-uk.js', - 'vi' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-vi.js', - 'zh-cn' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-zh-CN.js', - 'zh-hk' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-zh-HK.js', - 'zh-tw' => 'resources/lib/jquery.ui/i18n/jquery.ui.datepicker-zh-TW.js', - ), - 'group' => 'jquery.ui', - ), - 'jquery.ui.dialog' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.dialog.js', - 'dependencies' => array( - 'jquery.ui.core', - 'jquery.ui.widget', - 'jquery.ui.button', - 'jquery.ui.draggable', - 'jquery.ui.mouse', - 'jquery.ui.position', - 'jquery.ui.resizable', - ), - 'skinStyles' => array( - 'default' => 'resources/lib/jquery.ui/themes/default/jquery.ui.dialog.css', - 'vector' => 'resources/src/jquery.ui-themes/vector/jquery.ui.dialog.css', - ), - 'group' => 'jquery.ui', - ), - 'jquery.ui.progressbar' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.progressbar.js', - 'dependencies' => array( 'jquery.ui.core', 'jquery.ui.widget' ), - 'skinStyles' => array( - 'default' => 'resources/lib/jquery.ui/themes/default/jquery.ui.progressbar.css', - 'vector' => 'resources/src/jquery.ui-themes/vector/jquery.ui.progressbar.css', - ), - 'group' => 'jquery.ui', - ), - 'jquery.ui.slider' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.slider.js', - 'dependencies' => array( 'jquery.ui.core', 'jquery.ui.widget', 'jquery.ui.mouse' ), - 'skinStyles' => array( - 'default' => 'resources/lib/jquery.ui/themes/default/jquery.ui.slider.css', - 'vector' => 'resources/src/jquery.ui-themes/vector/jquery.ui.slider.css', - ), - 'group' => 'jquery.ui', - ), - 'jquery.ui.tabs' => array( - 'scripts' => 'resources/lib/jquery.ui/jquery.ui.tabs.js', - 'dependencies' => array( 'jquery.ui.core', 'jquery.ui.widget' ), - 'skinStyles' => array( - 'default' => 'resources/lib/jquery.ui/themes/default/jquery.ui.tabs.css', - 'vector' => 'resources/src/jquery.ui-themes/vector/jquery.ui.tabs.css', - ), - 'group' => 'jquery.ui', - ), - // Effects - 'jquery.effects.core' => array( - 'scripts' => 'resources/lib/jquery.effects/jquery.effects.core.js', - 'group' => 'jquery.ui', - ), - 'jquery.effects.blind' => array( - 'scripts' => 'resources/lib/jquery.effects/jquery.effects.blind.js', - 'dependencies' => 'jquery.effects.core', - 'group' => 'jquery.ui', - ), - 'jquery.effects.bounce' => array( - 'scripts' => 'resources/lib/jquery.effects/jquery.effects.bounce.js', - 'dependencies' => 'jquery.effects.core', - 'group' => 'jquery.ui', - ), - 'jquery.effects.clip' => array( - 'scripts' => 'resources/lib/jquery.effects/jquery.effects.clip.js', - 'dependencies' => 'jquery.effects.core', - 'group' => 'jquery.ui', - ), - 'jquery.effects.drop' => array( - 'scripts' => 'resources/lib/jquery.effects/jquery.effects.drop.js', - 'dependencies' => 'jquery.effects.core', - 'group' => 'jquery.ui', - ), - 'jquery.effects.explode' => array( - 'scripts' => 'resources/lib/jquery.effects/jquery.effects.explode.js', - 'dependencies' => 'jquery.effects.core', - 'group' => 'jquery.ui', - ), - 'jquery.effects.fade' => array( - 'scripts' => 'resources/lib/jquery.effects/jquery.effects.fade.js', - 'dependencies' => 'jquery.effects.core', - 'group' => 'jquery.ui', - ), - 'jquery.effects.fold' => array( - 'scripts' => 'resources/lib/jquery.effects/jquery.effects.fold.js', - 'dependencies' => 'jquery.effects.core', - 'group' => 'jquery.ui', - ), - 'jquery.effects.highlight' => array( - 'scripts' => 'resources/lib/jquery.effects/jquery.effects.highlight.js', - 'dependencies' => 'jquery.effects.core', - 'group' => 'jquery.ui', - ), - 'jquery.effects.pulsate' => array( - 'scripts' => 'resources/lib/jquery.effects/jquery.effects.pulsate.js', - 'dependencies' => 'jquery.effects.core', - 'group' => 'jquery.ui', - ), - 'jquery.effects.scale' => array( - 'scripts' => 'resources/lib/jquery.effects/jquery.effects.scale.js', - 'dependencies' => 'jquery.effects.core', - 'group' => 'jquery.ui', - ), - 'jquery.effects.shake' => array( - 'scripts' => 'resources/lib/jquery.effects/jquery.effects.shake.js', - 'dependencies' => 'jquery.effects.core', - 'group' => 'jquery.ui', - ), - 'jquery.effects.slide' => array( - 'scripts' => 'resources/lib/jquery.effects/jquery.effects.slide.js', - 'dependencies' => 'jquery.effects.core', - 'group' => 'jquery.ui', - ), - 'jquery.effects.transfer' => array( - 'scripts' => 'resources/lib/jquery.effects/jquery.effects.transfer.js', - 'dependencies' => 'jquery.effects.core', - 'group' => 'jquery.ui', - ), - - /* Moment.js */ - - 'moment' => array( - 'scripts' => 'resources/lib/moment/moment.js', - 'languageScripts' => array( - 'ar-ma' => 'resources/lib/moment/lang/ar-ma.js', - 'ar' => 'resources/lib/moment/lang/ar.js', - 'bg' => 'resources/lib/moment/lang/bg.js', - 'br' => 'resources/lib/moment/lang/br.js', - 'bs' => 'resources/lib/moment/lang/bs.js', - 'ca' => 'resources/lib/moment/lang/ca.js', - 'cs' => 'resources/lib/moment/lang/cs.js', - 'cv' => 'resources/lib/moment/lang/cv.js', - 'cy' => 'resources/lib/moment/lang/cy.js', - 'da' => 'resources/lib/moment/lang/da.js', - 'de' => 'resources/lib/moment/lang/de.js', - 'el' => 'resources/lib/moment/lang/el.js', - 'en-au' => 'resources/lib/moment/lang/en-au.js', - 'en-ca' => 'resources/lib/moment/lang/en-ca.js', - 'en-gb' => 'resources/lib/moment/lang/en-gb.js', - 'eo' => 'resources/lib/moment/lang/eo.js', - 'es' => 'resources/lib/moment/lang/es.js', - 'et' => 'resources/lib/moment/lang/et.js', - 'eu' => 'resources/lib/moment/lang/eu.js', - 'fa' => 'resources/lib/moment/lang/fa.js', - 'fi' => 'resources/lib/moment/lang/fi.js', - 'fo' => 'resources/lib/moment/lang/fo.js', - 'fr-ca' => 'resources/lib/moment/lang/fr-ca.js', - 'fr' => 'resources/lib/moment/lang/fr.js', - 'gl' => 'resources/lib/moment/lang/gl.js', - 'he' => 'resources/lib/moment/lang/he.js', - 'hi' => 'resources/lib/moment/lang/hi.js', - 'hr' => 'resources/lib/moment/lang/hr.js', - 'hu' => 'resources/lib/moment/lang/hu.js', - 'hy-am' => 'resources/lib/moment/lang/hy-am.js', - 'id' => 'resources/lib/moment/lang/id.js', - 'is' => 'resources/lib/moment/lang/is.js', - 'it' => 'resources/lib/moment/lang/it.js', - 'ja' => 'resources/lib/moment/lang/ja.js', - 'ka' => 'resources/lib/moment/lang/ka.js', - 'ko' => 'resources/lib/moment/lang/ko.js', - 'lt' => 'resources/lib/moment/lang/lt.js', - 'lv' => 'resources/lib/moment/lang/lv.js', - 'mk' => 'resources/lib/moment/lang/mk.js', - 'ml' => 'resources/lib/moment/lang/ml.js', - 'mr' => 'resources/lib/moment/lang/mr.js', - 'ms-my' => 'resources/lib/moment/lang/ms-my.js', - 'nb' => 'resources/lib/moment/lang/nb.js', - 'ne' => 'resources/lib/moment/lang/ne.js', - 'nl' => 'resources/lib/moment/lang/nl.js', - 'nn' => 'resources/lib/moment/lang/nn.js', - 'pl' => 'resources/lib/moment/lang/pl.js', - 'pt-br' => 'resources/lib/moment/lang/pt-br.js', - 'pt' => 'resources/lib/moment/lang/pt.js', - 'ro' => 'resources/lib/moment/lang/ro.js', - 'rs' => 'resources/lib/moment/lang/rs.js', - 'ru' => 'resources/lib/moment/lang/ru.js', - 'sk' => 'resources/lib/moment/lang/sk.js', - 'sl' => 'resources/lib/moment/lang/sl.js', - 'sq' => 'resources/lib/moment/lang/sq.js', - 'sv' => 'resources/lib/moment/lang/sv.js', - 'ta' => 'resources/lib/moment/lang/ta.js', - 'th' => 'resources/lib/moment/lang/th.js', - 'tl-ph' => 'resources/lib/moment/lang/tl-ph.js', - 'tr' => 'resources/lib/moment/lang/tr.js', - 'tzm-la' => 'resources/lib/moment/lang/tzm-la.js', - 'tzm' => 'resources/lib/moment/lang/tzm.js', - 'uk' => 'resources/lib/moment/lang/uk.js', - 'uz' => 'resources/lib/moment/lang/uz.js', - 'vn' => 'resources/lib/moment/lang/vn.js', - 'zh-cn' => 'resources/lib/moment/lang/zh-cn.js', - 'zh-tw' => 'resources/lib/moment/lang/zh-tw.js', - ), - ), - - /* MediaWiki */ - - 'mediawiki' => array( - 'scripts' => 'resources/src/mediawiki/mediawiki.js', - 'debugScripts' => 'resources/src/mediawiki/mediawiki.log.js', - 'debugRaw' => false, - 'targets' => array( 'desktop', 'mobile' ), - ), - 'mediawiki.api' => array( - 'scripts' => 'resources/src/mediawiki.api/mediawiki.api.js', - 'dependencies' => 'mediawiki.util', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'mediawiki.api.category' => array( - 'scripts' => 'resources/src/mediawiki.api/mediawiki.api.category.js', - 'dependencies' => array( - 'mediawiki.api', - 'mediawiki.Title', - ), - ), - 'mediawiki.api.edit' => array( - 'scripts' => 'resources/src/mediawiki.api/mediawiki.api.edit.js', - 'dependencies' => array( - 'mediawiki.api', - 'mediawiki.Title', - 'user.tokens', - ), - ), - 'mediawiki.api.login' => array( - 'scripts' => 'resources/src/mediawiki.api/mediawiki.api.login.js', - 'dependencies' => array( - 'mediawiki.api', - ), - ), - 'mediawiki.api.parse' => array( - 'scripts' => 'resources/src/mediawiki.api/mediawiki.api.parse.js', - 'dependencies' => 'mediawiki.api', - ), - 'mediawiki.api.watch' => array( - 'scripts' => 'resources/src/mediawiki.api/mediawiki.api.watch.js', - 'dependencies' => array( - 'mediawiki.api', - 'user.tokens', - ), - ), - 'mediawiki.debug' => array( - 'scripts' => array( - 'resources/src/mediawiki/mediawiki.debug.js', - 'resources/src/mediawiki/mediawiki.debug.profile.js' - ), - 'styles' => array( - 'resources/src/mediawiki/mediawiki.debug.less', - 'resources/src/mediawiki/mediawiki.debug.profile.css' - ), - 'dependencies' => array( - 'jquery.footHovzer', - 'jquery.tipsy', - ), - 'position' => 'bottom', - ), - 'mediawiki.debug.init' => array( - 'scripts' => 'resources/src/mediawiki/mediawiki.debug.init.js', - 'dependencies' => 'mediawiki.debug', - // Uses a custom mw.config variable that is set in debughtml, - // must be loaded on the bottom - 'position' => 'bottom', - ), - 'mediawiki.feedback' => array( - 'scripts' => 'resources/src/mediawiki/mediawiki.feedback.js', - 'styles' => 'resources/src/mediawiki/mediawiki.feedback.css', - 'dependencies' => array( - 'mediawiki.api.edit', - 'mediawiki.Title', - 'mediawiki.jqueryMsg', - 'jquery.ui.dialog', - ), - 'messages' => array( - 'feedback-bugornote', - 'feedback-subject', - 'feedback-message', - 'feedback-cancel', - 'feedback-submit', - 'feedback-adding', - 'feedback-error1', - 'feedback-error2', - 'feedback-error3', - 'feedback-thanks', - 'feedback-close', - 'feedback-bugcheck', - 'feedback-bugnew', - ), - ), - 'mediawiki.hidpi' => array( - 'scripts' => 'resources/src/mediawiki/mediawiki.hidpi.js', - 'dependencies' => array( - 'jquery.hidpi', - ), - 'targets' => array( 'desktop', 'mobile' ), - ), - 'mediawiki.hlist' => array( - 'styles' => 'resources/src/mediawiki/mediawiki.hlist.css', - 'scripts' => 'resources/src/mediawiki/mediawiki.hlist.js', - 'dependencies' => array( - 'jquery.client', - ), - ), - 'mediawiki.htmlform' => array( - 'scripts' => 'resources/src/mediawiki/mediawiki.htmlform.js', - 'messages' => array( 'htmlform-chosen-placeholder' ), - ), - 'mediawiki.icon' => array( - 'styles' => 'resources/src/mediawiki/mediawiki.icon.less', - ), - 'mediawiki.inspect' => array( - 'scripts' => 'resources/src/mediawiki/mediawiki.inspect.js', - 'dependencies' => array( - 'jquery.byteLength', - 'jquery.json', - ), - 'targets' => array( 'desktop', 'mobile' ), - ), - 'mediawiki.notification' => array( - 'styles' => array( - 'resources/src/mediawiki/mediawiki.notification.css', - 'resources/src/mediawiki/mediawiki.notification.hideForPrint.css' - => array( 'media' => 'print' ), - ), - 'scripts' => 'resources/src/mediawiki/mediawiki.notification.js', - 'dependencies' => array( - 'mediawiki.page.startup', - ), - 'targets' => array( 'desktop', 'mobile' ), - ), - 'mediawiki.notify' => array( - 'scripts' => 'resources/src/mediawiki/mediawiki.notify.js', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'mediawiki.searchSuggest' => array( - 'scripts' => 'resources/src/mediawiki/mediawiki.searchSuggest.js', - 'styles' => 'resources/src/mediawiki/mediawiki.searchSuggest.css', - 'messages' => array( - 'searchsuggest-search', - 'searchsuggest-containing', - ), - 'dependencies' => array( - 'jquery.client', - 'jquery.placeholder', - 'jquery.suggestions', - 'mediawiki.api', - ), - ), - 'mediawiki.Title' => array( - 'scripts' => 'resources/src/mediawiki/mediawiki.Title.js', - 'dependencies' => array( - 'jquery.byteLength', - 'mediawiki.util', - ), - 'targets' => array( 'desktop', 'mobile' ), - ), - 'mediawiki.toc' => array( - 'scripts' => 'resources/src/mediawiki/mediawiki.toc.js', - 'dependencies' => array( - 'jquery.cookie', - ), - 'messages' => array( 'showtoc', 'hidetoc' ), - 'targets' => array( 'desktop', 'mobile' ), - ), - 'mediawiki.Uri' => array( - 'scripts' => 'resources/src/mediawiki/mediawiki.Uri.js', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'mediawiki.user' => array( - 'scripts' => 'resources/src/mediawiki/mediawiki.user.js', - 'dependencies' => array( - 'jquery.cookie', - 'mediawiki.api', - 'user.options', - 'user.tokens', - ), - 'targets' => array( 'desktop', 'mobile' ), - ), - 'mediawiki.util' => array( - 'scripts' => 'resources/src/mediawiki/mediawiki.util.js', - 'dependencies' => array( - 'jquery.client', - 'jquery.mwExtension', - 'mediawiki.notify', - 'mediawiki.toc', - ), - 'position' => 'top', // For $wgPreloadJavaScriptMwUtil - 'targets' => array( 'desktop', 'mobile' ), - ), - - /* MediaWiki Action */ - - 'mediawiki.action.edit' => array( - 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.js', - 'dependencies' => array( - 'mediawiki.action.edit.styles', - 'jquery.textSelection', - 'jquery.byteLimit', - ), - 'position' => 'top', - ), - 'mediawiki.action.edit.styles' => array( - 'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.styles.css', - 'position' => 'top', - ), - 'mediawiki.action.edit.collapsibleFooter' => array( - 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.collapsibleFooter.js', - 'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.collapsibleFooter.css', - 'dependencies' => array( - 'jquery.makeCollapsible', - 'jquery.cookie', - 'mediawiki.icon', - ), - ), - 'mediawiki.action.edit.preview' => array( - 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.preview.js', - 'dependencies' => array( - 'jquery.form', - 'jquery.spinner', - 'mediawiki.action.history.diff', - ), - ), - 'mediawiki.action.history' => array( - 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.history.js', - 'group' => 'mediawiki.action.history', - ), - 'mediawiki.action.history.diff' => array( - 'styles' => 'resources/src/mediawiki.action/mediawiki.action.history.diff.css', - 'group' => 'mediawiki.action.history', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'mediawiki.action.view.dblClickEdit' => array( - 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.dblClickEdit.js', - 'dependencies' => array( - 'mediawiki.util', - 'mediawiki.page.startup', - ), - ), - 'mediawiki.action.view.metadata' => array( - 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.metadata.js', - 'messages' => array( - 'metadata-expand', - 'metadata-collapse', - ), - ), - 'mediawiki.action.view.postEdit' => array( - 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.postEdit.js', - 'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.postEdit.css', - 'dependencies' => array( - 'jquery.cookie', - 'mediawiki.jqueryMsg' - ), - 'messages' => array( - 'postedit-confirmation', - ), - ), - 'mediawiki.action.view.redirectToFragment' => array( - 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.redirectToFragment.js', - 'dependencies' => array( - 'jquery.client', - ), - 'position' => 'top', - ), - 'mediawiki.action.view.rightClickEdit' => array( - 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.rightClickEdit.js', - ), - 'mediawiki.action.edit.editWarning' => array( - 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.editWarning.js', - 'dependencies' => array( - 'mediawiki.jqueryMsg' - ), - 'messages' => array( - 'editwarning-warning', - 'prefs-editing' - ), - ), - // Alias for backwards compatibility - 'mediawiki.action.watch.ajax' => array( - 'dependencies' => 'mediawiki.page.watch.ajax' - ), - - /* MediaWiki Language */ - - 'mediawiki.language' => array( - 'scripts' => array( - 'resources/src/mediawiki.language/mediawiki.language.js', - 'resources/src/mediawiki.language/mediawiki.language.numbers.js' - ), - 'languageScripts' => array( - 'bs' => 'resources/src/mediawiki.language/languages/bs.js', - 'dsb' => 'resources/src/mediawiki.language/languages/dsb.js', - 'fi' => 'resources/src/mediawiki.language/languages/fi.js', - 'ga' => 'resources/src/mediawiki.language/languages/ga.js', - 'he' => 'resources/src/mediawiki.language/languages/he.js', - 'hsb' => 'resources/src/mediawiki.language/languages/hsb.js', - 'hu' => 'resources/src/mediawiki.language/languages/hu.js', - 'hy' => 'resources/src/mediawiki.language/languages/hy.js', - 'la' => 'resources/src/mediawiki.language/languages/la.js', - 'os' => 'resources/src/mediawiki.language/languages/os.js', - 'ru' => 'resources/src/mediawiki.language/languages/ru.js', - 'sl' => 'resources/src/mediawiki.language/languages/sl.js', - 'uk' => 'resources/src/mediawiki.language/languages/uk.js', - ), - 'dependencies' => array( - 'mediawiki.language.data', - 'mediawiki.cldr', - ), - 'targets' => array( 'desktop', 'mobile' ), - ), - - 'mediawiki.cldr' => array( - 'scripts' => 'resources/src/mediawiki.language/mediawiki.cldr.js', - 'dependencies' => array( - 'mediawiki.libs.pluralruleparser', - ), - 'targets' => array( 'desktop', 'mobile' ), - ), - - 'mediawiki.libs.pluralruleparser' => array( - 'scripts' => 'resources/src/mediawiki.libs/CLDRPluralRuleParser.js', - 'targets' => array( 'desktop', 'mobile' ), - ), - - 'mediawiki.language.init' => array( - 'scripts' => 'resources/src/mediawiki.language/mediawiki.language.init.js', - 'targets' => array( 'desktop', 'mobile' ), - ), - - 'mediawiki.jqueryMsg' => array( - 'scripts' => 'resources/src/mediawiki/mediawiki.jqueryMsg.js', - 'dependencies' => array( - 'mediawiki.util', - 'mediawiki.language', - ), - 'targets' => array( 'desktop', 'mobile' ), - ), - - 'mediawiki.language.months' => array( - 'scripts' => 'resources/src/mediawiki.language/mediawiki.language.months.js', - 'dependencies' => 'mediawiki.language', - 'messages' => array_merge( - Language::$mMonthMsgs, - Language::$mMonthGenMsgs, - Language::$mMonthAbbrevMsgs - ) - ), - - /* MediaWiki Libs */ - - 'mediawiki.libs.jpegmeta' => array( - 'scripts' => 'resources/src/mediawiki.libs/mediawiki.libs.jpegmeta.js', - ), - - /* MediaWiki Page */ - - 'mediawiki.page.gallery' => array( - 'scripts' => 'resources/src/mediawiki.page/mediawiki.page.gallery.js', - ), - 'mediawiki.page.ready' => array( - 'scripts' => 'resources/src/mediawiki.page/mediawiki.page.ready.js', - 'dependencies' => array( - 'jquery.checkboxShiftClick', - 'jquery.makeCollapsible', - 'jquery.placeholder', - 'jquery.mw-jump', - 'mediawiki.util', - ), - 'targets' => array( 'desktop', 'mobile' ), - ), - 'mediawiki.page.startup' => array( - 'scripts' => 'resources/src/mediawiki.page/mediawiki.page.startup.js', - 'dependencies' => array( - 'mediawiki.util', - ), - 'position' => 'top', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'mediawiki.page.patrol.ajax' => array( - 'scripts' => 'resources/src/mediawiki.page/mediawiki.page.patrol.ajax.js', - 'dependencies' => array( - 'mediawiki.page.startup', - 'mediawiki.api', - 'mediawiki.util', - 'mediawiki.Title', - 'mediawiki.notify', - 'jquery.spinner', - 'user.tokens' - ), - 'messages' => array( - 'markedaspatrollednotify', - 'markedaspatrollederrornotify', - 'markedaspatrollederror-noautopatrol' - ), - ), - 'mediawiki.page.watch.ajax' => array( - 'scripts' => 'resources/src/mediawiki.page/mediawiki.page.watch.ajax.js', - 'dependencies' => array( - 'mediawiki.page.startup', - 'mediawiki.api.watch', - 'mediawiki.util', - 'mediawiki.notify', - 'jquery.mwExtension', - ), - 'messages' => array( - 'watch', - 'unwatch', - 'watching', - 'unwatching', - 'tooltip-ca-watch', - 'tooltip-ca-unwatch', - 'watcherrortext', - ), - ), - 'mediawiki.page.image.pagination' => array( - 'scripts' => 'resources/src/mediawiki.page/mediawiki.page.image.pagination.js', - 'dependencies' => array( - 'mediawiki.Uri', - 'mediawiki.util', - 'jquery.spinner', - ) - ), - - /* MediaWiki Special pages */ - - 'mediawiki.special' => array( - 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.js', - 'styles' => 'resources/src/mediawiki.special/mediawiki.special.css', - 'skinStyles' => array( - 'vector' => 'skins/vector/special.less', - ), - ), - 'mediawiki.special.block' => array( - 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.block.js', - 'styles' => 'resources/src/mediawiki.special/mediawiki.special.block.css', - 'dependencies' => array( - 'mediawiki.util', - ), - ), - 'mediawiki.special.changeemail' => array( - 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.changeemail.js', - 'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeemail.css', - 'dependencies' => array( - 'mediawiki.util', - ), - 'messages' => array( - 'email-address-validity-valid', - 'email-address-validity-invalid', - ), - ), - 'mediawiki.special.changeslist' => array( - 'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.css', - ), - 'mediawiki.special.changeslist.legend' => array( - 'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.legend.css', - ), - 'mediawiki.special.changeslist.legend.js' => array( - 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.legend.js', - 'dependencies' => array( - 'jquery.makeCollapsible', - 'jquery.cookie', - ), - ), - 'mediawiki.special.changeslist.enhanced' => array( - 'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.enhanced.css', - ), - 'mediawiki.special.movePage' => array( - 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.movePage.js', - 'dependencies' => 'jquery.byteLimit', - ), - 'mediawiki.special.pagesWithProp' => array( - 'styles' => 'resources/src/mediawiki.special/mediawiki.special.pagesWithProp.css', - ), - 'mediawiki.special.preferences' => array( - 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.preferences.js', - 'styles' => 'resources/src/mediawiki.special/mediawiki.special.preferences.css', - 'position' => 'top', - 'skinStyles' => array( - 'vector' => 'skins/vector/special.preferences.less', - ), - 'messages' => array( - 'prefs-tabs-navigation-hint', - ), - 'dependencies' => array( - 'mediawiki.language', - ), - ), - 'mediawiki.special.recentchanges' => array( - 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.recentchanges.js', - 'dependencies' => array( 'mediawiki.special' ), - 'position' => 'top', - ), - 'mediawiki.special.search' => array( - 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.search.js', - 'styles' => 'resources/src/mediawiki.special/mediawiki.special.search.css', - 'messages' => array( - 'powersearch-togglelabel', - 'powersearch-toggleall', - 'powersearch-togglenone', - ), - ), - 'mediawiki.special.undelete' => array( - 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.undelete.js', - ), - 'mediawiki.special.upload' => array( - // @todo merge in remainder of mediawiki.legacy.upload - 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.upload.js', - 'messages' => array( - 'widthheight', - 'size-bytes', - 'size-kilobytes', - 'size-megabytes', - 'size-gigabytes', - 'largefileserver', - ), - 'dependencies' => array( - 'mediawiki.libs.jpegmeta', - 'mediawiki.util', - ), - ), - 'mediawiki.special.userlogin.common.styles' => array( - 'styles' => array( - 'resources/src/mediawiki.special/mediawiki.special.userlogin.common.css', - ), - 'position' => 'top', - ), - 'mediawiki.special.userlogin.signup.styles' => array( - 'styles' => array( - 'resources/src/mediawiki.special/mediawiki.special.userlogin.signup.css', - ), - 'position' => 'top', - ), - 'mediawiki.special.userlogin.login.styles' => array( - 'styles' => array( - 'resources/src/mediawiki.special/mediawiki.special.userlogin.login.css', - ), - 'position' => 'top', - ), - 'mediawiki.special.userlogin.common.js' => array( - 'scripts' => array( - 'resources/src/mediawiki.special/mediawiki.special.userlogin.common.js', - ), - 'messages' => array( - 'createacct-captcha', - 'createacct-imgcaptcha-ph', - ), - ), - 'mediawiki.special.userlogin.signup.js' => array( - 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.userlogin.signup.js', - 'messages' => array( - 'createacct-error', - 'createacct-emailrequired', - 'noname', - 'userexists', - ), - 'dependencies' => array( - 'mediawiki.api', - 'mediawiki.jqueryMsg', - 'jquery.throttle-debounce', - ), - ), - 'mediawiki.special.javaScriptTest' => array( - 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.javaScriptTest.js', - 'messages' => array_merge( Skin::getSkinNameMessages(), array( - 'colon-separator', - 'javascripttest-pagetext-skins', - ) ), - 'dependencies' => array( - 'mediawiki.Uri', - ), - 'position' => 'top', - 'targets' => array( 'desktop', 'mobile' ), - ), - 'mediawiki.special.version' => array( - 'styles' => 'resources/src/mediawiki.special/mediawiki.special.version.css', - ), - - /* MediaWiki Legacy */ - - 'mediawiki.legacy.ajax' => array( - 'scripts' => 'common/ajax.js', - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - 'dependencies' => array( - 'mediawiki.util', - 'mediawiki.legacy.wikibits', - ), - 'position' => 'top', // Temporary hack for legacy support - ), - 'mediawiki.legacy.commonPrint' => array( - 'styles' => array( 'common/commonPrint.css' => array( 'media' => 'print' ) ), - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - ), - 'mediawiki.legacy.config' => array( - // Used in the web installer. Test it after modifying this definition! - 'scripts' => 'common/config.js', - 'styles' => array( 'common/config.css' ), - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - 'dependencies' => 'mediawiki.legacy.wikibits', - ), - 'mediawiki.legacy.protect' => array( - 'scripts' => 'common/protect.js', - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - 'dependencies' => array( - 'jquery.byteLimit', - ), - 'position' => 'top', - ), - 'mediawiki.legacy.shared' => array( - // Used in the web installer. Test it after modifying this definition! - 'styles' => array( 'common/shared.css' => array( 'media' => 'screen' ) ), - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - ), - 'mediawiki.legacy.oldshared' => array( - 'styles' => array( 'common/oldshared.css' => array( 'media' => 'screen' ) ), - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - ), - 'mediawiki.legacy.upload' => array( - 'scripts' => 'common/upload.js', - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - 'dependencies' => array( - 'jquery.spinner', - 'mediawiki.api', - 'mediawiki.Title', - 'mediawiki.util', - ), - ), - 'mediawiki.legacy.wikibits' => array( - 'scripts' => 'common/wikibits.js', - 'remoteBasePath' => $GLOBALS['wgStylePath'], - 'localBasePath' => $GLOBALS['wgStyleDirectory'], - 'dependencies' => array( - 'mediawiki.util', - ), - 'position' => 'top', - ), - - /* MediaWiki UI */ - - 'mediawiki.ui' => array( - 'skinStyles' => array( - 'default' => 'resources/src/mediawiki.ui/default.less', - 'vector' => 'resources/src/mediawiki.ui/vector.less', - ), - 'position' => 'top', - 'targets' => array( 'desktop', 'mobile' ), - ), - // Lightweight module for button styles - 'mediawiki.ui.button' => array( - 'skinStyles' => array( - 'default' => 'resources/src/mediawiki.ui/components/default/buttons.less', - 'vector' => 'resources/src/mediawiki.ui/components/vector/buttons.less', - ), - 'position' => 'top', - 'targets' => array( 'desktop', 'mobile' ), - ), - - /* OOjs */ - // WARNING: OOjs and OOjs-UI are NOT COMPATIBLE with older browsers and - // WILL BREAK if loaded in browsers that don't support ES5 - 'oojs' => array( - 'scripts' => array( - 'resources/lib/oojs/oojs.js', - ), - 'targets' => array( 'desktop', 'mobile' ), - ), - 'oojs-ui' => array( - 'scripts' => array( - 'resources/lib/oojs-ui/oojs-ui.js', - ), - 'styles' => array( - 'resources/lib/oojs-ui/oojs-ui.svg.css', - ), - 'skinStyles' => array( - 'default' => 'resources/lib/oojs-ui/oojs-ui-apex.css', - 'minerva' => 'resources/lib/oojs-ui/oojs-ui-agora.css', - ), - 'messages' => array( - 'ooui-dialog-action-close', - 'ooui-outline-control-move-down', - 'ooui-outline-control-move-up', - 'ooui-outline-control-remove', - 'ooui-toolbar-more', - ), - 'dependencies' => array( - 'oojs', - ), - 'targets' => array( 'desktop', 'mobile' ), - ), -); diff --git a/www/www.reactos.org/wiki/skins/Vector.php b/www/www.reactos.org/wiki/skins/Vector.php deleted file mode 100644 index 96aa9cfd..00000000 --- a/www/www.reactos.org/wiki/skins/Vector.php +++ /dev/null @@ -1,468 +0,0 @@ -getRequest()->getFuzzyBool( 'debug' ) ? '' : '.min'; - $out->addHeadItem( 'csshover', - '" - ); - - $out->addModules( array( 'skins.vector.js', 'skins.vector.collapsibleNav' ) ); - } - - /** - * Loads skin and user CSS files. - * @param $out OutputPage object - */ - function setupSkinUserCss( OutputPage $out ) { - parent::setupSkinUserCss( $out ); - - $styles = array( 'mediawiki.skinning.interface', 'skins.vector.styles' ); - wfRunHooks( 'SkinVectorStyleModules', array( $this, &$styles ) ); - $out->addModuleStyles( $styles ); - } - - /** - * Adds classes to the body element. - * - * @param $out OutputPage object - * @param &$bodyAttrs Array of attributes that will be set on the body element - */ - function addToBodyAttributes( $out, &$bodyAttrs ) { - if ( isset( $bodyAttrs['class'] ) && strlen( $bodyAttrs['class'] ) > 0 ) { - $bodyAttrs['class'] .= ' ' . implode( ' ', static::$bodyClasses ); - } else { - $bodyAttrs['class'] = implode( ' ', static::$bodyClasses ); - } - } -} - -/** - * QuickTemplate class for Vector skin - * @ingroup Skins - */ -class VectorTemplate extends BaseTemplate { - - /* Functions */ - - /** - * Outputs the entire contents of the (X)HTML page - */ - public function execute() { - global $wgVectorUseIconWatch; - - // Build additional attributes for navigation urls - $nav = $this->data['content_navigation']; - - if ( $wgVectorUseIconWatch ) { - $mode = $this->getSkin()->getUser()->isWatched( $this->getSkin()->getRelevantTitle() ) ? 'unwatch' : 'watch'; - if ( isset( $nav['actions'][$mode] ) ) { - $nav['views'][$mode] = $nav['actions'][$mode]; - $nav['views'][$mode]['class'] = rtrim( 'icon ' . $nav['views'][$mode]['class'], ' ' ); - $nav['views'][$mode]['primary'] = true; - unset( $nav['actions'][$mode] ); - } - } - - $xmlID = ''; - foreach ( $nav as $section => $links ) { - foreach ( $links as $key => $link ) { - if ( $section == 'views' && !( isset( $link['primary'] ) && $link['primary'] ) ) { - $link['class'] = rtrim( 'collapsible ' . $link['class'], ' ' ); - } - - $xmlID = isset( $link['id'] ) ? $link['id'] : 'ca-' . $xmlID; - $nav[$section][$key]['attributes'] = - ' id="' . Sanitizer::escapeId( $xmlID ) . '"'; - if ( $link['class'] ) { - $nav[$section][$key]['attributes'] .= - ' class="' . htmlspecialchars( $link['class'] ) . '"'; - unset( $nav[$section][$key]['class'] ); - } - if ( isset( $link['tooltiponly'] ) && $link['tooltiponly'] ) { - $nav[$section][$key]['key'] = - Linker::tooltip( $xmlID ); - } else { - $nav[$section][$key]['key'] = - Xml::expandAttributes( Linker::tooltipAndAccesskeyAttribs( $xmlID ) ); - } - } - } - $this->data['namespace_urls'] = $nav['namespaces']; - $this->data['view_urls'] = $nav['views']; - $this->data['action_urls'] = $nav['actions']; - $this->data['variant_urls'] = $nav['variants']; - - // Reverse horizontally rendered navigation elements - if ( $this->data['rtl'] ) { - $this->data['view_urls'] = - array_reverse( $this->data['view_urls'] ); - $this->data['namespace_urls'] = - array_reverse( $this->data['namespace_urls'] ); - $this->data['personal_urls'] = - array_reverse( $this->data['personal_urls'] ); - } - // Output HTML Page - $this->html( 'headelement' ); -?> - -
-
-
- - - data['sitenotice'] ) { ?> -
html( 'sitenotice' ) ?>
- -

html( 'title' ) ?>

- html( 'prebodyhtml' ) ?> -
- data['isarticle'] ) { ?> -
msg( 'tagline' ) ?>
- -
html( 'userlangattributes' ) ?>>html( 'subtitle' ) ?>
- data['undelete'] ) { ?> -
html( 'undelete' ) ?>
- - data['newtalk'] ) { ?> -
html( 'newtalk' ) ?>
- -
- msg( 'jumpto' ) ?> - msg( 'jumptonavigation' ) ?>msg( 'comma-separator' ) ?> - msg( 'jumptosearch' ) ?> -
- html( 'bodycontent' ) ?> - data['printfooter'] ) { ?> -
- html( 'printfooter' ); ?> -
- - data['catlinks'] ) { ?> - html( 'catlinks' ); ?> - - data['dataAfterContent'] ) { ?> - html( 'dataAfterContent' ); ?> - -
- html( 'debughtml' ); ?> -
-
-
-

msg( 'navigation-heading' ) ?>

-
- - - renderNavigation( 'PERSONAL' ); ?> -
- renderNavigation( array( 'NAMESPACES', 'VARIANTS' ) ); ?> -
-
- renderNavigation( array( 'VIEWS', 'ACTIONS', 'SEARCH' ) ); ?> -
-
-
- renderPortals( $this->data['sidebar'] ); ?> -
-
- - printTrail(); ?> - - - - $content ) { - if ( $content === false ) { - continue; - } - - switch ( $name ) { - case 'SEARCH': - break; - case 'TOOLBOX': - $this->renderPortal( 'tb', $this->getToolbox(), 'toolbox', 'SkinTemplateToolboxEnd' ); - break; - case 'LANGUAGES': - if ( $this->data['language_urls'] !== false ) { - $this->renderPortal( 'lang', $this->data['language_urls'], 'otherlanguages' ); - } - break; - default: - $this->renderPortal( $name, $content ); - break; - } - } - } - - /** - * @param $name string - * @param $content array - * @param $msg null|string - * @param $hook null|string|array - */ - protected function renderPortal( $name, $content, $msg = null, $hook = null ) { - if ( $msg === null ) { - $msg = $name; - } - $msgObj = wfMessage( $msg ); - ?> - -data['rtl'] ) { - $elements = array_reverse( $elements ); - } - // Render elements - foreach ( $elements as $name => $element ) { - switch ( $element ) { - case 'NAMESPACES': -?> - - - - - - - - - - - + config->get( 'VectorUseIconWatch' ) + && ( $key === 'watch' || $key === 'unwatch' ) + ) { + $item['class'] = rtrim( 'icon ' . $item['class'], ' ' ); + $item['primary'] = true; + } + + // Add CSS class 'collapsible' to links which are not marked as "primary" + if ( + isset( $options['vector-collapsible'] ) && $options['vector-collapsible'] + && !( isset( $item['primary'] ) && $item['primary'] ) + ) { + $item['class'] = rtrim( 'collapsible ' . $item['class'], ' ' ); + } + + // We don't use this, prevent it from popping up in HTML output + unset( $item['redundant'] ); + + return parent::makeListItem( $key, $item, $options ); + } +} diff --git a/www/www.reactos.org/wiki/skins/Vector/skin.json b/www/www.reactos.org/wiki/skins/Vector/skin.json new file mode 100644 index 00000000..f283c67b --- /dev/null +++ b/www/www.reactos.org/wiki/skins/Vector/skin.json @@ -0,0 +1,119 @@ +{ + "name": "Vector", + "author": [ + "Trevor Parscal", + "Roan Kattouw", + "..." + ], + "url": "https://www.mediawiki.org/wiki/Skin:Vector", + "descriptionmsg": "vector-skin-desc", + "namemsg": "skinname-vector", + "license-name": "GPL-2.0+", + "type": "skin", + "requires": { + "MediaWiki": ">= 1.29.0" + }, + "ConfigRegistry": { + "vector": "GlobalVarConfig::newInstance" + }, + "ValidSkinNames": { + "vector": "Vector" + }, + "MessagesDirs": { + "Vector": [ + "i18n" + ] + }, + "AutoloadClasses": { + "VectorHooks": "Hooks.php", + "SkinVector": "SkinVector.php", + "VectorTemplate": "VectorTemplate.php", + "Vector\\ResourceLoaderLessModule": "ResourceLoaderLessModule.php" + }, + "Hooks": { + "BeforePageDisplayMobile": [ + "VectorHooks::onBeforePageDisplayMobile" + ] + }, + "@note": "When modifying skins.vector.styles definition, make sure the installer still works", + "ResourceModules": { + "skins.vector.styles": { + "targets": [ "desktop", "mobile" ], + "position": "top", + "styles": { + "screen.less": { + "media": "screen" + }, + "screen-hd.less": { + "media": "screen and (min-width: 982px)" + } + } + }, + "skins.vector.styles.experimental.print": { + "class": "Vector\\ResourceLoaderLessModule", + "targets": [ "desktop", "mobile" ], + "position": "top", + "styles": [ + "print.less" + ] + }, + "skins.vector.styles.responsive": { + "targets": [ "desktop", "mobile" ], + "position": "top", + "styles": [ + "responsive.less" + ] + }, + "skins.vector.js": { + "scripts": [ + "collapsibleTabs.js", + "vector.js" + ], + "position": "top", + "dependencies": [ + "jquery.throttle-debounce", + "jquery.tabIndex" + ] + } + }, + "ResourceFileModulePaths": { + "localBasePath": "", + "remoteSkinPath": "Vector" + }, + "ResourceModuleSkinStyles": { + "vector": { + "jquery.tipsy": "skinStyles/jquery.tipsy.less", + "jquery.ui.core": [ + "skinStyles/jquery.ui/jquery.ui.core.css", + "skinStyles/jquery.ui/jquery.ui.theme.css" + ], + "jquery.ui.accordion": "skinStyles/jquery.ui/jquery.ui.accordion.css", + "jquery.ui.autocomplete": "skinStyles/jquery.ui/jquery.ui.autocomplete.css", + "jquery.ui.button": "skinStyles/jquery.ui/jquery.ui.button.css", + "jquery.ui.datepicker": "skinStyles/jquery.ui/jquery.ui.datepicker.css", + "jquery.ui.dialog": "skinStyles/jquery.ui/jquery.ui.dialog.css", + "jquery.ui.menu": "skinStyles/jquery.ui/jquery.ui.menu.css", + "jquery.ui.progressbar": "skinStyles/jquery.ui/jquery.ui.progressbar.css", + "jquery.ui.resizable": "skinStyles/jquery.ui/jquery.ui.resizable.css", + "jquery.ui.selectable": "skinStyles/jquery.ui/jquery.ui.selectable.css", + "jquery.ui.slider": "skinStyles/jquery.ui/jquery.ui.slider.css", + "jquery.ui.spinner": "skinStyles/jquery.ui/jquery.ui.spinner.css", + "jquery.ui.tabs": "skinStyles/jquery.ui/jquery.ui.tabs.css", + "jquery.ui.tooltips": "skinStyles/jquery.ui/jquery.ui.tooltips.css", + "+mediawiki.action.view.redirectPage": "skinStyles/mediawiki.action.view.redirectPage.less", + "+mediawiki.notification": "skinStyles/mediawiki.notification.less", + "+oojs-ui-core.styles": "skinStyles/ooui.less", + "mediawiki.special": "skinStyles/mediawiki.special.less", + "+mediawiki.special.preferences.styles": "skinStyles/mediawiki.special.preferences.styles.less" + } + }, + "config": { + "VectorUseSimpleSearch": true, + "VectorUseIconWatch": true, + "@VectorExperimentalPrintStyles": "Temporary config variable to feature flag new print styles (T154965)", + "VectorExperimentalPrintStyles": false, + "VectorResponsive": false, + "VectorPrintLogo": false + }, + "manifest_version": 1 +} diff --git a/www/www.reactos.org/wiki/skins/vector/variables.less b/www/www.reactos.org/wiki/skins/Vector/variables.less similarity index 59% rename from www/www.reactos.org/wiki/skins/vector/variables.less rename to www/www.reactos.org/wiki/skins/Vector/variables.less index 85226ea8..45551366 100644 --- a/www/www.reactos.org/wiki/skins/vector/variables.less +++ b/www/www.reactos.org/wiki/skins/Vector/variables.less @@ -1,16 +1,23 @@ -@html-font-size: 1em; +@import 'mediawiki.ui/variables'; + +@html-font-size: 100%; + +@font-family-serif: 'Linux Libertine', 'Georgia', 'Times', serif; +@font-family-sans-serif: sans-serif; // Page content // FIXME: Use global variable since Echo and CentralNotice use this variable @content-border-color: #a7d7f9; // FIXME: Find an open font that works with this stack and is readable by Windows users -@content-font-family: "Open Sans", sans-serif; -@content-font-color: #252525; +@content-font-family: @font-family-sans-serif; +@content-font-color: #222; @content-font-size: 0.875em; +@pureBlack: #000; @content-line-height: 1.6; @content-padding: 1em; @content-heading-font-size: 1.8em; -@content-heading-font-family: "Open Sans", sans-serif; +@content-heading-font-family: @font-family-serif; +@content-heading-font-family-generic: sans-serif; @body-background-color: #fff; @heading-line-height: 1.3; @@ -22,22 +29,15 @@ // Main menu @menu-main-font-size: inherit; + @menu-main-heading-font-size: 0.75em; -@menu-main-heading-padding: 0 1.75em 0.25em 0.25em; +@menu-main-heading-color: #444; @menu-main-body-font-size: 0.75em; @menu-main-body-link-color: #0645ad; @menu-main-body-link-visited-color: #0b0080; -@menu-main-body-margin: 0 0 0 1.25em; -@menu-main-body-padding: 0; -@menu-main-logo-left: 0.5em; +@menu-main-body-margin-left: 0.5em; +@menu-main-body-padding: 0.3em 0 0 0; // Personal menu @menu-personal-font-size: 0.75em; - -// Collapsible nav -@collapsible-nav-heading-color: #4d4d4d; -@collapsible-nav-heading-collapsed-color: #0645ad; - -@collapsible-nav-heading-padding: 4px 0 3px 1.5em; -@collapsible-nav-body-margin: 0 0 0 1.25em; diff --git a/www/www.reactos.org/wiki/skins/vector/collapsibleNav.js b/www/www.reactos.org/wiki/skins/vector/collapsibleNav.js deleted file mode 100644 index 45258e50..00000000 --- a/www/www.reactos.org/wiki/skins/vector/collapsibleNav.js +++ /dev/null @@ -1,152 +0,0 @@ -/** - * Collapsible navigation for Vector - */ -( function ( mw, $ ) { - 'use strict'; - var map; - - // Use the same function for all navigation headings - don't repeat - function toggle( $element ) { - var isCollapsed = $element.parent().is( '.collapsed' ); - - $.cookie( - 'vector-nav-' + $element.parent().attr( 'id' ), - isCollapsed, - { 'expires': 30, 'path': '/' } - ); - - $element - .parent() - .toggleClass( 'expanded' ) - .toggleClass( 'collapsed' ) - .find( '.body' ) - .slideToggle( 'fast' ); - isCollapsed = !isCollapsed; - - $element - .find( '> a' ) - .attr( { - 'aria-pressed': isCollapsed ? 'false' : 'true', - 'aria-expanded': isCollapsed ? 'false' : 'true' - } ); - } - - /* Browser Support */ - - map = { - // Left-to-right languages - ltr: { - // Collapsible Nav is broken in Opera < 9.6 and Konqueror < 4 - opera: [['>=', 9.6]], - konqueror: [['>=', 4.0]], - blackberry: false, - ipod: false, - iphone: false, - ps3: false - }, - // Right-to-left languages - rtl: { - opera: [['>=', 9.6]], - konqueror: [['>=', 4.0]], - blackberry: false, - ipod: false, - iphone: false, - ps3: false - } - }; - if ( !$.client.test( map ) ) { - return true; - } - - $( function ( $ ) { - var $headings, tabIndex; - - /* General Portal Modification */ - - // Always show the first portal - $( '#mw-panel > .portal:first' ).addClass( 'first persistent' ); - // Apply a class to the entire panel to activate styles - $( '#mw-panel' ).addClass( 'collapsible-nav' ); - // Use cookie data to restore preferences of what to show and hide - $( '#mw-panel > .portal:not(.persistent)' ) - .each( function ( i ) { - var id = $(this).attr( 'id' ), - state = $.cookie( 'vector-nav-' + id ); - $(this).find( 'ul:first' ).attr( 'id', id + '-list' ); - // Add anchor tag to heading for better accessibility - $( this ).find( 'h3' ).wrapInner( - $( '' ) - .attr( { - href: '#', - 'aria-haspopup': 'true', - 'aria-controls': id + '-list', - role: 'button' - } ) - .click( false ) - ); - // In the case that we are not showing the new version, let's show the languages by default - if ( - state === 'true' || - ( state === null && i < 1 ) || - ( state === null && id === 'p-lang' ) - ) { - $(this) - .addClass( 'expanded' ) - .removeClass( 'collapsed' ) - .find( '.body' ) - .hide() // bug 34450 - .show(); - $(this).find( 'h3 > a' ) - .attr( { - 'aria-pressed': 'true', - 'aria-expanded': 'true' - } ); - } else { - $(this) - .addClass( 'collapsed' ) - .removeClass( 'expanded' ); - $(this).find( 'h3 > a' ) - .attr( { - 'aria-pressed': 'false', - 'aria-expanded': 'false' - } ); - } - // Re-save cookie - if ( state !== null ) { - $.cookie( 'vector-nav-' + $(this).attr( 'id' ), state, { 'expires': 30, 'path': '/' } ); - } - } ); - - /* Tab Indexing */ - - $headings = $( '#mw-panel > .portal:not(.persistent) > h3' ); - - // Get the highest tab index - tabIndex = $( document ).lastTabIndex() + 1; - - // Fix the search not having a tabindex - $( '#searchInput' ).attr( 'tabindex', tabIndex++ ); - - // Make it keyboard accessible - $headings.attr( 'tabindex', function () { - return tabIndex++; - }); - - // Toggle the selected menu's class and expand or collapse the menu - $( '#mw-panel' ) - .delegate( '.portal:not(.persistent) > h3', 'keydown', function ( e ) { - // Make the space and enter keys act as a click - if ( e.which === 13 /* Enter */ || e.which === 32 /* Space */ ) { - toggle( $(this) ); - } - } ) - .delegate( '.portal:not(.persistent) > h3', 'mousedown', function ( e ) { - if ( e.which !== 3 ) { // Right mouse click - toggle( $(this) ); - $(this).blur(); - } - return false; - } ); - }); - -}( mediaWiki, jQuery ) ); diff --git a/www/www.reactos.org/wiki/skins/vector/collapsibleTabs.js b/www/www.reactos.org/wiki/skins/vector/collapsibleTabs.js deleted file mode 100644 index 0e497441..00000000 --- a/www/www.reactos.org/wiki/skins/vector/collapsibleTabs.js +++ /dev/null @@ -1,208 +0,0 @@ -/** - * Collapsible tabs jQuery Plugin - */ -( function ( $ ) { - var rtl = $( 'html' ).attr( 'dir' ) === 'rtl'; - $.fn.collapsibleTabs = function ( options ) { - // return if the function is called on an empty jquery object - if ( !this.length ) { - return this; - } - // Merge options into the defaults - var $settings = $.extend( {}, $.collapsibleTabs.defaults, options ); - - this.each( function () { - var $el = $( this ); - // add the element to our array of collapsible managers - $.collapsibleTabs.instances = ( $.collapsibleTabs.instances.length === 0 ? - $el : $.collapsibleTabs.instances.add( $el ) ); - // attach the settings to the elements - $el.data( 'collapsibleTabsSettings', $settings ); - // attach data to our collapsible elements - $el.children( $settings.collapsible ).each( function () { - $.collapsibleTabs.addData( $( this ) ); - } ); - } ); - - // if we haven't already bound our resize handler, bind it now - if ( !$.collapsibleTabs.boundEvent ) { - $( window ).on( 'resize', $.debounce( 500, function () { - $.collapsibleTabs.handleResize(); - } ) ); - $.collapsibleTabs.boundEvent = true; - } - - // call our resize handler to setup the page - $.collapsibleTabs.handleResize(); - return this; - }; - /** - * Returns the amount of horizontal distance between the two tabs groups - * (#left-navigation and #right-navigation), in pixels. If negative, this - * means that the tabs overlap, and the value is the width of overlapping - * parts. - * - * Used in default expandCondition and collapseCondition. - * - * @return {Numeric} distance/overlap in pixels - */ - function calculateTabDistance() { - var $leftTab, $rightTab, leftEnd, rightStart; - - // In RTL, #right-navigation is actually on the left and vice versa. - // Hooray for descriptive naming. - if ( !rtl ) { - $leftTab = $( '#left-navigation' ); - $rightTab = $( '#right-navigation' ); - } else { - $leftTab = $( '#right-navigation' ); - $rightTab = $( '#left-navigation' ); - } - - leftEnd = $leftTab.offset().left + $leftTab.width(); - rightStart = $rightTab.offset().left; - - return rightStart - leftEnd; - } - $.collapsibleTabs = { - instances: [], - boundEvent: null, - defaults: { - expandedContainer: '#p-views ul', - collapsedContainer: '#p-cactions ul', - collapsible: 'li.collapsible', - shifting: false, - expandCondition: function ( eleWidth ) { - // If there are at least eleWidth + 1 pixels of free space, expand. - // We add 1 because .width() will truncate fractional values - // but .offset() will not. - return calculateTabDistance() >= (eleWidth + 1); - }, - collapseCondition: function () { - // If there's an overlap, collapse. - return calculateTabDistance() < 0; - } - }, - addData: function ( $collapsible ) { - var $settings = $collapsible.parent().data( 'collapsibleTabsSettings' ); - if ( $settings ) { - $collapsible.data( 'collapsibleTabsSettings', { - expandedContainer: $settings.expandedContainer, - collapsedContainer: $settings.collapsedContainer, - expandedWidth: $collapsible.width(), - prevElement: $collapsible.prev() - } ); - } - }, - getSettings: function ( $collapsible ) { - var $settings = $collapsible.data( 'collapsibleTabsSettings' ); - if ( !$settings ) { - $.collapsibleTabs.addData( $collapsible ); - $settings = $collapsible.data( 'collapsibleTabsSettings' ); - } - return $settings; - }, - handleResize: function () { - $.collapsibleTabs.instances.each( function () { - var $el = $( this ), - data = $.collapsibleTabs.getSettings( $el ); - - if ( data.shifting ) { - return; - } - - // if the two navigations are colliding - if ( $el.children( data.collapsible ).length > 0 && data.collapseCondition() ) { - - $el.trigger( 'beforeTabCollapse' ); - // move the element to the dropdown menu - $.collapsibleTabs.moveToCollapsed( $el.children( data.collapsible + ':last' ) ); - } - - // if there are still moveable items in the dropdown menu, - // and there is sufficient space to place them in the tab container - if ( $( data.collapsedContainer + ' ' + data.collapsible ).length > 0 && - data.expandCondition( $.collapsibleTabs.getSettings( $( data.collapsedContainer ).children( - data.collapsible + ':first' ) ).expandedWidth ) ) { - //move the element from the dropdown to the tab - $el.trigger( 'beforeTabExpand' ); - $.collapsibleTabs - .moveToExpanded( data.collapsedContainer + ' ' + data.collapsible + ':first' ); - } - } ); - }, - moveToCollapsed: function ( ele ) { - var outerData, expContainerSettings, target, - $moving = $( ele ); - - outerData = $.collapsibleTabs.getSettings( $moving ); - if ( !outerData ) { - return; - } - expContainerSettings = $.collapsibleTabs.getSettings( $( outerData.expandedContainer ) ); - if ( !expContainerSettings ) { - return; - } - expContainerSettings.shifting = true; - - // Remove the element from where it's at and put it in the dropdown menu - target = outerData.collapsedContainer; - $moving.css( 'position', 'relative' ) - .css( ( rtl ? 'left' : 'right' ), 0 ) - .animate( { width: '1px' }, 'normal', function () { - var data, expContainerSettings; - $( this ).hide(); - // add the placeholder - $( '' ).insertAfter( this ); - $( this ).detach().prependTo( target ).data( 'collapsibleTabsSettings', outerData ); - $( this ).attr( 'style', 'display: list-item;' ); - data = $.collapsibleTabs.getSettings( $( ele ) ); - if ( data ) { - expContainerSettings = $.collapsibleTabs.getSettings( $( data.expandedContainer ) ); - if ( expContainerSettings ) { - expContainerSettings.shifting = false; - $.collapsibleTabs.handleResize(); - } - } - } ); - }, - moveToExpanded: function ( ele ) { - var data, expContainerSettings, $target, expandedWidth, - $moving = $( ele ); - - data = $.collapsibleTabs.getSettings( $moving ); - if ( !data ) { - return; - } - expContainerSettings = $.collapsibleTabs.getSettings( $( data.expandedContainer ) ); - if ( !expContainerSettings ) { - return; - } - expContainerSettings.shifting = true; - - // grab the next appearing placeholder so we can use it for replacing - $target = $( data.expandedContainer ).find( 'span.placeholder:first' ); - expandedWidth = data.expandedWidth; - $moving.css( 'position', 'relative' ).css( ( rtl ? 'right' : 'left' ), 0 ).css( 'width', '1px' ); - $target.replaceWith( - $moving - .detach() - .css( 'width', '1px' ) - .data( 'collapsibleTabsSettings', data ) - .animate( { width: expandedWidth + 'px' }, 'normal', function () { - $( this ).attr( 'style', 'display: block;' ); - var data, expContainerSettings; - data = $.collapsibleTabs.getSettings( $( this ) ); - if ( data ) { - expContainerSettings = $.collapsibleTabs.getSettings( $( data.expandedContainer ) ); - if ( expContainerSettings ) { - expContainerSettings.shifting = false; - $.collapsibleTabs.handleResize(); - } - } - } ) - ); - } - }; - -}( jQuery ) ); diff --git a/www/www.reactos.org/wiki/skins/vector/components/animations.less b/www/www.reactos.org/wiki/skins/vector/components/animations.less deleted file mode 100644 index 91637796..00000000 --- a/www/www.reactos.org/wiki/skins/vector/components/animations.less +++ /dev/null @@ -1,28 +0,0 @@ -/* Animate between standard and high definition layouts */ -body.vector-animateLayout { - div#content, - div#footer, - #left-navigation { - .transition(margin-left 250ms, padding 250ms;); - } - - #p-logo { - .transition(left 250ms); - } - - #mw-panel { - .transition(padding-right 250ms); - } - - #p-search { - .transition(margin-right 250ms); - } - - #p-personal { - .transition(right 250ms); - } - - #mw-head-base { - .transition(margin-left 250ms); - } -} diff --git a/www/www.reactos.org/wiki/skins/vector/components/collapsibleNav.less b/www/www.reactos.org/wiki/skins/vector/components/collapsibleNav.less deleted file mode 100644 index e6f5c9aa..00000000 --- a/www/www.reactos.org/wiki/skins/vector/components/collapsibleNav.less +++ /dev/null @@ -1,91 +0,0 @@ -/** - * LESS Stylesheet for collapsible nav - */ -@import "mediawiki.mixins.less"; - -#mw-panel.collapsible-nav { - .portal { - background-position: left top; - background-repeat: no-repeat; - .background-image('images/portal-break.png'); - padding: 0.25em 0 !important; - margin: -11px 9px 10px 11px; - - h3 { - font-size: @menu-main-heading-font-size; - color: @collapsible-nav-heading-color; - font-weight: normal; - background-position: left center; - background-repeat: no-repeat; - .background-image-svg('images/arrow-expanded.svg', 'images/arrow-expanded.png'); - padding: @collapsible-nav-heading-padding; - margin-bottom: 0; - - &:hover { - cursor: pointer; - text-decoration: none; - } - - a { - color: @collapsible-nav-heading-color; - text-decoration: none; - } - } - - .body { - margin: @collapsible-nav-body-margin; - background-image: none !important; - padding-top: 0; - display: none; - - ul { - li { - padding: 0.25em 0; - } - } - } - - - /* First */ - &.first { - background-image: none; - margin-top: 0; - h3 { - display: none; - } - } - - /* Persistent */ - &.persistent { - .body { - display: block; - margin-left: 0.5em; - } - - h3 { - background-image: none !important; - padding-left: 0.7em; - cursor: default; - } - } - - /* Collapsed */ - &.collapsed { - h3 { - color: @collapsible-nav-heading-collapsed-color; - background-position: left center; - background-repeat: no-repeat; - .background-image-svg('images/arrow-collapsed-ltr.svg', 'images/arrow-collapsed-ltr.png'); - margin-bottom: 0; - - &:hover { - text-decoration: underline; - } - - a { - color: @collapsible-nav-heading-collapsed-color; - } - } - } - } -} diff --git a/www/www.reactos.org/wiki/skins/vector/components/common.less b/www/www.reactos.org/wiki/skins/vector/components/common.less deleted file mode 100644 index 25ba301f..00000000 --- a/www/www.reactos.org/wiki/skins/vector/components/common.less +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Any rules which should not be flipped automatically in right-to-left situations should be - * prepended with @noflip in a comment block. - * - * This stylesheet employs a few CSS trick to accomplish compatibility with a wide range of web - * browsers. The most common trick is to use some styles in IE6 only. This is accomplished by using - * a rule that makes things work in IE6, and then following it with a rule that begins with - * "html > body" or use a child selector ">", which is ignored by IE6 because it does not support - * the child selector. You can spot this by looking for the "OVERRIDDEN BY COMPLIANT BROWSERS" and - * "IGNORED BY IE6" comments. - */ -@import "mediawiki.mixins"; - -/* Framework */ -html { - font-size: @html-font-size; -} -html, -body { - height: 100%; - margin: 0; - padding: 0; - font-family: @content-font-family; -} -body { - background-color: @menu-background-color; -} - -/* Content */ -div#content { - margin-left: 10em; - padding: @content-padding; - /* Border on top, left, and bottom side */ - border: 1px solid @content-border-color; - border-right-width: 0; - /* Merge the border with tabs' one (in their background image) */ - margin-top: -1px; - background-color: @body-background-color; - color: @content-font-color; - direction: ltr; - - .mw-editsection, - .mw-editsection-like { - font-family: @content-font-family; - } - - p { - line-height: inherit; - margin: 0.5em 0; - } - - h1, - h2, - #firstHeading { - font-family: @content-heading-font-family; - line-height: @heading-line-height; - margin-bottom: 0.25em; - padding: 0; - } - - h1, - #firstHeading { - font-size: @content-heading-font-size; - } - - h2 { - font-size: 1.5em; - margin-top: 1em; - } - - h3, - h4, - h5, - h6 { - line-height: @content-line-height; - margin-top: 0.3em; - margin-bottom: 0; - padding-bottom: 0; - } - - h3 { - font-size: 1.17em; - } - - h3, - h4 { - font-weight: bold; - } - - h4, - h5, - h6 { - font-size: 100%; /* (reset) */ - } - - #toc h2, - .toc h2 { - font-size: 100%; /* (reset) */ - font-family: @content-font-family; - } -} - -/* Hide empty portlets */ -div.emptyPortlet { - display: none; -} - -ul { - list-style-type: disc; - .list-style-image('images/bullet-icon.png'); -} - -pre, .mw-code { - line-height: 1.3em; -} - -/* Site Notice (includes notices from CentralNotice extension) */ -#siteNotice { - font-size: 0.8em; -} - -.redirectText { - font-size: 140%; -} - -.redirectMsg img { - vertical-align: text-bottom; -} - -#bodyContent { - position: relative; - width: 100%; - line-height: @content-line-height; - font-size: @content-font-size; -} - -/* Tooltips are outside of the normal body code, so this helps make the size of the text sensible */ -// FIXME: Should be part of jquery.tipsy.css -.tipsy { - font-size: 0.8em; -} diff --git a/www/www.reactos.org/wiki/skins/vector/components/externalLinks.less b/www/www.reactos.org/wiki/skins/vector/components/externalLinks.less deleted file mode 100644 index 91388c63..00000000 --- a/www/www.reactos.org/wiki/skins/vector/components/externalLinks.less +++ /dev/null @@ -1,10 +0,0 @@ -@import "mediawiki.mixins.less"; -// External links -#content { - .external { - background-position: center right; - background-repeat: no-repeat; - .background-image-svg('images/external-link-ltr-icon.svg', 'images/external-link-ltr-icon.png'); - padding-right: 13px; - } -} diff --git a/www/www.reactos.org/wiki/skins/vector/components/footer.less b/www/www.reactos.org/wiki/skins/vector/components/footer.less deleted file mode 100644 index 3d61b669..00000000 --- a/www/www.reactos.org/wiki/skins/vector/components/footer.less +++ /dev/null @@ -1,57 +0,0 @@ -/* Footer */ -div#footer { - margin-left: 10em; - margin-top: 0; - padding: 0.75em; - direction: ltr; - - ul { - list-style-type: none; - list-style-image: none; - margin: 0; - padding: 0; - - li { - margin: 0; - padding: 0; - padding-top: 0.5em; - padding-bottom: 0.5em; - color: #333; - font-size: 0.7em; - } - } - - #footer-icons { - float: right; - - li { - float: left; - margin-left: 0.5em; - line-height: 2em; - text-align: right; - } - } - - #footer-info { - li { - line-height: 1.4em; - } - } - - #footer-places { - li { - float: left; - margin-right: 1em; - line-height: 2em; - } - } -} - -body.ltr { - div#footer { - #footer-places { - /* @noflip */ - float: left; - } - } -} diff --git a/www/www.reactos.org/wiki/skins/vector/components/navigation.less b/www/www.reactos.org/wiki/skins/vector/components/navigation.less deleted file mode 100644 index f3a5a49d..00000000 --- a/www/www.reactos.org/wiki/skins/vector/components/navigation.less +++ /dev/null @@ -1,134 +0,0 @@ -@import "mediawiki.mixins"; -@import "personalMenu"; -@import "collapsibleNav"; -@import "search"; -@import "tabs"; - -/* Hide, but keep accessible for screen-readers */ -#mw-navigation h2 { - position: absolute; - top: -9999px; -} - -/* Head */ -#mw-page-base { - height: 5em; - background-position: bottom left; - background-repeat: repeat-x; - /* This image is only a fallback (for IE 6-9), so we do not @embed it. */ - background-image: url('images/page-fade.png'); - .vertical-gradient(@body-background-color, @menu-background-color, 50%, 100%); - background-color: @body-background-color; -} - -#mw-head-base { - margin-top: -5em; - margin-left: 10em; - height: 5em; -} - -div#mw-head { - position: absolute; - top: 0; - right: 0; - width: 100%; - - h3 { - margin: 0; - padding: 0; - } -} - -/* Navigation Containers */ -#left-navigation { - float: left; - margin-left: 10em; - margin-top: 2.5em; - /* When right nav would overlap left nav, it's placed below it - (normal CSS floats behavior). This rule ensures that no empty space - is shown between them due to right nav's margin-top. Page layout - is still broken, but at least the nav overlaps only the page title - instead of half the content. */ - margin-bottom: -2.5em; - /* IE 6 double-margin bug fix */ - display: inline; -} - -#right-navigation { - float: right; - margin-top: 2.5em; -} - -/* Logo */ -#p-logo { - position: absolute; - top: -160px; - left: 0; - width: 10em; - height: 160px; - - a { - display: block; - width: 10em; - height: 160px; - background-repeat: no-repeat; - background-position: center center; - text-decoration: none; - } -} - -/* Panel */ -div#mw-panel { - font-size: @menu-main-font-size; - position: absolute; - top: 160px; - padding-top: 1em; - width: 10em; - left: 0; - - div.portal { - padding-bottom: 1.5em; - direction: ltr; - - h3 { - font-weight: normal; - color: #444; - padding: @menu-main-heading-padding; - cursor: default; - border: none; - font-size: @menu-main-heading-font-size; - } - - div.body { - padding-top: 0.5em; - margin: @menu-main-body-margin; - - .background-image('images/portal-break.png'); - background-repeat: no-repeat; - background-position: top left; - - ul { - list-style-type: none; - list-style-image: none; - padding: @menu-main-body-padding; - margin: 0; - - li { - line-height: 1.125em; - padding: 0; - padding-bottom: 0.5em; - margin: 0; - font-size: @menu-main-body-font-size; - word-wrap: break-word; - - a { - color: @menu-main-body-link-color; - &:visited { - color: @menu-main-body-link-visited-color; - } - } - } - } - } - } -} diff --git a/www/www.reactos.org/wiki/skins/vector/components/notifications.less b/www/www.reactos.org/wiki/skins/vector/components/notifications.less deleted file mode 100644 index cadb61c8..00000000 --- a/www/www.reactos.org/wiki/skins/vector/components/notifications.less +++ /dev/null @@ -1,20 +0,0 @@ -/* mediawiki.notification */ -.skin-vector { - .mw-notification-area { - font-size: 0.8em; - } - - .mw-notification-area-layout { - top: 7em; - } - - .mw-notification { - background-color: #fff; - background-color: rgba(255, 255, 255, 0.93); - padding: 0.75em 1.5em; - border: solid 1px @content-border-color; - border-radius: 0.75em; - -webkit-box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125); - box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.125); - } -} diff --git a/www/www.reactos.org/wiki/skins/vector/components/personalMenu.less b/www/www.reactos.org/wiki/skins/vector/components/personalMenu.less deleted file mode 100644 index 72569295..00000000 --- a/www/www.reactos.org/wiki/skins/vector/components/personalMenu.less +++ /dev/null @@ -1,41 +0,0 @@ -/* Personal */ -#p-personal { - position: absolute; - top: 0.33em; - right: 0.75em; - /* Display on top of page tabs - bugs 37158, 48078 */ - z-index: 100; - - h3 { - display: none; - } - - ul { - list-style-type: none; - list-style-image: none; - margin: 0; - padding-left: 10em; /* Keep from overlapping logo */ - } - - li { - line-height: 1.125em; - /* @noflip */ - float: left; - margin-left: 0.75em; - margin-top: 0.5em; - font-size: @menu-personal-font-size; - white-space: nowrap; - } -} - -/* Icon for Usernames */ -#pt-userpage, -#pt-anonuserpage, -#pt-login { - background-position: left top; - background-repeat: no-repeat; - /* SVG support using a transparent gradient to guarantee cross-browser - * compatibility (browsers able to understand gradient syntax support also SVG) */ - .background-image-svg('images/user-icon.svg', 'images/user-icon.png'); - padding-left: 15px !important; -} diff --git a/www/www.reactos.org/wiki/skins/vector/components/search.less b/www/www.reactos.org/wiki/skins/vector/components/search.less deleted file mode 100644 index 46c30302..00000000 --- a/www/www.reactos.org/wiki/skins/vector/components/search.less +++ /dev/null @@ -1,113 +0,0 @@ -/* Search */ -#p-search { - /* @noflip */ - float: left; - margin-right: 0.5em; - margin-left: 0.5em; - - h3 { - display: none; - } - - form, - input { - margin: 0; - margin-top: 0.4em; - } -} - -div#simpleSearch { - display: block; - width: 14em; - height: 1.4em; - margin-top: 0.65em; - position: relative; - min-height: 1px; /* Gotta trigger hasLayout for IE7 */ - border: solid 1px #aaa; - color: black; - background-color: white; - .background-image('images/search-fade.png'); - background-position: top left; - background-repeat: repeat-x; - - // Styles for both the search input and the button - input { - position: absolute; - margin: 0; - padding: 0; - border: 0; - background-color: transparent; - color: black; - } - - // The search input - #searchInput { - top: 0; - left: 0; - width: 90%; - padding: 0.2em 0 0.2em 0.2em; - font-size: 13px; - direction: ltr; - - &:focus { - outline: none; - } - - // These rules MAY NOT be merged because of how CSS requires browsers - // to parse unrecognized selectors! - // Note these rules ensure that placeholder text can be distinguished from - // standard text. In browsers which make this distinction clear these rules - // are not necessary. - // For inputs that use jquery.placeholder.js e.g. IE9- - &.placeholder { - color: #999; - } - // Distinguish placeholder text in IE10+ - &:-ms-input-placeholder { - color: #999; - } - // Distinguish placeholder text in Firefox 18- - &:-moz-placeholder { - color: #999; - } - - // Undo the styles Webkit browsers apply to type=search fields, - // we provide our own - -webkit-appearance: textfield; - - &::-webkit-search-decoration, - &::-webkit-search-cancel-button, - &::-webkit-search-results-button, - &::-webkit-search-results-decoration { - -webkit-appearance: textfield; - } - } - - // The buttons. They are displayed in the same position, and if both are - // present the fulltext search one obscures the 'Go' one. - #searchButton, - #mw-searchButton { - top: 0; - right: 0; - width: 10%; - height: 100%; - cursor: pointer; - /* Hide button text and replace it with the image. */ - /* This would be 100% if not for Firefox shenanigans (bug 60900). */ - text-indent: 200%; - /* Needed to make IE6 respect the text-indent. */ - line-height: 1; - /* Opera 12 on RTL flips the text in a funny way without this. */ - /* @noflip */ - direction: ltr; - white-space: nowrap; - overflow: hidden; - .background-image-svg('images/search-ltr.svg', 'images/search-ltr.png'); - background-position: center center; - background-repeat: no-repeat; - } - - #mw-searchButton { - z-index: 1; - } -} diff --git a/www/www.reactos.org/wiki/skins/vector/components/tabs.less b/www/www.reactos.org/wiki/skins/vector/components/tabs.less deleted file mode 100644 index 7e24ae78..00000000 --- a/www/www.reactos.org/wiki/skins/vector/components/tabs.less +++ /dev/null @@ -1,274 +0,0 @@ -/* -Styling for namespace tabs (page, discussion) and views (read, edit, view history, watch and other actions) -*/ - -/* Navigation Labels */ -div.vectorTabs h3, -div.vectorMenu h3 span { - display: none; -} - -/* Namespaces and Views */ -div.vectorTabs { - /* @noflip */ - float: left; - height: 2.5em; - .background-image('images/tab-break.png'); - background-position: bottom left; - background-repeat: no-repeat; - padding-left: 1px; - - ul { - /* @noflip */ - float: left; - height: 100%; - list-style-type: none; - list-style-image: none; - margin: 0; - padding: 0; - .background-image('images/tab-break.png'); - background-position: right bottom; - background-repeat: no-repeat; - - li { - /* @noflip */ - float: left; - line-height: 1.125em; - /* For IE6, overridden later to display:block by modern browsers */ - display: inline-block; - height: 100%; - margin: 0; - padding: 0; - background-color: #f3f3f3; - .background-image('images/tab-normal-fade.png'); - background-position: bottom left; - background-repeat: repeat-x; - white-space: nowrap; - } - - /* IGNORED BY IE6 which doesn't support child selector */ - > li { - display: block; - } - } - - li { - &.new { - a, - a:visited{ - color: #a55858; - } - } - - &.selected { - .background-image('images/tab-current-fade.png'); - a, - a:visited{ - color: #333; - text-decoration: none; - } - } - - &.icon { - a { - background-position: bottom right; - background-repeat: no-repeat; - } - } - - a { - /* For IE6, overridden later to display:block by modern browsers */ - display: inline-block; - height: 1.9em; - padding-left: 0.5em; - padding-right: 0.5em; - color: @menu-link-color; - cursor: pointer; - font-size: 0.8em; - } - - /* Ignored by IE6 which doesn't support child selector */ - > a { - display: block; - } - } - - span { - display: inline-block; - .background-image('images/tab-break.png'); - background-position: bottom right; - background-repeat: no-repeat; - - a { - /* For IE6, overridden later to display:block by modern browsers */ - display: inline-block; - padding-top: 1.25em; - } - - /* Ignored by IE6 which doesn't support child selector */ - > a { - /* @noflip */ - float: left; - display: block; - } - } -} - -/* Variants and Actions */ -div.vectorMenu { - /* @noflip */ - direction: ltr; - /* @noflip */ - float: left; - .background-image-svg('images/arrow-down-icon.svg', 'images/arrow-down-icon.png'); - /* @noflip */ - background-position: 100% 60%; - background-repeat: no-repeat; - cursor: pointer; - .transition(background-position 250ms); -} - -div.vectorMenu.menuForceShow { - background-position: 100% 100%; -} - -div.vectorMenuFocus { - .background-image-svg('images/arrow-down-focus-icon.svg', 'images/arrow-down-focus-icon.png'); - background-position: 100% 60%; -} - -body.rtl div.vectorMenu { - /* @noflip */ - direction: rtl; -} - -/* OVERRIDDEN BY COMPLIANT BROWSERS */ -div#mw-head div.vectorMenu h3 { - /* @noflip */ - float: left; - .background-image('images/tab-break.png'); - background-repeat: no-repeat; - background-position: bottom left; - margin-left: -1px; -} - -/* IGNORED BY IE6 */ -div#mw-head div.vectorMenu > h3 { - background-image: none; -} - -div#mw-head div.vectorMenu h4, -div.vectorMenu#p-variants #mw-vector-current-variant { - display: inline-block; - float: left; - font-size: 0.8em; - padding-left: 0.5em; - padding-top: 1.375em; - font-weight: normal; - border: none; -} - -/* OVERRIDDEN BY COMPLIANT BROWSERS */ -div.vectorMenu h3 a { - display: inline-block; - width: 24px; - height: 1.9em; - text-decoration: none; - .background-image('images/tab-break.png'); - background-repeat: no-repeat; - background-position: bottom right; -} - -/* IGNORED BY IE6 */ -div.vectorMenu h3 > a { - display: block; -} - -div.vectorMenu div.menu { - position: relative; - display: none; - clear: both; - text-align: left; -} - -/* OVERRIDDEN BY COMPLIANT BROWSERS */ -body.rtl div.vectorMenu div.menu { - /* @noflip */ - margin-left: 24px; -} - -/* IGNORED BY IE6 */ -body.rtl div.vectorMenu > div.menu { - /* @noflip */ - margin-left: auto; -} - -/* IGNORED BY IE6 */ -/* Also fixes old versions of FireFox */ -body.rtl div.vectorMenu > div.menu, -x:-moz-any-link { - /* @noflip */ - margin-left: 23px; -} - -/* Enable forcing showing of the menu for accessibility */ -div.vectorMenu:hover div.menu, -div.vectorMenu.menuForceShow div.menu { - display: block; -} - -div.vectorMenu ul { - position: absolute; - background-color: white; - border: solid 1px silver; - border-top-width: 0; - list-style-type: none; - list-style-image: none; - padding: 0; - margin: 0; - margin-left: -1px; - text-align: left; -} - -/* Fixes old versions of FireFox */ -div.vectorMenu ul, -x:-moz-any-link { - min-width: 5em; -} - -/* Returns things back to normal in modern versions of FireFox */ -div.vectorMenu ul, -x:-moz-any-link, -x:default { - min-width: 0; -} - -div.vectorMenu li { - padding: 0; - margin: 0; - text-align: left; - line-height: 1em; -} - -/* OVERRIDDEN BY COMPLIANT BROWSERS */ -div.vectorMenu li a { - display: inline-block; - padding: 0.5em; - white-space: nowrap; - color: @menu-link-color; - cursor: pointer; - font-size: 0.8em; -} - -/* IGNORED BY IE6 */ -div.vectorMenu li > a { - display: block; -} - -div.vectorMenu li.selected a, -div.vectorMenu li.selected a:visited { - color: #333; - text-decoration: none; -} - -@import 'watchstar.less'; diff --git a/www/www.reactos.org/wiki/skins/vector/components/watchstar.less b/www/www.reactos.org/wiki/skins/vector/components/watchstar.less deleted file mode 100644 index 1a6d1fcf..00000000 --- a/www/www.reactos.org/wiki/skins/vector/components/watchstar.less +++ /dev/null @@ -1,46 +0,0 @@ -@import "mediawiki.mixins.rotation" - -/* Watch/Unwatch Icon Styling */ -#ca-unwatch.icon a, -#ca-watch.icon a { - margin: 0; - padding: 0; - display: block; - width: 26px; - /* This hides the text but shows the background image */ - padding-top: 3.1em; - margin-top: 0; - /* Only applied in IE6 */ - margin-top: -0.8em !ie; - height: 0; - overflow: hidden; - background-position: 5px 60%; -} -#ca-unwatch.icon a { - .background-image-svg('images/unwatch-icon.svg', 'images/unwatch-icon.png'); -} -#ca-watch.icon a { - .background-image-svg('images/watch-icon.svg', 'images/watch-icon.png'); -} -#ca-unwatch.icon a:hover, -#ca-unwatch.icon a:focus { - .background-image-svg('images/unwatch-icon-hl.svg', 'images/unwatch-icon-hl.png'); -} -#ca-watch.icon a:hover, -#ca-watch.icon a:focus { - .background-image-svg('images/watch-icon-hl.svg', 'images/watch-icon-hl.png'); -} -#ca-unwatch.icon a.loading, -#ca-watch.icon a.loading { - .background-image-svg('images/watch-icon-loading.svg', 'images/watch-icon-loading.png'); - .rotation(700ms); - /* Suppress the hilarious rotating focus outline on Firefox */ - outline: none; - background-position: 50% 60%; - -webkit-transform-origin: 50% 57%; - transform-origin: 50% 57%; -} -#ca-unwatch.icon a span, -#ca-watch.icon a span { - display: none; -} diff --git a/www/www.reactos.org/wiki/skins/vector/csshover.htc b/www/www.reactos.org/wiki/skins/vector/csshover.htc deleted file mode 100644 index a13ea68d..00000000 --- a/www/www.reactos.org/wiki/skins/vector/csshover.htc +++ /dev/null @@ -1,284 +0,0 @@ - - \ No newline at end of file diff --git a/www/www.reactos.org/wiki/skins/vector/csshover.min.htc b/www/www.reactos.org/wiki/skins/vector/csshover.min.htc deleted file mode 100644 index 7e5c57b3..00000000 --- a/www/www.reactos.org/wiki/skins/vector/csshover.min.htc +++ /dev/null @@ -1,12 +0,0 @@ - - diff --git a/www/www.reactos.org/wiki/skins/vector/screen-hd.less b/www/www.reactos.org/wiki/skins/vector/screen-hd.less deleted file mode 100644 index 8b286f4e..00000000 --- a/www/www.reactos.org/wiki/skins/vector/screen-hd.less +++ /dev/null @@ -1,30 +0,0 @@ -/* Vector screen styles for high definition displays */ - -@import "variables.less"; - -div#content { - margin-left: 11em; - padding: 1.25em 1.5em 1.5em 1.5em; -} -#p-logo { - left: @menu-main-logo-left; -} -div#footer { - margin-left: 11em; - padding: 1.25em; -} -#mw-panel { - padding-left: 0.5em; -} -#p-search { - margin-right: 1em; -} -#left-navigation { - margin-left: 11em; -} -#p-personal { - right: 1em; -} -#mw-head-base { - margin-left: 11em; -} diff --git a/www/www.reactos.org/wiki/skins/vector/screen.less b/www/www.reactos.org/wiki/skins/vector/screen.less deleted file mode 100644 index f7b374f5..00000000 --- a/www/www.reactos.org/wiki/skins/vector/screen.less +++ /dev/null @@ -1,10 +0,0 @@ -/* Vector screen styles */ - -@import "variables.less"; - -@import "components/common.less"; -@import "components/animations.less"; -@import "components/navigation.less"; -@import "components/footer.less"; -@import 'components/notifications.less'; -@import "components/externalLinks.less"; diff --git a/www/www.reactos.org/wiki/skins/vector/special.less b/www/www.reactos.org/wiki/skins/vector/special.less deleted file mode 100644 index 6af4b1ef..00000000 --- a/www/www.reactos.org/wiki/skins/vector/special.less +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Adjusts for decreased margin-bottom for h2 elements inside #content div - * introduced in March / April 2014 typography update. - */ -table.mw-specialpages-table { - margin-top: 0; -} diff --git a/www/www.reactos.org/wiki/skins/vector/special.preferences.less b/www/www.reactos.org/wiki/skins/vector/special.preferences.less deleted file mode 100644 index a9b10065..00000000 --- a/www/www.reactos.org/wiki/skins/vector/special.preferences.less +++ /dev/null @@ -1,114 +0,0 @@ -@import "mediawiki.mixins"; -@import "variables"; - -/** - * The following code is highly modified from monobook. It would be nice if the - * preftoc id was more human readable like preferences-toc for instance, - * howerver this would require backporting the other skins. - */ - -#preftoc { - /* Tabs */ - width: 100%; - float: left; - clear: both; - margin: 0 !important; - padding: 0 !important; - .background-image('images/preferences/break.png'); - background-position: bottom left; - background-repeat: no-repeat; - - li { - /* Tab */ - float: left; - margin: 0; - padding: 0; - padding-right: 1px; - height: 2.25em; - white-space: nowrap; - list-style-type: none; - list-style-image: none; - .background-image('images/preferences/break.png'); - background-position: bottom right; - background-repeat: no-repeat; - - /* Sadly, IE6 won't understand this */ - &:first-child { - margin-left: 1px; - } - - &.selected { - a { - .background-image('images/preferences/fade.png'); - background-position: bottom; - background-repeat: repeat-x; - color: #333; - text-decoration: none; - } - } - } - - a, - a:active { - display: inline-block; - position: relative; - color: @menu-link-color; - padding: 0.5em; - text-decoration: none; - background-image: none; - font-size: 0.9em; - } - - a:hover, - a:focus { - text-decoration: underline; - } -} - -#preferences { - float: left; - width: 100%; - margin: 0; - margin-top: -2px; - clear: both; - border: solid 1px #ccc; - background-color: #fafafa; - - fieldset { - border: none; - border-top: solid 1px #ccc; - - &.prefsection { - border: none; - padding: 0; - margin: 1em; - - legend.mainLegend { - display: none; - } - } - } - - legend { - color: #666; - } - - td { - padding-left: 0.5em; - padding-right: 0.5em; - } - - div.mw-prefs-buttons { - padding: 1em; - - input { - margin-right: 0.25em; - } - } -} - -.htmlform-tip { - font-size: x-small; - padding: .2em 2em; - color: #666; -} diff --git a/www/www.reactos.org/wiki/skins/vector/vector.js b/www/www.reactos.org/wiki/skins/vector/vector.js deleted file mode 100644 index 0bc114a4..00000000 --- a/www/www.reactos.org/wiki/skins/vector/vector.js +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Vector-specific scripts - */ -jQuery( function ( $ ) { - $( 'div.vectorMenu' ).each( function () { - var $el = $( this ); - $el.find( '> h3 > a' ).parent() - .attr( 'tabindex', '0' ) - // For accessibility, show the menu when the h3 is clicked (bug 24298/46486) - .on( 'click keypress', function ( e ) { - if ( e.type === 'click' || e.which === 13 ) { - $el.toggleClass( 'menuForceShow' ); - e.preventDefault(); - } - } ) - // When the heading has focus, also set a class that will change the arrow icon - .focus( function () { - $el.find( '> a' ).addClass( 'vectorMenuFocus' ); - } ) - .blur( function () { - $el.find( '> a' ).removeClass( 'vectorMenuFocus' ); - } ) - .find( '> a:first' ) - // As the h3 can already be focused there's no need for the link to be focusable - .attr( 'tabindex', '-1' ); - } ); - - /** - * Collapsible tabs for Vector - */ - var $cactions = $( '#p-cactions' ); - - // Bind callback functions to animate our drop down menu in and out - // and then call the collapsibleTabs function on the menu - $( '#p-views ul' ) - .bind( 'beforeTabCollapse', function () { - // If the dropdown was hidden, show it - if ( $cactions.hasClass( 'emptyPortlet' ) ) { - $cactions - .removeClass( 'emptyPortlet' ) - .find( 'h3' ) - .css( 'width', '1px' ).animate( { 'width': '24px' }, 390 ); - } - } ) - .bind( 'beforeTabExpand', function () { - // If we're removing the last child node right now, hide the dropdown - if ( $cactions.find( 'li' ).length === 1 ) { - $cactions.find( 'h3' ).animate( { 'width': '1px' }, 390, function () { - $( this ).attr( 'style', '' ) - .parent().addClass( 'emptyPortlet' ); - }); - } - } ) - .collapsibleTabs(); -} );