diff --git a/.eslintignore b/.eslintignore index 3728be369..45f0f1d2e 100644 --- a/.eslintignore +++ b/.eslintignore @@ -23,6 +23,10 @@ /material /site +# Files used and generated by flow +/lib/declarations +/tmp + # Files generated by visual tests /gemini-report /tests/visual/data diff --git a/.eslintrc b/.eslintrc index 42e6738b4..b559b87af 100644 --- a/.eslintrc +++ b/.eslintrc @@ -169,7 +169,7 @@ "space-unary-ops": 2, "spaced-comment": [2, "always", { "line": { - "markers": ["/"], + "markers": ["/", ":"], "exceptions": ["-", "+"] }, "block": { diff --git a/.flowconfig b/.flowconfig new file mode 100644 index 000000000..c6d678c4c --- /dev/null +++ b/.flowconfig @@ -0,0 +1,8 @@ +[ignore] +.*/node_modules/.* + +[libs] +lib/declarations/ + +[options] +strip_root=true diff --git a/.githooks/post-merge/npm-update.sh b/.githooks/post-merge/npm-update.sh index cc63394ee..035401427 100755 --- a/.githooks/post-merge/npm-update.sh +++ b/.githooks/post-merge/npm-update.sh @@ -25,6 +25,6 @@ CHANGED="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)" # Perform install and prune of NPM dependencies if package.json changed if $(echo "$CHANGED" | grep --quiet package.json); then - echo "Hook[post-merge]: Updating dependencies" + echo -e "\x1B[33m!\x1B[0m Updating dependencies" npm install && npm prune fi diff --git a/.githooks/pre-commit/branch.sh b/.githooks/pre-commit/branch.sh index 7907e9e43..72f6f1773 100755 --- a/.githooks/pre-commit/branch.sh +++ b/.githooks/pre-commit/branch.sh @@ -22,12 +22,14 @@ # Determine current branch BRANCH=$(git rev-parse --abbrev-ref HEAD) -echo "Hook[pre-commit]: Checking branch" +MESSAGE="Commits on master are only allowed via Pull Requests. Aborting." # If we're on master, abort commit if [[ "$BRANCH" == "master" ]]; then - echo "Commits on master are only allowed via Pull Requests. Aborting." + echo -e "\x1B[31m✗\x1B[0m Branch: $BRANCH - \x1B[31m$MESSAGE\x1B[0m" exit 1 +else + echo -e "\x1B[32m✓\x1B[0m Branch: $BRANCH" fi # We're good diff --git a/.githooks/pre-commit/lint.sh b/.githooks/pre-commit/check.sh similarity index 76% rename from .githooks/pre-commit/lint.sh rename to .githooks/pre-commit/check.sh index 502620ecc..4364e88fb 100755 --- a/.githooks/pre-commit/lint.sh +++ b/.githooks/pre-commit/check.sh @@ -22,6 +22,7 @@ # Patch file to store unindexed changes PATCH_FILE=".working-tree.patch" +MESSAGE="Terminated with errors" # Revert changes that have been registered in the patch file function cleanup { @@ -30,7 +31,7 @@ function cleanup { git apply "$PATCH_FILE" 2> /dev/null rm "$PATCH_FILE" fi - exit $EXIT_CODE + exit $EXIT_CODE } # Register signal handlers @@ -44,8 +45,26 @@ git checkout -- . FILES=$(git diff --cached --name-only --diff-filter=ACMR | \ grep "\.\(js\|jsx\|scss\)$") -# Run the check and print indicator +# Run check and print indicator if [ "$FILES" ]; then - echo "Hook[pre-commit]: Running linter" - npm run lint --silent || exit 1 + + # If linter terminated with errors, abort commit + if [ $? -gt 0 ]; then + echo -e "\x1B[31m✗\x1B[0m Linter - \x1B[31m$MESSAGE\x1B[0m" + exit 1 + else + echo -e "\x1B[32m✓\x1B[0m Linter" + fi + + # If flow terminated with errors, abort commit + npm run flow --silent > /dev/null + if [ $? -gt 0 ]; then + echo -e "\x1B[31m✗\x1B[0m Flow - \x1B[31m$MESSAGE\x1B[0m" + exit 1 + else + echo -e "\x1B[32m✓\x1B[0m Flow" + fi fi + +# We're good +exit 0 diff --git a/.gitignore b/.gitignore index 2fd46324f..388e11252 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,7 @@ # NPM-related /node_modules /npm-debug.log* +/yarn-error.log # Files generated by build /build @@ -31,6 +32,9 @@ /MANIFEST /site +# Files generated by flow typechecker +/tmp + # Files generated by visual tests /gemini-report /tests/visual/baseline/local diff --git a/.travis.yml b/.travis.yml index a5d83512f..ed5e871c6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,31 +21,16 @@ language: node_js sudo: false +# ----------------------------------------------------------------------------- +# Regular builds +# ----------------------------------------------------------------------------- + # Node.js versions node_js: - 5 - 6 - 7 -# Build visual tests separately -matrix: - include: - - node_js: 5 - addons: - artifacts: - paths: - - gemini-report - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - gcc-4.8 - - g++-4.8 - env: - - CXX=g++-4.8 - install: yarn install - script: yarn run test:visual:run - # Limit clone depth to 5, to speed up build git: depth: 5 @@ -58,13 +43,72 @@ cache: - node_modules # Install yarn as Travis doesn't support it out of the box -before_install: npm install -g yarn - -# Do not install optional dependencies by default -install: yarn install --ignore-optional +before_install: + - npm install -g yarn # Install dependencies -before_script: pip install --user -r requirements.txt +install: + - yarn install --ignore-optional + - pip install --user -r requirements.txt # Perform build and tests -script: yarn run build +script: + - yarn run build + +# ----------------------------------------------------------------------------- +# Additional builds +# ----------------------------------------------------------------------------- + +# Matrix for additional builds +matrix: + include: + + # Build release and docker image and send to PyPI and Docker Hub. + - node_js: 5 + services: + - docker + env: + - __TASK=RELEASE + + # If we're not on a release branch, exit early and indicate success + before_install: + - echo "$TRAVIS_BRANCH" | grep -qvE "^[0-9.]+$" && exit 0; :; + + # Install wheel for build + install: + - pip install wheel + + # Perform build + script: + - python setup.py build sdist bdist_wheel --universal + - docker build -t $TRAVIS_REPO_SLUG . + + # If build was successful, publish + after_success: + + # Install twine and push release to PyPI + - pip install twine + - twine upload -u $PYPI_USERNAME -p $PYPI_PASSWORD dist/* + + # Push to Docker Hub + - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD + - docker tag $TRAVIS_REPO_SLUG $TRAVIS_REPO_SLUG:$TRAVIS_BRANCH + - docker tag $TRAVIS_REPO_SLUG $TRAVIS_REPO_SLUG:latest + - docker push $TRAVIS_REPO_SLUG + +# # Build visual tests separately - temporary disabled until tests stable +# - node_js: 5 +# addons: +# artifacts: +# paths: +# - gemini-report +# apt: +# sources: +# - ubuntu-toolchain-r-test +# packages: +# - gcc-4.8 +# - g++-4.8 +# env: +# - CXX=g++-4.8 +# install: yarn install +# script: yarn run test:visual:run diff --git a/CHANGELOG b/CHANGELOG index d6a4efcf4..e0d0cd361 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,15 @@ +mkdocs-material-1.0.5 (2017-02-18) + + * Fixed #153: Sidebar flows out of constrained area in Chrome 56 + * Fixed #159: Footer jitter due to JavaScript if content is short + +mkdocs-material-1.0.4 (2017-02-16) + + * Fixed #142: Documentation build errors if h1 is defined as raw HTML + * Fixed #164: PyPI release does not build and install + * Fixed offsets of targeted headlines + * Increased sidebar font size by 0.12rem + mkdocs-material-1.0.3 (2017-01-22) * Fixed #117: Table of contents items don't blur on fast scrolling diff --git a/Dockerfile b/Dockerfile index fb44f001a..fa120100a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,17 +21,30 @@ FROM jfloff/alpine-python:2.7-slim MAINTAINER Martin Donath -# Set working directory -WORKDIR /docs +# Set build directory +WORKDIR /tmp -# Install packages +# Install dependencies COPY requirements.txt . RUN \ pip install -r requirements.txt && \ - pip install mkdocs-material && \ rm requirements.txt -# Expose MkDocs default port +# Copy files necessary for build +COPY material material +COPY MANIFEST.in MANIFEST.in +COPY package.json package.json +COPY setup.py setup.py + +# Perform build and cleanup artifacts +RUN \ + python setup.py install && \ + rm -rf /tmp/* + +# Set working directory +WORKDIR /docs + +# Expose MkDocs development server port EXPOSE 8000 # Start development server by default diff --git a/Gulpfile.babel.js b/Gulpfile.babel.js index 02205bac0..615aec662 100755 --- a/Gulpfile.babel.js +++ b/Gulpfile.babel.js @@ -55,9 +55,11 @@ let args = yargs .default("sourcemaps", false) /* Create sourcemaps */ .argv -/* Only use the last value seen, so overrides are possible */ +/* Only use the last seen value if boolean, so overrides are possible */ args = Object.keys(args).reduce((result, arg) => { - result[arg] = [].concat(args[arg]).pop() + result[arg] = Array.isArray(args[arg]) && typeof args[arg][0] === "boolean" + ? [].concat(args[arg]).pop() + : args[arg] return result }, {}) @@ -151,9 +153,13 @@ gulp.task("assets:images:clean", /* * Build application logic + * + * When revisioning, the build must be serialized due to race conditions + * happening when two tasks try to write manifest.json simultaneously */ gulp.task("assets:javascripts:build:application", [ + args.revision ? "assets:javascripts:build:application" : false, args.clean ? "assets:javascripts:clean" : false, args.lint ? "assets:javascripts:lint" : false ].filter(t => t), @@ -161,16 +167,20 @@ gulp.task("assets:javascripts:build:application", [ /* * Build custom modernizr + * + * When revisioning, the build must be serialized due to race conditions + * happening when two tasks try to write manifest.json simultaneously */ gulp.task("assets:javascripts:build:modernizr", [ "assets:stylesheets:build", + args.revision ? "assets:javascripts:build:application" : false, args.clean ? "assets:javascripts:clean" : false, args.lint ? "assets:javascripts:lint" : false ].filter(t => t), load("assets/javascripts/build/modernizr")) /* - * Build application logic and modernizr + * Build application logic and Modernizr */ gulp.task("assets:javascripts:build", [ "assets:javascripts:build:application", @@ -183,6 +193,12 @@ gulp.task("assets:javascripts:build", [ gulp.task("assets:javascripts:clean", load("assets/javascripts/clean")) +/* + * Annotate JavaScript + */ +gulp.task("assets:javascripts:annotate", + load("assets/javascripts/annotate")) + /* * Lint JavaScript */ @@ -359,10 +375,6 @@ gulp.task("watch", [ if (args.mkdocs) gulp.start("mkdocs:serve") - /* Start karma test runner */ - // if (args.karma) - // gulp.start("tests:unit:watch") - /* Rebuild stylesheets */ gulp.watch([ `${config.assets.src}/stylesheets/**/*.scss` diff --git a/MANIFEST.in b/MANIFEST.in index c4fc1ece4..4e187d098 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -3,3 +3,4 @@ recursive-exclude site * recursive-exclude * __pycache__ recursive-exclude * *.py[co] include LICENSE +include package.json diff --git a/README.md b/README.md index 771b56683..6a442bdeb 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,17 @@ [![Travis][travis-image]][travis-link] -[![Dependencies][deps-image]][deps-link] [![Codacy][codacy-image]][codacy-link] [![Docker][docker-image]][docker-link] [![PyPI][pypi-image]][pypi-link] - [travis-image]: https://travis-ci.org/squidfunk/mkdocs-material.svg + [travis-image]: https://travis-ci.org/squidfunk/mkdocs-material.svg?branch=master [travis-link]: https://travis-ci.org/squidfunk/mkdocs-material - [deps-image]: https://david-dm.org/squidfunk/mkdocs-material/dev-status.svg - [deps-link]: https://david-dm.org/squidfunk/mkdocs-material?type=dev [codacy-image]: https://api.codacy.com/project/badge/Grade/fe07aa1fa91d453cb69711d3885c5d7e [codacy-link]: https://www.codacy.com/app/squidfunk/mkdocs-material?utm_source=github.com&utm_medium=referral&utm_content=squidfunk/mkdocs-material&utm_campaign=Badge_Grade - [docker-image]: https://img.shields.io/docker/pulls/squidfunk/mkdocs-material.svg + [docker-image]: https://img.shields.io/docker/automated/squidfunk/mkdocs-material.svg [docker-link]: https://hub.docker.com/r/squidfunk/mkdocs-material/ [pypi-image]: https://img.shields.io/pypi/v/mkdocs-material.svg [pypi-link]: https://pypi.python.org/pypi/mkdocs-material - # Material for MkDocs A Material Design theme for [MkDocs](http://www.mkdocs.org). diff --git a/docs/getting-started.md b/docs/getting-started.md index 44c1181d2..314d32c49 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -6,7 +6,7 @@ The official [Docker image][1] for Material comes with all dependencies pre-installed and ready-to-use with the latest version published on PyPI, - packaged in a very small image (27MB compressed). + packaged in a very small image (28MB compressed). ### Installing MkDocs @@ -246,7 +246,7 @@ extra: ``` [12]: https://fonts.google.com/specimen/Roboto - [13]: https://fonts.google.com/ + [13]: https://fonts.google.com [14]: https://fonts.google.com/specimen/Ubuntu ### Adding a logo @@ -300,6 +300,21 @@ google_analytics: - 'auto' ``` +### Disqus integation + +Material for MkDocs is integrated with [Disqus][16], so if you want to add a +comments section to your documentation set the shortname of your Disqus project +in your `mkdocs.yml`: + +``` yaml +extra: + disqus: 'your-disqus-shortname' +``` + +The necessary JavaScript is automatically included. + + [16]: https://disqus.com + ### Localization L10N In order to localize the labels (e.g. *Previous* and *Next* in the footer), @@ -309,6 +324,7 @@ translations inside the macro `t`: ``` jinja {% macro t(key) %}{{ { "edit.link.title": "Edit this page", + "comments": "Comments", "footer.previous": "Previous", "footer.next": "Next", "search.placeholder": "Search", @@ -318,7 +334,7 @@ translations inside the macro `t`: ``` Just copy the file from the original theme and make your adjustments. See the -section on [overriding partials][16] in the customization guide. +section on [overriding partials][17] in the customization guide. !!! warning "Migrating from Material 0.2.x" @@ -326,18 +342,18 @@ section on [overriding partials][16] in the customization guide. `mkdocs.yml`. With 1.0.0 this is no longer possible as the configuration will be ignored. - [16]: customization.md#overriding-partials + [17]: customization.md#overriding-partials ### More advanced customization If you want to change the general appearance of the Material theme, see -[this article][17] for more information on advanced customization. +[this article][18] for more information on advanced customization. - [17]: customization.md + [18]: customization.md ## Extensions -MkDocs supports several [Markdown extensions][18]. The following extensions +MkDocs supports several [Markdown extensions][19]. The following extensions are not enabled by default (see the link for which are enabled by default) but highly recommended, so they should be switched on at all times: @@ -351,18 +367,18 @@ markdown_extensions: For more information, see the following list of extensions supported by the Material theme including more information regarding installation and usage: -* [Admonition][19] -* [Codehilite][20] -* [Permalinks][21] -* [Footnotes][22] -* [PyMdown Extensions][23] +* [Admonition][20] +* [Codehilite][21] +* [Permalinks][22] +* [Footnotes][23] +* [PyMdown Extensions][24] - [18]: http://www.mkdocs.org/user-guide/writing-your-docs/#markdown-extensions - [19]: extensions/admonition.md - [20]: extensions/codehilite.md - [21]: extensions/permalinks.md - [22]: extensions/footnotes.md - [23]: extensions/pymdown.md + [19]: http://www.mkdocs.org/user-guide/writing-your-docs/#markdown-extensions + [20]: extensions/admonition.md + [21]: extensions/codehilite.md + [22]: extensions/permalinks.md + [23]: extensions/footnotes.md + [24]: extensions/pymdown.md ## Full example @@ -380,7 +396,7 @@ repo_name: 'GitHub' repo_url: 'https://github.com/my-github-handle/my-project' # Copyright -copyright: 'Copyright © 2016 John Doe' +copyright: 'Copyright © 2016 - 2017 John Doe' # Documentation and theme theme: 'material' @@ -394,13 +410,14 @@ extra: font: text: 'Roboto' code: 'Roboto Mono' + disqus: 'your-disqus-shortname' social: - type: 'github' - link: 'https://github.com/squidfunk' + link: 'https://github.com/john-doe' - type: 'twitter' - link: 'https://twitter.com/squidfunk' + link: 'https://twitter.com/jonh-doe' - type: 'linkedin' - link: 'https://de.linkedin.com/in/martin-donath-20a95039' + link: 'https://de.linkedin.com/in/john-doe' # Google Analytics google_analytics: diff --git a/docs/license.md b/docs/license.md index 569a9b93d..b531ea38c 100644 --- a/docs/license.md +++ b/docs/license.md @@ -2,7 +2,7 @@ **MIT License** -Copyright © 2016 Martin Donath +Copyright © 2016 - 2017 Martin Donath Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to diff --git a/docs/release-notes.md b/docs/release-notes.md index c7e40131b..8157cdd97 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -12,11 +12,29 @@ To determine the currently installed version, use the following command: ``` sh pip show mkdocs-material | grep -E ^Version -# Version 1.0.3 +# Version 1.0.4 ``` ## Changelog +### 1.0.5 _ February 18, 2017 + +* Fixed [#153][153]: Sidebar flows out of constrained area in Chrome 56 +* Fixed [#159][159]: Footer jitter due to JavaScript if content is short + + [153]: https://github.com/squidfunk/mkdocs-material/issues/153 + [159]: https://github.com/squidfunk/mkdocs-material/issues/159 + +### 1.0.4 _ February 16, 2017 + +* Fixed [#142][142]: Documentation build errors if `h1` is defined as raw HTML +* Fixed [#164][164]: PyPI release does not build and install +* Fixed offsets of targeted headlines +* Increased sidebar font size by `0.12rem` + + [142]: https://github.com/squidfunk/mkdocs-material/issues/142 + [164]: https://github.com/squidfunk/mkdocs-material/issues/164 + ### 1.0.3 _ January 22, 2017 * Fixed [#117][117]: Table of contents items don't blur on fast scrolling diff --git a/docs/specimen.md b/docs/specimen.md index fefccdea0..7eebde912 100644 --- a/docs/specimen.md +++ b/docs/specimen.md @@ -137,6 +137,24 @@ tincidunt. Aenean ullamcorper sit amet nulla at interdum. sagittis. Aliquam purus tellus, faucibus eget urna at, iaculis venenatis nulla. Vivamus a pharetra leo. +### Definition lists + +Lorem ipsum dolor sit amet + +: Sed sagittis eleifend rutrum. Donec vitae suscipit est. Nullam tempus + tellus non sem sollicitudin, quis rutrum leo facilisis. Nulla tempor + lobortis orci, at elementum urna sodales vitae. In in vehicula nulla. + + Duis mollis est eget nibh volutpat, fermentum aliquet dui mollis. + Nam vulputate tincidunt fringilla. + Nullam dignissim ultrices urna non auctor. + +Cras arcu libero + +: Aliquam metus eros, pretium sed nulla venenatis, faucibus auctor ex. Proin + ut eros sed sapien ullamcorper consequat. Nunc ligula ante, fringilla at + aliquam ac, aliquet sed mauris. + ## Code blocks ### Inline diff --git a/lib/declarations/fastclick.js b/lib/declarations/fastclick.js new file mode 100644 index 000000000..29d72cb4e --- /dev/null +++ b/lib/declarations/fastclick.js @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2016-2017 Martin Donath + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +/* ---------------------------------------------------------------------------- + * Declarations + * ------------------------------------------------------------------------- */ + +declare module "fastclick" { + + /* Type: FastClick */ + declare type FastClick = { + attach(name: HTMLElement): void + } + + /* Exports */ + declare export default FastClick +} diff --git a/src/assets/javascripts/components/Material/Sidebar/Container.js b/lib/declarations/js-cookie.js similarity index 64% rename from src/assets/javascripts/components/Material/Sidebar/Container.js rename to lib/declarations/js-cookie.js index b4a6bc038..b92da3284 100644 --- a/src/assets/javascripts/components/Material/Sidebar/Container.js +++ b/lib/declarations/js-cookie.js @@ -21,45 +21,23 @@ */ /* ---------------------------------------------------------------------------- - * Class + * Declarations * ------------------------------------------------------------------------- */ -export default class Container { +declare module "js-cookie" { - /** - * Monitor window height to stretch sidebar container to viewport - * - * @constructor - * @param {(string|HTMLElement)} el - Selector or HTML element - */ - constructor(el) { - this.el_ = (typeof el === "string") - ? document.querySelector(el) - : el - - /* Retrieve parent node */ - this.parent_ = this.el_.parentNode + /* Type: Options for setting cookie values */ + declare type Options = { + path?: string, + expires?: number | string } - /** - * Initialize container state - */ - setup() { - this.update() + /* Type: Cookie */ + declare type Cookie = { + getJSON(json: string): Object, + set(key: string, value: string, options?: Options): string } - /** - * Update minimum height - */ - update() { - const height = this.parent_.offsetHeight - this.el_.offsetTop - this.el_.style.minHeight = `${height}px` - } - - /** - * Reset minimum height - */ - reset() { - this.el_.style.minHeight = "" - } + /* Exports */ + declare export default Cookie } diff --git a/lib/declarations/jsx.js b/lib/declarations/jsx.js new file mode 100644 index 000000000..75a3940d8 --- /dev/null +++ b/lib/declarations/jsx.js @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2016-2017 Martin Donath + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +/* ---------------------------------------------------------------------------- + * Declarations + * ------------------------------------------------------------------------- */ + +declare class Jsx { + static createElement(tag: string, properties?: Object, + ...children?: Array> + ): HTMLElement +} + +/* Exports */ +declare export default Jsx diff --git a/lib/declarations/lunr.js b/lib/declarations/lunr.js new file mode 100644 index 000000000..5fe140543 --- /dev/null +++ b/lib/declarations/lunr.js @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2016-2017 Martin Donath + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +/* ---------------------------------------------------------------------------- + * Declarations + * ------------------------------------------------------------------------- */ + +/* + * Currently, it's not possible to export a function that returns a class type, + * as the imports just don't correctly work with flow. As a workaround we + * export an object until this error is fixed. + */ +declare module "lunr" { + declare function exports(name: () => void): Object +} diff --git a/lib/declarations/modernizr.js b/lib/declarations/modernizr.js new file mode 100644 index 000000000..565d8b4ad --- /dev/null +++ b/lib/declarations/modernizr.js @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2016-2017 Martin Donath + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +/* ---------------------------------------------------------------------------- + * Declarations + * ------------------------------------------------------------------------- */ + +declare class Modernizr { + static addTest(name: string, test: () => boolean): void +} + +/* Exports */ +declare export default Modernizr diff --git a/lib/providers/jsx.js b/lib/providers/jsx.js index d34995729..5bfc5d3c2 100644 --- a/lib/providers/jsx.js +++ b/lib/providers/jsx.js @@ -24,13 +24,13 @@ * Module * ------------------------------------------------------------------------- */ -export default /* JSX */ { +export default /* Jsx */ { /** * Create a native DOM node from JSX's intermediate representation * * @param {string} tag - Tag name - * @param {object} properties - Properties + * @param {?Object} properties - Properties * @param {...(string|number|Array)} children - Child nodes * @return {HTMLElement} Native DOM node */ diff --git a/lib/tasks/assets/javascripts/annotate.js b/lib/tasks/assets/javascripts/annotate.js new file mode 100644 index 000000000..d479b058d --- /dev/null +++ b/lib/tasks/assets/javascripts/annotate.js @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2016-2017 Martin Donath + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +import { transform } from "babel-core" +import jsdoc2flow from "flow-jsdoc" +import through from "through2" + +/* ---------------------------------------------------------------------------- + * Task: annotate JavaScript + * ------------------------------------------------------------------------- */ + +export default (gulp, config) => { + return () => { + return gulp.src(`${config.assets.src}/javascripts/**/*.{js,jsx}`) + + /* Linting */ + .pipe( + through.obj(function(file, enc, done) { + if (file.isNull() || file.isStream()) + return done() + + /* Perform Babel transformation to resolve JSX calls */ + const transformed = transform(file.contents.toString(), { + plugins: [ + ["transform-react-jsx", { + "pragma": "Jsx.createElement" + }] + ] + }) + + /* Annotate contents */ + file.contents = new Buffer(jsdoc2flow( + `/* @flow */\n\n${transformed.code}` + ).toString()) + + /* Push file to next stage */ + this.push(file) + done() + })) + + /* Print errors */ + .pipe(gulp.dest("tmp/assets/javascripts")) + } +} diff --git a/lib/tasks/assets/javascripts/build/application.js b/lib/tasks/assets/javascripts/build/application.js index 805753c2e..62cc51ebb 100644 --- a/lib/tasks/assets/javascripts/build/application.js +++ b/lib/tasks/assets/javascripts/build/application.js @@ -70,7 +70,7 @@ export default (gulp, config, args) => { /* Provide JSX helper */ new webpack.ProvidePlugin({ - JSX: path.join(process.cwd(), `${config.lib}/providers/jsx.js`) + Jsx: path.join(process.cwd(), `${config.lib}/providers/jsx.js`) }) ].concat( diff --git a/lib/tasks/assets/javascripts/lint.js b/lib/tasks/assets/javascripts/lint.js index f71250ecb..17c6e0e26 100644 --- a/lib/tasks/assets/javascripts/lint.js +++ b/lib/tasks/assets/javascripts/lint.js @@ -39,7 +39,7 @@ const format = eslint.getFormatter() export default (gulp, config) => { return () => { - return gulp.src(`${config.assets.src}/javascripts/**/*.js`) + return gulp.src(`${config.assets.src}/javascripts/**/*.{js,jsx}`) /* Linting */ .pipe( diff --git a/lib/tasks/tests/visual/generate.js b/lib/tasks/tests/visual/generate.js index 4f3031c0d..ca0dea700 100644 --- a/lib/tasks/tests/visual/generate.js +++ b/lib/tasks/tests/visual/generate.js @@ -51,10 +51,10 @@ export default (gulp, config) => { cwd: path.dirname(file.path) }) - /* Emit error, if any */ + /* Emit error, if any */ if (proc.status) this.emit("error", new util.PluginError("mkdocs", - `Terminated with errors: ${proc.stderr.toString()}`)) + `Terminated with errors: ${proc.stderr.toString()}`)) /* Terminate */ done() diff --git a/lib/tasks/tests/visual/session.js b/lib/tasks/tests/visual/session.js index f8dcf4e96..5e6fbda94 100644 --- a/lib/tasks/tests/visual/session.js +++ b/lib/tasks/tests/visual/session.js @@ -38,27 +38,35 @@ export default (gulp, config) => { /* Open SauceConnect tunnel */ }).then(() => { return new Promise((resolve, reject) => { - if (!process.env.SAUCE_USERNAME || - !process.env.SAUCE_ACCESS_KEY) - throw new Error( - "SauceConnect: please provide SAUCE_USERNAME " + - "and SAUCE_ACCESS_KEY") - /* Open tunnel */ - sauce.start( - `Local #${moniker.choose()}`, - process.env.SAUCE_USERNAME, - process.env.SAUCE_ACCESS_KEY, - err => { - return err ? reject(err) : resolve(sauce) - }) + /* Start SauceConnect tunnel */ + if (process.env.CI || process.env.SAUCE) { + if (!process.env.SAUCE_USERNAME || + !process.env.SAUCE_ACCESS_KEY) + throw new Error( + "SauceConnect: please provide SAUCE_USERNAME " + + "and SAUCE_ACCESS_KEY") + + /* Open tunnel */ + sauce.start( + `Local #${moniker.choose()}`, + process.env.SAUCE_USERNAME, + process.env.SAUCE_ACCESS_KEY, + err => { + return err ? reject(err) : resolve(sauce) + }) + } else { + resolve() + } }) /* Close tunnel on CTRL-C */ - .then(() => { + .then(runner => { return new Promise(resolve => { process.on("SIGINT", () => { - sauce.stop(resolve) + return runner + ? runner.stop(resolve) + : resolve() }) }) }) diff --git a/material/assets/javascripts/application-74bac261f2.js b/material/assets/javascripts/application-74bac261f2.js new file mode 100644 index 000000000..629a098f4 --- /dev/null +++ b/material/assets/javascripts/application-74bac261f2.js @@ -0,0 +1,3 @@ +window.app=function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=90)}([function(t,e,n){"use strict";var r=n(30)("wks"),o=n(22),i=n(1).Symbol,s="function"==typeof i,a=t.exports=function(t){return r[t]||(r[t]=s&&i[t]||(s?i:o)("Symbol."+t))};a.store=r},function(t,e,n){"use strict";var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(t,e,n){"use strict";var r=n(11);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){"use strict";var r=n(12),o=n(29);t.exports=n(5)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){"use strict";var r=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=r)},function(t,e,n){"use strict";t.exports=!n(25)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,n){"use strict";var r={}.hasOwnProperty;t.exports=function(t,e){return r.call(t,e)}},function(t,e,n){"use strict";t.exports={}},function(t,e,n){"use strict";var r=n(1),o=n(3),i=n(6),s=n(22)("src"),a="toString",c=Function[a],u=(""+c).split(a);n(4).inspectSource=function(t){return c.call(t)},(t.exports=function(t,e,n,a){var c="function"==typeof n;c&&(i(n,"name")||o(n,"name",e)),t[e]!==n&&(c&&(i(n,s)||o(n,s,t[e]?""+t[e]:u.join(String(e)))),t===r?t[e]=n:a?t[e]?t[e]=n:o(t,e,n):(delete t[e],o(t,e,n)))})(Function.prototype,a,function(){return"function"==typeof this&&this[s]||c.call(this)})},function(t,e,n){"use strict";var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},function(t,e,n){"use strict";var r=n(14);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};t.exports=function(t){return"object"===("undefined"==typeof t?"undefined":r(t))?null!==t:"function"==typeof t}},function(t,e,n){"use strict";var r=n(2),o=n(43),i=n(63),s=Object.defineProperty;e.f=n(5)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return s(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={createElement:function(t,e){var n=document.createElement(t);e&&Array.prototype.forEach.call(Object.keys(e),function(t){n.setAttribute(t,e[t])});for(var r=function t(e){Array.prototype.forEach.call(e,function(e){"string"==typeof e||"number"==typeof e?n.textContent+=e:Array.isArray(e)?t(e):n.appendChild(e)})},o=arguments.length,i=Array(o>2?o-2:0),s=2;s0?o:r)(t)}},function(t,e,n){"use strict";var r=n(45),o=n(16);t.exports=function(t){return r(o(t))}},function(t,e,n){"use strict";var r=0,o=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++r+o).toString(36))}},function(t,e,n){"use strict";t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){"use strict";var r=n(1),o=n(4),i=n(3),s=n(8),a=n(10),c="prototype",u=function t(e,n,u){var l,f,h,d,p=e&t.F,v=e&t.G,m=e&t.S,y=e&t.P,g=e&t.B,w=v?r:m?r[n]||(r[n]={}):(r[n]||{})[c],b=v?o:o[n]||(o[n]={}),_=b[c]||(b[c]={});v&&(u=n);for(l in u)f=!p&&w&&void 0!==w[l],h=(f?w:u)[l],d=g&&f?a(h,r):y&&"function"==typeof h?a(Function.call,h):h,w&&s(w,l,h,e&t.U),b[l]!=h&&i(b,l,d),y&&_[l]!=h&&(_[l]=h)};r.core=o,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e,n){"use strict";t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){"use strict";t.exports=n(1).document&&document.documentElement},function(t,e,n){"use strict";var r=n(28),o=n(24),i=n(8),s=n(3),a=n(6),c=n(7),u=n(48),l=n(18),f=n(54),h=n(0)("iterator"),d=!([].keys&&"next"in[].keys()),p="@@iterator",v="keys",m="values",y=function(){return this};t.exports=function(t,e,n,g,w,b,_){u(n,e,g);var E,S,x,k=function(t){if(!d&&t in A)return A[t];switch(t){case v:return function(){return new n(this,t)};case m:return function(){return new n(this,t)}}return function(){return new n(this,t)}},T=e+" Iterator",O=w==m,C=!1,A=t.prototype,P=A[h]||A[p]||w&&A[w],M=P||k(w),L=w?O?k("entries"):M:void 0,j="Array"==e?A.entries||P:P;if(j&&(x=f(j.call(new t)),x!==Object.prototype&&(l(x,T,!0),r||a(x,h)||s(x,h,y))),O&&P&&P.name!==m&&(C=!0,M=function(){return P.call(this)}),r&&!_||!d&&!C&&A[h]||s(A,h,M),c[e]=M,c[T]=y,w)if(E={values:O?M:k(m),keys:b?M:k(v),entries:L},_)for(S in E)S in A||i(A,S,E[S]);else o(o.P+o.F*(d||C),e,E);return E}},function(t,e,n){"use strict";t.exports=!1},function(t,e,n){"use strict";t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){"use strict";var r=n(1),o="__core-js_shared__",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},function(t,e,n){"use strict";var r,o,i,s=n(10),a=n(44),c=n(26),u=n(17),l=n(1),f=l.process,h=l.setImmediate,d=l.clearImmediate,p=l.MessageChannel,v=0,m={},y="onreadystatechange",g=function(){var t=+this;if(m.hasOwnProperty(t)){var e=m[t];delete m[t],e()}},w=function(t){g.call(t.data)};h&&d||(h=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return m[++v]=function(){a("function"==typeof t?t:Function(t),e)},r(v),v},d=function(t){delete m[t]},"process"==n(9)(f)?r=function(t){f.nextTick(s(g,t,1))}:p?(o=new p,i=o.port2,o.port1.onmessage=w,r=s(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(t){l.postMessage(t+"","*")},l.addEventListener("message",w,!1)):r=y in u("script")?function(t){c.appendChild(u("script"))[y]=function(){c.removeChild(this),g.call(t)}}:function(t){setTimeout(s(g,t,1),0)}),t.exports={set:h,clear:d}},function(t,e,n){"use strict";var r=n(20),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=function(){function t(t,e){for(var n=0;n-1?e:t}function d(t,e){e=e||{};var n=e.body;if(t instanceof d){if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new o(t.headers)),this.method=t.method,this.mode=t.mode,n||null==t._bodyInit||(n=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=e.credentials||this.credentials||"omit",!e.headers&&this.headers||(this.headers=new o(e.headers)),this.method=h(e.method||this.method||"GET"),this.mode=e.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function p(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var n=t.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");e.append(decodeURIComponent(r),decodeURIComponent(o))}}),e}function v(t){var e=new o;return t.split(/\r?\n/).forEach(function(t){var n=t.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();e.append(r,o)}}),e}function m(t,e){e||(e={}),this.type="default",this.status="status"in e?e.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new o(e.headers),this.url=e.url||"",this._initBody(t)}if(!t.fetch){var y={searchParams:"URLSearchParams"in t,iterable:"Symbol"in t&&"iterator"in Symbol,blob:"FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch(t){return!1}}(),formData:"FormData"in t,arrayBuffer:"ArrayBuffer"in t};if(y.arrayBuffer)var g=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],w=function(t){return t&&DataView.prototype.isPrototypeOf(t)},b=ArrayBuffer.isView||function(t){return t&&g.indexOf(Object.prototype.toString.call(t))>-1};o.prototype.append=function(t,r){t=e(t),r=n(r);var o=this.map[t];this.map[t]=o?o+","+r:r},o.prototype.delete=function(t){delete this.map[e(t)]},o.prototype.get=function(t){return t=e(t),this.has(t)?this.map[t]:null},o.prototype.has=function(t){return this.map.hasOwnProperty(e(t))},o.prototype.set=function(t,r){this.map[e(t)]=n(r)},o.prototype.forEach=function(t,e){for(var n in this.map)this.map.hasOwnProperty(n)&&t.call(e,this.map[n],n,this)},o.prototype.keys=function(){var t=[];return this.forEach(function(e,n){t.push(n)}),r(t)},o.prototype.values=function(){var t=[];return this.forEach(function(e){t.push(e)}),r(t)},o.prototype.entries=function(){var t=[];return this.forEach(function(e,n){t.push([n,e])}),r(t)},y.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var _=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];d.prototype.clone=function(){return new d(this,{body:this._bodyInit})},f.call(d.prototype),f.call(m.prototype),m.prototype.clone=function(){return new m(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},m.error=function(){var t=new m(null,{status:0,statusText:""});return t.type="error",t};var E=[301,302,303,307,308];m.redirect=function(t,e){if(E.indexOf(e)===-1)throw new RangeError("Invalid status code");return new m(null,{status:e,headers:{location:t}})},t.Headers=o,t.Request=d,t.Response=m,t.fetch=function(t,e){return new Promise(function(n,r){var o=new d(t,e),i=new XMLHttpRequest;i.onload=function(){var t={status:i.status,statusText:i.statusText,headers:v(i.getAllResponseHeaders()||"")};t.url="responseURL"in i?i.responseURL:t.headers.get("X-Request-URL");var e="response"in i?i.response:i.responseText;n(new m(e,t))},i.onerror=function(){r(new TypeError("Network request failed"))},i.ontimeout=function(){r(new TypeError("Network request failed"))},i.open(o.method,o.url,!0),"include"===o.credentials&&(i.withCredentials=!0),"responseType"in i&&y.blob&&(i.responseType="blob"),o.headers.forEach(function(t,e){i.setRequestHeader(e,t)}),i.send("undefined"==typeof o._bodyInit?null:o._bodyInit)})},t.fetch.polyfill=!0}}("undefined"!=typeof self?self:void 0)},function(t,e,n){"use strict";(function(t){function r(e){new s.a.Event.Listener(document,"DOMContentLoaded",function(){if(!(document.body instanceof HTMLElement))throw new ReferenceError;i.a.attach(document.body),Modernizr.addTest("ios",function(){return!!navigator.userAgent.match(/(iPad|iPhone|iPod)/g)});var e=document.querySelectorAll("table:not([class])");if(Array.prototype.forEach.call(e,function(e){var n=t.createElement("div",{class:"md-typeset__scrollwrap"},t.createElement("div",{class:"md-typeset__table"}));e.nextSibling?e.parentNode.insertBefore(n,e.nextSibling):e.parentNode.appendChild(n),n.children[0].appendChild(e)}),Modernizr.ios){var n=document.querySelectorAll("[data-md-scrollfix]");Array.prototype.forEach.call(n,function(t){t.addEventListener("touchstart",function(){var e=t.scrollTop;0===e?t.scrollTop=1:e+t.offsetHeight===t.scrollHeight&&(t.scrollTop=e-1)})})}}).listen(),new s.a.Event.MatchMedia("(min-width: 1220px)",new s.a.Event.Listener(window,["scroll","resize","orientationchange"],new s.a.Sidebar.Position("[data-md-component=navigation]"))),new s.a.Event.MatchMedia("(min-width: 960px)",new s.a.Event.Listener(window,["scroll","resize","orientationchange"],new s.a.Sidebar.Position("[data-md-component=toc]"))),new s.a.Event.MatchMedia("(min-width: 960px)",new s.a.Event.Listener(window,"scroll",new s.a.Nav.Blur("[data-md-component=toc] .md-nav__link")));var n=document.querySelectorAll("[data-md-component=collapsible]");Array.prototype.forEach.call(n,function(t){new s.a.Event.MatchMedia("(min-width: 1220px)",new s.a.Event.Listener(t.previousElementSibling,"click",new s.a.Nav.Collapse(t)))}),new s.a.Event.MatchMedia("(max-width: 1219px)",new s.a.Event.Listener("[data-md-component=navigation] [data-md-toggle]","change",new s.a.Nav.Scrolling("[data-md-component=navigation] nav"))),new s.a.Event.MatchMedia("(max-width: 959px)",new s.a.Event.Listener("[data-md-toggle=search]","change",new s.a.Search.Lock("[data-md-toggle=search]"))),new s.a.Event.Listener("[data-md-component=query]",["focus","keyup"],new s.a.Search.Result("[data-md-component=result]",function(){return fetch(e.url.base+"/mkdocs/search_index.json",{credentials:"same-origin"}).then(function(t){return t.json()}).then(function(t){return t.docs.map(function(t){return t.location=e.url.base+t.location,t})})})).listen(),new s.a.Event.MatchMedia("(max-width: 1219px)",new s.a.Event.Listener("[data-md-component=overlay]","touchstart",function(t){return t.preventDefault()})),new s.a.Event.MatchMedia("(max-width: 959px)",new s.a.Event.Listener("[data-md-component=navigation] [href^='#']","click",function(){var t=document.querySelector("[data-md-toggle=drawer]");if(!(t instanceof HTMLInputElement))throw new ReferenceError;t.checked&&(t.checked=!1,t.dispatchEvent(new CustomEvent("change")))})),new s.a.Event.Listener("[data-md-toggle=search]","change",function(t){setTimeout(function(t){if(!(t instanceof HTMLInputElement))throw new ReferenceError;if(t.checked){var e=document.querySelector("[data-md-component=query]");if(!(e instanceof HTMLInputElement))throw new ReferenceError;e.focus()}},400,t.target)}).listen(),new s.a.Event.MatchMedia("(min-width: 960px)",new s.a.Event.Listener("[data-md-component=query]","focus",function(){var t=document.querySelector("[data-md-toggle=search]");if(!(t instanceof HTMLInputElement))throw new ReferenceError;t.checked||(t.checked=!0,t.dispatchEvent(new CustomEvent("change")))})),new s.a.Event.MatchMedia("(min-width: 960px)",new s.a.Event.Listener(document.body,"click",function(){var t=document.querySelector("[data-md-toggle=search]");if(!(t instanceof HTMLInputElement))throw new ReferenceError;t.checked&&(t.checked=!1,t.dispatchEvent(new CustomEvent("change")))})),new s.a.Event.Listener(window,"keyup",function(t){var e=t.keyCode||t.which;if(27===e){var n=document.querySelector("[data-md-toggle=search]");if(!(n instanceof HTMLInputElement))throw new ReferenceError;if(n.checked){n.checked=!1,n.dispatchEvent(new CustomEvent("change"));var r=document.querySelector("[data-md-component=query]");if(!(r instanceof HTMLInputElement))throw new ReferenceError;r.focus()}}}).listen(),new s.a.Event.MatchMedia("(min-width: 960px)",new s.a.Event.Listener("[data-md-toggle=search]","click",function(t){return t.stopPropagation()})),new s.a.Event.MatchMedia("(min-width: 960px)",new s.a.Event.Listener("[data-md-component=search]","click",function(t){return t.stopPropagation()})),function(){var t=document.querySelector("[data-md-source]");if(!t)return Promise.resolve([]);if(!(t instanceof HTMLAnchorElement))throw new ReferenceError;switch(t.dataset.mdSource){case"github":return new s.a.Source.Adapter.GitHub(t).fetch();default:return Promise.resolve([])}}().then(function(t){var e=document.querySelectorAll("[data-md-source]");Array.prototype.forEach.call(e,function(e){new s.a.Source.Repository(e).initialize(t)})})}Object.defineProperty(e,"__esModule",{value:!0});var o=n(70),i=n.n(o),s=n(73);n.d(e,"initialize",function(){return r})}).call(e,n(13))},function(t,e,n){"use strict";var r=n(0)("unscopables"),o=Array.prototype;void 0==o[r]&&n(3)(o,r,{}),t.exports=function(t){o[r][t]=!0}},function(t,e,n){"use strict";t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){"use strict";var r=n(21),o=n(32),i=n(61);t.exports=function(t){return function(e,n,s){var a,c=r(e),u=o(c.length),l=i(s,u);if(t&&n!=n){for(;u>l;)if(a=c[l++],a!=a)return!0}else for(;u>l;l++)if((t||l in c)&&c[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){"use strict";var r=n(10),o=n(47),i=n(46),s=n(2),a=n(32),c=n(64),u={},l={},f=t.exports=function(t,e,n,f,h){var d,p,v,m,y=h?function(){return t}:c(t),g=r(n,f,e?2:1),w=0;if("function"!=typeof y)throw TypeError(t+" is not iterable!");if(i(y)){for(d=a(t.length);d>w;w++)if(m=e?g(s(p=t[w])[0],p[1]):g(t[w]),m===u||m===l)return m}else for(v=y.call(t);!(p=v.next()).done;)if(m=o(v,g,p.value,e),m===u||m===l)return m};f.BREAK=u,f.RETURN=l},function(t,e,n){"use strict";t.exports=!n(5)&&!n(25)(function(){return 7!=Object.defineProperty(n(17)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){"use strict";t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){"use strict";var r=n(9);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){"use strict";var r=n(7),o=n(0)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},function(t,e,n){"use strict";var r=n(2);t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(e){var i=t.return;throw void 0!==i&&r(i.call(t)),e}}},function(t,e,n){"use strict";var r=n(52),o=n(29),i=n(18),s={};n(3)(s,n(0)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(s,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e,n){"use strict";var r=n(0)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],s=i[r]();s.next=function(){return{done:n=!0}},i[r]=function(){return s},t(i)}catch(t){}return n}},function(t,e,n){"use strict";t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){"use strict";var r=n(1),o=n(31).set,i=r.MutationObserver||r.WebKitMutationObserver,s=r.process,a=r.Promise,c="process"==n(9)(s);t.exports=function(){var t,e,n,u=function(){var r,o;for(c&&(r=s.domain)&&r.exit();t;){o=t.fn,t=t.next;try{o()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(c)n=function(){s.nextTick(u)};else if(i){var l=!0,f=document.createTextNode("");new i(u).observe(f,{characterData:!0}),n=function(){f.data=l=!l}}else if(a&&a.resolve){var h=a.resolve();n=function(){h.then(u)}}else n=function(){o.call(r,u)};return function(r){var o={fn:r,next:void 0};e&&(e.next=o),t||(t=o,n()),e=o}}},function(t,e,n){"use strict";var r=n(2),o=n(53),i=n(23),s=n(19)("IE_PROTO"),a=function(){},c="prototype",u=function(){var t,e=n(17)("iframe"),r=i.length,o="<",s=">";for(e.style.display="none",n(26).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(o+"script"+s+"document.F=Object"+o+"/script"+s),t.close(),u=t.F;r--;)delete u[c][i[r]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(a[c]=r(t),n=new a,a[c]=null,n[s]=t):n=u(),void 0===e?n:o(n,e)}},function(t,e,n){"use strict";var r=n(12),o=n(2),i=n(56);t.exports=n(5)?Object.defineProperties:function(t,e){o(t);for(var n,s=i(e),a=s.length,c=0;a>c;)r.f(t,n=s[c++],e[n]);return t}},function(t,e,n){"use strict";var r=n(6),o=n(62),i=n(19)("IE_PROTO"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},function(t,e,n){"use strict";var r=n(6),o=n(21),i=n(41)(!1),s=n(19)("IE_PROTO");t.exports=function(t,e){var n,a=o(t),c=0,u=[];for(n in a)n!=s&&r(a,n)&&u.push(n);for(;e.length>c;)r(a,n=e[c++])&&(~i(u,n)||u.push(n));return u}},function(t,e,n){"use strict";var r=n(55),o=n(23);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){"use strict";var r=n(8);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},function(t,e,n){"use strict";var r=n(1),o=n(12),i=n(5),s=n(0)("species");t.exports=function(t){var e=r[t];i&&e&&!e[s]&&o.f(e,s,{configurable:!0,get:function(){return this}})}},function(t,e,n){"use strict";var r=n(2),o=n(14),i=n(0)("species");t.exports=function(t,e){var n,s=r(t).constructor;return void 0===s||void 0==(n=r(s)[i])?e:o(n)}},function(t,e,n){"use strict";var r=n(20),o=n(16);t.exports=function(t){return function(e,n){var i,s,a=String(o(e)),c=r(n),u=a.length;return c<0||c>=u?t?"":void 0:(i=a.charCodeAt(c),i<55296||i>56319||c+1===u||(s=a.charCodeAt(c+1))<56320||s>57343?t?a.charAt(c):i:t?a.slice(c,c+2):(i-55296<<10)+(s-56320)+65536)}}},function(t,e,n){"use strict";var r=n(20),o=Math.max,i=Math.min;t.exports=function(t,e){return t=r(t),t<0?o(t+e,0):i(t,e)}},function(t,e,n){"use strict";var r=n(16);t.exports=function(t){return Object(r(t))}},function(t,e,n){"use strict";var r=n(11);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){"use strict";var r=n(15),o=n(0)("iterator"),i=n(7);t.exports=n(4).getIteratorMethod=function(t){if(void 0!=t)return t[o]||t["@@iterator"]||i[r(t)]}},function(t,e,n){"use strict";var r=n(39),o=n(50),i=n(7),s=n(21);t.exports=n(27)(Array,"Array",function(t,e){this._t=s(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):"keys"==e?o(0,n):"values"==e?o(0,t[n]):o(0,[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e,n){"use strict";var r=n(15),o={};o[n(0)("toStringTag")]="z",o+""!="[object z]"&&n(8)(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},function(t,e,n){"use strict";var r,o,i,s=n(28),a=n(1),c=n(10),u=n(15),l=n(24),f=n(11),h=n(14),d=n(40),p=n(42),v=n(59),m=n(31).set,y=n(51)(),g="Promise",w=a.TypeError,b=a.process,_=a[g],b=a.process,E="process"==u(b),S=function(){},x=!!function(){try{var t=_.resolve(1),e=(t.constructor={})[n(0)("species")]=function(t){t(S,S)};return(E||"function"==typeof PromiseRejectionEvent)&&t.then(S)instanceof e}catch(t){}}(),k=function(t,e){return t===e||t===_&&e===i},T=function(t){var e;return!(!f(t)||"function"!=typeof(e=t.then))&&e},O=function(t){return k(_,t)?new C(t):new o(t)},C=o=function(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw w("Bad Promise constructor");e=t,n=r}),this.resolve=h(e),this.reject=h(n)},A=function(t){try{t()}catch(t){return{error:t}}},P=function(t,e){if(!t._n){t._n=!0;var n=t._c;y(function(){for(var r=t._v,o=1==t._s,i=0,s=function(e){var n,i,s=o?e.ok:e.fail,a=e.resolve,c=e.reject,u=e.domain;try{s?(o||(2==t._h&&j(t),t._h=1),s===!0?n=r:(u&&u.enter(),n=s(r),u&&u.exit()),n===e.promise?c(w("Promise-chain cycle")):(i=T(n))?i.call(n,a,c):a(n)):c(r)}catch(t){c(t)}};n.length>i;)s(n[i++]);t._c=[],t._n=!1,e&&!t._h&&M(t)})}},M=function(t){m.call(a,function(){var e,n,r,o=t._v;if(L(t)&&(e=A(function(){E?b.emit("unhandledRejection",o,t):(n=a.onunhandledrejection)?n({promise:t,reason:o}):(r=a.console)&&r.error&&r.error("Unhandled promise rejection",o)}),t._h=E||L(t)?2:1),t._a=void 0,e)throw e.error})},L=function t(e){if(1==e._h)return!1;for(var n,r=e._a||e._c,o=0;r.length>o;)if(n=r[o++],n.fail||!t(n.promise))return!1;return!0},j=function(t){m.call(a,function(){var e;E?b.emit("rejectionHandled",t):(e=a.onrejectionhandled)&&e({promise:t,reason:t._v})})},F=function(t){var e=this;e._d||(e._d=!0,e=e._w||e,e._v=t,e._s=2,e._a||(e._a=e._c.slice()),P(e,!0))},R=function t(e){var n,r=this;if(!r._d){r._d=!0,r=r._w||r;try{if(r===e)throw w("Promise can't be resolved itself");(n=T(e))?y(function(){var o={_w:r,_d:!1};try{n.call(e,c(t,o,1),c(F,o,1))}catch(t){F.call(o,t)}}):(r._v=e,r._s=1,P(r,!1))}catch(t){F.call({_w:r,_d:!1},t)}}};x||(_=function(t){d(this,_,g,"_h"),h(t),r.call(this);try{t(c(R,this,1),c(F,this,1))}catch(t){F.call(this,t)}},r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},r.prototype=n(57)(_.prototype,{then:function(t,e){var n=O(v(this,_));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=E?b.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&P(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),C=function(){var t=new r;this.promise=t,this.resolve=c(R,t,1),this.reject=c(F,t,1)}),l(l.G+l.W+l.F*!x,{Promise:_}),n(18)(_,g),n(58)(g),i=n(4)[g],l(l.S+l.F*!x,g,{reject:function(t){var e=O(this),n=e.reject;return n(t),e.promise}}),l(l.S+l.F*(s||!x),g,{resolve:function(t){if(t instanceof _&&k(t.constructor,this))return t;var e=O(this),n=e.resolve;return n(t),e.promise}}),l(l.S+l.F*!(x&&n(49)(function(t){_.all(t).catch(S)})),g,{all:function(t){var e=this,n=O(e),r=n.resolve,o=n.reject,i=A(function(){var n=[],i=0,s=1;p(t,!1,function(t){var a=i++,c=!1;n.push(void 0),s++,e.resolve(t).then(function(t){c||(c=!0,n[a]=t,--s||r(n))},o)}),--s||r(n)});return i&&o(i.error),n.promise},race:function(t){var e=this,n=O(e),r=n.reject,o=A(function(){p(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return o&&r(o.error),n.promise}})},function(t,e,n){"use strict";var r=n(60)(!0);n(27)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){"use strict";for(var r=n(65),o=n(8),i=n(1),s=n(3),a=n(7),c=n(0),u=c("iterator"),l=c("toStringTag"),f=a.Array,h=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],d=0;d<5;d++){ +var p,v=h[d],m=i[v],y=m&&m.prototype;if(y){y[u]||s(y,u,f),y[l]||s(y,l,v),a[v]=f;for(p in r)y[p]||o(y,p,r[p],!0)}}},function(t,e,n){"use strict";var r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};!function(){function i(t,e){function n(t,e){return function(){return t.apply(e,arguments)}}var r;if(e=e||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=e.touchBoundary||10,this.layer=t,this.tapDelay=e.tapDelay||200,this.tapTimeout=e.tapTimeout||700,!i.notNeeded(t)){for(var o=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],s=this,c=0,u=o.length;c=0,a=navigator.userAgent.indexOf("Android")>0&&!s,c=/iP(ad|hone|od)/.test(navigator.userAgent)&&!s,u=c&&/OS 4_\d(_\d)?/.test(navigator.userAgent),l=c&&/OS [6-7]_\d/.test(navigator.userAgent),f=navigator.userAgent.indexOf("BB10")>0;i.prototype.needsClick=function(t){switch(t.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(t.disabled)return!0;break;case"input":if(c&&"file"===t.type||t.disabled)return!0;break;case"label":case"iframe":case"video":return!0}return/\bneedsclick\b/.test(t.className)},i.prototype.needsFocus=function(t){switch(t.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!a;case"input":switch(t.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!t.disabled&&!t.readOnly;default:return/\bneedsfocus\b/.test(t.className)}},i.prototype.sendClick=function(t,e){var n,r;document.activeElement&&document.activeElement!==t&&document.activeElement.blur(),r=e.changedTouches[0],n=document.createEvent("MouseEvents"),n.initMouseEvent(this.determineEventType(t),!0,!0,window,1,r.screenX,r.screenY,r.clientX,r.clientY,!1,!1,!1,!1,0,null),n.forwardedTouchEvent=!0,t.dispatchEvent(n)},i.prototype.determineEventType=function(t){return a&&"select"===t.tagName.toLowerCase()?"mousedown":"click"},i.prototype.focus=function(t){var e;c&&t.setSelectionRange&&0!==t.type.indexOf("date")&&"time"!==t.type&&"month"!==t.type?(e=t.value.length,t.setSelectionRange(e,e)):t.focus()},i.prototype.updateScrollParent=function(t){var e,n;if(e=t.fastClickScrollParent,!e||!e.contains(t)){n=t;do{if(n.scrollHeight>n.offsetHeight){e=n,t.fastClickScrollParent=n;break}n=n.parentElement}while(n)}e&&(e.fastClickLastScrollTop=e.scrollTop)},i.prototype.getTargetElementFromEventTarget=function(t){return t.nodeType===Node.TEXT_NODE?t.parentNode:t},i.prototype.onTouchStart=function(t){var e,n,r;if(t.targetTouches.length>1)return!0;if(e=this.getTargetElementFromEventTarget(t.target),n=t.targetTouches[0],c){if(r=window.getSelection(),r.rangeCount&&!r.isCollapsed)return!0;if(!u){if(n.identifier&&n.identifier===this.lastTouchIdentifier)return t.preventDefault(),!1;this.lastTouchIdentifier=n.identifier,this.updateScrollParent(e)}}return this.trackingClick=!0,this.trackingClickStart=t.timeStamp,this.targetElement=e,this.touchStartX=n.pageX,this.touchStartY=n.pageY,t.timeStamp-this.lastClickTimen||Math.abs(e.pageY-this.touchStartY)>n},i.prototype.onTouchMove=function(t){return!this.trackingClick||((this.targetElement!==this.getTargetElementFromEventTarget(t.target)||this.touchHasMoved(t))&&(this.trackingClick=!1,this.targetElement=null),!0)},i.prototype.findControl=function(t){return void 0!==t.control?t.control:t.htmlFor?document.getElementById(t.htmlFor):t.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},i.prototype.onTouchEnd=function(t){var e,n,r,o,i,s=this.targetElement;if(!this.trackingClick)return!0;if(t.timeStamp-this.lastClickTimethis.tapTimeout)return!0;if(this.cancelNextClick=!1,this.lastClickTime=t.timeStamp,n=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,l&&(i=t.changedTouches[0],s=document.elementFromPoint(i.pageX-window.pageXOffset,i.pageY-window.pageYOffset)||s,s.fastClickScrollParent=this.targetElement.fastClickScrollParent),r=s.tagName.toLowerCase(),"label"===r){if(e=this.findControl(s)){if(this.focus(s),a)return!1;s=e}}else if(this.needsFocus(s))return t.timeStamp-n>100||c&&window.top!==window&&"input"===r?(this.targetElement=null,!1):(this.focus(s),this.sendClick(s,t),c&&"select"===r||(this.targetElement=null,t.preventDefault()),!1);return!(!c||u||(o=s.fastClickScrollParent,!o||o.fastClickLastScrollTop===o.scrollTop))||(this.needsClick(s)||(t.preventDefault(),this.sendClick(s,t)),!1)},i.prototype.onTouchCancel=function(){this.trackingClick=!1,this.targetElement=null},i.prototype.onMouse=function(t){return!this.targetElement||(!!t.forwardedTouchEvent||(!t.cancelable||(!(!this.needsClick(this.targetElement)||this.cancelNextClick)||(t.stopImmediatePropagation?t.stopImmediatePropagation():t.propagationStopped=!0,t.stopPropagation(),t.preventDefault(),!1))))},i.prototype.onClick=function(t){var e;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===t.target.type&&0===t.detail||(e=this.onMouse(t),e||(this.targetElement=null),e)},i.prototype.destroy=function(){var t=this.layer;a&&(t.removeEventListener("mouseover",this.onMouse,!0),t.removeEventListener("mousedown",this.onMouse,!0),t.removeEventListener("mouseup",this.onMouse,!0)),t.removeEventListener("click",this.onClick,!0),t.removeEventListener("touchstart",this.onTouchStart,!1),t.removeEventListener("touchmove",this.onTouchMove,!1),t.removeEventListener("touchend",this.onTouchEnd,!1),t.removeEventListener("touchcancel",this.onTouchCancel,!1)},i.notNeeded=function(t){var e,n,r,o;if("undefined"==typeof window.ontouchstart)return!0;if(n=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!a)return!0;if(e=document.querySelector("meta[name=viewport]")){if(e.content.indexOf("user-scalable=no")!==-1)return!0;if(n>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}if(f&&(r=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/),r[1]>=10&&r[2]>=3&&(e=document.querySelector("meta[name=viewport]")))){if(e.content.indexOf("user-scalable=no")!==-1)return!0;if(document.documentElement.scrollWidth<=window.outerWidth)return!0}return"none"===t.style.msTouchAction||"manipulation"===t.style.touchAction||(o=+(/Firefox\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1],!!(o>=27&&(e=document.querySelector("meta[name=viewport]"),e&&(e.content.indexOf("user-scalable=no")!==-1||document.documentElement.scrollWidth<=window.outerWidth)))||("none"===t.style.touchAction||"manipulation"===t.style.touchAction))},i.attach=function(t,e){return new i(t,e)},"object"===o(n(34))&&n(34)?(r=function(){return i}.call(e,n,e,t),!(void 0!==r&&(t.exports=r))):"undefined"!=typeof t&&t.exports?(t.exports=i.attach,t.exports.FastClick=i):window.FastClick=i}()},function(t,e,n){"use strict";var r,o,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};!function(s){var a=!1;if(r=s,o="function"==typeof r?r.call(e,n,e,t):r,!(void 0!==o&&(t.exports=o)),a=!0,"object"===i(e)&&(t.exports=s(),a=!0),!a){var c=window.Cookies,u=window.Cookies=s();u.noConflict=function(){return window.Cookies=c,u}}}(function(){function t(){for(var t=0,e={};t1){if(i=t({path:"/"},r.defaults,i),"number"==typeof i.expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*i.expires),i.expires=a}try{s=JSON.stringify(o),/^[\{\[]/.test(s)&&(o=s)}catch(t){}return o=n.write?n.write(o,e):encodeURIComponent(String(o)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),e=encodeURIComponent(String(e)),e=e.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),e=e.replace(/[\(\)]/g,escape),document.cookie=[e,"=",o,i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}e||(s={});for(var c=document.cookie?document.cookie.split("; "):[],u=/(%[0-9A-Z]{2})+/g,l=0;ln.idx?n=n.next:(r+=e.val*n.val,e=e.next,n=n.next);return r},i.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},i.SortedSet=function(){this.length=0,this.elements=[]},i.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},i.SortedSet.prototype.add=function(){var t,e;for(t=0;t1;){if(i===t)return o;it&&(n=o),r=n-e,o=e+Math.floor(r/2),i=this.elements[o]}return i===t?o:-1},i.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,r=n-e,o=e+Math.floor(r/2),i=this.elements[o];r>1;)it&&(n=o),r=n-e,o=e+Math.floor(r/2),i=this.elements[o];return i>t?o:io-1||r>s-1)break;a[n]!==c[r]?a[n]c[r]&&r++:(e.add(a[n]),n++,r++)}return e},i.SortedSet.prototype.clone=function(){var t=new i.SortedSet;return t.elements=this.toArray(),t.length=t.elements.length,t},i.SortedSet.prototype.union=function(t){var e,n,r;this.length>=t.length?(e=this,n=t):(e=t,n=this),r=e.clone();for(var o=0,i=n.toArray();o0&&(r=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=r},i.Index.prototype.search=function(t){var e=this.pipeline.run(this.tokenizerFn(t)),n=new i.Vector,r=[],o=this._fields.reduce(function(t,e){return t+e.boost},0),s=e.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];e.forEach(function(t,e,s){var a=1/s.length*this._fields.length*o,c=this,u=this.tokenStore.expand(t).reduce(function(e,r){var o=c.corpusTokens.indexOf(r),s=c.idf(r),u=1,l=new i.SortedSet;if(r!==t){var f=Math.max(3,r.length-t.length);u=1/Math.log(f)}o>-1&&n.insert(o,a*s*u);for(var h=c.tokenStore.get(r),d=Object.keys(h),p=d.length,v=0;v0&&(this.els_[n-1].dataset.mdState="blur"),this.index_=n;else for(var r=this.index_;r>=0;r--){if(!(this.anchors_[r].offsetTop-80>t)){this.index_=r;break}r>0&&(this.els_[r-1].dataset.mdState="")}this.offset_=t,this.dir_=e}}},{key:"reset",value:function(){Array.prototype.forEach.call(this.els_,function(t){t.dataset.mdState=""}),this.index_=0,this.offset_=window.pageYOffset}}]),t}();e.a=i},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=function(){function t(t,e){for(var n=0;nn){for(;" "!==t[n]&&--n>0;);return t.substring(0,n)+"..."}return t}},{key:"update",value:function(e){var n=this;if("focus"!==e.type||this.index_){if("keyup"===e.type){var r=e.target;if(!(r instanceof HTMLInputElement))throw new ReferenceError;for(;this.list_.firstChild;)this.list_.removeChild(this.list_.firstChild);var o=this.index_.search(r.value);o.forEach(function(e){var r=n.docs_[e.ref],o=r.location.split("#"),i=s(o,1),a=i[0];a=a.replace(/^(\/?\.{2})+/g,""),n.list_.appendChild(t.createElement("li",{class:"md-search-result__item"},t.createElement("a",{href:r.location,title:r.title,class:"md-search-result__link","data-md-rel":a===document.location.pathname?"anchor":""},t.createElement("article",{class:"md-search-result__article"},t.createElement("h1",{class:"md-search-result__title"},r.title),t.createElement("p",{class:"md-search-result__teaser"},n.truncate_(r.text,140))))))});var a=this.list_.querySelectorAll("[data-md-rel=anchor]");Array.prototype.forEach.call(a,function(t){t.addEventListener("click",function(e){var n=document.querySelector("[data-md-toggle=search]");if(!(n instanceof HTMLInputElement))throw new ReferenceError;n.checked&&(n.checked=!1,n.dispatchEvent(new CustomEvent("change"))),e.preventDefault(),setTimeout(function(){document.location.href=t.href},100)})}),this.meta_.textContent=o.length+" search result"+(1!==o.length?"s":"")}}else{var c=function(t){n.index_=i()(function(){this.field("title",{boost:10}),this.field("text"),this.ref("location")}),n.docs_=t.reduce(function(t,e){return n.index_.add(e),t[e.location]=e,t},{})};setTimeout(function(){return"function"==typeof n.data_?n.data_().then(c):c(n.data_)},250)}}}]),e}();e.a=c}).call(e,n(13))},function(t,e,n){"use strict";var r=n(84);e.a={Position:r.a}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=function(){function t(t,e){for(var n=0;n=this.offset_?"lock"!==this.el_.dataset.mdState&&(this.el_.dataset.mdState="lock"):"lock"===this.el_.dataset.mdState&&(this.el_.dataset.mdState="")}},{key:"reset",value:function(){this.el_.dataset.mdState="",this.el_.style.height="",this.height_=0}}]),t}();e.a=i},function(t,e,n){"use strict";var r=n(86),o=n(89);e.a={Adapter:r.a,Repository:o.a}},function(t,e,n){"use strict";var r=n(88);e.a={GitHub:r.a}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var o=n(71),i=n.n(o),s=function(){function t(t,e){for(var n=0;n1e4?(t/1e3).toFixed(0)+"k":t>1e3?(t/1e3).toFixed(1)+"k":""+t}},{key:"hash_",value:function(t){var e=0;if(0===t.length)return e;for(var n=0,r=t.length;ncode{margin:inherit;padding:inherit;border-radius:none;background-color:inherit;color:inherit;box-shadow:none}.md-typeset pre{margin:1em 0;padding:1rem 1.2rem;border-radius:.2rem;line-height:1.4;overflow:auto;-webkit-overflow-scrolling:touch}.md-typeset pre::-webkit-scrollbar{width:.4rem;height:.4rem}.md-typeset pre::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.26)}.md-typeset pre::-webkit-scrollbar-thumb:hover{background-color:#536dfe}.md-typeset pre>code{margin:0;background-color:transparent;font-size:inherit;box-shadow:none;-webkit-box-decoration-break:none;box-decoration-break:none}.md-typeset kbd{padding:0 .29412em;border:.1rem solid #c9c9c9;border-radius:.2rem;border-bottom-color:#bcbcbc;background-color:#fcfcfc;color:#555;font-size:85%;box-shadow:0 .1rem 0 #b0b0b0;word-break:break-word}.md-typeset mark{margin:0 .25em;padding:.0625em 0;border-radius:.2rem;background-color:rgba(255,235,59,.5);box-shadow:.25em 0 0 rgba(255,235,59,.5),-.25em 0 0 rgba(255,235,59,.5);word-break:break-word;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset abbr{border-bottom:.1rem dotted rgba(0,0,0,.54);cursor:help}.md-typeset small{opacity:.75}.md-typeset sub,.md-typeset sup{margin-left:.07812em}.md-typeset blockquote{padding-left:1.2rem;border-left:.4rem solid rgba(0,0,0,.26);color:rgba(0,0,0,.54)}.md-typeset ul{list-style-type:disc}.md-typeset ol,.md-typeset ul{margin-left:.625em;padding:0}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em;margin-left:1.25em}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}.md-typeset ol li ol,.md-typeset ol li ul,.md-typeset ul li ol,.md-typeset ul li ul{margin:.5em 0 .5em .625em}.md-typeset dd{margin:1em 0 1em 1.875em}.md-typeset iframe,.md-typeset img,.md-typeset svg{max-width:100%}.md-typeset table:not([class]){box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);display:inline-block;max-width:100%;border-radius:.2rem;font-size:1.28rem;overflow:auto;-webkit-overflow-scrolling:touch}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) td:not([align]),.md-typeset table:not([class]) th:not([align]){text-align:left}.md-typeset table:not([class]) th{min-width:10rem;padding:1.2rem 1.6rem;background-color:rgba(0,0,0,.54);color:#fff;vertical-align:top}.md-typeset table:not([class]) td{padding:1.2rem 1.6rem;border-top:.1rem solid rgba(0,0,0,.07);vertical-align:top}.md-typeset table:not([class]) tr:first-child td{border-top:0}.md-typeset table:not([class]) a{word-break:normal}.md-typeset__scrollwrap{margin:1em -1.6rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.md-typeset .md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 1.6rem}.md-typeset .md-typeset__table table{display:table;width:100%;margin:0;overflow:hidden}html{font-size:62.5%}body,html{height:100%}body{position:relative}hr{display:block;height:.1rem;padding:0;border:0}.md-svg{display:none}.md-grid{max-width:122rem;margin-right:auto;margin-left:auto}.md-container,.md-main{overflow:auto}.md-container{display:table;width:100%;height:100%;padding-top:5.6rem;table-layout:fixed}.md-main{display:table-row;height:100%}.md-main__inner{min-height:100%;padding-top:3rem;overflow:auto}.md-toggle{display:none}.md-overlay{position:fixed;top:0;width:0;height:0;-webkit-transition:width 0s .25s,height 0s .25s,opacity .25s;transition:width 0s .25s,height 0s .25s,opacity .25s;background-color:rgba(0,0,0,.54);opacity:0;z-index:2}.md-flex{display:table}.md-flex__cell{display:table-cell;position:relative;vertical-align:top}.md-flex__cell--shrink{width:0}.md-flex__cell--stretch{display:table;width:100%;table-layout:fixed}.md-flex__ellipsis{display:table-cell;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@page{margin:25mm}.md-content__inner{margin:2.4rem 1.6rem}.md-content__inner>:last-child{margin-bottom:0}.md-content__edit{float:right}.md-header{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);position:fixed;top:0;right:0;left:0;height:5.6rem;-webkit-transition:background-color .25s;transition:background-color .25s;background-color:#3f51b5;color:#fff;z-index:1}.md-header-nav{padding:.4rem}.md-header-nav__button{position:relative;-webkit-transition:opacity .25s;transition:opacity .25s;z-index:1}.md-header-nav__button:hover{opacity:.7}.md-header-nav__button.md-logo img{display:block}.no-js .md-header-nav__button.md-icon--search{display:none}.md-header-nav__title{padding:0 2rem;font-size:1.8rem;line-height:4.8rem}.md-header-nav__parent{color:hsla(0,0%,100%,.7)}.md-header-nav__parent:after{display:inline;color:hsla(0,0%,100%,.3);content:"/"}.md-header-nav__source{display:none}.md-footer-nav{background-color:rgba(0,0,0,.87);color:#fff}.md-footer-nav__inner{padding:.4rem;overflow:auto}.md-footer-nav__link{padding-top:2.8rem;padding-bottom:.8rem;-webkit-transition:opacity .25s;transition:opacity .25s}.md-footer-nav__link:hover{opacity:.7}.md-footer-nav__link--prev{width:25%;float:left}.md-footer-nav__link--next{width:75%;float:right;text-align:right}.md-footer-nav__button{-webkit-transition:background .25s;transition:background .25s}.md-footer-nav__title{position:relative;padding:0 2rem;font-size:1.8rem;line-height:4.8rem}.md-footer-nav__direction{position:absolute;right:0;left:0;margin-top:-2rem;padding:0 2rem;color:hsla(0,0%,100%,.7);font-size:1.5rem}.md-footer-meta{background:rgba(0,0,0,.895)}.md-footer-meta__inner{padding:.4rem;overflow:auto}html .md-footer-meta.md-typeset a{color:hsla(0,0%,100%,.7)}.md-footer-copyright{margin:0 1.2rem;padding:.8rem 0;color:hsla(0,0%,100%,.3);font-size:1.28rem}.md-footer-copyright__highlight{color:hsla(0,0%,100%,.7)}.md-footer-social{margin:0 .8rem;padding:.4rem 0 1.2rem}.md-footer-social__link{display:inline-block;width:3.2rem;height:3.2rem;border:.1rem solid hsla(0,0%,100%,.12);border-radius:100%;color:hsla(0,0%,100%,.7);font-size:1.6rem;text-align:center}.md-footer-social__link:before{line-height:1.9}.md-nav{font-size:1.4rem;line-height:1.3}.md-nav--secondary{-webkit-transition:border-left .25s;transition:border-left .25s;border-left:.4rem solid #3f51b5}.md-nav__title{display:block;padding:1.2rem 1.2rem 0;font-weight:700;text-overflow:ellipsis;overflow:hidden}.md-nav__title:before{display:none;content:"arrow_back"}.md-nav__title .md-nav__button{display:none}.md-nav__list{margin:0;padding:0;list-style:none}.md-nav__item{padding:.625em 1.2rem 0}.md-nav__item:last-child{padding-bottom:1.2rem}.md-nav__item .md-nav__item{padding-right:0}.md-nav__item .md-nav__item:last-child{padding-bottom:0}.md-nav__button img{width:100%;height:auto}.md-nav__link{display:block;-webkit-transition:color .125s;transition:color .125s;text-overflow:ellipsis;cursor:pointer;overflow:hidden}.md-nav__item--nested>.md-nav__link:after{content:"keyboard_arrow_down"}html .md-nav__link[for=toc],html .md-nav__link[for=toc]+.md-nav__link:after,html .md-nav__link[for=toc]~.md-nav{display:none}.md-nav__link[data-md-state=blur]{color:rgba(0,0,0,.54)}.md-nav__link--active,.md-nav__link:active{color:#3f51b5}.md-nav__link:focus,.md-nav__link:hover{color:#536dfe}.md-nav__source,.no-js .md-search{display:none}.md-search__overlay{display:none;pointer-events:none}.md-search__inner{width:100%}.md-search__form{position:relative}.md-search__input{position:relative;padding:0 1.6rem 0 7.2rem;text-overflow:ellipsis;z-index:1}.md-search__input+.md-search__icon,.md-search__input::-webkit-input-placeholder{color:rgba(0,0,0,.54)}.md-search__input+.md-search__icon,.md-search__input::-moz-placeholder{color:rgba(0,0,0,.54)}.md-search__input+.md-search__icon,.md-search__input:-ms-input-placeholder{color:rgba(0,0,0,.54)}.md-search__input+.md-search__icon,.md-search__input::placeholder{color:rgba(0,0,0,.54)}.md-search__input::-ms-clear{display:none}.md-search__icon{position:absolute;top:.8rem;left:1.2rem;-webkit-transition:color .25s;transition:color .25s;font-size:2.4rem;cursor:pointer;z-index:1}.md-search__icon:before{content:"search"}.md-search__output{position:absolute;width:100%;border-radius:0 0 .2rem .2rem;overflow:hidden}.md-search__scrollwrap{height:100%;background:-webkit-linear-gradient(top,#fff 10%,hsla(0,0%,100%,0)),-webkit-linear-gradient(top,rgba(0,0,0,.26),rgba(0,0,0,.07) 35%,transparent 60%);background:linear-gradient(180deg,#fff 10%,hsla(0,0%,100%,0)),linear-gradient(180deg,rgba(0,0,0,.26),rgba(0,0,0,.07) 35%,transparent 60%);background-attachment:local,scroll;background-color:#fff;background-repeat:no-repeat;background-size:100% 2rem,100% 1rem;box-shadow:inset 0 .1rem 0 rgba(0,0,0,.07);overflow-y:auto;-webkit-overflow-scrolling:touch}.md-search-result__meta{padding:0 1.6rem;background-color:rgba(0,0,0,.07);color:rgba(0,0,0,.54);font-size:1.28rem;line-height:4rem}.md-search-result__list{margin:0;padding:0;border-top:.1rem solid rgba(0,0,0,.07);list-style:none}.md-search-result__item{box-shadow:0 -.1rem 0 rgba(0,0,0,.07)}.md-search-result__link{display:block;padding:0 1.6rem;-webkit-transition:background .25s;transition:background .25s;overflow:auto}.md-search-result__link:hover{background-color:rgba(83,109,254,.1)}.md-search-result__article{margin:1em 0}.md-search-result__title{margin-top:.5em;margin-bottom:0;color:rgba(0,0,0,.87);font-size:1.6rem;font-weight:400;line-height:1.4}.md-search-result__teaser{margin:.5em 0;color:rgba(0,0,0,.54);font-size:1.28rem;line-height:1.4;word-break:break-word}.md-sidebar{position:relative;width:24.2rem;padding:2.4rem 0;float:left;overflow:visible}.md-sidebar[data-md-state=lock]{position:fixed;top:5.6rem;-webkit-backface-visibility:hidden;backface-visibility:hidden}.md-sidebar--secondary{display:none}.md-sidebar__scrollwrap{max-height:100%;margin:0 .4rem;overflow-y:auto}.md-sidebar__scrollwrap::-webkit-scrollbar{width:.4rem;height:.4rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.26)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#536dfe}@-webkit-keyframes a{0%{height:0}to{height:1.3rem}}@keyframes a{0%{height:0}to{height:1.3rem}}@-webkit-keyframes b{0%{-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}50%{opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes b{0%{-webkit-transform:translateY(100%);transform:translateY(100%);opacity:0}50%{opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}.md-source{display:block;-webkit-transition:opacity .25s;transition:opacity .25s;font-size:1.3rem;line-height:1.2;white-space:nowrap}.md-source:hover{opacity:.7}.md-source:after,.md-source__icon{display:inline-block;height:4.8rem;content:"";vertical-align:middle}.md-source__icon{width:4.8rem}.md-source__icon svg{margin-top:1.2rem;margin-left:1.2rem}.md-source__icon+.md-source__repository{margin-left:-4.4rem;padding-left:4rem}.md-source__repository{display:inline-block;max-width:100%;margin-left:1.2rem;font-weight:700;text-overflow:ellipsis;overflow:hidden;vertical-align:middle}.md-source__facts{margin:0;padding:0;font-size:1.1rem;font-weight:700;list-style-type:none;opacity:.75;overflow:hidden}[data-md-state=done] .md-source__facts{-webkit-animation:a .25s ease-in;animation:a .25s ease-in}.md-source__fact{float:left}[data-md-state=done] .md-source__fact{-webkit-animation:b .4s ease-out;animation:b .4s ease-out}.md-source__fact:before{margin:0 .2rem;content:"\00B7"}.md-source__fact:first-child:before{display:none}.admonition{position:relative;margin:1.5625em 0;padding:.8rem 1.2rem;border-left:3.2rem solid rgba(68,138,255,.4);border-radius:.2rem;background-color:rgba(68,138,255,.15);font-size:1.28rem}.admonition:before{position:absolute;left:-2.6rem;color:#fff;font-size:2rem;content:"edit";vertical-align:-.25em}.admonition :first-child{margin-top:0}.admonition :last-child{margin-bottom:0}.admonition.summary,.admonition.tldr{border-color:rgba(0,176,255,.4);background-color:rgba(0,176,255,.15)}.admonition.summary:before,.admonition.tldr:before{content:"subject"}.admonition.hint,.admonition.important,.admonition.tip{border-color:rgba(0,191,165,.4);background-color:rgba(0,191,165,.15)}.admonition.hint:before,.admonition.important:before,.admonition.tip:before{content:"whatshot"}.admonition.check,.admonition.done,.admonition.success{border-color:rgba(0,230,118,.4);background-color:rgba(0,230,118,.15)}.admonition.check:before,.admonition.done:before,.admonition.success:before{content:"done"}.admonition.attention,.admonition.caution,.admonition.warning{border-color:rgba(255,145,0,.4);background-color:rgba(255,145,0,.15)}.admonition.attention:before,.admonition.caution:before,.admonition.warning:before{content:"warning"}.admonition.fail,.admonition.failure,.admonition.missing{border-color:rgba(255,82,82,.4);background-color:rgba(255,82,82,.15)}.admonition.fail:before,.admonition.failure:before,.admonition.missing:before{content:"clear"}.admonition.danger,.admonition.error{border-color:rgba(255,23,68,.4);background-color:rgba(255,23,68,.15)}.admonition.danger:before,.admonition.error:before{content:"flash_on"}.admonition.bug{border-color:rgba(245,0,87,.4);background-color:rgba(245,0,87,.15)}.admonition.bug:before{content:"bug_report"}.admonition-title{font-weight:700}html .admonition-title{margin-bottom:0}html .admonition-title+*{margin-top:0}.codehilite .o,.codehilite .ow{color:inherit}.codehilite .ge{color:#000}.codehilite .gr{color:#a00}.codehilite .gh{color:#999}.codehilite .go{color:#888}.codehilite .gp{color:#555}.codehilite .gs{color:inherit}.codehilite .gu{color:#aaa}.codehilite .gt{color:#a00}.codehilite .gd{background-color:#fdd}.codehilite .gi{background-color:#dfd}.codehilite .k{color:#3b78e7}.codehilite .kc{color:#a71d5d}.codehilite .kd,.codehilite .kn{color:#3b78e7}.codehilite .kp{color:#a71d5d}.codehilite .kr,.codehilite .kt{color:#3e61a2}.codehilite .c,.codehilite .cm{color:#999}.codehilite .cp{color:#666}.codehilite .c1,.codehilite .ch,.codehilite .cs{color:#999}.codehilite .na,.codehilite .nb{color:#c2185b}.codehilite .bp{color:#3e61a2}.codehilite .nc{color:#c2185b}.codehilite .no{color:#3e61a2}.codehilite .nd,.codehilite .ni{color:#666}.codehilite .ne,.codehilite .nf{color:#c2185b}.codehilite .nl{color:#3b5179}.codehilite .nn{color:#ec407a}.codehilite .nt{color:#3b78e7}.codehilite .nv,.codehilite .vc,.codehilite .vg,.codehilite .vi{color:#3e61a2}.codehilite .nx{color:#ec407a}.codehilite .il,.codehilite .m,.codehilite .mf,.codehilite .mh,.codehilite .mi,.codehilite .mo{color:#e74c3c}.codehilite .s,.codehilite .sb,.codehilite .sc{color:#0d904f}.codehilite .sd{color:#999}.codehilite .s2{color:#0d904f}.codehilite .se,.codehilite .sh,.codehilite .si,.codehilite .sx{color:#183691}.codehilite .sr{color:#009926}.codehilite .s1,.codehilite .ss{color:#0d904f}.codehilite .err{color:#a61717}.codehilite .w{color:transparent}.codehilite .hll{display:block;margin:0 -1.2rem;padding:0 1.2rem;background-color:rgba(255,235,59,.5)}.md-typeset .codehilite{margin:1em 0;padding:1rem 1.2rem .8rem;border-radius:.2rem;background-color:hsla(0,0%,93%,.5);color:#37474f;line-height:1.4;overflow:auto;-webkit-overflow-scrolling:touch}.md-typeset .codehilite::-webkit-scrollbar{width:.4rem;height:.4rem}.md-typeset .codehilite::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.26)}.md-typeset .codehilite::-webkit-scrollbar-thumb:hover{background-color:#536dfe}.md-typeset .codehilite pre{display:inline-block;min-width:100%;margin:0;padding:0;background-color:transparent;overflow:visible;vertical-align:top}.md-typeset .codehilitetable{display:block;margin:1em 0;border-radius:.2em;font-size:1.6rem;overflow:hidden}.md-typeset .codehilitetable tbody,.md-typeset .codehilitetable td{display:block;padding:0}.md-typeset .codehilitetable tr{display:-webkit-box;display:-ms-flexbox;display:flex}.md-typeset .codehilitetable .codehilite,.md-typeset .codehilitetable .linenodiv{margin:0;border-radius:0}.md-typeset .codehilitetable .linenodiv{padding:1rem 1.2rem .8rem}.md-typeset .codehilitetable .linenodiv,.md-typeset .codehilitetable .linenodiv>pre{height:100%}.md-typeset .codehilitetable .linenos{background-color:rgba(0,0,0,.07);color:rgba(0,0,0,.26);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-typeset .codehilitetable .linenos pre{margin:0;padding:0;background-color:transparent;color:inherit;text-align:right}.md-typeset .codehilitetable .code{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}.md-typeset>.codehilitetable{box-shadow:none}.md-typeset .footnote{color:rgba(0,0,0,.54);font-size:1.28rem}.md-typeset .footnote ol{margin-left:0}.md-typeset .footnote li{-webkit-transition:color .25s;transition:color .25s}.md-typeset .footnote li:before{display:block;height:0}.md-typeset .footnote li:target{color:rgba(0,0,0,.87)}.md-typeset .footnote li:target:before{margin-top:-9rem;padding-top:9rem;pointer-events:none}.md-typeset .footnote li :first-child{margin-top:0}.md-typeset .footnote li:hover .footnote-backref,.md-typeset .footnote li:target .footnote-backref{-webkit-transform:translateX(0);transform:translateX(0);opacity:1}.md-typeset .footnote li:hover .footnote-backref:hover,.md-typeset .footnote li:target .footnote-backref{color:#536dfe}.md-typeset .footnote-backref{display:inline-block;-webkit-transform:translateX(.5rem);transform:translateX(.5rem);-webkit-transition:color .25s,opacity .125s .125s,-webkit-transform .25s .125s;transition:color .25s,opacity .125s .125s,-webkit-transform .25s .125s;transition:transform .25s .125s,color .25s,opacity .125s .125s;transition:transform .25s .125s,color .25s,opacity .125s .125s,-webkit-transform .25s .125s;color:rgba(0,0,0,.26);font-size:0;opacity:0;vertical-align:text-bottom}.md-typeset .footnote-backref:before{font-size:1.6rem;content:"keyboard_return"}.md-typeset .headerlink{display:inline-block;margin-left:1rem;-webkit-transform:translateY(.5rem);transform:translateY(.5rem);-webkit-transition:color .25s,opacity .125s .25s,-webkit-transform .25s .25s;transition:color .25s,opacity .125s .25s,-webkit-transform .25s .25s;transition:transform .25s .25s,color .25s,opacity .125s .25s;transition:transform .25s .25s,color .25s,opacity .125s .25s,-webkit-transform .25s .25s;opacity:0}html body .md-typeset .headerlink{color:rgba(0,0,0,.26)}.md-typeset [id]:before{display:inline-block;content:""}.md-typeset [id]:target:before{margin-top:-9.8rem;padding-top:9.8rem}.md-typeset [id] .headerlink:focus,.md-typeset [id]:hover .headerlink,.md-typeset [id]:target .headerlink{-webkit-transform:translate(0);transform:translate(0);opacity:1}.md-typeset [id] .headerlink:focus,.md-typeset [id]:hover .headerlink:hover,.md-typeset [id]:target .headerlink{color:#536dfe}.md-typeset h1[id]{padding-top:.8rem}.md-typeset h1[id].headerlink{display:none}.md-typeset h2[id]:before{display:block;margin-top:-.4rem;padding-top:.4rem}.md-typeset h2[id]:target:before{margin-top:-8.4rem;padding-top:8.4rem}.md-typeset h3[id]:before{display:block;margin-top:-.7rem;padding-top:.7rem}.md-typeset h3[id]:target:before{margin-top:-8.7rem;padding-top:8.7rem}.md-typeset h4[id]:before{display:block;margin-top:-.8rem;padding-top:.8rem}.md-typeset h4[id]:target:before{margin-top:-8.8rem;padding-top:8.8rem}.md-typeset h5[id]:before{display:block;margin-top:-1.1rem;padding-top:1.1rem}.md-typeset h5[id]:target:before{margin-top:-9.1rem;padding-top:9.1rem}.md-typeset h6[id]:before{display:block;margin-top:-1.1rem;padding-top:1.1rem}.md-typeset h6[id]:target:before{margin-top:-9.1rem;padding-top:9.1rem}.md-typeset .MJXc-display{margin:.75em 0;padding:.25em 0;overflow:auto;-webkit-overflow-scrolling:touch}.md-typeset .MathJax_CHTML{outline:0}.md-typeset .comment.critic,.md-typeset del.critic,.md-typeset ins.critic{margin:0 .25em;padding:.0625em 0;border-radius:.2rem;-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset del.critic{background-color:#fdd;box-shadow:.25em 0 0 #fdd,-.25em 0 0 #fdd}.md-typeset ins.critic{background-color:#dfd;box-shadow:.25em 0 0 #dfd,-.25em 0 0 #dfd}.md-typeset .critic.comment{background-color:hsla(0,0%,93%,.5);color:#37474f;box-shadow:.25em 0 0 hsla(0,0%,93%,.5),-.25em 0 0 hsla(0,0%,93%,.5)}.md-typeset .critic.comment:before{padding-right:.125em;color:rgba(0,0,0,.26);content:"chat";vertical-align:-.125em}.md-typeset .critic.block{display:block;margin:1em 0;padding-right:1.6rem;padding-left:1.6rem;box-shadow:none}.md-typeset .critic.block :first-child{margin-top:.5em}.md-typeset .critic.block :last-child{margin-bottom:.5em}.md-typeset .emojione{width:2rem;vertical-align:text-top}.md-typeset code.codehilite{margin:0 .29412em;padding:.07353em 0}.md-typeset .task-list-item{position:relative;list-style-type:none}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em;left:-2em}.md-typeset .task-list-control .task-list-indicator:before{position:absolute;top:.05em;left:-1.25em;color:rgba(0,0,0,.26);font-size:1.5em;content:"check_box_outline_blank";vertical-align:-.25em}.md-typeset .task-list-control [type=checkbox]:checked+.task-list-indicator:before{content:"check_box"}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}@media print{.md-typeset a:after{color:rgba(0,0,0,.54);content:" [" attr(href) "]"}.md-typeset code{box-shadow:none;-webkit-box-decoration-break:initial;box-decoration-break:slice}.md-content__edit,.md-footer,.md-header,.md-sidebar,.md-typeset .headerlink{display:none}}@media only screen and (max-width:44.9375em){.md-typeset pre{margin:1em -1.6rem;padding:1rem 1.6rem;border-radius:0}.md-footer-nav__link--prev .md-footer-nav__title{display:none}.codehilite .hll{margin:0 -1.6rem;padding:0 1.6rem}.md-typeset>.codehilite{padding:1rem 1.6rem .8rem}.md-typeset>.codehilite,.md-typeset>.codehilitetable{margin:1em -1.6rem;border-radius:0}.md-typeset>.codehilitetable .codehilite,.md-typeset>.codehilitetable .linenodiv{padding:1rem 1.6rem}.md-typeset>p>.MJXc-display{margin:.75em -1.6rem;padding:.25em 1.6rem}}@media only screen and (min-width:100em){html{font-size:68.75%}}@media only screen and (min-width:125em){html{font-size:75%}}@media only screen and (max-width:59.9375em){body[data-md-state=lock]{overflow:hidden}.ios body[data-md-state=lock] .md-container{display:none}.md-content__edit{margin-right:-.8rem}.md-nav--secondary{border-left:0}html .md-nav__link[for=toc]{display:block;padding-right:4.8rem}html .md-nav__link[for=toc]:after{color:inherit;content:"toc"}html .md-nav__link[for=toc]+.md-nav__link{display:none}html .md-nav__link[for=toc]~.md-nav{display:-webkit-box;display:-ms-flexbox;display:flex}.md-nav__source{display:block;padding:.4rem;background-color:rgba(50,64,144,.9675);color:#fff}.md-search__overlay{display:block;position:absolute;top:.4rem;left:.4rem;width:4rem;height:4rem;-webkit-transform-origin:center;transform-origin:center;-webkit-transition:opacity .2s .2s,-webkit-transform .3s .1s;transition:opacity .2s .2s,-webkit-transform .3s .1s;transition:transform .3s .1s,opacity .2s .2s;transition:transform .3s .1s,opacity .2s .2s,-webkit-transform .3s .1s;border-radius:2rem;background-color:#fff;opacity:0;overflow:hidden;z-index:1}[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transition:opacity .1s,-webkit-transform .4s;transition:opacity .1s,-webkit-transform .4s;transition:transform .4s,opacity .1s;transition:transform .4s,opacity .1s,-webkit-transform .4s;opacity:1}.md-search__inner{position:fixed;top:0;left:100%;height:100%;-webkit-transform:translateX(5%);transform:translateX(5%);-webkit-transition:left 0s .3s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.4,0,.2,1) .15s;transition:left 0s .3s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.4,0,.2,1) .15s;transition:left 0s .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;transition:left 0s .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.4,0,.2,1) .15s;opacity:0;z-index:2}[data-md-toggle=search]:checked~.md-header .md-search__inner{left:0;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:left 0s 0s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1) .15s;transition:left 0s 0s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1) .15s;transition:left 0s 0s,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s;transition:left 0s 0s,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s,-webkit-transform .15s cubic-bezier(.1,.7,.1,1) .15s;opacity:1}.md-search__input{width:100%;height:5.6rem;font-size:1.8rem}.md-search__icon{top:1.6rem;left:1.6rem}.md-search__icon:before{content:"arrow_back"}.md-search__output{top:5.6rem;bottom:0}}@media only screen and (max-width:76.1875em){[data-md-toggle=drawer]:checked~.md-overlay{width:100%;height:100%;-webkit-transition:width 0s,height 0s,opacity .25s;transition:width 0s,height 0s,opacity .25s;opacity:1}.md-header-nav__button.md-icon--home,.md-header-nav__button.md-logo{display:none}.md-nav{background-color:#fff}.md-nav--primary,.md-nav--primary .md-nav{display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;top:0;right:0;left:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%;z-index:1}.md-nav--primary .md-nav__item,.md-nav--primary .md-nav__title{font-size:1.6rem;line-height:1.5}html .md-nav--primary .md-nav__title{position:relative;height:11.2rem;padding:6rem 1.6rem .4rem;background-color:rgba(0,0,0,.07);color:rgba(0,0,0,.54);font-weight:400;line-height:4.8rem;white-space:nowrap;cursor:pointer}html .md-nav--primary .md-nav__title:before{display:block;position:absolute;top:.4rem;left:.4rem;width:4rem;height:4rem;color:rgba(0,0,0,.54)}html .md-nav--primary .md-nav__title~.md-nav__list{background:-webkit-linear-gradient(top,#fff 10%,hsla(0,0%,100%,0)),-webkit-linear-gradient(top,rgba(0,0,0,.26),rgba(0,0,0,.07) 35%,transparent 60%);background:linear-gradient(180deg,#fff 10%,hsla(0,0%,100%,0)),linear-gradient(180deg,rgba(0,0,0,.26),rgba(0,0,0,.07) 35%,transparent 60%);background-attachment:local,scroll;background-color:#fff;background-repeat:no-repeat;background-size:100% 2rem,100% 1rem;box-shadow:inset 0 .1rem 0 rgba(0,0,0,.07)}html .md-nav--primary .md-nav__title~.md-nav__list>.md-nav__item:first-child{border-top:0}html .md-nav--primary .md-nav__title--site{position:relative;background-color:#3f51b5;color:#fff}html .md-nav--primary .md-nav__title--site .md-nav__button{display:block;position:absolute;top:.4rem;left:.4rem;width:6.4rem;height:6.4rem;font-size:4.8rem}html .md-nav--primary .md-nav__title--site:before{display:none}.md-nav--primary .md-nav__list{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow-y:auto}.md-nav--primary .md-nav__item{padding:0;border-top:.1rem solid rgba(0,0,0,.07)}.md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:4.8rem}.md-nav--primary .md-nav__item--nested>.md-nav__link:after{content:"keyboard_arrow_right"}.md-nav--primary .md-nav__link{position:relative;padding:1.6rem}.md-nav--primary .md-nav__link:after{position:absolute;top:50%;right:1.2rem;margin-top:-1.2rem;color:rgba(0,0,0,.54);font-size:2.4rem}.md-nav--primary .md-nav__link:focus:after,.md-nav--primary .md-nav__link:hover:after{color:inherit}.md-nav--primary .md-nav--secondary .md-nav{position:static}.md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:2.8rem}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:4rem}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:5.2rem}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:6.4rem}.md-nav__toggle~.md-nav{display:none}.csstransforms3d .md-nav__toggle~.md-nav{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transition:opacity .125s .05s,-webkit-transform .25s cubic-bezier(.8,0,.6,1);transition:opacity .125s .05s,-webkit-transform .25s cubic-bezier(.8,0,.6,1);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity .125s .05s;transition:transform .25s cubic-bezier(.8,0,.6,1),opacity .125s .05s,-webkit-transform .25s cubic-bezier(.8,0,.6,1);opacity:0}.csstransforms3d .md-nav__toggle~.md-nav,.md-nav__toggle:checked~.md-nav{display:-webkit-box;display:-ms-flexbox;display:flex}.csstransforms3d .md-nav__toggle:checked~.md-nav{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:opacity .125s .125s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:opacity .125s .125s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .125s .125s;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .125s .125s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);opacity:1}.md-sidebar--primary{position:fixed;top:0;left:-24.2rem;width:24.2rem;height:100%;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:box-shadow .25s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:box-shadow .25s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s,-webkit-transform .25s cubic-bezier(.4,0,.2,1);background-color:#fff;z-index:2}.no-csstransforms3d .md-sidebar--primary{display:none}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.4);-webkit-transform:translateX(24.2rem);transform:translateX(24.2rem)}.no-csstransforms3d [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{display:block}.md-sidebar--primary .md-sidebar__scrollwrap{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;margin:0}}@media only screen and (min-width:60em){.md-content{margin-right:24.2rem}.md-header-nav__button.md-icon--search{display:none}.md-header-nav__source{display:block;width:23rem;max-width:23rem;padding-right:1.2rem}.md-search{margin-right:2.8rem;padding:.4rem}.md-search__inner{display:table;position:relative;clear:both}.md-search__form{width:23rem;float:right;-webkit-transition:width .25s cubic-bezier(.1,.7,.1,1);transition:width .25s cubic-bezier(.1,.7,.1,1);border-radius:.2rem}.md-search__input{width:100%;height:4rem;padding-left:4.8rem;-webkit-transition:background-color .25s,color .25s;transition:background-color .25s,color .25s;border-radius:.2rem;background-color:rgba(0,0,0,.26);color:#fff;font-size:1.6rem}.md-search__input+.md-search__icon,.md-search__input::-webkit-input-placeholder{-webkit-transition:color .25s;transition:color .25s;color:#fff}.md-search__input+.md-search__icon,.md-search__input::-moz-placeholder{-webkit-transition:color .25s;transition:color .25s;color:#fff}.md-search__input+.md-search__icon,.md-search__input:-ms-input-placeholder{-webkit-transition:color .25s;transition:color .25s;color:#fff}.md-search__input+.md-search__icon,.md-search__input::placeholder{-webkit-transition:color .25s;transition:color .25s;color:#fff}.md-search__input:hover{background-color:hsla(0,0%,100%,.12)}[data-md-toggle=search]:checked~.md-header .md-search__input{border-radius:.2rem .2rem 0 0;background-color:#fff;color:rgba(0,0,0,.87);text-overflow:none}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::-webkit-input-placeholder{color:rgba(0,0,0,.54)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::-moz-placeholder{color:rgba(0,0,0,.54)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input:-ms-input-placeholder{color:rgba(0,0,0,.54)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:rgba(0,0,0,.54)}.md-search__output{top:4rem;-webkit-transition:opacity .4s;transition:opacity .4s;opacity:0}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4);opacity:1}.md-search__scrollwrap{max-height:0}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap::-webkit-scrollbar{width:.4rem;height:.4rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.26)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:#536dfe}.md-search-result__link,.md-search-result__meta{padding-left:4.8rem}.md-sidebar--secondary{display:block;float:right}.md-sidebar--secondary[data-md-state=lock]{margin-left:100%;-webkit-transform:translate(-100%);transform:translate(-100%)}}@media only screen and (min-width:76.25em){.md-content{margin-left:24.2rem;overflow:auto}.md-content__inner{margin:2.4rem}.md-header-nav__button.md-icon--menu{display:none}.md-nav[data-md-state=animate]{-webkit-transition:max-height .25s cubic-bezier(.86,0,.07,1);transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav__toggle~.md-nav{max-height:0;overflow:hidden}.md-nav[data-md-state=expand],.md-nav__toggle:checked~.md-nav{max-height:100%}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--nested>.md-nav__link:after{display:inline-block;-webkit-transform-origin:.45em .45em;transform-origin:.45em .45em;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;vertical-align:-.125em}.js .md-nav__item--nested>.md-nav__link:after{-webkit-transition:-webkit-transform .4s;transition:-webkit-transform .4s;transition:transform .4s;transition:transform .4s,-webkit-transform .4s}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link:after{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.md-search__scrollwrap,[data-md-toggle=search]:checked~.md-header .md-search__form{width:68.8rem}.md-sidebar__inner{border-right:.1rem solid rgba(0,0,0,.07)}}@media only screen and (max-width:29.9375em){.md-header-nav__parent{display:none}[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transform:scale(45);transform:scale(45)}}@media only screen and (min-width:45em){.md-footer-nav__link{width:50%}.md-footer-copyright{max-width:75%;float:left}.md-footer-social{padding:1.2rem 0;float:right}}@media only screen and (min-width:30em) and (max-width:44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transform:scale(60);transform:scale(60)}}@media only screen and (min-width:45em) and (max-width:59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{-webkit-transform:scale(75);transform:scale(75)}}@media only screen and (min-width:60em) and (max-width:76.1875em){.md-search__scrollwrap,[data-md-toggle=search]:checked~.md-header .md-search__form{width:46.8rem}}@media only screen and (min-width:60em) and (min-width:76.25em){.md-sidebar--secondary[data-md-state=lock]{margin-left:122rem}} \ No newline at end of file diff --git a/material/base.html b/material/base.html index 1bdea6657..fb5cdcd92 100644 --- a/material/base.html +++ b/material/base.html @@ -19,7 +19,7 @@ {% else %} {% endif %} - + {% endblock %} {% block htmltitle %} {% if page.title and not page.is_homepage %} @@ -29,10 +29,10 @@ {% endif %} {% endblock %} {% block libs %} - + {% endblock %} {% block styles %} - + {% if config.extra.palette %} {% endif %} @@ -117,6 +117,23 @@ {% endif %} {{ page.content }} {% endblock %} + {% if config.extra.disqus and not page.is_homepage %} +

{{ lang.t('comments') }}

+
+ + {% endif %} @@ -126,7 +143,7 @@ {% endblock %} {% block scripts %} - + {% for path in extra_javascript %} diff --git a/material/partials/language.html b/material/partials/language.html index bf43cf588..9e00a86f3 100644 --- a/material/partials/language.html +++ b/material/partials/language.html @@ -1,5 +1,6 @@ {% macro t(key) %}{{ { "edit.link.title": "Edit this page", + "comments": "Comments", "footer.previous": "Previous", "footer.next": "Next", "search.placeholder": "Search", diff --git a/material/partials/search.html b/material/partials/search.html index 87783dbf0..28337ccae 100644 --- a/material/partials/search.html +++ b/material/partials/search.html @@ -3,7 +3,7 @@
- +
diff --git a/mkdocs.yml b/mkdocs.yml index ab2ca38fb..958ed0e4f 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -53,6 +53,7 @@ extra: markdown_extensions: - markdown.extensions.admonition - markdown.extensions.codehilite(guess_lang=false) + - markdown.extensions.def_list - markdown.extensions.footnotes - markdown.extensions.meta - markdown.extensions.toc(permalink=true) diff --git a/package.json b/package.json index b1a9e64bb..843c923c1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mkdocs-material", - "version": "1.0.3", + "version": "1.0.5", "description": "A Material Design theme for MkDocs", "keywords": [ "mkdocs", @@ -25,6 +25,7 @@ "scripts": { "build": "scripts/build", "clean": "scripts/clean", + "flow": "scripts/flow", "lint": "scripts/lint", "start": "scripts/start", "test:visual:run": "scripts/test/visual/run", @@ -33,26 +34,28 @@ }, "dependencies": {}, "devDependencies": { - "autoprefixer": "^6.6.1", - "babel-core": "^6.0.0", + "autoprefixer": "^6.7.3", + "babel-core": "^6.23.0", "babel-eslint": "^7.1.1", - "babel-loader": "^6.2.10", + "babel-loader": "^6.3.1", "babel-plugin-add-module-exports": "^0.2.1", "babel-plugin-transform-react-jsx": "^6.8.0", "babel-polyfill": "^6.20.0", "babel-preset-es2015": "^6.22.0", - "babel-register": "^6.18.0", + "babel-register": "^6.23.0", "babel-root-import": "^4.1.5", "core-js": "^2.4.1", "css-mqpacker": "^5.0.1", "custom-event-polyfill": "^0.3.0", "del": "^2.2.2", "ecstatic": "^2.1.0", - "eslint": "^3.14.0", + "eslint": "^3.16.0", "fastclick": "^1.0.6", + "flow-bin": "^0.39.0", + "flow-jsdoc": "^0.2.2", "git-hooks": "^1.1.7", "gulp": "^3.9.1", - "gulp-changed": "^1.3.2", + "gulp-changed": "^2.0.0", "gulp-concat": "^2.6.1", "gulp-cssnano": "^2.1.2", "gulp-htmlmin": "^3.0.0", @@ -72,15 +75,15 @@ "gulp-uglify": "^2.0.0", "gulp-util": "^3.0.8", "js-cookie": "^2.1.3", - "lunr": "^0.7.2", - "material-design-color": "^2.3.2", - "material-shadows": "^3.0.1", - "modularscale-sass": "^2.1.1", + "lunr": "^1.0.0", + "material-design-color": "2.3.2", + "material-shadows": "3.0.1", + "modularscale-sass": "2.1.1", "node-notifier": "^5.0.0", - "postcss-pseudo-classes": "^0.1.0", + "postcss-pseudo-classes": "^0.2.0", "stylelint": "^7.8.0", "stylelint-config-standard": "^16.0.0", - "stylelint-order": "^0.2.2", + "stylelint-order": "^0.3.0", "stylelint-scss": "^1.4.1", "through2": "^2.0.3", "vinyl-paths": "^2.1.0", @@ -93,14 +96,6 @@ "chai": "^3.5.0", "eslint-plugin-mocha": "^4.8.0", "gemini": "^4.14.3", - "karma": "^1.3.0", - "karma-chrome-launcher": "^2.0.0", - "karma-coverage": "^1.1.1", - "karma-mocha": "^1.3.0", - "karma-notify-reporter": "^1.0.1", - "karma-sourcemap-loader": "^0.3.7", - "karma-spec-reporter": "0.0.26", - "karma-webpack": "^2.0.1", "mocha": "^3.2.0", "moniker": "^0.1.2", "saucelabs": "^1.4.0", diff --git a/scripts/flow b/scripts/flow new file mode 100755 index 000000000..ecc7f103c --- /dev/null +++ b/scripts/flow @@ -0,0 +1,44 @@ +#!/bin/bash + +# Copyright (c) 2016-2017 Martin Donath + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + +# Check if "npm install" was executed +if [[ ! -d `npm bin` ]]; then + echo "\"node_modules\" not found:" + echo "npm install" + exit 1 +fi + +# Annotate source files +`npm bin`/gulp assets:javascripts:annotate "$@" +FLOW_JSDOC=$? + +# Run flow typecheck +`npm bin`/flow check tmp +FLOW=$? + +# If one command failed, exit with error +if [ $FLOW_JSDOC -gt 0 ] || [ $FLOW -gt 0 ]; then + exit 1 +fi; + +# Otherwise return with success +exit 0 diff --git a/src/.babelrc b/src/.babelrc index c3bcf02b5..e0e3a1cd0 100644 --- a/src/.babelrc +++ b/src/.babelrc @@ -4,7 +4,7 @@ ], "plugins": [ ["transform-react-jsx", { - "pragma": "JSX.createElement" + "pragma": "Jsx.createElement" }] ] } diff --git a/src/assets/javascripts/application.js b/src/assets/javascripts/application.js index 60bae0b8e..394aa32f5 100644 --- a/src/assets/javascripts/application.js +++ b/src/assets/javascripts/application.js @@ -27,35 +27,40 @@ import Material from "./components/Material" * Application * ------------------------------------------------------------------------- */ -export const initialize = config => { +/** + * Initialize Material for MkDocs + * + * @param {Object} config - Configuration + */ +function initialize(config) { // eslint-disable-line func-style /* Initialize Modernizr and FastClick */ new Material.Event.Listener(document, "DOMContentLoaded", () => { + if (!(document.body instanceof HTMLElement)) + throw new ReferenceError + + /* Attach FastClick to mitigate 300ms delay on touch devices */ + FastClick.attach(document.body) /* Test for iOS */ Modernizr.addTest("ios", () => { return !!navigator.userAgent.match(/(iPad|iPhone|iPod)/g) }) - /* Test for web application context */ - Modernizr.addTest("standalone", () => { - return !!navigator.standalone - }) - - /* Attach FastClick to mitigate 300ms delay on touch devices */ - FastClick.attach(document.body) - /* Wrap all data tables for better overflow scrolling */ const tables = document.querySelectorAll("table:not([class])") Array.prototype.forEach.call(tables, table => { - const wrap = document.createElement("div") - wrap.classList.add("md-typeset__table") + const wrap = ( +
+
+
+ ) if (table.nextSibling) { table.parentNode.insertBefore(wrap, table.nextSibling) } else { table.parentNode.appendChild(wrap) } - wrap.appendChild(table) + wrap.children[0].appendChild(table) }) /* Force 1px scroll offset to trigger overflow scrolling */ @@ -89,13 +94,6 @@ export const initialize = config => { "scroll", "resize", "orientationchange" ], new Material.Tabs.Toggle("[data-md-component=tabs]")).listen() - /* Component: sidebar container */ - if (!Modernizr.csscalc) - new Material.Event.MatchMedia("(min-width: 960px)", - new Material.Event.Listener(window, [ - "resize", "orientationchange" - ], new Material.Sidebar.Container("[data-md-component=container]"))) - /* Component: sidebar with navigation */ new Material.Event.MatchMedia("(min-width: 1220px)", new Material.Event.Listener(window, [ @@ -139,7 +137,7 @@ export const initialize = config => { new Material.Search.Lock("[data-md-toggle=search]"))) /* Component: search results */ - new Material.Event.Listener(document.forms.search.query, [ + new Material.Event.Listener("[data-md-component=query]", [ "focus", "keyup" ], new Material.Search.Result("[data-md-component=result]", () => { return fetch(`${config.url.base}/mkdocs/search_index.json`, { @@ -163,6 +161,8 @@ export const initialize = config => { new Material.Event.Listener("[data-md-component=navigation] [href^='#']", "click", () => { const toggle = document.querySelector("[data-md-toggle=drawer]") + if (!(toggle instanceof HTMLInputElement)) + throw new ReferenceError if (toggle.checked) { toggle.checked = false toggle.dispatchEvent(new CustomEvent("change")) @@ -172,16 +172,23 @@ export const initialize = config => { /* Listener: focus input after opening search */ new Material.Event.Listener("[data-md-toggle=search]", "change", ev => { setTimeout(toggle => { - const query = document.forms.search.query - if (toggle.checked) + if (!(toggle instanceof HTMLInputElement)) + throw new ReferenceError + if (toggle.checked) { + const query = document.querySelector("[data-md-component=query]") + if (!(query instanceof HTMLInputElement)) + throw new ReferenceError query.focus() + } }, 400, ev.target) }).listen() /* Listener: open search on focus */ new Material.Event.MatchMedia("(min-width: 960px)", - new Material.Event.Listener(document.forms.search.query, "focus", () => { + new Material.Event.Listener("[data-md-component=query]", "focus", () => { const toggle = document.querySelector("[data-md-toggle=search]") + if (!(toggle instanceof HTMLInputElement)) + throw new ReferenceError if (!toggle.checked) { toggle.checked = true toggle.dispatchEvent(new CustomEvent("change")) @@ -192,6 +199,8 @@ export const initialize = config => { new Material.Event.MatchMedia("(min-width: 960px)", new Material.Event.Listener(document.body, "click", () => { const toggle = document.querySelector("[data-md-toggle=search]") + if (!(toggle instanceof HTMLInputElement)) + throw new ReferenceError if (toggle.checked) { toggle.checked = false toggle.dispatchEvent(new CustomEvent("change")) @@ -203,10 +212,15 @@ export const initialize = config => { const code = ev.keyCode || ev.which if (code === 27) { const toggle = document.querySelector("[data-md-toggle=search]") + if (!(toggle instanceof HTMLInputElement)) + throw new ReferenceError if (toggle.checked) { toggle.checked = false toggle.dispatchEvent(new CustomEvent("change")) - document.forms.search.query.blur() + const query = document.querySelector("[data-md-component=query]") + if (!(query instanceof HTMLInputElement)) + throw new ReferenceError + query.focus() } } }).listen() @@ -224,13 +238,16 @@ export const initialize = config => { /* Retrieve facts for the given repository type */ ;(() => { const el = document.querySelector("[data-md-source]") - if (!el) return Promise.resolve([]) + if (!el) + return Promise.resolve([]) + else if (!(el instanceof HTMLAnchorElement)) + throw new ReferenceError switch (el.dataset.mdSource) { case "github": return new Material.Source.Adapter.GitHub(el).fetch() default: return Promise.resolve([]) } - /* Render repository source information */ + /* Render repository information */ })().then(facts => { const sources = document.querySelectorAll("[data-md-source]") Array.prototype.forEach.call(sources, source => { @@ -239,3 +256,11 @@ export const initialize = config => { }) }) } + +/* ---------------------------------------------------------------------------- + * Exports + * ------------------------------------------------------------------------- */ + +export { + initialize +} diff --git a/src/assets/javascripts/components/Material/Event/Listener.js b/src/assets/javascripts/components/Material/Event/Listener.js index 5b5776698..95992b495 100644 --- a/src/assets/javascripts/components/Material/Event/Listener.js +++ b/src/assets/javascripts/components/Material/Event/Listener.js @@ -30,14 +30,22 @@ export default class Listener { * Generic event listener * * @constructor - * @param {(string|NodeList)} els - Selector or HTML elements - * @param {Array.} events - Event names - * @param {(object|function)} handler - Handler to be invoked + * + * @property {(Array)} els_ - Event targets + * @property {Object} handler_- Event handlers + * @property {Array} events_ - Event names + * @property {Function} update_ - Update handler + * + * @param {?(string|EventTarget|NodeList)} els - + * Selector or Event targets + * @param {(string|Array)} events - Event names + * @param {(Object|Function)} handler - Handler to be invoked */ constructor(els, events, handler) { - this.els_ = (typeof els === "string") - ? document.querySelectorAll(els) - : [].concat(els) + this.els_ = Array.prototype.slice.call( + (typeof els === "string") + ? document.querySelectorAll(els) + : [].concat(els)) /* Set handler as function or directly as object */ this.handler_ = typeof handler === "function" @@ -53,7 +61,7 @@ export default class Listener { * Register listener for all relevant events */ listen() { - Array.prototype.forEach.call(this.els_, el => { + this.els_.forEach(el => { this.events_.forEach(event => { el.addEventListener(event, this.update_, false) }) @@ -68,7 +76,7 @@ export default class Listener { * Unregister listener for all relevant events */ unlisten() { - Array.prototype.forEach.call(this.els_, el => { + this.els_.forEach(el => { this.events_.forEach(event => { el.removeEventListener(event, this.update_) }) diff --git a/src/assets/javascripts/components/Material/Event/MatchMedia.js b/src/assets/javascripts/components/Material/Event/MatchMedia.js index 2d792e2c2..f230bd636 100644 --- a/src/assets/javascripts/components/Material/Event/MatchMedia.js +++ b/src/assets/javascripts/components/Material/Event/MatchMedia.js @@ -20,6 +20,8 @@ * IN THE SOFTWARE. */ +import Listener from "./Listener" // eslint-disable-line no-unused-vars + /* ---------------------------------------------------------------------------- * Class * ------------------------------------------------------------------------- */ @@ -33,6 +35,9 @@ export default class MatchMedia { * switches the given listeners on or off. * * @constructor + * + * @property {Function} handler_ - Media query event handler + * * @param {string} query - Media query to test for * @param {Listener} listener - Event listener */ diff --git a/src/assets/javascripts/components/Material/Header/Shadow.js b/src/assets/javascripts/components/Material/Header/Shadow.js index cbb79eb67..8694b6e1e 100644 --- a/src/assets/javascripts/components/Material/Header/Shadow.js +++ b/src/assets/javascripts/components/Material/Header/Shadow.js @@ -27,19 +27,29 @@ export default class Shadow { /** - * Show the header shadow depending on scroll offset + * Show or hide header shadow depending on page y-offset * * @constructor + * + * @property {HTMLElement} el_ - Content container + * @property {HTMLElement} header_ - Header + * @property {number} height_ - Offset height of previous nodes + * @property {boolean} active_ - Header shadow state + * * @param {(string|HTMLElement)} el - Selector or HTML element */ constructor(el) { - this.el_ = (typeof el === "string") + const ref = (typeof el === "string") ? document.querySelector(el) : el + if (!(ref instanceof Node) || + !(ref.parentNode instanceof HTMLElement) || + !(ref.parentNode.previousElementSibling instanceof HTMLElement)) + throw new ReferenceError /* Grab parent and header */ - this.el_ = this.el_.parentNode - this.header_ = this.el_.parentNode.previousElementSibling + this.el_ = ref.parentNode + this.header_ = ref.parentNode.previousElementSibling /* Initialize height and state */ this.height_ = 0 @@ -51,8 +61,11 @@ export default class Shadow { */ setup() { let current = this.el_ - while ((current = current.previousElementSibling)) + while ((current = current.previousElementSibling)) { + if (!(current instanceof HTMLElement)) + throw new ReferenceError this.height_ += current.offsetHeight + } this.update() } diff --git a/src/assets/javascripts/components/Material/Nav/Blur.js b/src/assets/javascripts/components/Material/Nav/Blur.js index a1f410b29..c226168d6 100644 --- a/src/assets/javascripts/components/Material/Nav/Blur.js +++ b/src/assets/javascripts/components/Material/Nav/Blur.js @@ -27,9 +27,16 @@ export default class Blur { /** - * Blur anchors within the navigation above current page y-offset + * Blur links within the table of contents above current page y-offset * * @constructor + * + * @property {NodeList} els_ - Table of contents links + * @property {Array} anchors_ - Referenced anchor nodes + * @property {number} index_ - Current link index + * @property {number} offset_ - Current page y-offset + * @property {boolean} dir_ - Scroll direction change + * * @param {(string|NodeList)} els - Selector or HTML elements */ constructor(els) { @@ -38,27 +45,28 @@ export default class Blur { : els /* Initialize index and page y-offset */ - this.index_ = 0 + this.index_ = 0 this.offset_ = window.pageYOffset /* Necessary state to correctly reset the index */ this.dir_ = false /* Index anchor node offsets for fast lookup */ - this.anchors_ = [].map.call(this.els_, el => { - return document.getElementById(el.hash.substring(1)) - }) + this.anchors_ = [].reduce.call(this.els_, (anchors, el) => { + return anchors.concat( + document.getElementById(el.hash.substring(1)) || []) + }, []) } /** - * Initialize anchor states + * Initialize blur states */ setup() { this.update() } /** - * Update anchor states + * Update blur states * * Deduct the static offset of the header (56px) and sidebar offset (24px), * see _permalinks.scss for more information. @@ -67,7 +75,7 @@ export default class Blur { const offset = window.pageYOffset const dir = this.offset_ - offset < 0 - /* Hack: reset index if direction changed, to catch very fast scrolling, + /* Hack: reset index if direction changed to catch very fast scrolling, because otherwise we would have to register a timer and that sucks */ if (this.dir_ !== dir) this.index_ = dir @@ -109,7 +117,7 @@ export default class Blur { } /** - * Reset anchor states + * Reset blur states */ reset() { Array.prototype.forEach.call(this.els_, el => { diff --git a/src/assets/javascripts/components/Material/Nav/Collapse.js b/src/assets/javascripts/components/Material/Nav/Collapse.js index 922052d0b..4d676a4d3 100644 --- a/src/assets/javascripts/components/Material/Nav/Collapse.js +++ b/src/assets/javascripts/components/Material/Nav/Collapse.js @@ -30,12 +30,18 @@ export default class Collapse { * Expand or collapse navigation on toggle * * @constructor + * + * @property {HTMLElement} el_ - Navigation list + * * @param {(string|HTMLElement)} el - Selector or HTML element */ constructor(el) { - this.el_ = (typeof el === "string") + const ref = (typeof el === "string") ? document.querySelector(el) : el + if (!(ref instanceof HTMLElement)) + throw new ReferenceError + this.el_ = ref } /** @@ -75,11 +81,16 @@ export default class Collapse { /* Remove state on end of transition */ const end = ev => { - ev.target.removeAttribute("data-md-state") - ev.target.style.maxHeight = "" + const target = ev.target + if (!(target instanceof HTMLElement)) + throw new ReferenceError + + /* Reset height and state */ + target.removeAttribute("data-md-state") + target.style.maxHeight = "" /* Only fire once, so directly remove event listener */ - ev.target.removeEventListener("transitionend", end) + target.removeEventListener("transitionend", end) } this.el_.addEventListener("transitionend", end, false) } diff --git a/src/assets/javascripts/components/Material/Nav/Scrolling.js b/src/assets/javascripts/components/Material/Nav/Scrolling.js index b1fd58bae..a79222b96 100644 --- a/src/assets/javascripts/components/Material/Nav/Scrolling.js +++ b/src/assets/javascripts/components/Material/Nav/Scrolling.js @@ -30,12 +30,18 @@ export default class Scrolling { * Set overflow scrolling on the current active pane (for iOS) * * @constructor + * + * @property {HTMLElement} el_ - Primary navigation + * * @param {(string|HTMLElement)} el - Selector or HTML element */ constructor(el) { - this.el_ = (typeof el === "string") + const ref = (typeof el === "string") ? document.querySelector(el) : el + if (!(ref instanceof HTMLElement)) + throw new ReferenceError + this.el_ = ref } /** @@ -49,13 +55,22 @@ export default class Scrolling { /* Find all toggles and check which one is active */ const toggles = this.el_.querySelectorAll("[data-md-toggle]") Array.prototype.forEach.call(toggles, toggle => { + if (!(toggle instanceof HTMLInputElement)) + throw new ReferenceError if (toggle.checked) { /* Find corresponding navigational pane */ let pane = toggle.nextElementSibling - while (pane.tagName !== "NAV") + if (!(pane instanceof HTMLElement)) + throw new ReferenceError + while (pane.tagName !== "NAV" && pane.nextElementSibling) pane = pane.nextElementSibling + /* Check references */ + if (!(toggle.parentNode instanceof HTMLElement) || + !(toggle.parentNode.parentNode instanceof HTMLElement)) + throw new ReferenceError + /* Find current and parent list elements */ const parent = toggle.parentNode.parentNode const target = pane.children[pane.children.length - 1] @@ -73,34 +88,48 @@ export default class Scrolling { * @param {Event} ev - Change event */ update(ev) { + const target = ev.target + if (!(target instanceof HTMLElement)) + throw new ReferenceError /* Find corresponding navigational pane */ - let pane = ev.target.nextElementSibling - while (pane.tagName !== "NAV") + let pane = target.nextElementSibling + if (!(pane instanceof HTMLElement)) + throw new ReferenceError + while (pane.tagName !== "NAV" && pane.nextElementSibling) pane = pane.nextElementSibling - /* Find current and parent list elements */ - const parent = ev.target.parentNode.parentNode - const target = pane.children[pane.children.length - 1] + /* Check references */ + if (!(target.parentNode instanceof HTMLElement) || + !(target.parentNode.parentNode instanceof HTMLElement)) + throw new ReferenceError + + /* Find parent and active panes */ + const parent = target.parentNode.parentNode + const active = pane.children[pane.children.length - 1] /* Always reset all lists when transitioning */ parent.style.webkitOverflowScrolling = "" - target.style.webkitOverflowScrolling = "" + active.style.webkitOverflowScrolling = "" - /* Set overflow scrolling on parent */ - if (!ev.target.checked) { + /* Set overflow scrolling on parent pane */ + if (!target.checked) { const end = () => { - parent.style.webkitOverflowScrolling = "touch" - pane.removeEventListener("transitionend", end) + if (pane instanceof HTMLElement) { + parent.style.webkitOverflowScrolling = "touch" + pane.removeEventListener("transitionend", end) + } } pane.addEventListener("transitionend", end, false) } - /* Set overflow scrolling on target */ - if (ev.target.checked) { + /* Set overflow scrolling on active pane */ + if (target.checked) { const end = () => { - target.style.webkitOverflowScrolling = "touch" - pane.removeEventListener("transitionend", end, false) + if (pane instanceof HTMLElement) { + active.style.webkitOverflowScrolling = "touch" + pane.removeEventListener("transitionend", end) + } } pane.addEventListener("transitionend", end, false) } @@ -117,20 +146,29 @@ export default class Scrolling { /* Find all toggles and check which one is active */ const toggles = this.el_.querySelectorAll("[data-md-toggle]") Array.prototype.forEach.call(toggles, toggle => { + if (!(toggle instanceof HTMLInputElement)) + throw new ReferenceError if (toggle.checked) { /* Find corresponding navigational pane */ let pane = toggle.nextElementSibling - while (pane.tagName !== "NAV") + if (!(pane instanceof HTMLElement)) + throw new ReferenceError + while (pane.tagName !== "NAV" && pane.nextElementSibling) pane = pane.nextElementSibling - /* Find current and parent list elements */ + /* Check references */ + if (!(toggle.parentNode instanceof HTMLElement) || + !(toggle.parentNode.parentNode instanceof HTMLElement)) + throw new ReferenceError + + /* Find parent and active panes */ const parent = toggle.parentNode.parentNode - const target = pane.children[pane.children.length - 1] + const active = pane.children[pane.children.length - 1] /* Always reset all lists when transitioning */ parent.style.webkitOverflowScrolling = "" - target.style.webkitOverflowScrolling = "" + active.style.webkitOverflowScrolling = "" } }) } diff --git a/src/assets/javascripts/components/Material/Search/Lock.js b/src/assets/javascripts/components/Material/Search/Lock.js index 2726515ba..3c0fe2b7b 100644 --- a/src/assets/javascripts/components/Material/Search/Lock.js +++ b/src/assets/javascripts/components/Material/Search/Lock.js @@ -30,12 +30,25 @@ export default class Lock { * Lock body for full-screen search modal * * @constructor + * + * @property {HTMLInputElement} el_ - Lock toggle + * @property {HTMLElement} lock_ - Element to lock (document body) + * @property {number} offset_ - Current page y-offset + * * @param {(string|HTMLElement)} el - Selector or HTML element */ constructor(el) { - this.el_ = (typeof el === "string") + const ref = (typeof el === "string") ? document.querySelector(el) : el + if (!(ref instanceof HTMLInputElement)) + throw new ReferenceError + this.el_ = ref + + /* Retrieve element to lock (= body) */ + if (!document.body) + throw new ReferenceError + this.lock_ = document.body } /** @@ -60,13 +73,13 @@ export default class Lock { /* Lock body after finishing transition */ if (this.el_.checked) { - document.body.dataset.mdState = "lock" + this.lock_.dataset.mdState = "lock" } }, 400) /* Exiting search mode */ } else { - document.body.dataset.mdState = "" + this.lock_.dataset.mdState = "" /* Scroll to former position, but wait for 100ms to prevent flashes on iOS. A short timeout seems to do the trick */ @@ -81,8 +94,8 @@ export default class Lock { * Reset locked state and page y-offset */ reset() { - if (document.body.dataset.mdState === "lock") + if (this.lock_.dataset.mdState === "lock") window.scrollTo(0, this.offset_) - document.body.dataset.mdState = "" + this.lock_.dataset.mdState = "" } } diff --git a/src/assets/javascripts/components/Material/Search/Result.jsx b/src/assets/javascripts/components/Material/Search/Result.jsx index c4bfbe7ca..c1d1b6cee 100644 --- a/src/assets/javascripts/components/Material/Search/Result.jsx +++ b/src/assets/javascripts/components/Material/Search/Result.jsx @@ -32,13 +32,24 @@ export default class Result { * Perform search and update results on keyboard events * * @constructor + * + * @property {HTMLElement} el_ - Search result container + * @property {(Array|Function)} data_ - Raw document data + * @property {Object} docs_ - Indexed documents + * @property {HTMLElement} meta_ - Search meta information + * @property {HTMLElement} list_ - Search result list + * @property {Object} index_ - Search index + * * @param {(string|HTMLElement)} el - Selector or HTML element - * @param {(Array.|Function)} data - Promise or array providing data + * @param {(Array|Function)} data - Function providing data or array */ constructor(el, data) { - this.el_ = (typeof el === "string") + const ref = (typeof el === "string") ? document.querySelector(el) : el + if (!(ref instanceof HTMLElement)) + throw new ReferenceError + this.el_ = ref /* Set data and create metadata and list elements */ this.data_ = data @@ -54,19 +65,26 @@ export default class Result { /* Inject created elements */ this.el_.appendChild(this.meta_) this.el_.appendChild(this.list_) + } - /* Truncate a string after the given number of characters - this is not - a reasonable approach, since the summaries kind of suck. It would be - better to create something more intelligent, highlighting the search - occurrences and making a better summary out of it */ - this.truncate_ = function(string, n) { - let i = n - if (string.length > i) { - while (string[i] !== " " && --i > 0); - return `${string.substring(0, i)}...` - } - return string + /** + * Truncate a string after the given number of character + * + * This is not a reasonable approach, since the summaries kind of suck. It + * would be better to create something more intelligent, highlighting the + * search occurrences and making a better summary out of it + * + * @param {string} string - String to be truncated + * @param {number} n - Number of characters + * @return {string} Truncated string + */ + truncate_(string, n) { + let i = n + if (string.length > i) { + while (string[i] !== " " && --i > 0); + return `${string.substring(0, i)}...` } + return string } /** @@ -90,7 +108,7 @@ export default class Result { }) /* Index documents */ - this.data_ = data.reduce((docs, doc) => { + this.docs_ = data.reduce((docs, doc) => { this.index_.add(doc) docs[doc.location] = doc return docs @@ -104,15 +122,20 @@ export default class Result { : init(this.data_) }, 250) - /* Execute search on new input event after clearing current list */ + /* Execute search on new input event */ } else if (ev.type === "keyup") { + const target = ev.target + if (!(target instanceof HTMLInputElement)) + throw new ReferenceError + + /* Clear current list */ while (this.list_.firstChild) this.list_.removeChild(this.list_.firstChild) /* Perform search on index and render documents */ - const result = this.index_.search(ev.target.value) + const result = this.index_.search(target.value) result.forEach(item => { - const doc = this.data_[item.ref] + const doc = this.docs_[item.ref] /* Check if it's a anchor link on the current page */ let [pathname] = doc.location.split("#") @@ -143,6 +166,8 @@ export default class Result { Array.prototype.forEach.call(anchors, anchor => { anchor.addEventListener("click", ev2 => { const toggle = document.querySelector("[data-md-toggle=search]") + if (!(toggle instanceof HTMLInputElement)) + throw new ReferenceError if (toggle.checked) { toggle.checked = false toggle.dispatchEvent(new CustomEvent("change")) diff --git a/src/assets/javascripts/components/Material/Sidebar.js b/src/assets/javascripts/components/Material/Sidebar.js index 3ce1435b3..8adfa7b73 100644 --- a/src/assets/javascripts/components/Material/Sidebar.js +++ b/src/assets/javascripts/components/Material/Sidebar.js @@ -20,7 +20,6 @@ * IN THE SOFTWARE. */ -import Container from "./Sidebar/Container" import Position from "./Sidebar/Position" /* ---------------------------------------------------------------------------- @@ -28,6 +27,5 @@ import Position from "./Sidebar/Position" * ------------------------------------------------------------------------- */ export default { - Container, Position } diff --git a/src/assets/javascripts/components/Material/Sidebar/Position.js b/src/assets/javascripts/components/Material/Sidebar/Position.js index 86fe70ff5..23f22c56f 100644 --- a/src/assets/javascripts/components/Material/Sidebar/Position.js +++ b/src/assets/javascripts/components/Material/Sidebar/Position.js @@ -30,15 +30,25 @@ export default class Position { * Set sidebars to locked state and limit height to parent node * * @constructor + * + * @property {HTMLElement} el_ - Sidebar + * @property {HTMLElement} parent_ - Sidebar container + * @property {number} height_ - Current sidebar height + * @property {number} offset_ - Current page y-offset + * * @param {(string|HTMLElement)} el - Selector or HTML element */ constructor(el) { - this.el_ = (typeof el === "string") + const ref = (typeof el === "string") ? document.querySelector(el) : el + if (!(ref instanceof HTMLElement) || + !(ref.parentNode instanceof HTMLElement)) + throw new ReferenceError + this.el_ = ref /* Initialize parent container and current height */ - this.parent_ = this.el_.parentNode + this.parent_ = ref.parentNode this.height_ = 0 } @@ -65,15 +75,15 @@ export default class Position { /* Set bounds of sidebar container - must be calculated on every run, as the height of the content might change due to loading images etc. */ - this.bounds_ = { + const bounds = { top: 56, bottom: this.parent_.offsetTop + this.parent_.offsetHeight } /* Calculate new offset and height */ - const height = visible - this.bounds_.top + const height = visible - bounds.top - Math.max(0, this.offset_ - offset) - - Math.max(0, offset + visible - this.bounds_.bottom) + - Math.max(0, offset + visible - bounds.bottom) /* If height changed, update element */ if (height !== this.height_) diff --git a/src/assets/javascripts/components/Material/Source/Adapter/Abstract.js b/src/assets/javascripts/components/Material/Source/Adapter/Abstract.js index 024722009..e3c82d88f 100644 --- a/src/assets/javascripts/components/Material/Source/Adapter/Abstract.js +++ b/src/assets/javascripts/components/Material/Source/Adapter/Abstract.js @@ -29,16 +29,25 @@ import Cookies from "js-cookie" export default class Abstract { /** - * Retrieve source information + * Retrieve repository information * * @constructor - * @param {(string|HTMLElement)} el - Selector or HTML element + * + * @property {HTMLAnchorElement} el_ - Link to repository + * @property {string} base_ - API base URL + * @property {number} salt_ - Unique identifier + * + * @param {(string|HTMLAnchorElement)} el - Selector or HTML element */ constructor(el) { - this.el_ = (typeof el === "string") + const ref = (typeof el === "string") ? document.querySelector(el) : el + if (!(ref instanceof HTMLAnchorElement)) + throw new ReferenceError + this.el_ = ref + /* Retrieve base URL */ this.base_ = this.el_.href this.salt_ = this.hash_(this.base_) @@ -47,7 +56,7 @@ export default class Abstract { /** * Retrieve data from Cookie or fetch from respective API * - * @return {Promise} Promise that returns an array of facts + * @return {Promise>} Promise that returns an array of facts */ fetch() { return new Promise(resolve => { @@ -70,7 +79,6 @@ export default class Abstract { * Abstract private function that fetches relevant repository information * * @abstract - * @return {Promise} Promise that provides the facts in an array */ fetch_() { throw new Error("fetch_(): Not implemented") @@ -79,15 +87,15 @@ export default class Abstract { /** * Format a number with suffix * - * @param {Number} number - Number to format - * @return {Number} Formatted number + * @param {number} number - Number to format + * @return {string} Formatted number */ format_(number) { if (number > 10000) return `${(number / 1000).toFixed(0)}k` else if (number > 1000) return `${(number / 1000).toFixed(1)}k` - return number + return `${number}` } /** @@ -96,7 +104,7 @@ export default class Abstract { * Taken from http://stackoverflow.com/a/7616484/1065584 * * @param {string} str - Input string - * @return {string} Hashed string + * @return {number} Hashed string */ hash_(str) { let hash = 0 diff --git a/src/assets/javascripts/components/Material/Source/Adapter/GitHub.js b/src/assets/javascripts/components/Material/Source/Adapter/GitHub.js index 243ef1d11..fd30d1598 100644 --- a/src/assets/javascripts/components/Material/Source/Adapter/GitHub.js +++ b/src/assets/javascripts/components/Material/Source/Adapter/GitHub.js @@ -29,10 +29,10 @@ import Abstract from "./Abstract" export default class GitHub extends Abstract { /** - * Retrieve source information from GitHub + * Retrieve repository information from GitHub * * @constructor - * @param {(string|HTMLElement)} el - Selector or HTML element + * @param {(string|HTMLAnchorElement)} el - Selector or HTML element */ constructor(el) { super(el) @@ -42,9 +42,9 @@ export default class GitHub extends Abstract { } /** - * Fetch relevant source information from GitHub + * Fetch relevant repository information from GitHub * - * @return {function} Promise returning an array of facts + * @return {Promise>} Promise returning an array of facts */ fetch_() { return fetch(this.base_) diff --git a/src/assets/javascripts/components/Material/Source/Repository.jsx b/src/assets/javascripts/components/Material/Source/Repository.jsx index 917e5f762..28d9bc649 100644 --- a/src/assets/javascripts/components/Material/Source/Repository.jsx +++ b/src/assets/javascripts/components/Material/Source/Repository.jsx @@ -30,21 +30,27 @@ export default class Repository { * Render repository information * * @constructor + * + * @property {HTMLElement} el_ - Repository information + * * @param {(string|HTMLElement)} el - Selector or HTML element */ constructor(el) { - this.el_ = (typeof el === "string") + const ref = (typeof el === "string") ? document.querySelector(el) : el + if (!(ref instanceof HTMLElement)) + throw new ReferenceError + this.el_ = ref } /** - * Initialize the source repository + * Initialize the repository * - * @param {Array.} facts - Facts to be rendered + * @param {Array} facts - Facts to be rendered */ initialize(facts) { - if (facts.length) + if (facts.length && this.el_.children.length) this.el_.children[this.el_.children.length - 1].appendChild(
    {facts.map(fact =>
  • {fact}
  • )} diff --git a/src/assets/javascripts/components/Material/Tabs/Toggle.js b/src/assets/javascripts/components/Material/Tabs/Toggle.js index 8cf88e4ca..e4ec0c228 100644 --- a/src/assets/javascripts/components/Material/Tabs/Toggle.js +++ b/src/assets/javascripts/components/Material/Tabs/Toggle.js @@ -27,18 +27,26 @@ export default class Toggle { /** - * Show tabs depending on scroll offset + * Toggle tabs visibility depending on page y-offset * * @constructor + * + * @property {HTMLElement} el_ - Content container + * @property {number} offset_ - Toggle page-y offset + * @property {boolean} active_ - Tabs visibility + * * @param {(string|HTMLElement)} el - Selector or HTML element */ constructor(el) { - this.el_ = (typeof el === "string") + const ref = (typeof el === "string") ? document.querySelector(el) : el + if (!(ref instanceof Node)) + throw new ReferenceError + this.el_ = ref - /* Initialize height and state */ - this.height_ = 5 + /* Initialize offset and state */ + this.offset_ = 5 this.active_ = false } @@ -46,7 +54,7 @@ export default class Toggle { * Update visibility */ update() { - const active = window.pageYOffset >= this.height_ + const active = window.pageYOffset >= this.offset_ if (active !== this.active_) this.el_.dataset.mdState = (this.active_ = active) ? "hidden" : "" } diff --git a/src/assets/stylesheets/base/_typeset.scss b/src/assets/stylesheets/base/_typeset.scss index c4ebedee0..599c5f1e4 100644 --- a/src/assets/stylesheets/base/_typeset.scss +++ b/src/assets/stylesheets/base/_typeset.scss @@ -351,6 +351,11 @@ kbd { } } + // Definition lists + dd { + margin: 1em 0 1em 1.875em; + } + // Limit width to container iframe, img, @@ -362,18 +367,18 @@ kbd { table:not([class]) { @include z-depth(2); - margin: 2em 0; + display: inline-block; + max-width: 100%; border-radius: 0.2rem; font-size: ms(-1); - overflow: hidden; + overflow: auto; + -webkit-overflow-scrolling: touch; - // Semi-cool overflow solution, in case JavaScript is not available - .no-js & { - display: inline-block; - max-width: 100%; - margin: 0.8em 0; - overflow: auto; - -webkit-overflow-scrolling: touch; + // Due to margin collapse because of the necessary inline-block hack, we + // cannot increase the bottom margin on the table, so we just increase the + // top margin on the following element + & + * { + margin-top: 1.5em; } // Table headings and cells @@ -409,16 +414,25 @@ kbd { } } - // Data table wrapper, in case JavaScript is available - .md-typeset__table { - margin: 1.6em -1.6rem; + // Wrapper for scrolling on overflow + &__scrollwrap { + margin: 1em -1.6rem; overflow-x: auto; -webkit-overflow-scrolling: touch; + } + + // Data table wrapper, in case JavaScript is available + .md-typeset__table { + display: inline-block; + margin-bottom: 0.5em; + padding: 0 1.6rem; // Data tables table { - display: inline-block; - margin: 0 1.6rem; + display: table; + width: 100%; + margin: 0; + overflow: hidden; } } } diff --git a/src/assets/stylesheets/layout/_base.scss b/src/assets/stylesheets/layout/_base.scss index a19015a7e..f45366815 100644 --- a/src/assets/stylesheets/layout/_base.scss +++ b/src/assets/stylesheets/layout/_base.scss @@ -102,27 +102,11 @@ hr { display: table-row; height: 100%; - // Top-spacing to account for header and some additional padding + // Increase top spacing of content area to give typography more room &__inner { + min-height: 100%; padding-top: 2.4rem + 0.6rem; overflow: auto; - - // If the browser supports calc(), no JavaScript is necessary - .csscalc & { - min-height: calc(100% - #{5.6rem - 3rem}); - - // Hack: Firefox doesn't correctly calculate min-height, as it takes the - // top margin into account which leads to the container overflowing its - // parent. For this reason we use this hack here to target only Firefox - // and see if we can find a better solution later. - - // stylelint-disable-next-line function-url-quotes - @-moz-document url-prefix() { - & { - min-height: calc(100% - 5.6rem); - } - } - } } } diff --git a/src/assets/stylesheets/layout/_content.scss b/src/assets/stylesheets/layout/_content.scss index 36e74c896..b63922e01 100644 --- a/src/assets/stylesheets/layout/_content.scss +++ b/src/assets/stylesheets/layout/_content.scss @@ -47,11 +47,11 @@ // [screen +]: Increase spacing @include break-from-device(screen) { margin: 2.4rem; + } - // Hack: remove bottom spacing, due to margin collapse - :last-child { - margin-bottom: 0; - } + // Hack: remove bottom spacing of last element, due to margin collapse + > :last-child { + margin-bottom: 0; } } diff --git a/src/assets/stylesheets/layout/_nav.scss b/src/assets/stylesheets/layout/_nav.scss index ae09f01c3..617a6e2cf 100644 --- a/src/assets/stylesheets/layout/_nav.scss +++ b/src/assets/stylesheets/layout/_nav.scss @@ -141,7 +141,7 @@ color: $md-color-primary; } - // Focused or hovered item + // Focused or hovered link &:focus, &:hover { color: $md-color-accent; @@ -155,6 +155,7 @@ // [tablet -]: Layered navigation @include break-to-device(tablet) { + background-color: $md-color-white; // Stretch primary navigation to drawer &--primary, @@ -171,14 +172,6 @@ // Adjust styles for primary navigation &--primary { - background-color: $md-color-white; - - // Move subsequent navigations off - .md-nav__toggle ~ .md-nav { - @include z-depth(4); - - background-color: $md-color-white; - } // List title and item .md-nav__title, @@ -304,7 +297,8 @@ font-size: 2.4rem; } - // Color of icon should inherit link color on hover + // Color of icon should inherit link color on focus or hover + &:focus::after, &:hover::after { color: inherit; } diff --git a/src/assets/stylesheets/layout/_source.scss b/src/assets/stylesheets/layout/_source.scss index 1d6793183..8c7fffbb6 100644 --- a/src/assets/stylesheets/layout/_source.scss +++ b/src/assets/stylesheets/layout/_source.scss @@ -64,7 +64,7 @@ line-height: 1.2; white-space: nowrap; - // Hovered source information + // Hovered source container &:hover { opacity: 0.7; } diff --git a/src/base.html b/src/base.html index 0f8a3cc90..58e6c3990 100644 --- a/src/base.html +++ b/src/base.html @@ -232,6 +232,25 @@ {{ page.content }} {% endblock %} + + + {% if config.extra.disqus and not page.is_homepage %} +

    {{ lang.t('comments') }}

    +
    + + {% endif %} diff --git a/src/partials/language.html b/src/partials/language.html index bf8702f6d..9381c0d4d 100644 --- a/src/partials/language.html +++ b/src/partials/language.html @@ -23,6 +23,7 @@ {% macro t(key) %}{{ { "edit.link.title": "Edit this page", + "comments": "Comments", "footer.previous": "Previous", "footer.next": "Next", "search.placeholder": "Search", diff --git a/src/partials/search.html b/src/partials/search.html index 3ba60ba7b..d39d8f654 100644 --- a/src/partials/search.html +++ b/src/partials/search.html @@ -30,7 +30,7 @@ + autocomplete="off" spellcheck="false" data-md-component="query" />
    diff --git a/tests/visual/baseline/ci/admonition/#bug/@screen/edge.png b/tests/visual/baseline/ci/admonition/#bug/@screen/edge.png index 3e11535a8..7fcf319cf 100644 Binary files a/tests/visual/baseline/ci/admonition/#bug/@screen/edge.png and b/tests/visual/baseline/ci/admonition/#bug/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/admonition/#bug/@screen/firefox.png b/tests/visual/baseline/ci/admonition/#bug/@screen/firefox.png index d88b7b724..34c11a999 100644 Binary files a/tests/visual/baseline/ci/admonition/#bug/@screen/firefox.png and b/tests/visual/baseline/ci/admonition/#bug/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/admonition/#bug/@screen/ie11.png b/tests/visual/baseline/ci/admonition/#bug/@screen/ie11.png index 46f3d9341..33fd032f0 100644 Binary files a/tests/visual/baseline/ci/admonition/#bug/@screen/ie11.png and b/tests/visual/baseline/ci/admonition/#bug/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/admonition/#custom-title/@screen/edge.png b/tests/visual/baseline/ci/admonition/#custom-title/@screen/edge.png index 20c7e3091..e4ff09994 100644 Binary files a/tests/visual/baseline/ci/admonition/#custom-title/@screen/edge.png and b/tests/visual/baseline/ci/admonition/#custom-title/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/admonition/#custom-title/@screen/firefox.png b/tests/visual/baseline/ci/admonition/#custom-title/@screen/firefox.png index 5120ddc22..8d04e8ead 100644 Binary files a/tests/visual/baseline/ci/admonition/#custom-title/@screen/firefox.png and b/tests/visual/baseline/ci/admonition/#custom-title/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/admonition/#custom-title/@screen/ie11.png b/tests/visual/baseline/ci/admonition/#custom-title/@screen/ie11.png index 361e39d19..35759477a 100644 Binary files a/tests/visual/baseline/ci/admonition/#custom-title/@screen/ie11.png and b/tests/visual/baseline/ci/admonition/#custom-title/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/admonition/#danger/@screen/edge.png b/tests/visual/baseline/ci/admonition/#danger/@screen/edge.png index 4062f967b..b37546562 100644 Binary files a/tests/visual/baseline/ci/admonition/#danger/@screen/edge.png and b/tests/visual/baseline/ci/admonition/#danger/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/admonition/#danger/@screen/firefox.png b/tests/visual/baseline/ci/admonition/#danger/@screen/firefox.png index 16b41db6f..f7550ffbd 100644 Binary files a/tests/visual/baseline/ci/admonition/#danger/@screen/firefox.png and b/tests/visual/baseline/ci/admonition/#danger/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/admonition/#danger/@screen/ie11.png b/tests/visual/baseline/ci/admonition/#danger/@screen/ie11.png index 53132f9e3..40904e87a 100644 Binary files a/tests/visual/baseline/ci/admonition/#danger/@screen/ie11.png and b/tests/visual/baseline/ci/admonition/#danger/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/admonition/#empty-title/@screen/edge.png b/tests/visual/baseline/ci/admonition/#empty-title/@screen/edge.png index 4b5df6a34..c1ee1f110 100644 Binary files a/tests/visual/baseline/ci/admonition/#empty-title/@screen/edge.png and b/tests/visual/baseline/ci/admonition/#empty-title/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/admonition/#empty-title/@screen/firefox.png b/tests/visual/baseline/ci/admonition/#empty-title/@screen/firefox.png index 64ffdb6d4..211408a03 100644 Binary files a/tests/visual/baseline/ci/admonition/#empty-title/@screen/firefox.png and b/tests/visual/baseline/ci/admonition/#empty-title/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/admonition/#empty-title/@screen/ie11.png b/tests/visual/baseline/ci/admonition/#empty-title/@screen/ie11.png index 774e57df4..f49515b1a 100644 Binary files a/tests/visual/baseline/ci/admonition/#empty-title/@screen/ie11.png and b/tests/visual/baseline/ci/admonition/#empty-title/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/admonition/#failure/@screen/edge.png b/tests/visual/baseline/ci/admonition/#failure/@screen/edge.png index 25ed98317..09ed9a82b 100644 Binary files a/tests/visual/baseline/ci/admonition/#failure/@screen/edge.png and b/tests/visual/baseline/ci/admonition/#failure/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/admonition/#failure/@screen/firefox.png b/tests/visual/baseline/ci/admonition/#failure/@screen/firefox.png index 63417af5d..53aa2e13a 100644 Binary files a/tests/visual/baseline/ci/admonition/#failure/@screen/firefox.png and b/tests/visual/baseline/ci/admonition/#failure/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/admonition/#failure/@screen/ie11.png b/tests/visual/baseline/ci/admonition/#failure/@screen/ie11.png index e34169026..f99b983d8 100644 Binary files a/tests/visual/baseline/ci/admonition/#failure/@screen/ie11.png and b/tests/visual/baseline/ci/admonition/#failure/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/admonition/#long-title/@screen/edge.png b/tests/visual/baseline/ci/admonition/#long-title/@screen/edge.png index 86d2d68cf..3a0ea8737 100644 Binary files a/tests/visual/baseline/ci/admonition/#long-title/@screen/edge.png and b/tests/visual/baseline/ci/admonition/#long-title/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/admonition/#long-title/@screen/firefox.png b/tests/visual/baseline/ci/admonition/#long-title/@screen/firefox.png index 457d7a4c8..1d07bc28b 100644 Binary files a/tests/visual/baseline/ci/admonition/#long-title/@screen/firefox.png and b/tests/visual/baseline/ci/admonition/#long-title/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/admonition/#long-title/@screen/ie11.png b/tests/visual/baseline/ci/admonition/#long-title/@screen/ie11.png index ede732bfd..4b2ab6052 100644 Binary files a/tests/visual/baseline/ci/admonition/#long-title/@screen/ie11.png and b/tests/visual/baseline/ci/admonition/#long-title/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/admonition/#note/@screen/firefox.png b/tests/visual/baseline/ci/admonition/#note/@screen/firefox.png index 56b9bd034..754753a17 100644 Binary files a/tests/visual/baseline/ci/admonition/#note/@screen/firefox.png and b/tests/visual/baseline/ci/admonition/#note/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/admonition/#note/@screen/ie11.png b/tests/visual/baseline/ci/admonition/#note/@screen/ie11.png index 0455d62ee..a7425fcb2 100644 Binary files a/tests/visual/baseline/ci/admonition/#note/@screen/ie11.png and b/tests/visual/baseline/ci/admonition/#note/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/admonition/#success/@screen/edge.png b/tests/visual/baseline/ci/admonition/#success/@screen/edge.png index b551b1842..db6b134f8 100644 Binary files a/tests/visual/baseline/ci/admonition/#success/@screen/edge.png and b/tests/visual/baseline/ci/admonition/#success/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/admonition/#success/@screen/ie11.png b/tests/visual/baseline/ci/admonition/#success/@screen/ie11.png index 649c58ecb..90807774d 100644 Binary files a/tests/visual/baseline/ci/admonition/#success/@screen/ie11.png and b/tests/visual/baseline/ci/admonition/#success/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/admonition/#summary/@screen/edge.png b/tests/visual/baseline/ci/admonition/#summary/@screen/edge.png index 67a57b4dd..713926b40 100644 Binary files a/tests/visual/baseline/ci/admonition/#summary/@screen/edge.png and b/tests/visual/baseline/ci/admonition/#summary/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/admonition/#summary/@screen/firefox.png b/tests/visual/baseline/ci/admonition/#summary/@screen/firefox.png index d46477146..4d97ddbc9 100644 Binary files a/tests/visual/baseline/ci/admonition/#summary/@screen/firefox.png and b/tests/visual/baseline/ci/admonition/#summary/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/admonition/#summary/@screen/ie11.png b/tests/visual/baseline/ci/admonition/#summary/@screen/ie11.png index 1a1e3c68a..f2d973c80 100644 Binary files a/tests/visual/baseline/ci/admonition/#summary/@screen/ie11.png and b/tests/visual/baseline/ci/admonition/#summary/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/admonition/#tip/@screen/edge.png b/tests/visual/baseline/ci/admonition/#tip/@screen/edge.png index 17dbc22f2..af2a4d0d6 100644 Binary files a/tests/visual/baseline/ci/admonition/#tip/@screen/edge.png and b/tests/visual/baseline/ci/admonition/#tip/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/admonition/#tip/@screen/firefox.png b/tests/visual/baseline/ci/admonition/#tip/@screen/firefox.png index 50265bff7..626b23a1d 100644 Binary files a/tests/visual/baseline/ci/admonition/#tip/@screen/firefox.png and b/tests/visual/baseline/ci/admonition/#tip/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/admonition/#tip/@screen/ie11.png b/tests/visual/baseline/ci/admonition/#tip/@screen/ie11.png index 954df11b3..bffd075c3 100644 Binary files a/tests/visual/baseline/ci/admonition/#tip/@screen/ie11.png and b/tests/visual/baseline/ci/admonition/#tip/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/admonition/#warning/@screen/edge.png b/tests/visual/baseline/ci/admonition/#warning/@screen/edge.png index d4800fda7..2ae1d92b8 100644 Binary files a/tests/visual/baseline/ci/admonition/#warning/@screen/edge.png and b/tests/visual/baseline/ci/admonition/#warning/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/admonition/#warning/@screen/firefox.png b/tests/visual/baseline/ci/admonition/#warning/@screen/firefox.png index f0b41f4c2..3bc500b95 100644 Binary files a/tests/visual/baseline/ci/admonition/#warning/@screen/firefox.png and b/tests/visual/baseline/ci/admonition/#warning/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/admonition/#warning/@screen/ie11.png b/tests/visual/baseline/ci/admonition/#warning/@screen/ie11.png index 3a2ae5882..e5efaf835 100644 Binary files a/tests/visual/baseline/ci/admonition/#warning/@screen/ie11.png and b/tests/visual/baseline/ci/admonition/#warning/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/admonition/@mobile-landscape/edge.png b/tests/visual/baseline/ci/admonition/@mobile-landscape/edge.png index f11be5b04..40843c24b 100644 Binary files a/tests/visual/baseline/ci/admonition/@mobile-landscape/edge.png and b/tests/visual/baseline/ci/admonition/@mobile-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/admonition/@mobile-landscape/firefox.png b/tests/visual/baseline/ci/admonition/@mobile-landscape/firefox.png index e1435e076..bd4f7c1f3 100644 Binary files a/tests/visual/baseline/ci/admonition/@mobile-landscape/firefox.png and b/tests/visual/baseline/ci/admonition/@mobile-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/admonition/@mobile-landscape/ie11.png b/tests/visual/baseline/ci/admonition/@mobile-landscape/ie11.png index 0ce1b5525..15e5c3803 100644 Binary files a/tests/visual/baseline/ci/admonition/@mobile-landscape/ie11.png and b/tests/visual/baseline/ci/admonition/@mobile-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/admonition/@mobile-portrait/ie11.png b/tests/visual/baseline/ci/admonition/@mobile-portrait/ie11.png index 48d8da9a7..8bc9a3811 100644 Binary files a/tests/visual/baseline/ci/admonition/@mobile-portrait/ie11.png and b/tests/visual/baseline/ci/admonition/@mobile-portrait/ie11.png differ diff --git a/tests/visual/baseline/ci/admonition/@tablet-portrait/edge.png b/tests/visual/baseline/ci/admonition/@tablet-portrait/edge.png index 79f3e9690..65e7f55f8 100644 Binary files a/tests/visual/baseline/ci/admonition/@tablet-portrait/edge.png and b/tests/visual/baseline/ci/admonition/@tablet-portrait/edge.png differ diff --git a/tests/visual/baseline/ci/admonition/@tablet-portrait/firefox.png b/tests/visual/baseline/ci/admonition/@tablet-portrait/firefox.png index 6e261b87c..a91be8832 100644 Binary files a/tests/visual/baseline/ci/admonition/@tablet-portrait/firefox.png and b/tests/visual/baseline/ci/admonition/@tablet-portrait/firefox.png differ diff --git a/tests/visual/baseline/ci/admonition/@tablet-portrait/ie11.png b/tests/visual/baseline/ci/admonition/@tablet-portrait/ie11.png index 9f50f7a5a..525b61047 100644 Binary files a/tests/visual/baseline/ci/admonition/@tablet-portrait/ie11.png and b/tests/visual/baseline/ci/admonition/@tablet-portrait/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--primary/@screen/chrome.png index d7b443215..67d45f961 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/@screen/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/@screen/edge.png b/tests/visual/baseline/ci/md-nav--primary/@screen/edge.png index bcc4dcf4e..a5392a484 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/@screen/edge.png and b/tests/visual/baseline/ci/md-nav--primary/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--primary/@screen/firefox.png index 1fa33b1ff..eeb85b2ff 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/@screen/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--primary/@screen/ie11.png index c95c80a2e..dc9f7d767 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/@screen/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/chrome.png b/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/chrome.png index 558019e44..f1f2b2fb2 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/edge.png index d47134ea9..fc682ec48 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/edge.png and b/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/firefox.png b/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/firefox.png index cb1047d04..6391c201e 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/ie11.png index b7ceb3442..b88e8a914 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav--secondary/@tablet-portrait/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav--secondary/@tablet-portrait/chrome.png new file mode 100644 index 000000000..41ae589c8 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav--secondary/@tablet-portrait/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav--secondary/@tablet-portrait/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav--secondary/@tablet-portrait/edge.png new file mode 100644 index 000000000..40301faa0 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav--secondary/@tablet-portrait/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav--secondary/@tablet-portrait/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav--secondary/@tablet-portrait/firefox.png new file mode 100644 index 000000000..6da6f9c08 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav--secondary/@tablet-portrait/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav--secondary/@tablet-portrait/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav--secondary/@tablet-portrait/ie11.png new file mode 100644 index 000000000..495ac05c5 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav--secondary/@tablet-portrait/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@screen/chrome.png index cbbd9d515..e768e4044 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@screen/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@screen/firefox.png index e17b4849a..84c979808 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@screen/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@screen/ie11.png index 7c2ab08eb..1efb5bcb6 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@screen/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@tablet-landscape/edge.png index c28eb5917..41f4d8dc9 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@tablet-landscape/edge.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@screen/chrome.png new file mode 100644 index 000000000..1ba2bdc3f Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@screen/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@screen/edge.png new file mode 100644 index 000000000..081306e03 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@screen/firefox.png new file mode 100644 index 000000000..3fc75b964 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@screen/ie11.png new file mode 100644 index 000000000..a8236c2b8 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@tablet-landscape/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@tablet-landscape/chrome.png new file mode 100644 index 000000000..1bd798ea0 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@tablet-landscape/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@tablet-landscape/edge.png new file mode 100644 index 000000000..5d9d73de5 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@tablet-landscape/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@tablet-landscape/firefox.png new file mode 100644 index 000000000..e89f047a9 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@tablet-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@tablet-landscape/ie11.png new file mode 100644 index 000000000..d5689a9ef Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/@tablet-landscape/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/@tablet-landscape/chrome.png new file mode 100644 index 000000000..53ad9823e Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/@tablet-landscape/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/@tablet-landscape/edge.png new file mode 100644 index 000000000..43aca3b4c Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/@tablet-landscape/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/@tablet-landscape/firefox.png new file mode 100644 index 000000000..69ee04267 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/@tablet-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/@tablet-landscape/ie11.png new file mode 100644 index 000000000..f6bf4b244 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/~overflow/@tablet-landscape/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/~overflow/@tablet-landscape/chrome.png new file mode 100644 index 000000000..16a4d7409 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/~overflow/@tablet-landscape/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/~overflow/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/~overflow/@tablet-landscape/edge.png new file mode 100644 index 000000000..ff23382b0 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/~overflow/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/~overflow/@tablet-landscape/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/~overflow/@tablet-landscape/firefox.png new file mode 100644 index 000000000..5242efe09 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/~overflow/@tablet-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/~overflow/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/~overflow/@tablet-landscape/ie11.png new file mode 100644 index 000000000..c73c571b4 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav/md-nav__title/~overflow/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@screen/chrome.png index 5f4cee256..409ae5beb 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@screen/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@screen/firefox.png index fe68dfb74..a71c10590 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@screen/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@screen/ie11.png index 32c32fb98..fb77a1cea 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@screen/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/chrome.png index 7855db4eb..3ba33f63b 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/edge.png index 0bb9782f4..2cf004ace 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/edge.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/firefox.png index c9336ce51..b98a65427 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/ie11.png index 8edc6ec79..74ecf3623 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:focus/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@screen/chrome.png index 5f4cee256..409ae5beb 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@screen/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@screen/firefox.png index fe68dfb74..a71c10590 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@screen/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@screen/ie11.png index 32c32fb98..fb77a1cea 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@screen/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@tablet-landscape/edge.png index 8c0ab418d..2cf004ace 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@tablet-landscape/edge.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/:hover/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@screen/chrome.png index fc3a74a0b..b8690ff34 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@screen/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@screen/firefox.png index 0ff4c52e6..8adc5055b 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@screen/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@screen/ie11.png index 33da3be18..d23269c7a 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@screen/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@tablet-landscape/edge.png index e594e8416..133c97a8b 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@tablet-landscape/edge.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item--nested/md-nav__link/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@screen/chrome.png index 7937c1bdf..f509afc95 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@screen/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@screen/firefox.png index 17b22ca8f..f9f049161 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@screen/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@screen/ie11.png index 4e48abaf3..b382e2b39 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@screen/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@tablet-landscape/edge.png index ea4ee7a61..53bf32e6b 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@tablet-landscape/edge.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__item/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@screen/chrome.png index 24b2ace16..be963f643 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@screen/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@screen/firefox.png index f6363e99a..982c3680e 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@screen/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@screen/ie11.png index d472a0ddc..0834e5e3b 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@screen/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@tablet-landscape/edge.png index 5ecb66589..a4e2cf174 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@tablet-landscape/edge.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:focus/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@screen/chrome.png index 24b2ace16..be963f643 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@screen/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@screen/firefox.png index f6363e99a..982c3680e 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@screen/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@screen/ie11.png index d472a0ddc..0834e5e3b 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@screen/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@tablet-landscape/edge.png index 5ecb66589..a4e2cf174 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@tablet-landscape/edge.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/:hover/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@screen/chrome.png index c462bccb1..2c7ab6c87 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@screen/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@screen/firefox.png index 9c025e1fa..c12ee6fd8 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@screen/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@screen/ie11.png index bdac1c999..c98f9f1d9 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@screen/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@tablet-landscape/edge.png index ea4ee7a61..53bf32e6b 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@tablet-landscape/edge.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:focus/@tablet-portrait/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:focus/@tablet-portrait/chrome.png new file mode 100644 index 000000000..09288f521 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:focus/@tablet-portrait/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:focus/@tablet-portrait/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:focus/@tablet-portrait/edge.png new file mode 100644 index 000000000..e148817fa Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:focus/@tablet-portrait/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:focus/@tablet-portrait/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:focus/@tablet-portrait/firefox.png new file mode 100644 index 000000000..3ce46ff0f Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:focus/@tablet-portrait/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:focus/@tablet-portrait/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:focus/@tablet-portrait/ie11.png new file mode 100644 index 000000000..e66f36307 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:focus/@tablet-portrait/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:hover/@tablet-portrait/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:hover/@tablet-portrait/chrome.png new file mode 100644 index 000000000..09288f521 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:hover/@tablet-portrait/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:hover/@tablet-portrait/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:hover/@tablet-portrait/edge.png new file mode 100644 index 000000000..e148817fa Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:hover/@tablet-portrait/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:hover/@tablet-portrait/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:hover/@tablet-portrait/firefox.png new file mode 100644 index 000000000..3ce46ff0f Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:hover/@tablet-portrait/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:hover/@tablet-portrait/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:hover/@tablet-portrait/ie11.png new file mode 100644 index 000000000..e66f36307 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/:hover/@tablet-portrait/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/@tablet-portrait/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/@tablet-portrait/chrome.png new file mode 100644 index 000000000..e2a7c85b8 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/@tablet-portrait/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/@tablet-portrait/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/@tablet-portrait/edge.png new file mode 100644 index 000000000..ab4efe624 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/@tablet-portrait/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/@tablet-portrait/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/@tablet-portrait/firefox.png new file mode 100644 index 000000000..99a3d84d4 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/@tablet-portrait/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/@tablet-portrait/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/@tablet-portrait/ie11.png new file mode 100644 index 000000000..29d748b73 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link--active/~toc/@tablet-portrait/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@screen/chrome.png index 95e4ce420..ea727c279 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@screen/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@screen/firefox.png index a95e596d9..b8a09d9f7 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@screen/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@screen/ie11.png index b38b18734..6f88381fa 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@screen/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@tablet-landscape/edge.png index a61d2f9d8..9857769e7 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@tablet-landscape/edge.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@tablet-landscape/ie11.png index 79a490781..efe0471d4 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@tablet-landscape/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:focus/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@screen/chrome.png index 95e4ce420..ea727c279 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@screen/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@screen/firefox.png index a95e596d9..b8a09d9f7 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@screen/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@screen/ie11.png index b38b18734..6f88381fa 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@screen/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@tablet-landscape/edge.png index a61d2f9d8..9857769e7 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@tablet-landscape/edge.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@tablet-landscape/ie11.png index 79a490781..efe0471d4 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@tablet-landscape/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/:hover/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@screen/chrome.png index f5c9f2907..226e5b574 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@screen/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@screen/firefox.png index c29eb0aac..f6c4f0c6b 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@screen/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@screen/ie11.png index 5cc0296d6..323ea52b0 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@screen/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@tablet-landscape/edge.png index 8ddef6eb8..fa968631e 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@tablet-landscape/edge.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@tablet-landscape/ie11.png index 648f4ee4d..7041292c0 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@tablet-landscape/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__link/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/chrome.png index 5a675a3ac..297f5c2e9 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/edge.png index f9abf1044..4f4c1db10 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/edge.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/firefox.png index f63317db9..d9fcb3325 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/ie11.png index 0b4d52a2d..b79ebde60 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/chrome.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/chrome.png index 6a8c19126..eb9c90f05 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/chrome.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/edge.png index 9449614f5..222fbacb4 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/edge.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/firefox.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/firefox.png index 0514d7603..0fc06ecc4 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/firefox.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/ie11.png index ca6710d29..6f52dcb33 100644 Binary files a/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/ie11.png and b/tests/visual/baseline/ci/md-nav--primary/md-nav__title/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/~nested/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--primary/~nested/@screen/chrome.png new file mode 100644 index 000000000..2bd30e4a5 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/~nested/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/~nested/@screen/edge.png b/tests/visual/baseline/ci/md-nav--primary/~nested/@screen/edge.png new file mode 100644 index 000000000..0ec36d572 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/~nested/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/~nested/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--primary/~nested/@screen/firefox.png new file mode 100644 index 000000000..a409313bd Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/~nested/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--primary/~nested/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--primary/~nested/@screen/ie11.png new file mode 100644 index 000000000..74e5c55ae Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--primary/~nested/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/@screen/chrome.png new file mode 100644 index 000000000..2c7d21bb1 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/@screen/edge.png b/tests/visual/baseline/ci/md-nav--secondary/@screen/edge.png new file mode 100644 index 000000000..47c461cf1 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/@screen/firefox.png new file mode 100644 index 000000000..3bd5fef30 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/@screen/ie11.png new file mode 100644 index 000000000..82b945dd1 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/@tablet-landscape/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/@tablet-landscape/chrome.png new file mode 100644 index 000000000..ca55b446e Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/@tablet-landscape/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--secondary/@tablet-landscape/edge.png new file mode 100644 index 000000000..dcc6ad616 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/@tablet-landscape/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/@tablet-landscape/firefox.png new file mode 100644 index 000000000..127c2ccb5 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/@tablet-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/@tablet-landscape/ie11.png new file mode 100644 index 000000000..62de9c554 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@screen/chrome.png new file mode 100644 index 000000000..f038d5f1e Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@screen/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@screen/edge.png new file mode 100644 index 000000000..4ff7bfdcf Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@screen/firefox.png new file mode 100644 index 000000000..a825c1fa0 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@screen/ie11.png new file mode 100644 index 000000000..7ab975ac6 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@tablet-landscape/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@tablet-landscape/chrome.png new file mode 100644 index 000000000..bb876e0eb Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@tablet-landscape/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@tablet-landscape/edge.png new file mode 100644 index 000000000..f8225b29f Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@tablet-landscape/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@tablet-landscape/firefox.png new file mode 100644 index 000000000..aae924782 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@tablet-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@tablet-landscape/ie11.png new file mode 100644 index 000000000..5afe10e90 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__item/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@screen/chrome.png new file mode 100644 index 000000000..441231386 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@screen/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@screen/edge.png new file mode 100644 index 000000000..30c172ccb Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@screen/firefox.png new file mode 100644 index 000000000..da9ae32b1 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@screen/ie11.png new file mode 100644 index 000000000..d5b9e702f Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@tablet-landscape/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@tablet-landscape/chrome.png new file mode 100644 index 000000000..dd07c0465 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@tablet-landscape/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@tablet-landscape/edge.png new file mode 100644 index 000000000..3f47757ea Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@tablet-landscape/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@tablet-landscape/firefox.png new file mode 100644 index 000000000..f10520eb6 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@tablet-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@tablet-landscape/ie11.png new file mode 100644 index 000000000..6947b1ebf Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:focus/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@screen/chrome.png new file mode 100644 index 000000000..441231386 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@screen/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@screen/edge.png new file mode 100644 index 000000000..30c172ccb Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@screen/firefox.png new file mode 100644 index 000000000..da9ae32b1 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@screen/ie11.png new file mode 100644 index 000000000..d5b9e702f Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@tablet-landscape/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@tablet-landscape/chrome.png new file mode 100644 index 000000000..dd07c0465 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@tablet-landscape/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@tablet-landscape/edge.png new file mode 100644 index 000000000..3f47757ea Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@tablet-landscape/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@tablet-landscape/firefox.png new file mode 100644 index 000000000..f10520eb6 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@tablet-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@tablet-landscape/ie11.png new file mode 100644 index 000000000..6947b1ebf Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/:hover/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@screen/chrome.png new file mode 100644 index 000000000..2caca7efd Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@screen/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@screen/edge.png new file mode 100644 index 000000000..75d15762c Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@screen/firefox.png new file mode 100644 index 000000000..b6e836a5a Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@screen/ie11.png new file mode 100644 index 000000000..66356b47b Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@tablet-landscape/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@tablet-landscape/chrome.png new file mode 100644 index 000000000..af44480da Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@tablet-landscape/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@tablet-landscape/edge.png new file mode 100644 index 000000000..2d7d5548a Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@tablet-landscape/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@tablet-landscape/firefox.png new file mode 100644 index 000000000..383f74f6a Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@tablet-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@tablet-landscape/ie11.png new file mode 100644 index 000000000..ceb079dbd Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@screen/chrome.png new file mode 100644 index 000000000..441231386 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@screen/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@screen/edge.png new file mode 100644 index 000000000..30c172ccb Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@screen/firefox.png new file mode 100644 index 000000000..da9ae32b1 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@screen/ie11.png new file mode 100644 index 000000000..d5b9e702f Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@tablet-landscape/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@tablet-landscape/chrome.png new file mode 100644 index 000000000..dd07c0465 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@tablet-landscape/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@tablet-landscape/edge.png new file mode 100644 index 000000000..3f47757ea Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@tablet-landscape/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@tablet-landscape/firefox.png new file mode 100644 index 000000000..f10520eb6 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@tablet-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@tablet-landscape/ie11.png new file mode 100644 index 000000000..6947b1ebf Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:focus/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@screen/chrome.png new file mode 100644 index 000000000..441231386 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@screen/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@screen/edge.png new file mode 100644 index 000000000..30c172ccb Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@screen/firefox.png new file mode 100644 index 000000000..da9ae32b1 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@screen/ie11.png new file mode 100644 index 000000000..d5b9e702f Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@tablet-landscape/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@tablet-landscape/chrome.png new file mode 100644 index 000000000..dd07c0465 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@tablet-landscape/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@tablet-landscape/edge.png new file mode 100644 index 000000000..3f47757ea Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@tablet-landscape/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@tablet-landscape/firefox.png new file mode 100644 index 000000000..f10520eb6 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@tablet-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@tablet-landscape/ie11.png new file mode 100644 index 000000000..6947b1ebf Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/:hover/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@screen/chrome.png new file mode 100644 index 000000000..8a81c6f0a Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@screen/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@screen/edge.png new file mode 100644 index 000000000..d831febd2 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@screen/firefox.png new file mode 100644 index 000000000..e6c249c67 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@screen/ie11.png new file mode 100644 index 000000000..c106372ba Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@tablet-landscape/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@tablet-landscape/chrome.png new file mode 100644 index 000000000..1b8620328 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@tablet-landscape/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@tablet-landscape/edge.png new file mode 100644 index 000000000..96fdb4a1a Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@tablet-landscape/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@tablet-landscape/firefox.png new file mode 100644 index 000000000..d5ddd5f2e Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@tablet-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@tablet-landscape/ie11.png new file mode 100644 index 000000000..ceb079dbd Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__link/~blurred/@tablet-landscape/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@screen/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@screen/chrome.png new file mode 100644 index 000000000..46e96b6ca Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@screen/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@screen/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@screen/edge.png new file mode 100644 index 000000000..264c82f91 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@screen/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@screen/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@screen/firefox.png new file mode 100644 index 000000000..a86019d04 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@screen/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@screen/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@screen/ie11.png new file mode 100644 index 000000000..82e043f80 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@screen/ie11.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@tablet-landscape/chrome.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@tablet-landscape/chrome.png new file mode 100644 index 000000000..b5e112df8 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@tablet-landscape/chrome.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@tablet-landscape/edge.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@tablet-landscape/edge.png new file mode 100644 index 000000000..bee01df6d Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@tablet-landscape/edge.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@tablet-landscape/firefox.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@tablet-landscape/firefox.png new file mode 100644 index 000000000..f1de87810 Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@tablet-landscape/firefox.png differ diff --git a/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@tablet-landscape/ie11.png b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@tablet-landscape/ie11.png new file mode 100644 index 000000000..748669e6a Binary files /dev/null and b/tests/visual/baseline/ci/md-nav--secondary/md-nav__title/@tablet-landscape/ie11.png differ diff --git a/tests/visual/helpers/spec.js b/tests/visual/helpers/spec.js index 0c41dacf1..bb84cd342 100644 --- a/tests/visual/helpers/spec.js +++ b/tests/visual/helpers/spec.js @@ -76,7 +76,7 @@ const resolve = (breakpoints, expr) => { * @return {boolean} Whether at least one suite was kept */ const filter = (components, parent = []) => { - const regexp = new RegExp(args.grep.replace(" ", ".*?"), "i") + const pattern = new RegExp(args.grep.replace(/\s+/, ".*?"), "gi") return Object.keys(components).reduce((match, name) => { const component = components[name] @@ -90,18 +90,18 @@ const filter = (components, parent = []) => { const fullname = temp.slice(0) .concat(state.name.length ? [state.name] : []) .join(" ") - if (regexp.test(fullname)) + if (fullname.match(pattern)) states.push(state) return states }, []) - /* Keep komponent, if there is at least one state or the component has + /* Keep component, if there is at least one state or the component has matching subsuites, so it needs to be kept */ - if (component.states.length || keep) { - if (keep) { - delete component.capture - delete component.break - } + if (component.states.length) { + return true + } else if (keep) { + delete component.capture + delete component.break return true } @@ -140,16 +140,16 @@ const generate = (dirname, components) => { for (const state of states) { const test = subsuite => { - /* Resolve and apply relevant breakpoints */ + /* Resolve and apply relevant breakpoints */ const breakpoints = resolve(config.breakpoints, component.break) for (const breakpoint of breakpoints) { subsuite.capture(`@${breakpoint.name}`, actions => { - /* Set window size according to breakpoint */ + /* Set window size according to breakpoint */ actions.setWindowSize( - breakpoint.size.width, breakpoint.size.height) + breakpoint.size.width, breakpoint.size.height) - /* Add the name as a CSS class to the captured element */ + /* Add the name as a CSS class to the captured element */ if (state.name) actions.executeJS(new Function(` document.querySelector( @@ -157,22 +157,22 @@ const generate = (dirname, components) => { ).classList.add("${state.name}") `)) - /* Execute function inside an IIFE */ + /* Execute function inside an IIFE */ if (state.exec) actions.executeJS(new Function(`(${state.exec})()`)) - /* Wait the specified time before taking a screenshot */ + /* Wait the specified time before taking a screenshot */ if (state.wait) actions.wait(state.wait) }) } } - /* No state sub-suite if the name is empty */ + /* No state sub-suite if the name is empty */ if (state.name.length > 0) gemini.suite(state.name, subsuite => test(subsuite)) else - test(suite) + test(suite) } /* Generate sub-suites */ diff --git a/tests/visual/suites/extensions/admonition/docs/index.md b/tests/visual/suites/extensions/admonition/docs/index.md index 572e14f97..12a953654 100644 --- a/tests/visual/suites/extensions/admonition/docs/index.md +++ b/tests/visual/suites/extensions/admonition/docs/index.md @@ -1,5 +1,9 @@ # Suite +For this test, the header is set to `display: none`, as Gemini aligns the +elements to be captured with the top of the page, thus getting blocked by the +fixed positioned header. + diff --git a/tests/visual/suites/layout/nav/_overflow/docs/default.md b/tests/visual/suites/layout/nav/_overflow/docs/default.md deleted file mode 100644 index 89967d7e7..000000000 --- a/tests/visual/suites/layout/nav/_overflow/docs/default.md +++ /dev/null @@ -1,9 +0,0 @@ -# Suite - - diff --git a/tests/visual/suites/layout/nav/_overflow/docs/index.md b/tests/visual/suites/layout/nav/_overflow/docs/index.md index 89967d7e7..20b8c4bc8 100644 --- a/tests/visual/suites/layout/nav/_overflow/docs/index.md +++ b/tests/visual/suites/layout/nav/_overflow/docs/index.md @@ -1,5 +1,8 @@ # Suite +All transitions are set to `none` in order to ensure that all elements of +interest always look the same and are not captured somewhere in the middle. + diff --git a/tests/visual/suites/layout/nav/_overflow/mkdocs.yml b/tests/visual/suites/layout/nav/_overflow/mkdocs.yml index 3ce249dcf..6e8ae7915 100644 --- a/tests/visual/suites/layout/nav/_overflow/mkdocs.yml +++ b/tests/visual/suites/layout/nav/_overflow/mkdocs.yml @@ -23,9 +23,9 @@ site_name: Pneumonoultramicroscopicsilicovolcanoconiosis pages: - Pneumonoultramicroscopicsilicovolcanoconiosis: index.md - Supercalifragilisticexpialidocious: - - Pseudopseudohypoparathyroidism: default.md - - Floccinaucinihilipilification: default.md - - Antidisestablishmentarianism: default.md + - Pseudopseudohypoparathyroidism: nested.md + - Floccinaucinihilipilification: _.md + - Antidisestablishmentarianism: _.md # Reset webfonts because of flaky tests extra: diff --git a/tests/visual/suites/layout/nav/docs/_.md b/tests/visual/suites/layout/nav/docs/_.md new file mode 100644 index 000000000..20b8c4bc8 --- /dev/null +++ b/tests/visual/suites/layout/nav/docs/_.md @@ -0,0 +1,12 @@ +# Suite + +All transitions are set to `none` in order to ensure that all elements of +interest always look the same and are not captured somewhere in the middle. + + diff --git a/tests/visual/suites/layout/nav/docs/default.md b/tests/visual/suites/layout/nav/docs/default.md deleted file mode 100644 index 89967d7e7..000000000 --- a/tests/visual/suites/layout/nav/docs/default.md +++ /dev/null @@ -1,9 +0,0 @@ -# Suite - - diff --git a/tests/visual/suites/layout/nav/docs/index.md b/tests/visual/suites/layout/nav/docs/index.md index 89967d7e7..24260448e 100644 --- a/tests/visual/suites/layout/nav/docs/index.md +++ b/tests/visual/suites/layout/nav/docs/index.md @@ -1,9 +1,21 @@ # Suite +All transitions are set to `none` in order to ensure that all elements of +interest always look the same and are not captured somewhere in the middle. + +Furthermore, the table of contents is hidden for all tests layed out on this +page, as it is sometimes shown within the drawer though it isn't activated. +This seems to be a caching-related issue. + + +## Default diff --git a/tests/visual/suites/layout/nav/docs/nested.md b/tests/visual/suites/layout/nav/docs/nested.md new file mode 100644 index 000000000..20b8c4bc8 --- /dev/null +++ b/tests/visual/suites/layout/nav/docs/nested.md @@ -0,0 +1,12 @@ +# Suite + +All transitions are set to `none` in order to ensure that all elements of +interest always look the same and are not captured somewhere in the middle. + + diff --git a/tests/visual/suites/layout/nav/docs/secondary.md b/tests/visual/suites/layout/nav/docs/secondary.md new file mode 100644 index 000000000..6e35136bf --- /dev/null +++ b/tests/visual/suites/layout/nav/docs/secondary.md @@ -0,0 +1,79 @@ +# Suite + +All transitions are set to `none` in order to ensure that all elements of +interest always look the same and are not captured somewhere in the middle. + + + +## Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam condimentum +lacinia urna id vestibulum. Maecenas tincidunt nulla dui, a dapibus turpis +iaculis at. Donec tortor sem, scelerisque ut congue id, pretium ac risus. +Vivamus ac quam semper, elementum neque nec, dictum sem. Nullam porttitor in +ipsum quis sagittis. Cras viverra egestas purus ullamcorper eleifend. Nunc id +facilisis magna, id sagittis metus. Suspendisse egestas, ipsum sed consectetur +pretium, mauris tortor eleifend sem, vel cursus diam augue at diam. Nullam +accumsan id sapien feugiat ultrices. Cras tempor nulla a maximus dignissim. +Aliquam sed orci et elit tempor bibendum ac non neque. Aliquam erat volutpat. +Duis eu ligula ullamcorper, tristique libero in, eleifend turpis. Cras +fermentum iaculis ipsum, vitae viverra enim posuere vel. Phasellus non +fermentum arcu. Donec pulvinar erat non tellus rhoncus, bibendum interdum +libero ornare. + +### Consectetur adipiscing elit + +Etiam vel commodo turpis. Proin imperdiet ante eu suscipit ullamcorper. +Vivamus pharetra, mauris nec bibendum suscipit, dui velit vehicula purus, +sit amet pretium ex felis quis tellus. Nunc urna purus, dignissim in justo +quis, tempus sollicitudin odio. Morbi in commodo leo. Vestibulum fringilla +arcu quis venenatis venenatis. Phasellus vitae est at magna aliquam hendrerit. +Sed egestas, dui sit amet convallis porttitor, velit lectus molestie ipsum, +non ullamcorper erat elit vitae purus. In pulvinar nisl sed nulla placerat, +ac sollicitudin felis varius. Nunc orci quam, cursus ut fermentum eu, +interdum id dolor. Etiam tincidunt est elit, at tempus ligula pretium quis. + +#### Etiam condimentum lacinia urna id vestibulum + +In vitae leo ullamcorper, lobortis nibh at, varius risus. Lorem ipsum dolor sit +amet, consectetur adipiscing elit. Sed risus neque, mattis a urna in, gravida +bibendum odio. Quisque enim nunc, auctor id justo a, viverra tempor dolor. +Duis molestie sagittis justo, id euismod mauris volutpat et. Suspendisse sed +leo vitae eros pulvinar scelerisque ut eu dolor. Nam at sapien dui. Integer +mattis faucibus metus. Pellentesque habitant morbi tristique senectus et netus +et malesuada fames ac turpis egestas. Mauris non sapien eleifend, eleifend +lectus at, elementum metus. Maecenas in tortor ut dui venenatis venenatis +sed id erat. Duis felis leo, eleifend a orci a, iaculis hendrerit arcu. +Praesent eget tellus tellus. Mauris eleifend mauris vitae porta laoreet. Morbi +venenatis, eros consectetur faucibus sodales, sapien purus interdum erat, quis +ultricies lacus odio sit amet tellus. Sed tincidunt est vitae sapien tempor +elementum. + +##### Maecenas tincidunt nulla dui, a dapibus turpis iaculis at + +Morbi ac eros ultrices, pulvinar ante ut, gravida risus. Integer id dolor +rhoncus odio scelerisque vestibulum. Integer justo felis, finibus congue felis +in, efficitur bibendum libero. Lorem ipsum dolor sit amet, consectetur +adipiscing elit. Aenean dignissim enim ac justo cursus condimentum. Class +aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos +himenaeos. Morbi euismod pulvinar lacus sit amet egestas. Praesent in ex +molestie, scelerisque diam id, malesuada mauris. Vivamus at magna eu tellus +cursus hendrerit eu nec felis. Suspendisse ut hendrerit ex. Nulla semper quam +nec tincidunt vestibulum. Donec non nibh elit. Donec neque lacus, consequat +vitae nibh et, faucibus mollis dolor. + +###### Donec tortor sem + +Nunc tempus lectus odio, sed laoreet elit suscipit et. Cras rutrum nibh eget +tellus tempus, et sodales sapien varius. Nam quis mi sagittis lacus commodo +cursus et viverra nibh. Vivamus ut egestas ante. Proin scelerisque tortor +turpis, at facilisis tortor feugiat mollis. Suspendisse neque odio, efficitur +quis ipsum a, tristique rutrum purus. Fusce ac tellus in magna eleifend +aliquet. Aliquam lectus libero, varius id nibh a, gravida fermentum est. +Aliquam erat volutpat. diff --git a/tests/visual/suites/layout/nav/mkdocs.yml b/tests/visual/suites/layout/nav/mkdocs.yml index 51f48cc59..c6b4859d8 100644 --- a/tests/visual/suites/layout/nav/mkdocs.yml +++ b/tests/visual/suites/layout/nav/mkdocs.yml @@ -19,16 +19,16 @@ # IN THE SOFTWARE. # Test suite -site_name: Test/Navigation +site_name: Test pages: - Lorem ipsum dolor sit amet: index.md - - Consectetur adipiscing elit: default.md - - Etiam condimentum lacinia urna id vestibulum: default.md + - Consectetur adipiscing elit: _.md + - Etiam condimentum lacinia urna id vestibulum: _.md - A dapibus turpis iaculis at: - - Donec tortor sem: default.md - - Scelerisque ut congue id: default.md - - Pretium ac risus: default.md - - Maecenas tincidunt nulla dui: default.md + - Donec tortor sem: nested.md + - Scelerisque ut congue id: secondary.md + - Pretium ac risus: _.md + - Maecenas tincidunt nulla dui: _.md # Reset webfonts because of flaky tests extra: diff --git a/tests/visual/suites/layout/nav/suite.js b/tests/visual/suites/layout/nav/suite.js index aea23679c..c09159630 100644 --- a/tests/visual/suites/layout/nav/suite.js +++ b/tests/visual/suites/layout/nav/suite.js @@ -34,12 +34,21 @@ const open = () => { drawer.checked = true } +/** + * Blur the first anchor link + */ +const blur = () => { + const anchor = document.querySelector( + ".md-sidebar--secondary .md-nav--secondary .md-nav__link") + anchor.dataset.mdState = "blur" +} + /* ---------------------------------------------------------------------------- * Tests * ------------------------------------------------------------------------- */ /* - * Main navigation + * Main navigation and table of contents */ spec.register(__dirname, { "md-nav--primary": { @@ -47,16 +56,23 @@ spec.register(__dirname, { "capture": ".md-nav--primary", "break": "+@tablet-landscape", "states": [ - { "name": "", "wait": 250, "exec": open } + { "name": "", "exec": open } ], "suite": { + /* Expanded nested navigation */ + "~nested": { + "url": "/nested", + "capture": ".md-nav--primary", + "break": "@screen" + }, + /* List title */ "md-nav__title": { "capture": ".md-nav--primary .md-nav__title", "break": "+@tablet-landscape", "states": [ - { "name": "", "wait": 250, "exec": open } + { "name": "", "exec": open } ], "suite": { @@ -66,7 +82,7 @@ spec.register(__dirname, { "capture": ".md-nav--primary .md-nav__title", "break": "+@tablet-landscape", "states": [ - { "name": "", "wait": 250, "exec": open } + { "name": "", "exec": open } ] } } @@ -77,21 +93,8 @@ spec.register(__dirname, { "capture": ".md-nav--primary .md-nav__item", "break": "+@tablet-landscape", "states": [ - { "name": "", "wait": 250, "exec": open } - ], - "suite": { - - /* Last list item */ - ":last-child": { - "capture": - ".md-nav--primary > .md-nav__list > " + - ".md-nav__item:last-child", - "break": "+@tablet-landscape", - "states": [ - { "name": "", "wait": 250, "exec": open } - ] - } - } + { "name": "", "exec": open } + ] }, /* Item contains a nested list */ @@ -99,7 +102,7 @@ spec.register(__dirname, { "capture": ".md-nav--primary .md-nav__item--nested", "break": "+@tablet-landscape", "states": [ - { "name": "", "wait": 250, "exec": open } + { "name": "", "exec": open } ], "suite": { @@ -110,10 +113,44 @@ spec.register(__dirname, { ".md-nav__link", "break": "+@tablet-landscape", "states": [ - { "name": "", "wait": 250, "exec": open }, - { "name": ":focus", "wait": 250, "exec": open }, - { "name": ":hover", "wait": 250, "exec": open } + { "name": "", "exec": open }, + { "name": ":focus", "exec": open }, + { "name": ":hover", "exec": open } ] + }, + + /* Second-level navigation */ + "md-nav": { + "url": "/nested", + "capture": ".md-nav--primary .md-nav", + "break": "+@tablet-landscape", + "states": [ + { "name": "", "exec": open } + ], + "suite": { + + /* List title */ + "md-nav__title": { + "capture": ".md-nav--primary .md-nav .md-nav__title", + "break": "@tablet-landscape", + "states": [ + { "name": "", "exec": open } + ], + "suite": { + + /* Long list title with ellipsis */ + "~overflow": { + "dir": "_overflow", + "url": "/nested", + "capture": ".md-nav--primary .md-nav .md-nav__title", + "break": "@tablet-landscape", + "states": [ + { "name": "", "exec": open } + ] + } + } + } + } } } }, @@ -123,22 +160,94 @@ spec.register(__dirname, { "capture": ".md-nav--primary .md-nav__item:nth-child(2) .md-nav__link", "break": "+@tablet-landscape", "states": [ - { "name": "", "wait": 250, "exec": open }, - { "name": ":focus", "wait": 250, "exec": open }, - { "name": ":hover", "wait": 250, "exec": open } + { "name": "", "exec": open }, + { "name": ":focus", "exec": open }, + { "name": ":hover", "exec": open } ] }, /* Active link */ "md-nav__link--active": { - "capture": ".md-nav--primary .md-nav__item .md-nav__link--active", + "capture": ".md-nav--primary .md-nav__item a.md-nav__link--active", "break": "+@tablet-landscape", "states": [ - { "name": "", "wait": 250, "exec": open }, - { "name": ":focus", "wait": 250, "exec": open }, - { "name": ":hover", "wait": 250, "exec": open } + { "name": "", "exec": open }, + { "name": ":focus", "exec": open }, + { "name": ":hover", "exec": open } + ], + "suite": { + + /* Active link with link to table of contents */ + "~toc": { + "capture": + ".md-nav--primary .md-nav__item " + + "label.md-nav__link--active", + "break": "@tablet-portrait", + "states": [ + { "name": "", "exec": open }, + { "name": ":focus", "exec": open }, + { "name": ":hover", "exec": open } + ] + } + } + }, + + /* Table of contents */ + "md-nav--secondary": { + "url": "/secondary", + "capture": ".md-nav--primary .md-nav--secondary", + "break": "@tablet-portrait", + "states": [ + { "name": "", "exec": open } ] } } + }, + + /* Table of contents */ + "md-nav--secondary": { + "url": "/secondary", + "capture": ".md-sidebar--secondary .md-nav--secondary", + "break": "+@tablet-landscape", + "suite": { + + /* List title */ + "md-nav__title": { + "capture": ".md-sidebar--secondary .md-nav--secondary .md-nav__title", + "break": "+@tablet-landscape" + }, + + /* List item */ + "md-nav__item": { + "capture": ".md-sidebar--secondary .md-nav--secondary .md-nav__item", + "break": "+@tablet-landscape" + }, + + /* Link inside item */ + "md-nav__link": { + "capture": ".md-sidebar--secondary .md-nav--secondary .md-nav__link", + "break": "+@tablet-landscape", + "states": [ + { "name": "" }, + { "name": ":focus" }, + { "name": ":hover" } + ], + "suite": { + + /* Blurred link */ + "~blurred": { + "capture": + ".md-sidebar--secondary .md-nav--secondary " + + ".md-nav__link", + "break": "+@tablet-landscape", + "states": [ + { "name": "", "exec": blur }, + { "name": ":focus", "exec": blur }, + { "name": ":hover", "exec": blur } + ] + } + } + } + } } }) diff --git a/yarn.lock b/yarn.lock index b3f1d37d6..992bd753c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,22 +10,15 @@ JSONStream@^0.8.4: through ">=2.2.7 <3" JSONStream@^1.0.3: - version "1.3.0" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.0.tgz#680ab9ac6572a8a1a207e0b38721db1c77b215e5" + version "1.3.1" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.1.tgz#707f761e01dae9e16f1bcf93703b78c70966579a" dependencies: jsonparse "^1.2.0" through ">=2.2.7 <3" -abbrev@1, abbrev@1.0.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" - -accepts@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" - dependencies: - mime-types "~2.1.11" - negotiator "0.6.1" +abbrev@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" acorn-dynamic-import@^2.0.0: version "2.0.1" @@ -44,8 +37,8 @@ acorn@4.0.4: resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" acorn@4.X, acorn@^4.0.3, acorn@^4.0.4: - version "4.0.8" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.8.tgz#f41e52020ce78118a3c68ed0e9215eb8fc68b5b1" + version "4.0.11" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0" acorn@^1.0.3: version "1.2.2" @@ -63,10 +56,6 @@ adm-zip@~0.4.3: version "0.4.7" resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1" -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - agent-base@2: version "2.0.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.0.1.tgz#bd8f9e86a8eb221fffa07bd14befd55df142815e" @@ -79,8 +68,8 @@ ajv-keywords@^1.0.0, ajv-keywords@^1.1.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" ajv@^4.7.0: - version "4.11.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.2.tgz#f166c3c11cbc6cb9dcc102a5bcfe5b72c95287e6" + version "4.11.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.3.tgz#ce30bdb90d1254f762c75af915fb3a63e7183d22" dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" @@ -127,10 +116,6 @@ ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" -ansicolors@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef" - anymatch@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" @@ -139,8 +124,8 @@ anymatch@^1.3.0: micromatch "^2.1.5" aproba@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" + version "1.1.1" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" archiver@~0.14.0: version "0.14.4" @@ -202,10 +187,6 @@ array-reduce@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" -array-slice@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -220,10 +201,6 @@ array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" -arraybuffer.slice@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" - arrify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -284,17 +261,17 @@ async-foreach@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" -async@1.x, async@^1.3.0, async@^1.4.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - async@^0.9.0, async@~0.9.0: version "0.9.2" resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" +async@^1.3.0, async@^1.4.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + async@^2.1.2, async@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" + version "2.1.5" + resolved "https://registry.yarnpkg.com/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc" dependencies: lodash "^4.14.0" @@ -314,15 +291,15 @@ atob@~1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/atob/-/atob-1.1.3.tgz#95f13629b12c3a51a5d215abdce2aa9f32f80773" -autoprefixer@^6.0.0, autoprefixer@^6.3.1, autoprefixer@^6.6.1: - version "6.7.2" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.2.tgz#172ab07b998ae9b957530928a59a40be54a45023" +autoprefixer@^6.0.0, autoprefixer@^6.3.1, autoprefixer@^6.7.3: + version "6.7.5" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.5.tgz#50848f39dc08730091d9495023487e7cc21f518d" dependencies: - browserslist "^1.7.1" - caniuse-db "^1.0.30000618" + browserslist "^1.7.5" + caniuse-db "^1.0.30000624" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^5.2.11" + postcss "^5.2.15" postcss-value-parser "^3.2.3" aws-sign2@~0.5.0: @@ -334,8 +311,8 @@ aws-sign2@~0.6.0: resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" aws4@^1.2.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: version "6.22.0" @@ -345,19 +322,19 @@ babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.0" -babel-core@^6.0.0, babel-core@^6.22.0: - version "6.22.1" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.22.1.tgz#9c5fd658ba1772d28d721f6d25d968fc7ae21648" +babel-core@^6.23.0: + version "6.23.1" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.23.1.tgz#c143cb621bb2f621710c220c5d579d15b8a442df" dependencies: babel-code-frame "^6.22.0" - babel-generator "^6.22.0" - babel-helpers "^6.22.0" - babel-messages "^6.22.0" - babel-register "^6.22.0" + babel-generator "^6.23.0" + babel-helpers "^6.23.0" + babel-messages "^6.23.0" + babel-register "^6.23.0" babel-runtime "^6.22.0" - babel-template "^6.22.0" - babel-traverse "^6.22.1" - babel-types "^6.22.0" + babel-template "^6.23.0" + babel-traverse "^6.23.1" + babel-types "^6.23.0" babylon "^6.11.0" convert-source-map "^1.1.0" debug "^2.1.1" @@ -379,24 +356,25 @@ babel-eslint@^7.1.1: babylon "^6.13.0" lodash.pickby "^4.6.0" -babel-generator@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.22.0.tgz#d642bf4961911a8adc7c692b0c9297f325cda805" +babel-generator@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.23.0.tgz#6b8edab956ef3116f79d8c84c5a3c05f32a74bc5" dependencies: - babel-messages "^6.22.0" + babel-messages "^6.23.0" babel-runtime "^6.22.0" - babel-types "^6.22.0" + babel-types "^6.23.0" detect-indent "^4.0.0" jsesc "^1.3.0" lodash "^4.2.0" source-map "^0.5.0" + trim-right "^1.0.1" -babel-helper-builder-react-jsx@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.22.0.tgz#aafb31913e47761fd4d0b6987756a144a65fca0d" +babel-helper-builder-react-jsx@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.23.0.tgz#d53fc8c996e0bc56d0de0fc4cc55a7138395ea4b" dependencies: babel-runtime "^6.22.0" - babel-types "^6.22.0" + babel-types "^6.23.0" esutils "^2.0.0" lodash "^4.2.0" @@ -409,24 +387,24 @@ babel-helper-call-delegate@^6.22.0: babel-traverse "^6.22.0" babel-types "^6.22.0" -babel-helper-define-map@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.22.0.tgz#9544e9502b2d6dfe7d00ff60e82bd5a7a89e95b7" +babel-helper-define-map@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.23.0.tgz#1444f960c9691d69a2ced6a205315f8fd00804e7" dependencies: - babel-helper-function-name "^6.22.0" + babel-helper-function-name "^6.23.0" babel-runtime "^6.22.0" - babel-types "^6.22.0" + babel-types "^6.23.0" lodash "^4.2.0" -babel-helper-function-name@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.22.0.tgz#51f1bdc4bb89b15f57a9b249f33d742816dcbefc" +babel-helper-function-name@^6.22.0, babel-helper-function-name@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.23.0.tgz#25742d67175c8903dbe4b6cb9d9e1fcb8dcf23a6" dependencies: babel-helper-get-function-arity "^6.22.0" babel-runtime "^6.22.0" - babel-template "^6.22.0" - babel-traverse "^6.22.0" - babel-types "^6.22.0" + babel-template "^6.23.0" + babel-traverse "^6.23.0" + babel-types "^6.23.0" babel-helper-get-function-arity@^6.22.0: version "6.22.0" @@ -442,12 +420,12 @@ babel-helper-hoist-variables@^6.22.0: babel-runtime "^6.22.0" babel-types "^6.22.0" -babel-helper-optimise-call-expression@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.22.0.tgz#f8d5d4b40a6e2605a6a7f9d537b581bea3756d15" +babel-helper-optimise-call-expression@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.23.0.tgz#f3ee7eed355b4282138b33d02b78369e470622f5" dependencies: babel-runtime "^6.22.0" - babel-types "^6.22.0" + babel-types "^6.23.0" babel-helper-regex@^6.22.0: version "6.22.0" @@ -457,36 +435,36 @@ babel-helper-regex@^6.22.0: babel-types "^6.22.0" lodash "^4.2.0" -babel-helper-replace-supers@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.22.0.tgz#1fcee2270657548908c34db16bcc345f9850cf42" +babel-helper-replace-supers@^6.22.0, babel-helper-replace-supers@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.23.0.tgz#eeaf8ad9b58ec4337ca94223bacdca1f8d9b4bfd" dependencies: - babel-helper-optimise-call-expression "^6.22.0" - babel-messages "^6.22.0" + babel-helper-optimise-call-expression "^6.23.0" + babel-messages "^6.23.0" babel-runtime "^6.22.0" - babel-template "^6.22.0" - babel-traverse "^6.22.0" - babel-types "^6.22.0" + babel-template "^6.23.0" + babel-traverse "^6.23.0" + babel-types "^6.23.0" -babel-helpers@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.22.0.tgz#d275f55f2252b8101bff07bc0c556deda657392c" +babel-helpers@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.23.0.tgz#4f8f2e092d0b6a8808a4bde79c27f1e2ecf0d992" dependencies: babel-runtime "^6.22.0" - babel-template "^6.22.0" + babel-template "^6.23.0" -babel-loader@^6.2.10: - version "6.2.10" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.2.10.tgz#adefc2b242320cd5d15e65b31cea0e8b1b02d4b0" +babel-loader@^6.3.1: + version "6.3.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.3.2.tgz#18de4566385578c1b4f8ffe6cbc668f5e2a5ef03" dependencies: find-cache-dir "^0.1.1" - loader-utils "^0.2.11" + loader-utils "^0.2.16" mkdirp "^0.5.1" object-assign "^4.0.1" -babel-messages@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.22.0.tgz#36066a214f1217e4ed4164867669ecb39e3ea575" +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" dependencies: babel-runtime "^6.22.0" @@ -517,28 +495,28 @@ babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: babel-runtime "^6.22.0" babel-plugin-transform-es2015-block-scoping@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.22.0.tgz#00d6e3a0bebdcfe7536b9d653b44a9141e63e47e" + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.23.0.tgz#e48895cf0b375be148cd7c8879b422707a053b51" dependencies: babel-runtime "^6.22.0" - babel-template "^6.22.0" - babel-traverse "^6.22.0" - babel-types "^6.22.0" + babel-template "^6.23.0" + babel-traverse "^6.23.0" + babel-types "^6.23.0" lodash "^4.2.0" babel-plugin-transform-es2015-classes@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.22.0.tgz#54d44998fd823d9dca15292324161c331c1b6f14" + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.23.0.tgz#49b53f326202a2fd1b3bbaa5e2edd8a4f78643c1" dependencies: - babel-helper-define-map "^6.22.0" - babel-helper-function-name "^6.22.0" - babel-helper-optimise-call-expression "^6.22.0" - babel-helper-replace-supers "^6.22.0" - babel-messages "^6.22.0" + babel-helper-define-map "^6.23.0" + babel-helper-function-name "^6.23.0" + babel-helper-optimise-call-expression "^6.23.0" + babel-helper-replace-supers "^6.23.0" + babel-messages "^6.23.0" babel-runtime "^6.22.0" - babel-template "^6.22.0" - babel-traverse "^6.22.0" - babel-types "^6.22.0" + babel-template "^6.23.0" + babel-traverse "^6.23.0" + babel-types "^6.23.0" babel-plugin-transform-es2015-computed-properties@^6.22.0: version "6.22.0" @@ -548,8 +526,8 @@ babel-plugin-transform-es2015-computed-properties@^6.22.0: babel-template "^6.22.0" babel-plugin-transform-es2015-destructuring@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.22.0.tgz#8e0af2f885a0b2cf999d47c4c1dd23ce88cfa4c6" + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" dependencies: babel-runtime "^6.22.0" @@ -561,8 +539,8 @@ babel-plugin-transform-es2015-duplicate-keys@^6.22.0: babel-types "^6.22.0" babel-plugin-transform-es2015-for-of@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.22.0.tgz#180467ad63aeea592a1caeee4bf1c8b3e2616265" + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" dependencies: babel-runtime "^6.22.0" @@ -589,29 +567,29 @@ babel-plugin-transform-es2015-modules-amd@^6.22.0: babel-template "^6.22.0" babel-plugin-transform-es2015-modules-commonjs@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.22.0.tgz#6ca04e22b8e214fb50169730657e7a07dc941145" + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.23.0.tgz#cba7aa6379fb7ec99250e6d46de2973aaffa7b92" dependencies: babel-plugin-transform-strict-mode "^6.22.0" babel-runtime "^6.22.0" - babel-template "^6.22.0" - babel-types "^6.22.0" + babel-template "^6.23.0" + babel-types "^6.23.0" babel-plugin-transform-es2015-modules-systemjs@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.22.0.tgz#810cd0cd025a08383b84236b92c6e31f88e644ad" + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.23.0.tgz#ae3469227ffac39b0310d90fec73bfdc4f6317b0" dependencies: babel-helper-hoist-variables "^6.22.0" babel-runtime "^6.22.0" - babel-template "^6.22.0" + babel-template "^6.23.0" babel-plugin-transform-es2015-modules-umd@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.22.0.tgz#60d0ba3bd23258719c64391d9bf492d648dc0fae" + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.23.0.tgz#8d284ae2e19ed8fe21d2b1b26d6e7e0fcd94f0f1" dependencies: babel-plugin-transform-es2015-modules-amd "^6.22.0" babel-runtime "^6.22.0" - babel-template "^6.22.0" + babel-template "^6.23.0" babel-plugin-transform-es2015-object-super@^6.22.0: version "6.22.0" @@ -621,15 +599,15 @@ babel-plugin-transform-es2015-object-super@^6.22.0: babel-runtime "^6.22.0" babel-plugin-transform-es2015-parameters@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.22.0.tgz#57076069232019094f27da8c68bb7162fe208dbb" + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.23.0.tgz#3a2aabb70c8af945d5ce386f1a4250625a83ae3b" dependencies: babel-helper-call-delegate "^6.22.0" babel-helper-get-function-arity "^6.22.0" babel-runtime "^6.22.0" - babel-template "^6.22.0" - babel-traverse "^6.22.0" - babel-types "^6.22.0" + babel-template "^6.23.0" + babel-traverse "^6.23.0" + babel-types "^6.23.0" babel-plugin-transform-es2015-shorthand-properties@^6.22.0: version "6.22.0" @@ -659,8 +637,8 @@ babel-plugin-transform-es2015-template-literals@^6.22.0: babel-runtime "^6.22.0" babel-plugin-transform-es2015-typeof-symbol@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.22.0.tgz#87faf2336d3b6a97f68c4d906b0cd0edeae676e1" + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" dependencies: babel-runtime "^6.22.0" @@ -673,10 +651,10 @@ babel-plugin-transform-es2015-unicode-regex@^6.22.0: regexpu-core "^2.0.0" babel-plugin-transform-react-jsx@^6.8.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.22.0.tgz#48556b7dd4c3fe97d1c943bcd54fc3f2561c1817" + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.23.0.tgz#23e892f7f2e759678eb5e4446a8f8e94e81b3470" dependencies: - babel-helper-builder-react-jsx "^6.22.0" + babel-helper-builder-react-jsx "^6.23.0" babel-plugin-syntax-jsx "^6.8.0" babel-runtime "^6.22.0" @@ -694,8 +672,8 @@ babel-plugin-transform-strict-mode@^6.22.0: babel-types "^6.22.0" babel-polyfill@^6.20.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.22.0.tgz#1ac99ebdcc6ba4db1e2618c387b2084a82154a3b" + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" dependencies: babel-runtime "^6.22.0" core-js "^2.4.0" @@ -730,11 +708,11 @@ babel-preset-es2015@^6.22.0: babel-plugin-transform-es2015-unicode-regex "^6.22.0" babel-plugin-transform-regenerator "^6.22.0" -babel-register@^6.18.0, babel-register@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.22.0.tgz#a61dd83975f9ca4a9e7d6eff3059494cd5ea4c63" +babel-register@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.23.0.tgz#c9aa3d4cca94b51da34826c4a0f9e08145d74ff3" dependencies: - babel-core "^6.22.0" + babel-core "^6.23.0" babel-runtime "^6.22.0" core-js "^2.4.0" home-or-tmp "^2.0.0" @@ -743,8 +721,8 @@ babel-register@^6.18.0, babel-register@^6.22.0: source-map-support "^0.4.2" babel-root-import@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/babel-root-import/-/babel-root-import-4.1.5.tgz#cb2b8163af1c4935d8fb570b5369154317a84f96" + version "4.1.8" + resolved "https://registry.yarnpkg.com/babel-root-import/-/babel-root-import-4.1.8.tgz#135bb83986d57d6f75ba9b7772b31633e22fbdac" dependencies: slash "^1.0.0" @@ -755,39 +733,39 @@ babel-runtime@^5.5.5: core-js "^1.0.0" babel-runtime@^6.18.0, babel-runtime@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.22.0.tgz#1cf8b4ac67c77a4ddb0db2ae1f74de52ac4ca611" + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" dependencies: core-js "^2.4.0" regenerator-runtime "^0.10.0" -babel-template@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.22.0.tgz#403d110905a4626b317a2a1fcb8f3b73204b2edb" +babel-template@^6.22.0, babel-template@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.23.0.tgz#04d4f270adbb3aa704a8143ae26faa529238e638" dependencies: babel-runtime "^6.22.0" - babel-traverse "^6.22.0" - babel-types "^6.22.0" + babel-traverse "^6.23.0" + babel-types "^6.23.0" babylon "^6.11.0" lodash "^4.2.0" -babel-traverse@^6.15.0, babel-traverse@^6.22.0, babel-traverse@^6.22.1: - version "6.22.1" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.22.1.tgz#3b95cd6b7427d6f1f757704908f2fc9748a5f59f" +babel-traverse@^6.15.0, babel-traverse@^6.22.0, babel-traverse@^6.23.0, babel-traverse@^6.23.1: + version "6.23.1" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.23.1.tgz#d3cb59010ecd06a97d81310065f966b699e14f48" dependencies: babel-code-frame "^6.22.0" - babel-messages "^6.22.0" + babel-messages "^6.23.0" babel-runtime "^6.22.0" - babel-types "^6.22.0" + babel-types "^6.23.0" babylon "^6.15.0" debug "^2.2.0" globals "^9.0.0" invariant "^2.2.0" lodash "^4.2.0" -babel-types@^6.15.0, babel-types@^6.19.0, babel-types@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.22.0.tgz#2a447e8d0ea25d2512409e4175479fd78cc8b1db" +babel-types@^6.15.0, babel-types@^6.19.0, babel-types@^6.22.0, babel-types@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.23.0.tgz#bb17179d7538bad38cd0c9e115d340f77e7e9acf" dependencies: babel-runtime "^6.22.0" esutils "^2.0.2" @@ -795,29 +773,17 @@ babel-types@^6.15.0, babel-types@^6.19.0, babel-types@^6.22.0: to-fast-properties "^1.0.1" babylon@^6.11.0, babylon@^6.13.0, babylon@^6.15.0: - version "6.15.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.15.0.tgz#ba65cfa1a80e1759b0e89fb562e27dccae70348e" - -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + version "6.16.1" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.16.1.tgz#30c5a22f481978a9e7f8cdfdf496b11d94b404d3" balanced-match@^0.4.0, balanced-match@^0.4.1, balanced-match@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - base64-js@^1.0.2: version "1.2.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" -base64id@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - bcrypt-pbkdf@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" @@ -828,12 +794,6 @@ beeper@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - dependencies: - callsite "1.0.0" - big.js@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" @@ -858,10 +818,6 @@ bl@^1.0.0: dependencies: readable-stream "^2.0.5" -blob@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" - block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" @@ -878,7 +834,7 @@ bluebird@^2.9.30: version "2.11.0" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" -bluebird@^3.3.0, bluebird@^3.4.6: +bluebird@^3.4.6: version "3.4.7" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" @@ -886,21 +842,6 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" -body-parser@^1.12.4: - version "1.16.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.16.0.tgz#924a5e472c6229fb9d69b85a20d5f2532dec788b" - dependencies: - bytes "2.4.0" - content-type "~1.0.2" - debug "2.6.0" - depd "~1.1.0" - http-errors "~1.5.1" - iconv-lite "0.4.15" - on-finished "~2.3.0" - qs "6.2.1" - raw-body "~2.2.0" - type-is "~1.6.14" - boom@2.x.x: version "2.10.1" resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" @@ -914,12 +855,6 @@ brace-expansion@^1.0.0: balanced-match "^0.4.1" concat-map "0.0.1" -braces@^0.1.2: - version "0.1.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" - dependencies: - expand-range "^0.1.0" - braces@^1.8.2: version "1.8.5" resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" @@ -929,8 +864,8 @@ braces@^1.8.2: repeat-element "^1.1.2" brorand@^1.0.1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.0.7.tgz#6677fa5e4901bdbf9c9ec2a748e28dca407a9bfc" + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" browser-pack@^6.0.1: version "6.0.2" @@ -1068,12 +1003,12 @@ browserify@^13.0.0: vm-browserify "~0.0.1" xtend "^4.0.0" -browserslist@^1.0.1, browserslist@^1.1.1, browserslist@^1.1.3, browserslist@^1.5.2, browserslist@^1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.1.tgz#cc9bd193979a2a4b09fdb3df6003fefe48ccefe1" +browserslist@^1.0.1, browserslist@^1.1.1, browserslist@^1.1.3, browserslist@^1.5.2, browserslist@^1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.5.tgz#eca4713897b51e444283241facf3985de49a9e2b" dependencies: - caniuse-db "^1.0.30000617" - electron-to-chromium "^1.2.1" + caniuse-db "^1.0.30000624" + electron-to-chromium "^1.2.3" buffer-crc32@~0.2.1, buffer-crc32@~0.2.3: version "0.2.13" @@ -1109,13 +1044,9 @@ builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" -bytes@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" - cached-path-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.0.tgz#d1094c577fbd9a8b8bd43c96af6188aa205d05f4" + version "1.0.1" + resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.1.tgz#d09c4b52800aa4c078e2dd81a869aac90d2e54e7" caller-path@^0.1.0: version "0.1.0" @@ -1123,10 +1054,6 @@ caller-path@^0.1.0: dependencies: callsites "^0.2.0" -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" @@ -1166,16 +1093,9 @@ caniuse-api@^1.5.2: lodash.memoize "^4.1.0" lodash.uniq "^4.3.0" -caniuse-db@^1.0.30000187, caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000617, caniuse-db@^1.0.30000618: - version "1.0.30000620" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000620.tgz#88b27b951966c5b0d127c4448169b92a1339e453" - -cardinal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-1.0.0.tgz#50e21c1b0aa37729f9377def196b5a9cec932ee9" - dependencies: - ansicolors "~0.2.1" - redeyed "~1.0.0" +caniuse-db@^1.0.30000187, caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000624: + version "1.0.30000626" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000626.tgz#44363dc86857efaf758fea9faef6a15ed93d8f33" caseless@~0.11.0: version "0.11.0" @@ -1220,7 +1140,7 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chokidar@^1.0.0, chokidar@^1.4.1, chokidar@^1.4.3: +chokidar@^1.0.0, chokidar@^1.4.3: version "1.6.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" dependencies: @@ -1252,8 +1172,8 @@ clap@^1.0.9: chalk "^1.1.3" clean-css@4.0.x: - version "4.0.4" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.0.4.tgz#629896cc364f3c3d00b9908ee60dd18e4c6c6462" + version "4.0.8" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.0.8.tgz#063dfd593404d3a3d1db494d4b6d0f378b0781b6" dependencies: source-map "0.5.x" @@ -1263,19 +1183,6 @@ cli-cursor@^1.0.1: dependencies: restore-cursor "^1.0.1" -cli-table@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" - dependencies: - colors "1.0.3" - -cli-usage@^0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/cli-usage/-/cli-usage-0.1.4.tgz#7c01e0dc706c234b39c933838c8e20b2175776e2" - dependencies: - marked "^0.3.6" - marked-terminal "^1.6.2" - cli-width@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" @@ -1427,23 +1334,13 @@ colormin@^1.0.5: css-color-names "0.0.4" has "^1.0.1" -colors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - -colors@^1.1.0, colors@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -colors@~0.6.0, colors@~0.6.2: +colors@~0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" -combine-lists@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" - dependencies: - lodash "^4.5.0" +colors@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" combine-source-map@~0.7.1: version "0.7.2" @@ -1476,22 +1373,6 @@ commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - -component-emitter@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - compress-commons@~0.2.0: version "0.2.9" resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-0.2.9.tgz#422d927430c01abd06cd455b6dfc04cb4cf8003c" @@ -1527,15 +1408,6 @@ concat-with-sourcemaps@^1.0.0: dependencies: source-map "^0.5.1" -connect@^3.3.5: - version "3.5.0" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.5.0.tgz#b357525a0b4c1f50599cd983e1d9efeea9677198" - dependencies: - debug "~2.2.0" - finalhandler "0.5.0" - parseurl "~1.3.1" - utils-merge "1.0.0" - console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" @@ -1550,27 +1422,19 @@ constants-browserify@^1.0.0, constants-browserify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" -content-type@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" - convert-source-map@1.X, convert-source-map@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67" + version "1.4.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.4.0.tgz#e3dad195bf61bfe13a7a3c73e9876ec14a0268f3" convert-source-map@~1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" -core-js@^2.2.0, core-js@^2.4.0, core-js@^2.4.1: +core-js@^2.4.0, core-js@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" @@ -1754,10 +1618,6 @@ custom-event-polyfill@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/custom-event-polyfill/-/custom-event-polyfill-0.3.0.tgz#99807839be62edb446b645832e0d80ead6fa1888" -custom-event@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - customizr@^1.0.0-alpha: version "1.0.0-alpha" resolved "https://registry.yarnpkg.com/customizr/-/customizr-1.0.0-alpha.tgz#7ee5871f4e0aeef38d2a3fb03c804bae61bc21ee" @@ -1790,7 +1650,7 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -dateformat@^1.0.6, dateformat@^1.0.7-1.2.3: +dateformat@^1.0.7-1.2.3: version "1.0.12" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" dependencies: @@ -1809,9 +1669,9 @@ debug-fabulous@0.0.X: lazy-debug-legacy "0.0.X" object-assign "4.1.0" -debug@2, debug@2.6.0, debug@2.X, debug@^2.1.1, debug@^2.2.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" +debug@2, debug@2.X, debug@^2.1.1, debug@^2.2.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351" dependencies: ms "0.7.2" @@ -1821,12 +1681,6 @@ debug@2.2.0, debug@~2.2.0: dependencies: ms "0.7.1" -debug@2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" - dependencies: - ms "0.7.2" - decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1887,10 +1741,6 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" -depd@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" - deprecated@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" @@ -1934,10 +1784,6 @@ detective@^4.0.0: acorn "^3.1.0" defined "^1.0.0" -di@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - diff@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" @@ -1957,6 +1803,13 @@ doctrine@1.1.0: esutils "^1.1.6" isarray "0.0.1" +doctrine@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.6.4.tgz#81428491a942ef18b0492056eda3800eee57d61d" + dependencies: + esutils "^1.1.6" + isarray "0.0.1" + doctrine@^1.2.2: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" @@ -1981,15 +1834,6 @@ doiuse@^2.4.1: through2 "^0.6.3" yargs "^3.5.4" -dom-serialize@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - dependencies: - custom-event "~1.0.0" - ent "~2.2.0" - extend "^3.0.0" - void-elements "^2.0.0" - domain-browser@^1.1.1, domain-browser@~1.1.0: version "1.1.7" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" @@ -2034,22 +1878,21 @@ ecstatic@^2.1.0: minimist "^1.1.0" url-join "^1.0.0" -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - -electron-to-chromium@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.2.1.tgz#63ac7579a1c5bedb296c8607621f2efc9a54b968" +electron-to-chromium@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.2.3.tgz#4b4d04d237c301f72e2d15c2137b2b79f9f5ab76" elliptic@^6.0.0: - version "6.3.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.3.3.tgz#5482d9646d54bcb89fd7d994fc9e2e9568876e3f" + version "6.4.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" dependencies: bn.js "^4.4.0" brorand "^1.0.1" hash.js "^1.0.0" + hmac-drbg "^1.0.0" inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" emojis-list@^2.0.0: version "2.1.0" @@ -2079,45 +1922,6 @@ end-of-stream@~0.1.5: dependencies: once "~1.3.0" -engine.io-client@1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.2.tgz#c38767547f2a7d184f5752f6f0ad501006703766" - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "2.3.3" - engine.io-parser "1.3.2" - has-cors "1.1.0" - indexof "0.0.1" - parsejson "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - ws "1.1.1" - xmlhttprequest-ssl "1.5.3" - yeast "0.1.2" - -engine.io-parser@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a" - dependencies: - after "0.8.2" - arraybuffer.slice "0.0.6" - base64-arraybuffer "0.1.5" - blob "0.0.4" - has-binary "0.1.7" - wtf-8 "1.0.0" - -engine.io@1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.2.tgz#6b59be730b348c0125b0a4589de1c355abcf7a7e" - dependencies: - accepts "1.3.3" - base64id "1.0.0" - cookie "0.3.1" - debug "2.3.3" - engine.io-parser "1.3.2" - ws "1.1.1" - enhanced-resolve@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz#9f4b626f577245edcf4b2ad83d86e17f4f421dec" @@ -2135,10 +1939,6 @@ enhanced-resolve@~0.9.0: memory-fs "^0.2.0" tapable "^0.1.8" -ent@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - "errno@>=0.1.1 <0.2.0-0", errno@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" @@ -2203,25 +2003,10 @@ es6-weak-map@^2.0.1: es6-iterator "2" es6-symbol "3" -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - escape-string-regexp@1.0.5, escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" -escodegen@1.8.x: - version "1.8.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" - dependencies: - esprima "^2.7.1" - estraverse "^1.9.1" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.2.0" - escope@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" @@ -2237,9 +2022,9 @@ eslint-plugin-mocha@^4.8.0: dependencies: ramda "^0.22.1" -eslint@^3.14.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.15.0.tgz#bdcc6a6c5ffe08160e7b93c066695362a91e30f2" +eslint@^3.16.0: + version "3.16.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.16.1.tgz#9bc31fc7341692cf772e80607508f67d711c5609" dependencies: babel-code-frame "^6.16.0" chalk "^1.1.3" @@ -2283,13 +2068,13 @@ espree@^3.4.0: acorn "4.0.4" acorn-jsx "^3.0.0" -esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: +esprima@^2.6.0: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" -esprima@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.0.0.tgz#53cf247acda77313e551c3aa2e73342d3fb4f7d9" +esprima@^3.0.0, esprima@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" esrecurse@^4.1.0: version "4.1.0" @@ -2298,10 +2083,6 @@ esrecurse@^4.1.0: estraverse "~4.1.0" object-assign "^4.0.1" -estraverse@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" - estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" @@ -2325,10 +2106,6 @@ event-emitter@~0.3.4: d "~0.1.1" es5-ext "~0.10.7" -eventemitter3@1.x.x: - version "1.2.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" - events@^1.0.0, events@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" @@ -2349,27 +2126,12 @@ exit-hook@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" -expand-braces@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" - dependencies: - array-slice "^0.2.3" - array-unique "^0.2.1" - braces "^0.1.2" - expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" dependencies: is-posix-bracket "^0.1.0" -expand-range@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" - dependencies: - is-number "^0.1.1" - repeat-string "^0.2.2" - expand-range@^1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" @@ -2462,16 +2224,6 @@ fill-range@^2.1.0: repeat-element "^1.1.2" repeat-string "^1.5.2" -finalhandler@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7" - dependencies: - debug "~2.2.0" - escape-html "~1.0.3" - on-finished "~2.3.0" - statuses "~1.3.0" - unpipe "~1.0.0" - find-cache-dir@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" @@ -2537,6 +2289,20 @@ flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" +flow-bin@^0.39.0: + version "0.39.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.39.0.tgz#b1012a14460df1aa79d3a728e10f93c6944226d0" + +flow-jsdoc@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/flow-jsdoc/-/flow-jsdoc-0.2.2.tgz#32fee5c8c1534eb4ce116585d860d4e0c1723192" + dependencies: + doctrine "^0.6.4" + esprima "^3.0.0" + glob "^5.0.14" + mkdirp "^0.5.1" + nopt "^3.0.3" + for-in@^0.1.5: version "0.1.6" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" @@ -2575,12 +2341,6 @@ form-data@~2.1.1: combined-stream "^1.0.5" mime-types "^2.1.12" -fs-access@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" - dependencies: - null-check "^1.0.0" - fs-exists-sync@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" @@ -2600,8 +2360,8 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" fsevents@^1.0.0: - version "1.0.17" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.17.tgz#8537f3f12272678765b4fd6528c0f1f66f8f4558" + version "1.1.1" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff" dependencies: nan "^2.3.0" node-pre-gyp "^0.6.29" @@ -2632,8 +2392,8 @@ gather-stream@^1.0.0: resolved "https://registry.yarnpkg.com/gather-stream/-/gather-stream-1.0.0.tgz#b33994af457a8115700d410f317733cbe7a0904b" gauge@~2.7.1: - version "2.7.2" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.2.tgz#15cecc31b02d05345a5d6b0e171cdb3ad2307774" + version "2.7.3" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.3.tgz#1c23855f962f17b3ad3d0dc7443f304542edfe09" dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -2642,7 +2402,6 @@ gauge@~2.7.1: signal-exit "^3.0.0" string-width "^1.0.1" strip-ansi "^3.0.1" - supports-color "^0.2.0" wide-align "^1.1.0" gaze@^0.5.1: @@ -2692,8 +2451,8 @@ gemini-coverage@^1.0.0: q-io "^2.0.6" gemini@^4.14.3: - version "4.19.0" - resolved "https://registry.yarnpkg.com/gemini/-/gemini-4.19.0.tgz#ccccafe48a27cf05214e892039b052c471241d6a" + version "4.19.1" + resolved "https://registry.yarnpkg.com/gemini/-/gemini-4.19.1.tgz#f86198cfa2c75ab2c1281514506158116aecf5e9" dependencies: aliasify "^1.7.2" bluebird "^3.4.6" @@ -2708,6 +2467,7 @@ gemini@^4.14.3: gemini-configparser "^0.1.1" gemini-core "^1.0.0" gemini-coverage "^1.0.0" + graceful-fs "^4.1.11" handlebars "^4.0.5" inherit "~2.2.1" js-yaml "^3.2.5" @@ -2758,8 +2518,8 @@ getpass@^0.1.1: assert-plus "^1.0.0" git-hooks@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/git-hooks/-/git-hooks-1.1.7.tgz#f01f73cc0b957bf42b7b533fe1fe493d33767d0b" + version "1.1.8" + resolved "https://registry.yarnpkg.com/git-hooks/-/git-hooks-1.1.8.tgz#de935858c951c336bd648202938bd04fa433279d" glob-base@^0.3.0: version "0.3.0" @@ -2826,7 +2586,7 @@ glob@^4.3.1: minimatch "^2.0.1" once "^1.3.0" -glob@^5.0.15: +glob@^5.0.14: version "5.0.15" resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" dependencies: @@ -2836,7 +2596,7 @@ glob@^5.0.15: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@~7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: @@ -2888,8 +2648,8 @@ global-prefix@^0.1.4: which "^1.2.12" globals@^9.0.0, globals@^9.14.0: - version "9.14.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034" + version "9.16.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.16.0.tgz#63e903658171ec2d9f51b1d31de5e2b8dc01fb80" globby@^5.0.0: version "5.0.0" @@ -2944,7 +2704,7 @@ good-listener@^1.2.0: dependencies: delegate "^3.1.1" -graceful-fs@4.X, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +graceful-fs@4.X, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -2966,7 +2726,7 @@ growl@1.9.2: version "1.9.2" resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" -growly@^1.2.0, growly@^1.3.0: +growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -2988,9 +2748,9 @@ grunt-legacy-log@~0.1.1: lodash "~2.4.1" underscore.string "~2.3.3" -gulp-changed@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/gulp-changed/-/gulp-changed-1.3.2.tgz#9efc8d325f9805cc7668fdf4e7d60d4b1410f2cf" +gulp-changed@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/gulp-changed/-/gulp-changed-2.0.0.tgz#7396d95aeab35c6bcbcb75169fd7f24a271a013b" dependencies: gulp-util "^3.0.0" through2 "^2.0.0" @@ -3130,15 +2890,15 @@ gulp-sourcemaps@^2.4.0: vinyl "1.X" gulp-stylelint@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/gulp-stylelint/-/gulp-stylelint-3.7.0.tgz#199bd968fbe6447088a584dc7d665543f9fa97b4" + version "3.9.0" + resolved "https://registry.yarnpkg.com/gulp-stylelint/-/gulp-stylelint-3.9.0.tgz#a09a67af490b1fb28eb910b4cbfb5412c7f0bb71" dependencies: chalk "^1.1.3" deep-extend "^0.4.1" - gulp-util "^3.0.7" + gulp-util "^3.0.8" mkdirp "^0.5.1" promise "^7.1.1" - stylelint "^7.7.0" + stylelint "^7.9.0" through2 "^2.0.3" gulp-svgmin@^1.2.3: @@ -3221,7 +2981,7 @@ gulplog@^1.0.0: dependencies: glogg "^1.0.0" -handlebars@^4.0.1, handlebars@^4.0.5: +handlebars@^4.0.5: version "4.0.6" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.6.tgz#2ce4484850537f9c97a8026d5399b935c4ed4ed7" dependencies: @@ -3269,16 +3029,6 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-binary@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" - dependencies: - isarray "0.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" @@ -3299,7 +3049,7 @@ has@^1.0.0, has@^1.0.1: dependencies: function-bind "^1.0.2" -hash.js@^1.0.0: +hash.js@^1.0.0, hash.js@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573" dependencies: @@ -3331,6 +3081,14 @@ he@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/he/-/he-0.5.0.tgz#2c05ffaef90b68e860f3fd2b54ef580989277ee2" +hmac-drbg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.0.tgz#3db471f45aae4a994a0688322171f51b8b91bee5" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" @@ -3353,16 +3111,16 @@ hooker@~0.2.3: resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959" hosted-git-info@^2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b" + version "2.2.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.2.0.tgz#7a0d097863d886c0fabbdcd37bf1758d8becf8a5" html-comment-regex@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" html-minifier@^3.0.3: - version "3.3.0" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.3.0.tgz#a9b5b8eda501362d4c5699db02a8dc72013d1fab" + version "3.3.3" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.3.3.tgz#5e85516b2aff3c3fb9bda351879375868386d6f6" dependencies: camel-case "3.0.x" clean-css "4.0.x" @@ -3381,21 +3139,6 @@ htmlescape@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" -http-errors@~1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750" - dependencies: - inherits "2.0.3" - setprototypeof "1.0.2" - statuses ">= 1.3.1 < 2" - -http-proxy@^1.13.0: - version "1.16.2" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" - dependencies: - eventemitter3 "1.x.x" - requires-port "1.x.x" - http-signature@~0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" @@ -3424,7 +3167,7 @@ https-proxy-agent@^1.0.0, https-proxy-agent@~1.0.0: debug "2" extend "3" -iconv-lite@0.4.15, iconv-lite@~0.4.13: +iconv-lite@~0.4.13: version "0.4.15" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" @@ -3433,8 +3176,8 @@ ieee754@^1.1.4: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" ignore@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.2.tgz#1c51e1ef53bab6ddc15db4d9ac4ec139eceb3410" + version "3.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.4.tgz#4055e03596729a8fabe45a43c100ad5ed815c4e8" imurmurhash@^0.1.4: version "0.1.4" @@ -3473,7 +3216,7 @@ inherits@1: version "1.0.2" resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -3624,10 +3367,6 @@ is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.0, is-my-json-valid@^2.12.4: jsonpointer "^4.0.0" xtend "^4.0.0" -is-number@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" - is-number@^2.0.2, is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" @@ -3722,10 +3461,6 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" -isbinaryfile@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" - isexe@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" @@ -3740,25 +3475,6 @@ isstream@~0.1.1, isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -istanbul@^0.4.0: - version "0.4.5" - resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b" - dependencies: - abbrev "1.0.x" - async "1.x" - escodegen "1.8.x" - esprima "2.7.x" - glob "^5.0.15" - handlebars "^4.0.1" - js-yaml "3.x" - mkdirp "0.5.x" - nopt "3.x" - once "1.x" - resolve "1.1.x" - supports-color "^3.1.0" - which "^1.1.1" - wordwrap "^1.0.0" - istextorbinary@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-1.0.2.tgz#ace19354d1a9a0173efeb1084ce0f87b0ad7decf" @@ -3784,7 +3500,14 @@ js-tokens@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" -js-yaml@3.x, js-yaml@^3.2.5, js-yaml@^3.4.3, js-yaml@^3.5.1, js-yaml@~3.7.0: +js-yaml@^3.2.5, js-yaml@^3.4.3, js-yaml@^3.5.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.1.tgz#782ba50200be7b9e5a8537001b7804db3ad02628" + dependencies: + argparse "^1.0.7" + esprima "^3.1.1" + +js-yaml@~3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" dependencies: @@ -3792,8 +3515,8 @@ js-yaml@3.x, js-yaml@^3.2.5, js-yaml@^3.4.3, js-yaml@^3.5.1, js-yaml@~3.7.0: esprima "^2.6.0" jsbn@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" jsesc@^1.3.0: version "1.3.0" @@ -3874,89 +3597,6 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.3.6" -karma-chrome-launcher@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.0.0.tgz#c2790c5a32b15577d0fff5a4d5a2703b3b439c25" - dependencies: - fs-access "^1.0.0" - which "^1.2.1" - -karma-coverage@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/karma-coverage/-/karma-coverage-1.1.1.tgz#5aff8b39cf6994dc22de4c84362c76001b637cf6" - dependencies: - dateformat "^1.0.6" - istanbul "^0.4.0" - lodash "^3.8.0" - minimatch "^3.0.0" - source-map "^0.5.1" - -karma-mocha@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-1.3.0.tgz#eeaac7ffc0e201eb63c467440d2b69c7cf3778bf" - dependencies: - minimist "1.2.0" - -karma-notify-reporter@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/karma-notify-reporter/-/karma-notify-reporter-1.0.1.tgz#d9bfb452bc535367143b6e60325dd400f49f20c8" - dependencies: - node-notifier "^4.5.0" - -karma-sourcemap-loader@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz#91322c77f8f13d46fed062b042e1009d4c4505d8" - dependencies: - graceful-fs "^4.1.2" - -karma-spec-reporter@0.0.26: - version "0.0.26" - resolved "https://registry.yarnpkg.com/karma-spec-reporter/-/karma-spec-reporter-0.0.26.tgz#bf5561377dce1b63cf2c975c1af3e35f199e2265" - dependencies: - colors "~0.6.0" - -karma-webpack@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-2.0.2.tgz#bd38350af5645c9644090770939ebe7ce726f864" - dependencies: - async "~0.9.0" - loader-utils "^0.2.5" - lodash "^3.8.0" - source-map "^0.1.41" - webpack-dev-middleware "^1.0.11" - -karma@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/karma/-/karma-1.4.1.tgz#41981a71d54237606b0a3ea8c58c90773f41650e" - dependencies: - bluebird "^3.3.0" - body-parser "^1.12.4" - chokidar "^1.4.1" - colors "^1.1.0" - combine-lists "^1.0.0" - connect "^3.3.5" - core-js "^2.2.0" - di "^0.0.1" - dom-serialize "^2.2.0" - expand-braces "^0.1.1" - glob "^7.1.1" - graceful-fs "^4.1.2" - http-proxy "^1.13.0" - isbinaryfile "^3.0.0" - lodash "^3.8.0" - log4js "^0.6.31" - mime "^1.3.4" - minimatch "^3.0.0" - optimist "^0.6.1" - qjobs "^1.1.4" - range-parser "^1.2.0" - rimraf "^2.3.3" - safe-buffer "^5.0.1" - socket.io "1.7.2" - source-map "^0.5.3" - tmp "0.0.28" - useragent "^2.1.10" - kind-of@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" @@ -4049,23 +3689,15 @@ loader-runner@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" -loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.2.5: - version "0.2.16" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" +loader-utils@^0.2.11, loader-utils@^0.2.16: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" dependencies: big.js "^3.1.3" emojis-list "^2.0.0" json5 "^0.5.0" object-assign "^4.0.1" -lodash._arraycopy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1" - -lodash._arrayeach@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e" - lodash._baseassign@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" @@ -4073,17 +3705,6 @@ lodash._baseassign@^3.0.0: lodash._basecopy "^3.0.0" lodash.keys "^3.0.0" -lodash._baseclone@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz#303519bf6393fe7e42f34d8b630ef7794e3542b7" - dependencies: - lodash._arraycopy "^3.0.0" - lodash._arrayeach "^3.0.0" - lodash._baseassign "^3.0.0" - lodash._basefor "^3.0.0" - lodash.isarray "^3.0.0" - lodash.keys "^3.0.0" - lodash._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" @@ -4092,10 +3713,6 @@ lodash._basecreate@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" -lodash._basefor@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2" - lodash._basetostring@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" @@ -4104,10 +3721,6 @@ lodash._basevalues@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" -lodash._bindcallback@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - lodash._escapehtmlchar@~2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.4.1.tgz#df67c3bb6b7e8e1e831ab48bfa0795b92afe899d" @@ -4183,13 +3796,6 @@ lodash.clone@^4.3.2: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" -lodash.clonedeep@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz#a0a1e40d82a5ea89ff5b147b8444ed63d92827db" - dependencies: - lodash._baseclone "^3.0.0" - lodash._bindcallback "^3.0.0" - lodash.clonedeep@^4.3.2: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -4351,11 +3957,11 @@ lodash@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.0.0.tgz#9ac43844c595e28d30108b7ba583703395922dfc" -lodash@^3.10.1, lodash@^3.8.0, lodash@^3.9.3: +lodash@^3.10.1, lodash@^3.9.3: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.1.0, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.4, lodash@^4.16.6, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.0: +lodash@^4.0.0, lodash@^4.1.0, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.16.4, lodash@^4.16.6, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -4385,13 +3991,6 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" -log4js@^0.6.31: - version "0.6.38" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" - dependencies: - readable-stream "~1.0.2" - semver "~4.3.3" - longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" @@ -4420,12 +4019,12 @@ loud-rejection@^1.0.0: signal-exit "^3.0.0" lower-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.3.tgz#c92393d976793eee5ba4edb583cf8eae35bd9bfb" + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" -lru-cache@2, lru-cache@2.2.x: - version "2.2.4" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" +lru-cache@2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" lru-cache@^4.0.1: version "4.0.2" @@ -4460,29 +4059,15 @@ map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" -marked-terminal@^1.6.2: - version "1.7.0" - resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-1.7.0.tgz#c8c460881c772c7604b64367007ee5f77f125904" - dependencies: - cardinal "^1.0.0" - chalk "^1.1.3" - cli-table "^0.3.1" - lodash.assign "^4.2.0" - node-emoji "^1.4.1" - marked@0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.5.tgz#4113a15ac5d7bca158a5aae07224587b9fa15b94" -marked@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7" - -material-design-color@^2.3.2: +material-design-color@2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/material-design-color/-/material-design-color-2.3.2.tgz#e8af958d852a8747bfb211e48ce1282bda918815" -material-shadows@^3.0.1: +material-shadows@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/material-shadows/-/material-shadows-3.0.1.tgz#586ad12b167360a8e4e897bf7530cb69acea5110" @@ -4490,10 +4075,6 @@ math-expression-evaluator@^1.2.14: version "1.2.16" resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.16.tgz#b357fa1ca9faefb8e48d10c14ef2bcb2d9f0a7c9" -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - memory-fs@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" @@ -4566,7 +4147,7 @@ mime-db@~1.26.0: version "1.26.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" -mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: +mime-types@^2.1.12, mime-types@~2.1.7: version "2.1.14" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" dependencies: @@ -4578,7 +4159,7 @@ mime-types@~2.0.1, mime-types@~2.0.3: dependencies: mime-db "~1.12.0" -"mime@>=1.2.11 <2.0.0", mime@^1.2.11, mime@^1.3.4: +"mime@>=1.2.11 <2.0.0", mime@^1.2.11: version "1.3.4" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" @@ -4594,6 +4175,10 @@ minimalistic-assert@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + minimatch@0.3: version "0.3.0" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd" @@ -4624,15 +4209,15 @@ minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - minimist@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.2.0.tgz#4dffe525dae2b864c66c2e23c6271d7afdecefce" -mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -4675,13 +4260,13 @@ modify-filename@^1.0.0, modify-filename@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/modify-filename/-/modify-filename-1.1.0.tgz#9a2dec83806fbb2d975f22beec859ca26b393aa1" -modularscale-sass@^2.1.1: +modularscale-sass@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/modularscale-sass/-/modularscale-sass-2.1.1.tgz#a42c3a392457ac83a6b8c29a183c95540e6b388b" module-deps@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-4.0.8.tgz#55fd70623399706c3288bef7a609ff1e8c0ed2bb" + version "4.1.1" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-4.1.1.tgz#23215833f1da13fd606ccb8087b44852dcb821fd" dependencies: JSONStream "^1.0.3" browser-resolve "^1.7.0" @@ -4748,22 +4333,12 @@ ncname@1.0.x: dependencies: xml-char-classes "^1.0.0" -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - no-case@^2.2.0: version "2.3.1" resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.1.tgz#7aeba1c73a52184265554b7dc03baf720df80081" dependencies: lower-case "^1.1.1" -node-emoji@^1.4.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.5.1.tgz#fd918e412769bf8c448051238233840b2aff16a1" - dependencies: - string.prototype.codepointat "^0.2.0" - node-fetch@^1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" @@ -4849,18 +4424,6 @@ node-libs-browser@^2.0.0: util "^0.10.3" vm-browserify "0.0.4" -node-notifier@^4.5.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-4.6.1.tgz#056d14244f3dcc1ceadfe68af9cff0c5473a33f3" - dependencies: - cli-usage "^0.1.1" - growly "^1.2.0" - lodash.clonedeep "^3.0.0" - minimist "^1.1.1" - semver "^5.1.0" - shellwords "^0.1.0" - which "^1.0.5" - node-notifier@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.0.2.tgz#4438449fe69e321f941cef943986b0797032701b" @@ -4911,7 +4474,7 @@ node-uuid@~1.4.0: version "1.4.7" resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" -"nopt@2 || 3", nopt@3.x, nopt@~3.0.6: +"nopt@2 || 3", nopt@^3.0.3, nopt@~3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: @@ -4962,10 +4525,6 @@ normalize-url@^1.4.0: gauge "~2.7.1" set-blocking "~2.0.0" -null-check@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" - num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" @@ -4994,10 +4553,6 @@ object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - object-keys@^1.0.6: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" @@ -5013,13 +4568,7 @@ object.omit@^2.0.0: for-own "^0.1.4" is-extendable "^0.1.1" -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - dependencies: - ee-first "1.1.1" - -once@1.x, once@^1.3.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -5052,7 +4601,7 @@ optimist@~0.3, optimist@~0.3.5: dependencies: wordwrap "~0.0.2" -optionator@^0.8.1, optionator@^0.8.2: +optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: @@ -5063,10 +4612,6 @@ optionator@^0.8.1, optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" -options@>=0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" - orchestrator@^0.3.0: version "0.3.8" resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" @@ -5097,7 +4642,7 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -5167,28 +4712,6 @@ parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" -parsejson@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" - dependencies: - better-assert "~1.0.0" - -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - dependencies: - better-assert "~1.0.0" - -parseurl@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" - path-browserify@0.0.0, path-browserify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" @@ -5207,6 +4730,10 @@ path-is-inside@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + path-platform@~0.11.15: version "0.11.15" resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" @@ -5362,8 +4889,8 @@ postcss-calc@^5.2.0: reduce-css-calc "^1.2.6" postcss-colormin@^2.1.8: - version "2.2.1" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.1.tgz#dc5421b6ae6f779ef6bfd47352b94abe59d0316b" + version "2.2.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" dependencies: colormin "^1.0.5" postcss "^5.0.13" @@ -5421,24 +4948,24 @@ postcss-less@^0.14.0: postcss "^5.0.21" postcss-load-config@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.1.0.tgz#1c3c217608642448c03bebf3c32b1b28985293f9" + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" dependencies: cosmiconfig "^2.1.0" object-assign "^4.1.0" - postcss-load-options "^1.1.0" - postcss-load-plugins "^2.2.0" + postcss-load-options "^1.2.0" + postcss-load-plugins "^2.3.0" -postcss-load-options@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.1.0.tgz#e39215d154a19f69f9cb6052bffad4a82f09f354" +postcss-load-options@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" dependencies: cosmiconfig "^2.1.0" object-assign "^4.1.0" -postcss-load-plugins@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.2.0.tgz#84ef9cf36e637810ac5265e03f6d4c48ead83314" +postcss-load-plugins@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" dependencies: cosmiconfig "^2.1.1" object-assign "^4.1.0" @@ -5462,8 +4989,8 @@ postcss-merge-longhand@^2.0.1: postcss "^5.0.4" postcss-merge-rules@^2.0.3: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.1.tgz#5e5640020ce43cddd343c73bba91c9a358d1fe0f" + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" dependencies: browserslist "^1.5.2" caniuse-api "^1.5.2" @@ -5530,9 +5057,9 @@ postcss-ordered-values@^2.1.0: postcss "^5.0.4" postcss-value-parser "^3.0.1" -postcss-pseudo-classes@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-classes/-/postcss-pseudo-classes-0.1.0.tgz#c7ef6a29e81c6aeda2b7056c9f12102d46255f87" +postcss-pseudo-classes@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/postcss-pseudo-classes/-/postcss-pseudo-classes-0.2.0.tgz#c65b5802f8f339ceb7d23f2368bc01bce68964de" dependencies: postcss "^5.0.10" @@ -5580,14 +5107,14 @@ postcss-resolve-nested-selector@^0.1.1: resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" postcss-scss@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-0.4.0.tgz#087c052c529b9270d9580bd1248a0f93d3b40d57" + version "0.4.1" + resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-0.4.1.tgz#ad771b81f0f72f5f4845d08aa60f93557653d54c" dependencies: - postcss "^5.2.5" + postcss "^5.2.13" postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.1.1, postcss-selector-parser@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.2.tgz#3d70f5adda130da51c7c0c2fc023f56b1374fe08" + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" dependencies: flatten "^1.0.2" indexes-of "^1.0.1" @@ -5622,9 +5149,9 @@ postcss-zindex@^2.0.1: postcss "^5.0.4" uniqs "^2.0.0" -postcss@^5.0.0, postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.18, postcss@^5.0.2, postcss@^5.0.20, postcss@^5.0.21, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.8, postcss@^5.2.10, postcss@^5.2.11, postcss@^5.2.4, postcss@^5.2.5: - version "5.2.12" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.12.tgz#6a2b15e35dd65634441bb0961fa796904c7890e0" +postcss@^5.0.0, postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.18, postcss@^5.0.2, postcss@^5.0.20, postcss@^5.0.21, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.8, postcss@^5.2.10, postcss@^5.2.13, postcss@^5.2.14, postcss@^5.2.15, postcss@^5.2.4: + version "5.2.15" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.15.tgz#a9e8685e50e06cc5b3fdea5297273246c26f5b30" dependencies: chalk "^1.1.3" js-base64 "^2.1.9" @@ -5739,14 +5266,6 @@ qemitter@^1.0.0: dependencies: q "^1.2.0" -qjobs@^1.1.4: - version "1.1.5" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" - -qs@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625" - "qs@>=0.6.6 <0.7.0": version "0.6.6" resolved "https://registry.yarnpkg.com/qs/-/qs-0.6.6.tgz#6e015098ff51968b8a3c819001d5f2c89bc4b107" @@ -5756,12 +5275,12 @@ qs@~2.4.0: resolved "https://registry.yarnpkg.com/qs/-/qs-2.4.2.tgz#f7ce788e5777df0b5010da7f7c4e73ba32470f5a" qs@~6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" + version "6.3.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.1.tgz#918c0b3bcd36679772baf135b1acb4c1651ed79d" query-string@^4.1.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.1.tgz#54baada6713eafc92be75c47a731f2ebd09cd11d" + version "4.3.2" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.2.tgz#ec0fd765f58a50031a3968c2431386f8947a5cdd" dependencies: object-assign "^4.1.0" strict-uri-encode "^1.0.0" @@ -5793,26 +5312,14 @@ randombytes@^2.0.0, randombytes@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec" -range-parser@^1.0.3, range-parser@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - -raw-body@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.2.0.tgz#994976cf6a5096a41162840492f0bdc5d6e7fb96" - dependencies: - bytes "2.4.0" - iconv-lite "0.4.15" - unpipe "1.0.0" - rc@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" + version "1.1.7" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.7.tgz#c5ea564bb07aff9fd3a5b32e906c1d3a65940fea" dependencies: deep-extend "~0.4.0" ini "~1.3.0" minimist "^1.2.0" - strip-json-comments "~1.0.4" + strip-json-comments "~2.0.1" read-file-stdin@^0.2.1: version "0.2.1" @@ -5860,8 +5367,8 @@ readable-stream@^1.0.33, readable-stream@~1.1.9: string_decoder "~0.10.x" readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.0, readable-stream@^2.1.5, readable-stream@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" + version "2.2.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.3.tgz#9cf49463985df016c8ae8813097a9293a9b33729" dependencies: buffer-shims "^1.0.0" core-util-is "~1.0.0" @@ -5924,12 +5431,6 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" -redeyed@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-1.0.1.tgz#e96c193b40c0816b00aec842698e61185e55498a" - dependencies: - esprima "~3.0.0" - reduce-css-calc@^1.2.6: version "1.3.0" resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" @@ -5949,8 +5450,8 @@ regenerate@^1.2.1: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" regenerator-runtime@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz#257f41961ce44558b18f7814af48c17559f9faeb" + version "0.10.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.3.tgz#8c4367a904b51ea62a908ac310bf99ff90a82a3e" regenerator-transform@0.9.8: version "0.9.8" @@ -6001,10 +5502,6 @@ repeat-element@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" -repeat-string@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" - repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -6102,10 +5599,6 @@ requirejs@2.1.22: version "2.1.22" resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.1.22.tgz#dd78fd2d34180c0d62c724b5b8aebc0664e0366f" -requires-port@1.x.x: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - resolve-dir@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" @@ -6125,13 +5618,15 @@ resolve-url@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" -resolve@1.1.7, resolve@1.1.x: +resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" resolve@^1.1.0, resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7: - version "1.2.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c" + version "1.3.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.1.tgz#5d0a1632609b6b00a22284293db1d5d973676314" + dependencies: + path-parse "^1.0.5" restore-cursor@^1.0.1: version "1.0.1" @@ -6156,9 +5651,9 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.5.4, rimraf@~2.5.1, rimraf@~2.5.4: - version "2.5.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: glob "^7.0.5" @@ -6166,6 +5661,12 @@ rimraf@~2.2.6: version "2.2.8" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" +rimraf@~2.5.1, rimraf@~2.5.4: + version "2.5.4" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" + dependencies: + glob "^7.0.5" + ripemd160@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" @@ -6184,10 +5685,6 @@ rx-lite@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" -safe-buffer@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" - sass-graph@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.1.2.tgz#965104be23e8103cb7e5f710df65935b317da57b" @@ -6213,8 +5710,8 @@ saucelabs@^1.4.0: https-proxy-agent "^1.0.0" sax@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + version "1.2.2" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828" select@^1.1.2: version "1.1.2" @@ -6236,11 +5733,11 @@ selenium-standalone@^6.0.0: which "^1.2.12" yauzl "^2.5.0" -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@~5.3.0: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" -semver@^4.1.0, semver@~4.3.3: +semver@^4.1.0: version "4.3.6" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" @@ -6264,10 +5761,6 @@ setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" -setprototypeof@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" - sha.js@2.2.6: version "2.2.6" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" @@ -6332,50 +5825,6 @@ sntp@1.x.x: dependencies: hoek "2.x.x" -socket.io-adapter@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" - dependencies: - debug "2.3.3" - socket.io-parser "2.3.1" - -socket.io-client@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.2.tgz#39fdb0c3dd450e321b7e40cfd83612ec533dd644" - dependencies: - backo2 "1.0.2" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "2.3.3" - engine.io-client "1.8.2" - has-binary "0.1.7" - indexof "0.0.1" - object-component "0.0.3" - parseuri "0.0.5" - socket.io-parser "2.3.1" - to-array "0.1.4" - -socket.io-parser@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" - dependencies: - component-emitter "1.1.2" - debug "2.2.0" - isarray "0.0.1" - json3 "3.3.2" - -socket.io@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.2.tgz#83bbbdf2e79263b378900da403e7843e05dc3b71" - dependencies: - debug "2.3.3" - engine.io "1.8.2" - has-binary "0.1.7" - object-assign "4.1.0" - socket.io-adapter "0.5.0" - socket.io-client "1.7.2" - socket.io-parser "2.3.1" - sort-keys@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" @@ -6409,7 +5858,7 @@ source-map@0.5.x, source-map@0.X, source-map@^0.5.0, source-map@^0.5.1, source-m version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" -source-map@^0.1.38, source-map@^0.1.41, source-map@~0.1.7: +source-map@^0.1.38, source-map@~0.1.7: version "0.1.43" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" dependencies: @@ -6421,12 +5870,6 @@ source-map@^0.4.2, source-map@^0.4.4, source-map@~0.4.1: dependencies: amdefine ">=0.0.4" -source-map@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" - dependencies: - amdefine ">=0.0.4" - sparkles@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" @@ -6474,10 +5917,6 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" -"statuses@>= 1.3.1 < 2", statuses@~1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - stdout-stream@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b" @@ -6549,10 +5988,6 @@ string-width@^2.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^3.0.0" -string.prototype.codepointat@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.0.tgz#6b26e9bd3afcaa7be3b4269b526de1b82000ac78" - string_decoder@^0.10.25, string_decoder@~0.10.0, string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -6603,10 +6038,6 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-json-comments@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" - strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -6620,8 +6051,8 @@ style-search@^0.1.0: resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" stylehacks@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-2.3.1.tgz#de49e8baa2e12b29c35b416b337094839bc97b35" + version "2.3.2" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-2.3.2.tgz#64c83e0438a68c9edf449e8c552a7d9ab6009b0b" dependencies: browserslist "^1.1.3" chalk "^1.1.1" @@ -6639,17 +6070,17 @@ stylelint-config-standard@^16.0.0: version "16.0.0" resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-16.0.0.tgz#bb7387bff1d7dd7186a52b3ebf885b2405d691bf" -stylelint-order@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/stylelint-order/-/stylelint-order-0.2.2.tgz#c1fd77cf3565bd223c233b9e7bb98728c0abe8bd" +stylelint-order@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/stylelint-order/-/stylelint-order-0.3.0.tgz#9a0f593c077c04d5e5da22404dab84288c933843" dependencies: - lodash "^4.16.6" - postcss "^5.2.5" - stylelint "^7.5.0" + lodash "^4.17.4" + postcss "^5.2.14" + stylelint "^7.8.0" stylelint-scss@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-1.4.1.tgz#821febe57c28cc56be02b6a5b6b40a944ed74235" + version "1.4.3" + resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-1.4.3.tgz#6069ddba951345514ad6abcc6beed7d32f1c799d" dependencies: lodash "^4.11.1" postcss-media-query-parser "^0.2.3" @@ -6658,9 +6089,9 @@ stylelint-scss@^1.4.1: postcss-value-parser "^3.3.0" stylelint "^7.0.3" -stylelint@^7.0.3, stylelint@^7.5.0, stylelint@^7.7.0, stylelint@^7.8.0: - version "7.8.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-7.8.0.tgz#ac701044ed03c44f7a9f73d4d5dc1bd1eaae12d1" +stylelint@^7.0.3, stylelint@^7.8.0, stylelint@^7.9.0: + version "7.9.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-7.9.0.tgz#b8d9ea20f887ab351075c6aded9528de24509327" dependencies: autoprefixer "^6.0.0" balanced-match "^0.4.0" @@ -6675,7 +6106,7 @@ stylelint@^7.0.3, stylelint@^7.5.0, stylelint@^7.7.0, stylelint@^7.8.0: html-tags "^1.1.1" ignore "^3.2.0" known-css-properties "^0.0.6" - lodash "^4.0.0" + lodash "^4.17.4" log-symbols "^1.0.2" meow "^3.3.0" micromatch "^2.3.11" @@ -6709,7 +6140,7 @@ sugarss@^0.2.0: dependencies: postcss "^5.2.4" -supports-color@3.1.2: +supports-color@3.1.2, supports-color@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" dependencies: @@ -6723,7 +6154,7 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.1.0, supports-color@^3.2.3: +supports-color@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: @@ -6908,16 +6339,6 @@ tiny-emitter@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-1.1.0.tgz#ab405a21ffed814a76c19739648093d70654fecb" -tmp@0.0.28: - version "0.0.28" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" - dependencies: - os-tmpdir "~1.0.1" - -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -6936,6 +6357,10 @@ trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + tryit@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" @@ -6966,13 +6391,6 @@ type-detect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" -type-is@~1.6.14: - version "1.6.14" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.13" - typedarray@^0.0.6, typedarray@~0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -7016,10 +6434,6 @@ uid-number@~0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" -ultron@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" - umd@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.1.tgz#8ae556e11011f63c2596708a8837259f01b3d60e" @@ -7058,17 +6472,13 @@ unique-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - upper-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" urijs@^1.18.4: - version "1.18.5" - resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.18.5.tgz#d709e2238c549f65230f4fc3535806a589689ac5" + version "1.18.7" + resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.18.7.tgz#613ee4194452fe66b872d62468946df93a941492" urix@^0.1.0, urix@~0.1.0: version "0.1.0" @@ -7108,12 +6518,6 @@ user-home@^2.0.0: dependencies: os-homedir "^1.0.0" -useragent@^2.1.10: - version "2.1.11" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.1.11.tgz#6a026e6a6c619b46ca7a0b2fdef6c1ac3da8ca29" - dependencies: - lru-cache "2.2.x" - util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7124,10 +6528,6 @@ util@0.10.3, util@^0.10.3, util@~0.10.1: dependencies: inherits "2.0.1" -utils-merge@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" - uuid@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" @@ -7240,10 +6640,6 @@ vm-browserify@0.0.4, vm-browserify@~0.0.1: dependencies: indexof "0.0.1" -void-elements@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - watchpack@^0.2.1: version "0.2.9" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-0.2.9.tgz#62eaa4ab5e5ba35fdfc018275626e3c0f5e3fb0b" @@ -7253,8 +6649,8 @@ watchpack@^0.2.1: graceful-fs "^4.1.2" watchpack@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.2.0.tgz#15d4620f1e7471f13fcb551d5c030d2c3eb42dbb" + version "1.3.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.3.1.tgz#7d8693907b28ce6013e7f3610aa2a1acf07dad87" dependencies: async "^2.1.2" chokidar "^1.4.3" @@ -7283,15 +6679,6 @@ webpack-core@~0.6.9: source-list-map "~0.1.7" source-map "~0.4.1" -webpack-dev-middleware@^1.0.11: - version "1.10.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.10.0.tgz#7d5be2651e692fddfafd8aaed177c16ff51f0eb8" - dependencies: - memory-fs "~0.4.1" - mime "^1.3.4" - path-is-absolute "^1.0.0" - range-parser "^1.0.3" - webpack-sources@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.4.tgz#ccc2c817e08e5fa393239412690bb481821393cd" @@ -7368,7 +6755,7 @@ which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" -which@1, which@^1.0.5, which@^1.1.1, which@^1.2.1, which@^1.2.12, which@^1.2.9: +which@1, which@^1.2.12, which@^1.2.9: version "1.2.12" resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" dependencies: @@ -7400,7 +6787,7 @@ wordwrap@0.0.2, wordwrap@~0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" -wordwrap@^1.0.0, wordwrap@~1.0.0: +wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" @@ -7432,25 +6819,10 @@ write@^0.2.1: dependencies: mkdirp "^0.5.1" -ws@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018" - dependencies: - options ">=0.0.5" - ultron "1.0.x" - -wtf-8@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" - xml-char-classes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" -xmlhttprequest-ssl@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" - "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -7555,10 +6927,6 @@ yauzl@^2.5.0: buffer-crc32 "~0.2.3" fd-slicer "~1.0.1" -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - zip-stream@~0.5.0: version "0.5.2" resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-0.5.2.tgz#32dcbc506d0dab4d21372625bd7ebaac3c2fff56"