83a28d177f
Storybook.js provides a framework for viewing and working with UI components. https://storybook.js.org/ This patch adds the Storybook.js UI library to Popups for the purposes of viewing multiple previews at once. This enables viewing page previews in the following states: - with thumbnails - without thumbnails - with SVG thumbnails - with narrow thumbnails - with white background thumbnails - in RTL languages - in non-latin languages - disambiguation popups Storybook also allows users to change the image or text of a popup through a GUI. This patch sets up Storybook as a "mini" repo inside the.storybook folder with a seperate package.json file to avoid incompatibilities with the current webpack/babel (or even Node) versions used in the Popups repo. Storybook requires at least Node v8.3 to run. (an .nvmrc file with 11.3.0 has been added to the .stories dir). To start: `cd .storybook && npm install && npm run start`. Bug: T205989 Change-Id: I041e46c4f0cf173950015067e2dce81c023d3fdd |
||
---|---|---|
.. | ||
mediawiki.ui | ||
custom.less | ||
mediawiki.mixins | ||
mediawiki.mixins.animation | ||
mediawiki.mixins.less | ||
README.md |
LESS imports from Mediawiki-core
The following files:
- mediawiki.mixins
- mediawiki.mixins.animation
- mediawiki.mixins.less
are LESS files containing one-line imports that correspond to files in mediawiki-core. This file structure is required to mimick ResourceLoaders LESS module-import behaviour.
ResourceLoader can resolve LESS modules with file paths like @import "mediawiki.ui/variables"
.
Webpack however, cannot do this easily. The default LESS resolver requires
files ending in ".less", and although webpack can create an alias to a
module, that alias cannot include a path separator.
The webpack LESS-loader treats imports that don't begin with a relative or absolute filepath as coming from the current directory (.i.e. "./"). However it provides an option to specify a custom module resolution path. That path is set to this folder, and LESS files that can't be resolved by either relative or absolute paths are searched for here.
Since this custom resolver requires also requires a ".less" extension, files are duplicated so that "mediawiki.mixins" and "mediawiki.mixins.less" can both be resolved.