diff --git a/.appveyor.yml b/.appveyor.yml index c3acffe7e3..746cb95dc8 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,18 +1,18 @@ environment: matrix: - - julia_version: 0.7 - julia_version: 1.0 - - julia_version: latest + - julia_version: 1.4 + - julia_version: nightly platform: - x86 # 32-bit - x64 # 64-bit -## uncomment the following lines to allow failures on nightly julia -## (tests will run but not make your overall status red) -#matrix: -# allow_failures: -# - julia_version: latest +# Uncomment the following lines to allow failures on nightly julia +# (tests will run but not make your overall status red) +matrix: + allow_failures: + - julia_version: nightly branches: only: diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000000..5201c4d1c2 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +custom: https://numfocus.org/donate-to-julia diff --git a/.github/workflows/TagBot.yml b/.github/workflows/TagBot.yml new file mode 100644 index 0000000000..d77d3a0c36 --- /dev/null +++ b/.github/workflows/TagBot.yml @@ -0,0 +1,11 @@ +name: TagBot +on: + schedule: + - cron: 0 * * * * +jobs: + TagBot: + runs-on: ubuntu-latest + steps: + - uses: JuliaRegistries/TagBot@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/linkcheck.yml b/.github/workflows/linkcheck.yml new file mode 100644 index 0000000000..302a419d3f --- /dev/null +++ b/.github/workflows/linkcheck.yml @@ -0,0 +1,20 @@ +name: Linkcheck + +on: + push: + branches: '*' + tags: '*' + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: julia-actions/setup-julia@latest + with: + version: '1.4' + - name: Install dependencies + run: julia --color=yes --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' + - name: Build and check documentation + run: julia --color=yes --project=docs/ docs/make.jl diff --git a/.gitignore b/.gitignore index 0b84a18baf..1b98cd498b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,11 +3,13 @@ *.jl.mem Manifest.toml +test/doctests/builds/ test/examples/builds/ test/formats/builds/ test/missingdocs/build/ test/nongit/build/ test/errors/build/ +test/workdir/builds/ docs/build/ docs/pdf/build/ docs/site/ diff --git a/.travis.yml b/.travis.yml index cd62c046c6..a386b4bd25 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,25 +5,40 @@ os: - osx julia: - - 0.7 - 1.0 + - 1.4 - nightly -notifications: - email: false +branches: + only: + - master + - /^release-.*$/ + - /^v\d+\.\d+(\.\d+)?(-\S*)?$/ after_success: - - julia --project=coverage/ -e 'using Pkg; Pkg.instantiate()' - - julia --project=coverage/ coverage/coverage.jl + - if [ -f test/quietly.log ]; then cat test/quietly.log; fi + - if [[ $TRAVIS_JULIA_VERSION = 1.1 ]] && [[ $TRAVIS_OS_NAME = linux ]]; then + julia --project=coverage/ -e 'using Pkg; Pkg.instantiate(); + using Coverage; Codecov.submit(Codecov.process_folder())'; + fi jobs: + allow_failures: + - julia: nightly include: + - stage: "Additional tests" + script: + - julia --project=test/themes -e 'using Pkg; Pkg.instantiate(); Pkg.develop(PackageSpec(path=pwd()))' + - julia --project=test/themes test/themes/themes.jl + name: "Themes" + - script: + - julia --project=test/examples -e 'using Pkg; Pkg.instantiate(); Pkg.develop(PackageSpec(path=pwd())); Pkg.add("DocumenterMarkdown")' + - julia --project=test/examples test/examples/tests_latex.jl + name: "PDF/LaTeX backend" - stage: "Documentation" - julia: 1.0 - os: linux script: - julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' - - julia --project=docs/ docs/make.jl + - julia --project=docs/ docs/make.jl skiplinks name: "HTML" after_success: skip - script: @@ -32,3 +47,6 @@ jobs: name: "PDF" after_success: skip services: docker + +notifications: + email: false diff --git a/CHANGELOG.md b/CHANGELOG.md index 198e45832d..c3c714208b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,171 @@ # Documenter.jl changelog +## Version `v0.25.0` + +* ![Bugfix][badge-bugfix] `Deps.pip` is again a closure and gets executed during the `deploydocs` call, not before it. ([#1240][github-1240]) + +## Version `v0.24.8` + +* ![Enhancement][badge-enhancement] Non-standard admonition categories are (again) applied to the admonition `
` elements in HTML output (as `is-category-$category`). ([#1279][github-1279], [#1280][github-1280]) + +## Version `v0.24.7` + +* ![Bugfix][badge-bugfix] Remove `only`, a new export from `Base` on Julia 1.4, from the JS search filter. ([#1264][github-1264]) + +* ![Bugfix][badge-bugfix] Fix errors in LaTeX builds due to bad escaping of certain characters. ([#1118][github-1118], [#1119][github-1119], [#1200][github-1200], [#1269][github-1269]) + +## Version `v0.24.6` + +* ![Enhancement][badge-enhancement] Reorganize some of the internal variables in Documenter's Sass sources, to make it easier to create custom themes on top of the Documenter base theme. ([#1258][github-1258]) + +## Version `v0.24.5` + +* ![Enhancement][badge-enhancement] ![Bugfix][badge-bugfix] Documenter now correctly emulates the "REPL softscope" (Julia 1.5) in REPL-style doctest blocks and `@repl` blocks. ([#1232][github-1232]) + +## Version `v0.24.4` + +* ![Enhancement][badge-enhancement] Change the inline code to less distracting black color in the HTML light theme. ([#1212][github-1212], [#1222][github-1222]) + +* ![Enhancement][badge-enhancement] Add the ability specify the `lang` attribute of the `html` tag in the HTML output, to better support documentation pages in other languages. By default Documenter now defaults to `lang="en"`. ([#1223][github-1223]) + +## Version `v0.24.3` + +* ![Bugfix][badge-bugfix] Fix a case where Documenter's deployment would fail due to git picking up the wrong ssh config file on non-standard systems. ([#1216][github-1216]) + +## Version `v0.24.2` + +* ![Maintenance][badge-maintenance] Improvements to logging in `deploydocs`. ([#1195][github-1195]) + +## Version `v0.24.1` + +* ![Bugfix][badge-bugfix] Fix a bad `mktempdir` incantation in `LaTeXWriter`. ([#1194][github-1194]) + +## Version `v0.24.0` + +* ![BREAKING][badge-breaking] Documenter no longer creates a symlink between the old `latest` url to specified `devurl`. ([#1151][github-1151]) + + **For upgrading:** Make sure that links to the latest documentation have been updated (e.g. the package README). + +* ![BREAKING][badge-breaking] The deprecated `makedocs` keywords (`html_prettyurls`, `html_disable_git`, `html_edit_branch`, `html_canonical`, `assets`, `analytics`) have been removed. ([#1107][github-1107]) + + **For upgrading:** Pass the corresponding values to the `HTML` constructor when settings the `format` keyword. + +* ![Feature][badge-feature] Documenter can now deploy preview documentation from pull requests (with head branch in the same repository, i.e. not from forks). This is enabled by passing `push_preview=true` to `deploydocs`. ([#1180][github-1180]) + +* ![Enhancement][badge-enhancement] The Documenter HTML front end now uses [KaTeX](https://katex.org/) as the default math rendering engine. ([#1097][github-1097]) + + **Possible breakage:** This may break the rendering of equations that use some more esoteric features that are only supported in MathJax. It is possible to switch back to MathJax by passing `mathengine = Documenter.MathJax()` to the `HTML` constructor in the `format` keyword. + +* ![Enhancement][badge-enhancement] The HTML front end generated by Documenter has been redesigned and now uses the [Bulma CSS framework](https://bulma.io/). ([#1043][github-1043]) + + **Possible breakage:** Packages overriding the default Documenter CSS file, relying on some external CSS or relying on Documenter's CSS working in a particular way will not build correct-looking sites. Custom themes should now be developed as Sass files and compiled together with the Documenter and Bulma Sass dependencies (under `assets/html/scss`). + +* ![Deprecation][badge-deprecation] ![Enhancement][badge-enhancement] The `edit_branch` keyword to `Documenter.HTML` has been deprecated in favor of the new `edit_link` keyword. As a new feature, passing `edit_link = nothing` disables the "Edit on GitHub" links altogether. ([#1173][github-1173]) + + **For upgrading:** If using `edit_branch = nothing`, use `edit_link = :commit` instead. If passing a `String` to `edit_branch`, pass that to `edit_link` instead. + +* ![Feature][badge-feature] Deployment is now more customizable and thus not as tied to Travis CI as before. ([#1147][github-1147], [#1171][github-1171], [#1180][github-1180]) + +* ![Feature][badge-feature] Documenter now has builtin support for deploying from GitHub Actions. Documenter will autodetect the running system, unless explicitly specified. ([#1144][github-1144], [#1152][github-1152]) + +* ![Feature][badge-feature] When using GitHub Actions Documenter will (try to) post a GitHub status with a link to the generated documentation. This is especially useful for pull request preview builds (see above). ([#1186][github-1186]) + +* ![Enhancement][badge-enhancement] The handling of JS and CSS assets is now more customizable: + + * The `asset` function can now be used to declare remote JS and CSS assets in the `assets` keyword. ([#1108][github-1108]) + * The `highlights` keyword to `HTML` can be used to declare additional languages that should be highlighted in code blocks. ([#1094][github-1094]) + * It is now possible to choose between MathJax and KaTeX as the math rendering engine with the `mathengine` keyword to `HTML` and to set their configuration in the `make.jl` script directly. ([#1097][github-1097]) + +* ![Enhancement][badge-enhancement] The JS and CSS dependencies of the front end have been updated to the latest versions. ([#1189][github-1189]) + +* ![Enhancement][badge-enhancement] Displaying of the site name at the top of the sidebar can now be disabled by passing `sidebar_sitename = false` to `HTML` in the `format` keyword. ([#1089][github-1089]) + +* ![Enhancement][badge-enhancement] For deployments that have Google Analytics enabled, the URL fragment (i.e. the in-page `#` target) also stored in analytics. ([#1121][github-1121]) + +* ![Enhancement][badge-enhancement] Page titles are now boosted in the search, yielding better search results. ([#631][github-631], [#1112][github-1112], [#1113][github-1113]) + +* ![Enhancement][badge-enhancement] In the PDF/LaTeX output, images that are wider than the text are now being scaled down to text width automatically. The PDF builds now require the [adjustbox](https://ctan.org/pkg/adjustbox) LaTeX package to be available. ([#1137][github-1137]) + +* ![Enhancement][badge-enhancement] If the TeX compilation fails for the PDF/LaTeX output, `makedocs` now throws an exception. ([#1166][github-1166]) + +* ![Bugfix][badge-bugfix] `LaTeXWriter` now outputs valid LaTeX if an `@contents` block is nested by more than two levels, or if `@contents` or `@index` blocks do not contain any items. ([#1166][github-1166]) + +## Version `v0.23.4` + +* ![Bugfix][badge-bugfix] The `include` and `eval` functions are also available in `@setup` blocks now. ([#1148][github-1148], [#1153][github-1153]) + +## Version `v0.23.3` + +* ![Bugfix][badge-bugfix] Fix file permission error when `Pkg.test`ing Documenter. ([#1115][github-1115]) + +## Version `v0.23.2` + +* ![Bugfix][badge-bugfix] Empty Markdown headings no longer cause Documenter to crash. ([#1081][github-1081], [#1082][github-1082]) + +## Version `v0.23.1` + +* ![Bugfix][badge-bugfix] Documenter no longer throws an error if the provided `EditURL` argument is missing. ([#1076][github-1076], [#1077][github-1077]) + +* ![Bugfix][badge-bugfix] Non-standard Markdown AST nodes no longer cause Documenter to exit with a missing method error in doctesting and HTML output. Documenter falls back to `repr()` for such nodes. ([#1073][github-1073], [#1075][github-1075]) + +* ![Bugfix][badge-bugfix] Docstrings parsed into nested `Markdown.MD` objects are now unwrapped correctly and do not cause Documenter to crash with a missing method error anymore. The user can run into that when reusing docstrings with the `@doc @doc(foo) function bar end` pattern. ([#1075][github-1075]) + +## Version `v0.23.0` + +* Documenter v0.23 requires Julia v1.0. ([#1015][github-1015]) + +* ![BREAKING][badge-breaking] `DocTestSetup`s that are defined in `@meta` blocks no longer apply to doctests that are in docstrings. ([#774][github-774]) + + - Specifically, the pattern where `@docs` or `@autodocs` blocks were surrounded by `@meta` blocks, setting up a shared `DocTestSetup` for many docstrings, no longer works. + + - Documenter now exports the `DocMeta` module, which provides an alternative way to add `DocTestSetup` to docstrings. + + **For upgrading:** Use `DocMeta.setdocmeta!` in `make.jl` to set up a `DocTestSetup` that applies to all the docstrings in a particular module instead and, if applicable, remove the now redundant `@meta` blocks. See the ["Setup code" section under "Doctesting"](https://juliadocs.github.io/Documenter.jl/v0.23.0/man/doctests/#Setup-Code-1) in the manual for more information. + +* ![Feature][badge-feature] `makedocs` now accepts the `doctest = :only` keyword, which allows doctests to be run while most other build steps, such as rendering, are skipped. This makes it more feasible to run doctests as part of the test suite (see the manual for more information). ([#198][github-198], [#535][github-535], [#756][github-756], [#774][github-774]) + +* ![Feature][badge-feature] Documenter now exports the `doctest` function, which verifies the doctests in all the docstrings of a given module. This can be used to verify docstring doctests as part of test suite, or to fix doctests right in the REPL. ([#198][github-198], [#535][github-535], [#756][github-756], [#774][github-774], [#1054][github-1054]) + +* ![Feature][badge-feature] `makedocs` now accepts the `expandfirst` argument, which allows specifying a set of pages that should be evaluated before others. ([#1027][github-1027], [#1029][github-1029]) + +* ![Enhancement][badge-enhancement] The evaluation order of pages is now fixed (unless customized with `expandfirst`). The pages are evaluated in the alphabetical order of their file paths. ([#1027][github-1027], [#1029][github-1029]) + +* ![Enhancement][badge-enhancement] The logo image in the HTML output will now always point to the first page in the navigation menu (as opposed to `index.html`, which may or may not exist). When using pretty URLs, the `index.html` part now omitted from the logo link URL. ([#1005][github-1005]) + +* ![Enhancement][badge-enhancement] Minor changes to how doctesting errors are printed. ([#1028][github-1028]) + +* ![Enhancement][badge-enhancement] Videos can now be included in the HTML output using the image syntax (`![]()`) if the file extension matches a known format (`.webm`, `.mp4`, `.ogg`, `.ogm`, `.ogv`, `.avi`). ([#1034][github-1034]) + +* ![Enhancement][badge-enhancement] The PDF output now uses the DejaVu Sans and DejaVu Sans Mono fonts to provide better Unicode coverage. ([#803][github-803], [#1066][github-1066]) + +* ![Bugfix][badge-bugfix] The HTML output now outputs HTML files for pages that are not referenced in the `pages` keyword too (Documenter finds them according to their extension). But they do exists outside of the standard navigation hierarchy (as defined by `pages`). This fixes a bug where these pages could still be referenced by `@ref` links and `@contents` blocks, but in the HTML output, the links ended up being broken. ([#1031][github-1031], [#1047][github-1047]) + +* ![Bugfix][badge-bugfix] `makedocs` now throws an error when the format objects (`Documenter.HTML`, `LaTeX`, `Markdown`) get passed positionally. The format types are no longer subtypes of `Documenter.Plugin`. ([#1046][github-1046], [#1061][github-1061]) + +* ![Bugfix][badge-bugfix] Doctesting now also handles doctests that contain invalid syntax and throw parsing errors. ([#487][github-487], [#1062][github-1062]) + +* ![Bugfix][badge-bugfix] Stacktraces in doctests that throw an error are now filtered more thoroughly, fixing an issue where too much of the stacktrace was included when `doctest` or `makedocs` was called from a more complicated context. ([#1062][github-1062]) + +* ![Experimental][badge-experimental] ![Feature][badge-feature] The current working directory when evaluating `@repl` and `@example` blocks can now be set to a fixed directory by passing the `workdir` keyword to `makedocs`. _The new keyword and its behaviour are experimental and not part of the public API._ ([#1013][github-1013], [#1025][github-1025]) + +## Version `v0.22.6` + +* ![Maintenance][badge-maintenance] Add DocStringExtensions 0.8 as an allowed dependency version. ([#1071][github-1071]) + +## Version `v0.22.5` + +* ![Maintenance][badge-maintenance] Fix a test dependency problem revealed by a bugfix in Julia / Pkg. ([#1037][github-1037]) + ## Version `v0.22.4` * ![Bugfix][badge-bugfix] Documenter no longer crashes if the build includes doctests from docstrings that are defined in files that do not exist on the file system (e.g. if a Julia Base docstring is included when running a non-source Julia build). ([#1002][github-1002]) * ![Bugfix][badge-bugfix] URLs for files in the repository are now generated correctly when the repository is used as a Git submodule in another repository. ([#1000][github-1000], [#1004][github-1004]) +* ![Bugfix][badge-bugfix] When checking for omitted docstrings, Documenter no longer gives "`Package.Package` missing" type false positives. ([#1009][github-1009]) + +* ![Bugfix][badge-bugfix] `makedocs` again exits with an error if `strict=true` and there is a doctest failure. ([#1003][github-1003], [#1014][github-1014]) + ## Version `v0.22.3` * ![Bugfix][badge-bugfix] Fixed filepaths for images included in the .tex file for PDF output on Windows. ([#999][github-999]) @@ -249,16 +409,23 @@ * ![Bugfix][badge-bugfix] At-docs blocks no longer give an error when containing empty lines. ([#823][github-823], [#824][github-824]) +[github-198]: https://github.com/JuliaDocs/Documenter.jl/issues/198 +[github-487]: https://github.com/JuliaDocs/Documenter.jl/issues/487 [github-511]: https://github.com/JuliaDocs/Documenter.jl/pull/511 +[github-535]: https://github.com/JuliaDocs/Documenter.jl/issues/535 +[github-631]: https://github.com/JuliaDocs/Documenter.jl/issues/631 [github-697]: https://github.com/JuliaDocs/Documenter.jl/pull/697 [github-706]: https://github.com/JuliaDocs/Documenter.jl/pull/706 +[github-756]: https://github.com/JuliaDocs/Documenter.jl/issues/756 [github-764]: https://github.com/JuliaDocs/Documenter.jl/pull/764 +[github-774]: https://github.com/JuliaDocs/Documenter.jl/pull/774 [github-789]: https://github.com/JuliaDocs/Documenter.jl/pull/789 [github-792]: https://github.com/JuliaDocs/Documenter.jl/pull/792 [github-793]: https://github.com/JuliaDocs/Documenter.jl/pull/793 [github-794]: https://github.com/JuliaDocs/Documenter.jl/pull/794 [github-795]: https://github.com/JuliaDocs/Documenter.jl/pull/795 [github-802]: https://github.com/JuliaDocs/Documenter.jl/pull/802 +[github-803]: https://github.com/JuliaDocs/Documenter.jl/issues/803 [github-804]: https://github.com/JuliaDocs/Documenter.jl/pull/804 [github-813]: https://github.com/JuliaDocs/Documenter.jl/pull/813 [github-816]: https://github.com/JuliaDocs/Documenter.jl/pull/816 @@ -305,9 +472,74 @@ [github-995]: https://github.com/JuliaDocs/Documenter.jl/pull/995 [github-996]: https://github.com/JuliaDocs/Documenter.jl/pull/996 [github-999]: https://github.com/JuliaDocs/Documenter.jl/pull/999 +[github-1005]: https://github.com/JuliaDocs/Documenter.jl/pull/1005 [github-1000]: https://github.com/JuliaDocs/Documenter.jl/issues/1000 [github-1002]: https://github.com/JuliaDocs/Documenter.jl/pull/1002 +[github-1003]: https://github.com/JuliaDocs/Documenter.jl/issues/1003 [github-1004]: https://github.com/JuliaDocs/Documenter.jl/pull/1004 +[github-1009]: https://github.com/JuliaDocs/Documenter.jl/pull/1009 +[github-1013]: https://github.com/JuliaDocs/Documenter.jl/issues/1013 +[github-1014]: https://github.com/JuliaDocs/Documenter.jl/pull/1014 +[github-1015]: https://github.com/JuliaDocs/Documenter.jl/pull/1015 +[github-1025]: https://github.com/JuliaDocs/Documenter.jl/pull/1025 +[github-1027]: https://github.com/JuliaDocs/Documenter.jl/issues/1027 +[github-1028]: https://github.com/JuliaDocs/Documenter.jl/pull/1028 +[github-1029]: https://github.com/JuliaDocs/Documenter.jl/pull/1029 +[github-1031]: https://github.com/JuliaDocs/Documenter.jl/issues/1031 +[github-1034]: https://github.com/JuliaDocs/Documenter.jl/pull/1034 +[github-1037]: https://github.com/JuliaDocs/Documenter.jl/pull/1037 +[github-1043]: https://github.com/JuliaDocs/Documenter.jl/pull/1043 +[github-1046]: https://github.com/JuliaDocs/Documenter.jl/issues/1046 +[github-1047]: https://github.com/JuliaDocs/Documenter.jl/pull/1047 +[github-1054]: https://github.com/JuliaDocs/Documenter.jl/pull/1054 +[github-1061]: https://github.com/JuliaDocs/Documenter.jl/pull/1061 +[github-1062]: https://github.com/JuliaDocs/Documenter.jl/pull/1062 +[github-1066]: https://github.com/JuliaDocs/Documenter.jl/pull/1066 +[github-1071]: https://github.com/JuliaDocs/Documenter.jl/pull/1071 +[github-1073]: https://github.com/JuliaDocs/Documenter.jl/issues/1073 +[github-1075]: https://github.com/JuliaDocs/Documenter.jl/pull/1075 +[github-1076]: https://github.com/JuliaDocs/Documenter.jl/issues/1076 +[github-1077]: https://github.com/JuliaDocs/Documenter.jl/pull/1077 +[github-1081]: https://github.com/JuliaDocs/Documenter.jl/issues/1081 +[github-1082]: https://github.com/JuliaDocs/Documenter.jl/pull/1082 +[github-1089]: https://github.com/JuliaDocs/Documenter.jl/pull/1089 +[github-1094]: https://github.com/JuliaDocs/Documenter.jl/pull/1094 +[github-1097]: https://github.com/JuliaDocs/Documenter.jl/pull/1097 +[github-1107]: https://github.com/JuliaDocs/Documenter.jl/pull/1107 +[github-1108]: https://github.com/JuliaDocs/Documenter.jl/pull/1108 +[github-1112]: https://github.com/JuliaDocs/Documenter.jl/pull/1112 +[github-1113]: https://github.com/JuliaDocs/Documenter.jl/pull/1113 +[github-1115]: https://github.com/JuliaDocs/Documenter.jl/pull/1115 +[github-1118]: https://github.com/JuliaDocs/Documenter.jl/issues/1118 +[github-1119]: https://github.com/JuliaDocs/Documenter.jl/pull/1119 +[github-1121]: https://github.com/JuliaDocs/Documenter.jl/pull/1121 +[github-1137]: https://github.com/JuliaDocs/Documenter.jl/pull/1137 +[github-1144]: https://github.com/JuliaDocs/Documenter.jl/pull/1144 +[github-1147]: https://github.com/JuliaDocs/Documenter.jl/pull/1147 +[github-1148]: https://github.com/JuliaDocs/Documenter.jl/issues/1148 +[github-1151]: https://github.com/JuliaDocs/Documenter.jl/pull/1151 +[github-1152]: https://github.com/JuliaDocs/Documenter.jl/pull/1152 +[github-1153]: https://github.com/JuliaDocs/Documenter.jl/pull/1153 +[github-1166]: https://github.com/JuliaDocs/Documenter.jl/pull/1166 +[github-1171]: https://github.com/JuliaDocs/Documenter.jl/pull/1171 +[github-1173]: https://github.com/JuliaDocs/Documenter.jl/pull/1173 +[github-1180]: https://github.com/JuliaDocs/Documenter.jl/pull/1180 +[github-1186]: https://github.com/JuliaDocs/Documenter.jl/pull/1186 +[github-1189]: https://github.com/JuliaDocs/Documenter.jl/pull/1189 +[github-1194]: https://github.com/JuliaDocs/Documenter.jl/pull/1194 +[github-1195]: https://github.com/JuliaDocs/Documenter.jl/pull/1195 +[github-1200]: https://github.com/JuliaDocs/Documenter.jl/issues/1200 +[github-1212]: https://github.com/JuliaDocs/Documenter.jl/issues/1212 +[github-1216]: https://github.com/JuliaDocs/Documenter.jl/pull/1216 +[github-1222]: https://github.com/JuliaDocs/Documenter.jl/pull/1222 +[github-1223]: https://github.com/JuliaDocs/Documenter.jl/pull/1223 +[github-1232]: https://github.com/JuliaDocs/Documenter.jl/pull/1232 +[github-1240]: https://github.com/JuliaDocs/Documenter.jl/pull/1240 +[github-1258]: https://github.com/JuliaDocs/Documenter.jl/pull/1258 +[github-1264]: https://github.com/JuliaDocs/Documenter.jl/pull/1264 +[github-1269]: https://github.com/JuliaDocs/Documenter.jl/pull/1269 +[github-1279]: https://github.com/JuliaDocs/Documenter.jl/issues/1279 +[github-1280]: https://github.com/JuliaDocs/Documenter.jl/pull/1280 [documenterlatex]: https://github.com/JuliaDocs/DocumenterLaTeX.jl [documentermarkdown]: https://github.com/JuliaDocs/DocumenterMarkdown.jl @@ -320,6 +552,8 @@ [badge-enhancement]: https://img.shields.io/badge/enhancement-blue.svg [badge-bugfix]: https://img.shields.io/badge/bugfix-purple.svg [badge-security]: https://img.shields.io/badge/security-black.svg +[badge-experimental]: https://img.shields.io/badge/experimental-lightgrey.svg +[badge-maintenance]: https://img.shields.io/badge/maintenance-gray.svg diff --git a/Project.toml b/Project.toml index 430973ec48..420c67c9b6 100644 --- a/Project.toml +++ b/Project.toml @@ -1,9 +1,10 @@ name = "Documenter" uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4" -version = "0.22.3" +version = "0.24.7+0.25-DEV" [deps] Base64 = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" +Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" @@ -11,15 +12,18 @@ LibGit2 = "76f85450-5226-5b5a-8eaa-529ad045b433" Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a" REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Unicode = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" [compat] -julia = "0.7, 1" -DocStringExtensions = "0.4, 0.5, 0.6, 0.7" -JSON = "0.19, 0.20" +DocStringExtensions = "0.4, 0.5, 0.6, 0.7, 0.8" +JSON = "0.19, 0.20, 0.21" +julia = "1" [extras] -Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +DocumenterMarkdown = "997ab1e6-3595-5248-9280-8efb232c3433" +DocumenterTools = "35a29f4d-8980-5a13-9543-d66fff28ecb8" +Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [targets] -test = ["Test"] +test = ["Random", "DocumenterMarkdown", "DocumenterTools"] diff --git a/README.md b/README.md index 72a2d186a8..bcb3d81189 100644 --- a/README.md +++ b/README.md @@ -30,9 +30,9 @@ julia> import Pkg; Pkg.add("Documenter") ## Project Status -The package is tested against Julia `0.7`, `1.0` and the nightly builds of the Julia `master` branch on Linux, macOS, and Windows. +The package is tested against, and being developed for, Julia `1.0` and above on Linux, macOS, and Windows. -Support for Julia `0.4`, `0.5` and `0.6` has been dropped in the latest version, but older versions of Documenter may still work (Documenter versions `0.8`, `0.11` and `0.19`, respectively). +Support for Julia `0.4`, `0.5`, `0.6` and `0.7` has been dropped in the latest version, but older versions of Documenter may still work (Documenter versions `0.8`, `0.11`, `0.19`, and `0.22` respectively). ## Questions and Contributions @@ -40,12 +40,12 @@ Usage questions can be posted on the [Julia Discourse forum][discourse-tag-url] Contributions are very welcome, as are feature requests and suggestions. Please open an [issue][issues-url] if you encounter any problems. The [contributing page][contrib-url] has a few guidelines that should be followed when opening pull requests and contributing code. -[contrib-url]: https://juliadocs.github.io/Documenter.jl/latest/man/contributing/ +[contrib-url]: https://juliadocs.github.io/Documenter.jl/dev/contributing/ [discourse-tag-url]: https://discourse.julialang.org/tags/documenter [gitter-url]: https://gitter.im/juliadocs/users [docs-dev-img]: https://img.shields.io/badge/docs-dev-blue.svg -[docs-dev-url]: https://juliadocs.github.io/Documenter.jl/latest +[docs-dev-url]: https://juliadocs.github.io/Documenter.jl/dev [docs-stable-img]: https://img.shields.io/badge/docs-stable-blue.svg [docs-stable-url]: https://juliadocs.github.io/Documenter.jl/stable diff --git a/assets/html/README.md b/assets/html/README.md new file mode 100644 index 0000000000..1613b7c0bb --- /dev/null +++ b/assets/html/README.md @@ -0,0 +1,11 @@ +# Non-Julia Assets for `HTMLWriter` + +Themes / CSS: + +* `scss/`: contains the SCSS and Sass files + * `scss/bulma/`: Sass sources of the [Bulma CSS framework](https://bulma.io/), v0.7.5 + (MIT license, [GitHub](https://github.com/jgthms/bulma)) + * `darkly/`: [Darkly Bulmaswatch theme](https://jenil.github.io/bulmaswatch/darkly/) (MIT license, [GitHub](https://github.com/jenil/bulmaswatch/)) + * `documenter/`: Documenter-specific overrides, components etc. + * `documenter.scss` and `darkly.scss`: Documenter default themes +* `themes/`: contains the compiled `.css` files of the default themes diff --git a/assets/html/arrow.svg b/assets/html/arrow.svg deleted file mode 100644 index ee2798d3fb..0000000000 --- a/assets/html/arrow.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/assets/html/documenter.css b/assets/html/documenter.css deleted file mode 100644 index 7cd26628de..0000000000 --- a/assets/html/documenter.css +++ /dev/null @@ -1,601 +0,0 @@ -/* - * The default CSS style for Documenter.jl generated sites - * - * Heavily inspired by the Julia Sphinx theme - * https://github.com/JuliaLang/JuliaDoc - * which extends the sphinx_rtd_theme - * https://github.com/snide/sphinx_rtd_theme - * - * Part of Documenter.jl - * https://github.com/JuliaDocs/Documenter.jl - * - * License: MIT - */ - -/* fonts */ -body, input { - font-family: 'Lato', 'Helvetica Neue', Arial, sans-serif; - font-size: 16px; - color: #222; - text-rendering: optimizeLegibility; -} - -pre, code, kbd { - font-family: 'Roboto Mono', Monaco, courier, monospace; - font-size: 0.90em; -} - -pre code { - font-size: 1em; -} - -a { - color: #2980b9; - text-decoration: none; -} - -a:hover { - color: #3091d1; -} - -a:visited { - color: #9b59b6; -} - -body { - line-height: 1.5; -} - -h1 { - font-size: 1.75em; -} - -/* Unless the

the is very first thing on the page (i.e. the second element - * in the
, * after the
, we add some additional styling to it - * to make it stand out a bit more. This way we get a reasonable fallback if CSS3 - * selectors are not supported in the browser. - */ -article > h1:not(:nth-child(2)) { - margin: 2.5em 0 0; - padding-bottom: 0.30em; - border-bottom: 1px solid #e5e5e5; -} -h2 { - font-size: 1.50em; - margin: 2.3em 0 0; - padding-bottom: 0.25em; - border-bottom: 1px solid #e5e5e5; -} -h3 { - font-size: 1.25em; - margin: 2.0em 0 0; -} -h4 { font-size: 1.15em; } -h5 { font-size: 1.10em; } -h6 { font-size: 1em; } - -h4, h5, h6 { - margin-top: 1.5em; - margin-bottom: 1em; -} - -img { - max-width: 100%; -} - -table { - border-collapse: collapse; - margin: 1em 0; -} - -th, td { - border: 1px solid #e1e4e5; - padding: 0.5em 1em; -} - -th { - border-bottom-width: 2px; -} - -tr:nth-child(even) { - background-color: #f3f6f6; -} - -hr { - border: 0; - border-top: 1px solid #e5e5e5; -} - -/* Inline code and code blocks */ - -code { - padding: 0.1em; - background-color: rgba(0,0,0,.04); - border-radius: 3px; -} - -pre { - background-color: #f5f5f5; - border: 1px solid #dddddd; - border-radius: 3px; - padding: 0.5em; - overflow: auto; -} - -pre code { - padding: 0; - background-color: initial; -} - -kbd { - font-size: 0.70em; - display: inline-block; - padding: 0.1em 0.5em 0.4em 0.5em; - line-height: 1.0em; - color: #444d56; - vertical-align: middle; - background-color: #fafbfc; - border: solid 1px #c6cbd1; - border-bottom-color: #959da5; - border-radius: 3px; - box-shadow: inset 0 -1px 0 #959da5; -} - -/* Headers in admonitions and docstrings */ -.admonition h1, -article section.docstring h1 { - font-size: 1.25em; -} - -.admonition h2, -article section.docstring h2 { - font-size: 1.10em; -} - -.admonition h3, -.admonition h4, -.admonition h5, -.admonition h6, -article section.docstring h3, -article section.docstring h4, -article section.docstring h5, -article section.docstring h6 { - font-size: 1em; -} - -/* Navigation */ -nav.toc { - position: fixed; - top: 0; - left: 0; - bottom: 0; - width: 20em; - display: flex; - flex-flow: column nowrap; - overflow-y: auto; - padding: 1em 0 0 0; - background-color: #fcfcfc; - box-shadow: inset -14px 0px 5px -12px rgb(210,210,210); -} - -nav.toc .logo { - margin: 0 auto; - display: block; - max-height: 6em; - max-width: 18em; -} - -nav.toc h1 { - text-align: center; - margin-top: .57em; - margin-bottom: 0; -} - -nav.toc select { - display: block; - height: 2em; - flex-shrink: 0; - padding: 0 1.6em 0 1em; - min-width: 7em; - max-width: 90%; - max-width: calc(100% - 5em); - margin: 0 auto; - font-size: .83em; - border: 1px solid #c9c9c9; - border-radius: 1em; - - /* TODO: doesn't seem to be centered on Safari */ - text-align: center; - text-align-last: center; - - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; - - background: white url("arrow.svg"); - background-size: 1.155em; - background-repeat: no-repeat; - background-position: right; -} - -nav.toc select:hover { - border: 1px solid #a0a0a0; -} - -nav.toc select option { - text-align: center; -} - -nav.toc input { - display: block; - height: 2em; - width: 90%; - width: calc(100% - 5em); - margin: 1.2em auto; - padding: 0 1em; - border: 1px solid #c9c9c9; - border-radius: 1em; - font-size: .83em; -} - -nav.toc > ul * { - margin: 0; -} - -nav.toc > ul { - min-height: 2em; - overflow-y: auto; - margin: 0; -} - -nav.toc > ul > li:last-child { - padding-bottom: 1em; -} - -nav.toc ul { - color: #404040; - padding: 0; - list-style: none; -} - -nav.toc ul .toctext { - color: inherit; - display: block; -} - -nav.toc ul a:hover { - color: #fcfcfc; - background-color: #4e4a4a; -} - -nav.toc ul.internal a { - color: inherit; - display: block; -} - -nav.toc ul.internal a:hover { - background-color: #d6d6d6; -} - -nav.toc ul.internal { - background-color: #e3e3e3; - box-shadow: inset -14px 0px 5px -12px rgb(210,210,210); - list-style: none; -} - -nav.toc ul.internal li.toplevel { - border-top: 1px solid #909090; - font-weight: bold; -} - -nav.toc ul.internal li.toplevel:first-child { - border-top: none; -} - -nav.toc .toctext { - padding-top: 0.3em; - padding-bottom: 0.3em; - padding-right: 1em; -} - -nav.toc ul .toctext { - padding-left: 1em; -} - -nav.toc ul ul .toctext { - padding-left: 2em; -} - -nav.toc ul ul ul .toctext { - padding-left: 3em; -} - -nav.toc li.current > .toctext { - border-top: 1px solid #c9c9c9; - border-bottom: 1px solid #c9c9c9; - color: #404040; - font-weight: bold; - background-color: white; -} - -nav.toc ul::-webkit-scrollbar { - width: .4em; - background: none; -} - -nav.toc ul::-webkit-scrollbar-thumb { - border-radius: 5px; - background: #c9c9c9; -} - -nav.toc ul::-webkit-scrollbar-thumb:hover { - border-radius: 5px; - background: #aaaaaa; -} - -article { - margin-left: 20em; - min-width: 20em; - max-width: 48em; - padding: 2em; -} - -article > header {} - -article > header div#topbar { - display: none; -} - -article > header nav ul { - display: inline-block; - list-style: none; - margin: 0; - padding: 0; -} - -article > header nav li { - display: inline-block; - padding-right: 0.2em; -} - -article > header nav li:before { - content: "»"; - padding-right: 0.2em; -} - -article > header .edit-page { - float: right; -} - -article > footer {} - -article > footer a.prev { - float: left; -} -article > footer a.next { - float: right; -} - -article > footer a .direction:after { - content: ": "; -} - -article hr { - margin: 1em 0; -} - -article section.docstring { - border: 1px solid #ddd; - margin: 0.5em 0; - padding: 0.5em; - border-radius: 3px; -} - -article section.docstring .docstring-header { - margin-bottom: 1em; -} - -article section.docstring .docstring-binding { - color: #333; - font-weight: bold; -} - -article section.docstring .docstring-category { - font-style: italic; -} - -article section.docstring a.source-link { - display: block; - font-weight: bold; -} - -.nav-anchor, -.nav-anchor:hover, -.nav-anchor:visited { - color: #333; -} - -/* - * Admonitions - * - * Colors (title, body) - * warning: #f0b37e #ffedcc (orange) - * note: #6ab0de #e7f2fa (blue) - * tip: #1abc9c #dbfaf4 (green) -*/ -.admonition { - border-radius: 3px; - background-color: #eeeeee; - margin: 1em 0; -} - -.admonition-title { - border-radius: 3px 3px 0 0; - background-color: #9b9b9b; - padding: 0.15em 0.5em; -} - -.admonition-text { - padding: 0.5em; -} - -.admonition-text > :first-child { - margin-top: 0; -} - -.admonition-text > :last-child { - margin-bottom: 0; -} - -.admonition > .admonition-title:before { - font-family: "FontAwesome"; - margin-right: 5px; - content: "\f06a"; -} - -.admonition.warning > .admonition-title { - background-color: #f0b37e; -} - -.admonition.warning { - background-color: #ffedcc; -} - -.admonition.note > .admonition-title { - background-color: #6ab0de; -} - -.admonition.note { - background-color: #e7f2fa; -} - -.admonition.tip > .admonition-title { - background-color: #1abc9c; -} - -.admonition.tip { - background-color: #dbfaf4; -} - - -/* footnotes */ -.footnote { - padding-left: 0.8em; - border-left: 2px solid #ccc; -} - -/* Search page */ -#search-results .category { - font-size: smaller; -} - -/* Overriding the block style of highligh.js. - * We have to override the padding and the background-color, since we style this - * part ourselves. Specifically, we style the
 surrounding the , while
- * highlight.js applies the .hljs style directly to the  tag.
- */
-.hljs {
-    background-color: transparent;
-    padding: 0;
-}
-
-@media only screen and (max-width: 768px) {
-    nav.toc {
-        position: fixed;
-        width: 16em;
-        left: -16em;
-        -webkit-overflow-scrolling: touch;
-        -webkit-transition-property: left; /* Safari */
-        -webkit-transition-duration: 0.3s; /* Safari */
-        transition-property: left;
-        transition-duration: 0.3s;
-        -webkit-transition-timing-function: ease-out; /* Safari */
-        transition-timing-function: ease-out;
-        z-index: 2;
-        box-shadow: 5px 0px 5px 0px rgb(210,210,210);
-    }
-
-    nav.toc.show {
-        left: 0;
-    }
-
-    article {
-        margin-left: 0;
-        padding: 3em 0.9em 0 0.9em; /* top right bottom left */
-        overflow-wrap: break-word;
-    }
-
-    article > header {
-        position: fixed;
-        left: 0;
-        z-index: 1;
-    }
-
-    article > header nav, hr {
-        display: none;
-    }
-
-    article > header div#topbar {
-        display: block; /* is mobile */
-        position: fixed;
-        width: 100%;
-        height: 1.5em;
-        padding-top: 1em;
-        padding-bottom: 1em;
-        background-color: #fcfcfc;
-        box-shadow: 0 1px 3px rgba(0,0,0,.26);
-        top: 0;
-        -webkit-transition-property: top; /* Safari */
-        -webkit-transition-duration: 0.3s; /* Safari */
-        transition-property: top;
-        transition-duration: 0.3s;
-    }
-
-    article > header div#topbar.headroom--unpinned.headroom--not-top.headroom--not-bottom {
-        top: -4em;
-        -webkit-transition-property: top; /* Safari */
-        -webkit-transition-duration: 0.7s; /* Safari */
-        transition-property: top;
-        transition-duration: 0.7s;
-    }
-
-    article > header div#topbar span {
-        width: 80%;
-        height: 1.5em;
-        margin-top: -0.1em;
-        margin-left: 0.9em;
-        font-size: 1.2em;
-        overflow: hidden;
-    }
-
-    article > header div#topbar a.fa-bars {
-        float: right;
-        padding: 0.6em;
-        margin-top: -0.6em;
-        margin-right: 0.3em;
-        font-size: 1.5em;
-    }
-
-    article > header div#topbar a.fa-bars:visited {
-        color: #3091d1;
-    }
-
-    article table {
-        overflow-x: auto;
-        display: block;
-    }
-
-    article div.MathJax_Display {
-        overflow: scroll;
-    }
-
-    article span.MathJax {
-        overflow: hidden;
-    }
-}
-
-@media only screen and (max-width: 320px) {
-    body {
-        font-size: 15px;
-    }
-}
diff --git a/assets/html/documenter.js b/assets/html/documenter.js
deleted file mode 100644
index 761ae29456..0000000000
--- a/assets/html/documenter.js
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Part of Documenter.jl
- *     https://github.com/JuliaDocs/Documenter.jl
- *
- * License: MIT
- */
-
-requirejs.config({
-    paths: {
-        'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min',
-        'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.0/jquery-ui.min',
-        'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.9.3/headroom.min',
-        'mathjax': 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML',
-        'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min',
-        'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/julia.min',
-        'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/julia-repl.min',
-    },
-    shim: {
-        'mathjax' : {
-            exports: "MathJax"
-        },
-        'highlight-julia': ['highlight'],
-        'highlight-julia-repl': ['highlight'],
-    }
-});
-
-// Load MathJax
-require(['mathjax'], function(MathJax) {
-    MathJax.Hub.Config({
-      "tex2jax": {
-        inlineMath: [['$','$'], ['\\(','\\)']],
-        processEscapes: true
-      }
-    });
-    MathJax.Hub.Config({
-      config: ["MMLorHTML.js"],
-      jax: [
-        "input/TeX",
-        "output/HTML-CSS",
-        "output/NativeMML"
-      ],
-      extensions: [
-        "MathMenu.js",
-        "MathZoom.js",
-        "TeX/AMSmath.js",
-        "TeX/AMSsymbols.js",
-        "TeX/autobold.js",
-        "TeX/autoload-all.js"
-      ]
-    });
-    MathJax.Hub.Config({
-      TeX: { equationNumbers: { autoNumber: "AMS" } }
-    });
-})
-
-require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($, hljs) {
-    $(document).ready(function() {
-        hljs.initHighlighting();
-    })
-
-})
-
-// update the version selector with info from the siteinfo.js and ../versions.js files
-require(['jquery'], function($) {
-    $(document).ready(function() {
-        var version_selector = $("#version-selector");
-
-        // add the current version to the selector based on siteinfo.js, but only if the selector is empty
-        if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) {
-            var option = $("");
-            version_selector.append(option);
-        }
-
-        if (typeof DOC_VERSIONS !== 'undefined') {
-            var existing_versions = $('#version-selector > option');
-            var existing_versions_texts = existing_versions.map(function(i,x){return x.text});
-            DOC_VERSIONS.forEach(function(each) {
-                var version_url = documenterBaseURL + "/../" + each;
-                var existing_id = $.inArray(each, existing_versions_texts);
-                // if not already in the version selector, add it as a new option,
-                // otherwise update the old option with the URL and enable it
-                if (existing_id == -1) {
-                    var option = $("");
-                    version_selector.append(option);
-                } else {
-                    var option = existing_versions[existing_id];
-                    option.value = version_url;
-                    option.disabled = false;
-                }
-            });
-        }
-
-        // only show the version selector if the selector has been populated
-        if ($('#version-selector > option').length > 0) {
-            version_selector.css("visibility", "visible");
-        }
-
-        // Scroll the navigation bar to the currently selected menu item
-        $("nav.toc > ul").get(0).scrollTop = $(".current").get(0).offsetTop - $("nav.toc > ul").get(0).offsetTop;
-    })
-
-})
-
-// mobile
-require(['jquery', 'headroom'], function($, Headroom) {
-    $(document).ready(function() {
-        var navtoc = $("nav.toc");
-        $("nav.toc li.current a.toctext").click(function() {
-            navtoc.toggleClass('show');
-        });
-        $("article > header div#topbar a.fa-bars").click(function(ev) {
-            ev.preventDefault();
-            navtoc.toggleClass('show');
-            if (navtoc.hasClass('show')) {
-                var title = $("article > header div#topbar span").text();
-                $("nav.toc ul li a:contains('" + title + "')").focus();
-            }
-        });
-        $("article#docs").bind('click', function(ev) {
-            if ($(ev.target).is('div#topbar a.fa-bars')) {
-                return;
-            }
-            if (navtoc.hasClass('show')) {
-                navtoc.removeClass('show');
-            }
-        });
-        if ($("article > header div#topbar").css('display') == 'block') {
-            var headroom = new Headroom(document.querySelector("article > header div#topbar"), {"tolerance": {"up": 10, "down": 10}});
-            headroom.init();
-        }
-    })
-})
diff --git a/assets/html/js/headroom.js b/assets/html/js/headroom.js
new file mode 100644
index 0000000000..6800c7972b
--- /dev/null
+++ b/assets/html/js/headroom.js
@@ -0,0 +1,11 @@
+// libraries: jquery, headroom, headroom-jquery
+// arguments: $, Headroom
+
+// Manages the top navigation bar (hides it when the user starts scrolling down on the
+// mobile).
+window.Headroom = Headroom; // work around buggy module loading?
+$(document).ready(function() {
+  $('#documenter .docs-navbar').headroom({
+    "tolerance": {"up": 10, "down": 10},
+  });
+})
diff --git a/assets/html/js/settings.js b/assets/html/js/settings.js
new file mode 100644
index 0000000000..dbe5b22cd9
--- /dev/null
+++ b/assets/html/js/settings.js
@@ -0,0 +1,18 @@
+// libraries: jquery
+// arguments: $
+
+// Modal settings dialog
+$(document).ready(function() {
+  var settings = $('#documenter-settings');
+  $('#documenter-settings-button').click(function(){
+    settings.toggleClass('is-active');
+  });
+  // Close the dialog if X is clicked
+  $('#documenter-settings button.delete').click(function(){
+    settings.removeClass('is-active');
+  });
+  // Close dialog if ESC is pressed
+  $(document).keyup(function(e) {
+    if (e.keyCode == 27) settings.removeClass('is-active');
+  });
+});
diff --git a/assets/html/js/sidebar.js b/assets/html/js/sidebar.js
new file mode 100644
index 0000000000..d8a706bf6b
--- /dev/null
+++ b/assets/html/js/sidebar.js
@@ -0,0 +1,52 @@
+// libraries: jquery
+// arguments: $
+
+// Manages the showing and hiding of the sidebar.
+$(document).ready(function() {
+  var sidebar = $("#documenter > .docs-sidebar");
+  var sidebar_button = $("#documenter-sidebar-button")
+  sidebar_button.click(function(ev) {
+    ev.preventDefault();
+    sidebar.toggleClass('visible');
+    if (sidebar.hasClass('visible')) {
+      // Makes sure that the current menu item is visible in the sidebar.
+      $("#documenter .docs-menu a.is-active").focus();
+    }
+  });
+  $("#documenter > .docs-main").bind('click', function(ev) {
+    if ($(ev.target).is(sidebar_button)) {
+      return;
+    }
+    if (sidebar.hasClass('visible')) {
+      sidebar.removeClass('visible');
+    }
+  });
+})
+
+// Resizes the package name / sitename in the sidebar if it is too wide.
+// Inspired by: https://github.com/davatron5000/FitText.js
+$(document).ready(function() {
+  e = $("#documenter .docs-autofit");
+  function resize() {
+    var L = parseInt(e.css('max-width'), 10);
+    var L0 = e.width();
+    if(L0 > L) {
+      var h0 = parseInt(e.css('font-size'), 10);
+      e.css('font-size', L * h0 / L0);
+      // TODO: make sure it survives resizes?
+    }
+  }
+  // call once and then register events
+  resize();
+  $(window).resize(resize);
+  $(window).on('orientationchange', resize);
+});
+
+// Scroll the navigation bar to the currently selected menu item
+$(document).ready(function() {
+  var sidebar = $("#documenter .docs-menu").get(0);
+  var active = $("#documenter .docs-menu .is-active").get(0);
+  if(typeof active !== 'undefined') {
+    sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15;
+  }
+})
diff --git a/assets/html/js/themes.js b/assets/html/js/themes.js
new file mode 100644
index 0000000000..736931e2a3
--- /dev/null
+++ b/assets/html/js/themes.js
@@ -0,0 +1,53 @@
+// libraries: jquery
+// arguments: $
+
+function set_theme(theme) {
+  var active = null;
+  var disabled = [];
+  for (var i = 0; i < document.styleSheets.length; i++) {
+    var ss = document.styleSheets[i];
+    var themename = ss.ownerNode.getAttribute("data-theme-name");
+    if(themename === null) continue; // ignore non-theme stylesheets
+    // Find the active theme
+    if(themename === theme) active = ss;
+    else disabled.push(ss);
+  }
+  if(active !== null) {
+    active.disabled = false;
+    if(active.ownerNode.getAttribute("data-theme-primary") === null) {
+      document.getElementsByTagName('html')[0].className = "theme--" + theme;
+    } else {
+      document.getElementsByTagName('html')[0].className = "";
+    }
+    disabled.forEach(function(ss){
+      ss.disabled = true;
+    });
+  }
+
+  // Store the theme in localStorage
+  if(typeof(window.localStorage) !== "undefined") {
+    window.localStorage.setItem("documenter-theme", theme);
+  } else {
+    console.error("Browser does not support window.localStorage");
+  }
+}
+
+// Theme picker setup
+$(document).ready(function() {
+  // onchange callback
+  $('#documenter-themepicker').change(function themepick_callback(ev){
+    var themename = $('#documenter-themepicker option:selected').attr('value');
+    set_theme(themename);
+  });
+
+  // Make sure that the themepicker displays the correct theme when the theme is retrieved
+  // from localStorage
+  if(typeof(window.localStorage) !== "undefined") {
+    var theme =  window.localStorage.getItem("documenter-theme");
+    if(theme !== null) {
+      $('#documenter-themepicker option').each(function(i,e) {
+        e.selected = (e.value === theme);
+      })
+    }
+  }
+})
diff --git a/assets/html/js/versions.js b/assets/html/js/versions.js
new file mode 100644
index 0000000000..efc0c4bbe4
--- /dev/null
+++ b/assets/html/js/versions.js
@@ -0,0 +1,43 @@
+// libraries: jquery
+// arguments: $
+
+// update the version selector with info from the siteinfo.js and ../versions.js files
+$(document).ready(function() {
+  var version_selector = $("#documenter .docs-version-selector");
+  var version_selector_select = $("#documenter .docs-version-selector select");
+
+  version_selector_select.change(function(x) {
+    target_href = version_selector_select.children("option:selected").get(0).value;
+    window.location.href = target_href;
+  });
+
+  // add the current version to the selector based on siteinfo.js, but only if the selector is empty
+  if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) {
+    var option = $("");
+    version_selector_select.append(option);
+  }
+
+  if (typeof DOC_VERSIONS !== 'undefined') {
+    var existing_versions = version_selector_select.children("option");
+    var existing_versions_texts = existing_versions.map(function(i,x){return x.text});
+    DOC_VERSIONS.forEach(function(each) {
+      var version_url = documenterBaseURL + "/../" + each;
+      var existing_id = $.inArray(each, existing_versions_texts);
+      // if not already in the version selector, add it as a new option,
+      // otherwise update the old option with the URL and enable it
+      if (existing_id == -1) {
+        var option = $("");
+        version_selector_select.append(option);
+      } else {
+        var option = existing_versions[existing_id];
+        option.value = version_url;
+        option.disabled = false;
+      }
+    });
+  }
+
+  // only show the version selector if the selector has been populated
+  if (version_selector_select.children("option").length > 0) {
+    version_selector.toggleClass("visible");
+  }
+})
diff --git a/assets/html/scss/bulma/LICENSE b/assets/html/scss/bulma/LICENSE
new file mode 100644
index 0000000000..e3cb0a9c31
--- /dev/null
+++ b/assets/html/scss/bulma/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2019 Jeremy Thomas
+
+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 NONINFRINGEMENT. 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.
diff --git a/assets/html/scss/bulma/base/_all.sass b/assets/html/scss/bulma/base/_all.sass
new file mode 100644
index 0000000000..e913d6ba39
--- /dev/null
+++ b/assets/html/scss/bulma/base/_all.sass
@@ -0,0 +1,5 @@
+@charset "utf-8"
+
+@import "minireset.sass"
+@import "generic.sass"
+@import "helpers.sass"
diff --git a/assets/html/scss/bulma/base/generic.sass b/assets/html/scss/bulma/base/generic.sass
new file mode 100644
index 0000000000..376cd5e468
--- /dev/null
+++ b/assets/html/scss/bulma/base/generic.sass
@@ -0,0 +1,142 @@
+$body-background-color: $white !default
+$body-size: 16px !default
+$body-min-width: 300px !default
+$body-rendering: optimizeLegibility !default
+$body-family: $family-primary !default
+$body-overflow-x: hidden !default
+$body-overflow-y: scroll !default
+
+$body-color: $text !default
+$body-font-size: 1em !default
+$body-weight: $weight-normal !default
+$body-line-height: 1.5 !default
+
+$code-family: $family-code !default
+$code-padding: 0.25em 0.5em 0.25em !default
+$code-weight: normal !default
+$code-size: 0.875em !default
+
+$small-font-size: 0.875em !default
+
+$hr-background-color: $background !default
+$hr-height: 2px !default
+$hr-margin: 1.5rem 0 !default
+
+$strong-color: $text-strong !default
+$strong-weight: $weight-bold !default
+
+$pre-font-size: 0.875em !default
+$pre-padding: 1.25rem 1.5rem !default
+$pre-code-font-size: 1em !default
+
+html
+  background-color: $body-background-color
+  font-size: $body-size
+  -moz-osx-font-smoothing: grayscale
+  -webkit-font-smoothing: antialiased
+  min-width: $body-min-width
+  overflow-x: $body-overflow-x
+  overflow-y: $body-overflow-y
+  text-rendering: $body-rendering
+  text-size-adjust: 100%
+
+article,
+aside,
+figure,
+footer,
+header,
+hgroup,
+section
+  display: block
+
+body,
+button,
+input,
+select,
+textarea
+  font-family: $body-family
+
+code,
+pre
+  -moz-osx-font-smoothing: auto
+  -webkit-font-smoothing: auto
+  font-family: $code-family
+
+body
+  color: $body-color
+  font-size: $body-font-size
+  font-weight: $body-weight
+  line-height: $body-line-height
+
+// Inline
+
+a
+  color: $link
+  cursor: pointer
+  text-decoration: none
+  strong
+    color: currentColor
+  &:hover
+    color: $link-hover
+
+code
+  background-color: $code-background
+  color: $code
+  font-size: $code-size
+  font-weight: $code-weight
+  padding: $code-padding
+
+hr
+  background-color: $hr-background-color
+  border: none
+  display: block
+  height: $hr-height
+  margin: $hr-margin
+
+img
+  height: auto
+  max-width: 100%
+
+input[type="checkbox"],
+input[type="radio"]
+  vertical-align: baseline
+
+small
+  font-size: $small-font-size
+
+span
+  font-style: inherit
+  font-weight: inherit
+
+strong
+  color: $strong-color
+  font-weight: $strong-weight
+
+// Block
+
+fieldset
+  border: none
+
+pre
+  +overflow-touch
+  background-color: $pre-background
+  color: $pre
+  font-size: $pre-font-size
+  overflow-x: auto
+  padding: $pre-padding
+  white-space: pre
+  word-wrap: normal
+  code
+    background-color: transparent
+    color: currentColor
+    font-size: $pre-code-font-size
+    padding: 0
+
+table
+  td,
+  th
+    vertical-align: top
+    &:not([align])
+      text-align: left
+  th
+    color: $text-strong
diff --git a/assets/html/scss/bulma/base/helpers.sass b/assets/html/scss/bulma/base/helpers.sass
new file mode 100644
index 0000000000..bbb489dddc
--- /dev/null
+++ b/assets/html/scss/bulma/base/helpers.sass
@@ -0,0 +1,281 @@
+// Float
+
+.is-clearfix
+  +clearfix
+
+.is-pulled-left
+  float: left !important
+
+.is-pulled-right
+  float: right !important
+
+// Overflow
+
+.is-clipped
+  overflow: hidden !important
+
+// Overlay
+
+.is-overlay
+  @extend %overlay
+
+// Typography
+
+=typography-size($target:'')
+  @each $size in $sizes
+    $i: index($sizes, $size)
+    .is-size-#{$i}#{if($target == '', '', '-' + $target)}
+      font-size: $size !important
+
++typography-size()
+
++mobile
+  +typography-size('mobile')
+
++tablet
+  +typography-size('tablet')
+
++touch
+  +typography-size('touch')
+
++desktop
+  +typography-size('desktop')
+
++widescreen
+  +typography-size('widescreen')
+
++fullhd
+  +typography-size('fullhd')
+
+$alignments: ('centered': 'center', 'justified': 'justify', 'left': 'left', 'right': 'right')
+
+@each $alignment, $text-align in $alignments
+  .has-text-#{$alignment}
+    text-align: #{$text-align} !important
+
+@each $alignment, $text-align in $alignments
+  +mobile
+    .has-text-#{$alignment}-mobile
+      text-align: #{$text-align} !important
+  +tablet
+    .has-text-#{$alignment}-tablet
+      text-align: #{$text-align} !important
+  +tablet-only
+    .has-text-#{$alignment}-tablet-only
+      text-align: #{$text-align} !important
+  +touch
+    .has-text-#{$alignment}-touch
+      text-align: #{$text-align} !important
+  +desktop
+    .has-text-#{$alignment}-desktop
+      text-align: #{$text-align} !important
+  +desktop-only
+    .has-text-#{$alignment}-desktop-only
+      text-align: #{$text-align} !important
+  +widescreen
+    .has-text-#{$alignment}-widescreen
+      text-align: #{$text-align} !important
+  +widescreen-only
+    .has-text-#{$alignment}-widescreen-only
+      text-align: #{$text-align} !important
+  +fullhd
+    .has-text-#{$alignment}-fullhd
+      text-align: #{$text-align} !important
+
+.is-capitalized
+  text-transform: capitalize !important
+
+.is-lowercase
+  text-transform: lowercase !important
+
+.is-uppercase
+  text-transform: uppercase !important
+
+.is-italic
+  font-style: italic !important
+
+@each $name, $pair in $colors
+  $color: nth($pair, 1)
+  .has-text-#{$name}
+    color: $color !important
+  a.has-text-#{$name}
+    &:hover,
+    &:focus
+      color: darken($color, 10%) !important
+  .has-background-#{$name}
+    background-color: $color !important
+
+@each $name, $shade in $shades
+  .has-text-#{$name}
+    color: $shade !important
+  .has-background-#{$name}
+    background-color: $shade !important
+
+.has-text-weight-light
+  font-weight: $weight-light !important
+.has-text-weight-normal
+  font-weight: $weight-normal !important
+.has-text-weight-medium
+  font-weight: $weight-medium !important
+.has-text-weight-semibold
+  font-weight: $weight-semibold !important
+.has-text-weight-bold
+  font-weight: $weight-bold !important
+
+.is-family-primary
+  font-family: $family-primary !important
+
+.is-family-secondary
+  font-family: $family-secondary !important
+
+.is-family-sans-serif
+  font-family: $family-sans-serif !important
+
+.is-family-monospace
+  font-family: $family-monospace !important
+
+.is-family-code
+  font-family: $family-code !important
+
+// Visibility
+
+$displays: 'block' 'flex' 'inline' 'inline-block' 'inline-flex'
+
+@each $display in $displays
+  .is-#{$display}
+    display: #{$display} !important
+  +mobile
+    .is-#{$display}-mobile
+      display: #{$display} !important
+  +tablet
+    .is-#{$display}-tablet
+      display: #{$display} !important
+  +tablet-only
+    .is-#{$display}-tablet-only
+      display: #{$display} !important
+  +touch
+    .is-#{$display}-touch
+      display: #{$display} !important
+  +desktop
+    .is-#{$display}-desktop
+      display: #{$display} !important
+  +desktop-only
+    .is-#{$display}-desktop-only
+      display: #{$display} !important
+  +widescreen
+    .is-#{$display}-widescreen
+      display: #{$display} !important
+  +widescreen-only
+    .is-#{$display}-widescreen-only
+      display: #{$display} !important
+  +fullhd
+    .is-#{$display}-fullhd
+      display: #{$display} !important
+
+.is-hidden
+  display: none !important
+
+.is-sr-only
+  border: none !important
+  clip: rect(0, 0, 0, 0) !important
+  height: 0.01em !important
+  overflow: hidden !important
+  padding: 0 !important
+  position: absolute !important
+  white-space: nowrap !important
+  width: 0.01em !important
+
++mobile
+  .is-hidden-mobile
+    display: none !important
+
++tablet
+  .is-hidden-tablet
+    display: none !important
+
++tablet-only
+  .is-hidden-tablet-only
+    display: none !important
+
++touch
+  .is-hidden-touch
+    display: none !important
+
++desktop
+  .is-hidden-desktop
+    display: none !important
+
++desktop-only
+  .is-hidden-desktop-only
+    display: none !important
+
++widescreen
+  .is-hidden-widescreen
+    display: none !important
+
++widescreen-only
+  .is-hidden-widescreen-only
+    display: none !important
+
++fullhd
+  .is-hidden-fullhd
+    display: none !important
+
+.is-invisible
+  visibility: hidden !important
+
++mobile
+  .is-invisible-mobile
+    visibility: hidden !important
+
++tablet
+  .is-invisible-tablet
+    visibility: hidden !important
+
++tablet-only
+  .is-invisible-tablet-only
+    visibility: hidden !important
+
++touch
+  .is-invisible-touch
+    visibility: hidden !important
+
++desktop
+  .is-invisible-desktop
+    visibility: hidden !important
+
++desktop-only
+  .is-invisible-desktop-only
+    visibility: hidden !important
+
++widescreen
+  .is-invisible-widescreen
+    visibility: hidden !important
+
++widescreen-only
+  .is-invisible-widescreen-only
+    visibility: hidden !important
+
++fullhd
+  .is-invisible-fullhd
+    visibility: hidden !important
+
+// Other
+
+.is-marginless
+  margin: 0 !important
+
+.is-paddingless
+  padding: 0 !important
+
+.is-radiusless
+  border-radius: 0 !important
+
+.is-shadowless
+  box-shadow: none !important
+
+.is-unselectable
+  @extend %unselectable
+
+.is-relative
+  position: relative !important
diff --git a/assets/html/scss/bulma/base/minireset.sass b/assets/html/scss/bulma/base/minireset.sass
new file mode 100644
index 0000000000..a488f121fc
--- /dev/null
+++ b/assets/html/scss/bulma/base/minireset.sass
@@ -0,0 +1,85 @@
+/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */
+// Blocks
+html,
+body,
+p,
+ol,
+ul,
+li,
+dl,
+dt,
+dd,
+blockquote,
+figure,
+fieldset,
+legend,
+textarea,
+pre,
+iframe,
+hr,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6
+  margin: 0
+  padding: 0
+
+// Headings
+h1,
+h2,
+h3,
+h4,
+h5,
+h6
+  font-size: 100%
+  font-weight: normal
+
+// List
+ul
+  list-style: none
+
+// Form
+button,
+input,
+select,
+textarea
+  margin: 0
+
+// Box sizing
+html
+  box-sizing: border-box
+
+*
+  &,
+  &::before,
+  &::after
+    box-sizing: inherit
+
+// Media
+img,
+embed,
+iframe,
+object,
+video
+  height: auto
+  max-width: 100%
+
+audio
+  max-width: 100%
+
+// Iframe
+iframe
+  border: 0
+
+// Table
+table
+  border-collapse: collapse
+  border-spacing: 0
+
+td,
+th
+  padding: 0
+  &:not([align])
+    text-align: left
diff --git a/assets/html/scss/bulma/components/_all.sass b/assets/html/scss/bulma/components/_all.sass
new file mode 100644
index 0000000000..88fd45c5a6
--- /dev/null
+++ b/assets/html/scss/bulma/components/_all.sass
@@ -0,0 +1,15 @@
+@charset "utf-8"
+
+@import "breadcrumb.sass"
+@import "card.sass"
+@import "dropdown.sass"
+@import "level.sass"
+@import "list.sass"
+@import "media.sass"
+@import "menu.sass"
+@import "message.sass"
+@import "modal.sass"
+@import "navbar.sass"
+@import "pagination.sass"
+@import "panel.sass"
+@import "tabs.sass"
diff --git a/assets/html/scss/bulma/components/breadcrumb.sass b/assets/html/scss/bulma/components/breadcrumb.sass
new file mode 100644
index 0000000000..bcbd15b245
--- /dev/null
+++ b/assets/html/scss/bulma/components/breadcrumb.sass
@@ -0,0 +1,75 @@
+$breadcrumb-item-color: $link !default
+$breadcrumb-item-hover-color: $link-hover !default
+$breadcrumb-item-active-color: $text-strong !default
+
+$breadcrumb-item-padding-vertical: 0 !default
+$breadcrumb-item-padding-horizontal: 0.75em !default
+
+$breadcrumb-item-separator-color: $grey-light !default
+
+.breadcrumb
+  @extend %block
+  @extend %unselectable
+  font-size: $size-normal
+  white-space: nowrap
+  a
+    align-items: center
+    color: $breadcrumb-item-color
+    display: flex
+    justify-content: center
+    padding: $breadcrumb-item-padding-vertical $breadcrumb-item-padding-horizontal
+    &:hover
+      color: $breadcrumb-item-hover-color
+  li
+    align-items: center
+    display: flex
+    &:first-child a
+      padding-left: 0
+    &.is-active
+      a
+        color: $breadcrumb-item-active-color
+        cursor: default
+        pointer-events: none
+    & + li::before
+      color: $breadcrumb-item-separator-color
+      content: "\0002f"
+  ul,
+  ol
+    align-items: flex-start
+    display: flex
+    flex-wrap: wrap
+    justify-content: flex-start
+  .icon
+    &:first-child
+      margin-right: 0.5em
+    &:last-child
+      margin-left: 0.5em
+  // Alignment
+  &.is-centered
+    ol,
+    ul
+      justify-content: center
+  &.is-right
+    ol,
+    ul
+      justify-content: flex-end
+  // Sizes
+  &.is-small
+    font-size: $size-small
+  &.is-medium
+    font-size: $size-medium
+  &.is-large
+    font-size: $size-large
+  // Styles
+  &.has-arrow-separator
+    li + li::before
+      content: "\02192"
+  &.has-bullet-separator
+    li + li::before
+      content: "\02022"
+  &.has-dot-separator
+    li + li::before
+      content: "\000b7"
+  &.has-succeeds-separator
+    li + li::before
+      content: "\0227B"
diff --git a/assets/html/scss/bulma/components/card.sass b/assets/html/scss/bulma/components/card.sass
new file mode 100644
index 0000000000..ca231a54a7
--- /dev/null
+++ b/assets/html/scss/bulma/components/card.sass
@@ -0,0 +1,79 @@
+$card-color: $text !default
+$card-background-color: $white !default
+$card-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1) !default
+
+$card-header-background-color: transparent !default
+$card-header-color: $text-strong !default
+$card-header-padding: 0.75rem !default
+$card-header-shadow: 0 1px 2px rgba($black, 0.1) !default
+$card-header-weight: $weight-bold !default
+
+$card-content-background-color: transparent !default
+$card-content-padding: 1.5rem !default
+
+$card-footer-background-color: transparent !default
+$card-footer-border-top: 1px solid $border !default
+$card-footer-padding: 0.75rem !default
+
+$card-media-margin: $block-spacing !default
+
+.card
+  background-color: $card-background-color
+  box-shadow: $card-shadow
+  color: $card-color
+  max-width: 100%
+  position: relative
+
+.card-header
+  background-color: $card-header-background-color
+  align-items: stretch
+  box-shadow: $card-header-shadow
+  display: flex
+
+.card-header-title
+  align-items: center
+  color: $card-header-color
+  display: flex
+  flex-grow: 1
+  font-weight: $card-header-weight
+  padding: $card-header-padding
+  &.is-centered
+    justify-content: center
+
+.card-header-icon
+  align-items: center
+  cursor: pointer
+  display: flex
+  justify-content: center
+  padding: $card-header-padding
+
+.card-image
+  display: block
+  position: relative
+
+.card-content
+  background-color: $card-content-background-color
+  padding: $card-content-padding
+
+.card-footer
+  background-color: $card-footer-background-color
+  border-top: $card-footer-border-top
+  align-items: stretch
+  display: flex
+
+.card-footer-item
+  align-items: center
+  display: flex
+  flex-basis: 0
+  flex-grow: 1
+  flex-shrink: 0
+  justify-content: center
+  padding: $card-footer-padding
+  &:not(:last-child)
+    border-right: $card-footer-border-top
+
+// Combinations
+
+.card
+  .media:not(:last-child)
+    margin-bottom: $card-media-margin
diff --git a/assets/html/scss/bulma/components/dropdown.sass b/assets/html/scss/bulma/components/dropdown.sass
new file mode 100644
index 0000000000..b6146b0a3f
--- /dev/null
+++ b/assets/html/scss/bulma/components/dropdown.sass
@@ -0,0 +1,81 @@
+$dropdown-menu-min-width: 12rem !default
+
+$dropdown-content-background-color: $white !default
+$dropdown-content-arrow: $link !default
+$dropdown-content-offset: 4px !default
+$dropdown-content-padding-bottom: 0.5rem !default
+$dropdown-content-padding-top: 0.5rem !default
+$dropdown-content-radius: $radius !default
+$dropdown-content-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1) !default
+$dropdown-content-z: 20 !default
+
+$dropdown-item-color: $grey-dark !default
+$dropdown-item-hover-color: $black !default
+$dropdown-item-hover-background-color: $background !default
+$dropdown-item-active-color: $link-invert !default
+$dropdown-item-active-background-color: $link !default
+
+$dropdown-divider-background-color: $border !default
+
+.dropdown
+  display: inline-flex
+  position: relative
+  vertical-align: top
+  &.is-active,
+  &.is-hoverable:hover
+    .dropdown-menu
+      display: block
+  &.is-right
+    .dropdown-menu
+      left: auto
+      right: 0
+  &.is-up
+    .dropdown-menu
+      bottom: 100%
+      padding-bottom: $dropdown-content-offset
+      padding-top: initial
+      top: auto
+
+.dropdown-menu
+  display: none
+  left: 0
+  min-width: $dropdown-menu-min-width
+  padding-top: $dropdown-content-offset
+  position: absolute
+  top: 100%
+  z-index: $dropdown-content-z
+
+.dropdown-content
+  background-color: $dropdown-content-background-color
+  border-radius: $dropdown-content-radius
+  box-shadow: $dropdown-content-shadow
+  padding-bottom: $dropdown-content-padding-bottom
+  padding-top: $dropdown-content-padding-top
+
+.dropdown-item
+  color: $dropdown-item-color
+  display: block
+  font-size: 0.875rem
+  line-height: 1.5
+  padding: 0.375rem 1rem
+  position: relative
+
+a.dropdown-item,
+button.dropdown-item
+  padding-right: 3rem
+  text-align: left
+  white-space: nowrap
+  width: 100%
+  &:hover
+    background-color: $dropdown-item-hover-background-color
+    color: $dropdown-item-hover-color
+  &.is-active
+    background-color: $dropdown-item-active-background-color
+    color: $dropdown-item-active-color
+
+.dropdown-divider
+  background-color: $dropdown-divider-background-color
+  border: none
+  display: block
+  height: 1px
+  margin: 0.5rem 0
diff --git a/assets/html/scss/bulma/components/level.sass b/assets/html/scss/bulma/components/level.sass
new file mode 100644
index 0000000000..608f291e75
--- /dev/null
+++ b/assets/html/scss/bulma/components/level.sass
@@ -0,0 +1,77 @@
+$level-item-spacing: ($block-spacing / 2) !default
+
+.level
+  @extend %block
+  align-items: center
+  justify-content: space-between
+  code
+    border-radius: $radius
+  img
+    display: inline-block
+    vertical-align: top
+  // Modifiers
+  &.is-mobile
+    display: flex
+    .level-left,
+    .level-right
+      display: flex
+    .level-left + .level-right
+      margin-top: 0
+    .level-item
+      &:not(:last-child)
+        margin-bottom: 0
+        margin-right: $level-item-spacing
+      &:not(.is-narrow)
+        flex-grow: 1
+  // Responsiveness
+  +tablet
+    display: flex
+    & > .level-item
+      &:not(.is-narrow)
+        flex-grow: 1
+
+.level-item
+  align-items: center
+  display: flex
+  flex-basis: auto
+  flex-grow: 0
+  flex-shrink: 0
+  justify-content: center
+  .title,
+  .subtitle
+    margin-bottom: 0
+  // Responsiveness
+  +mobile
+    &:not(:last-child)
+      margin-bottom: $level-item-spacing
+
+.level-left,
+.level-right
+  flex-basis: auto
+  flex-grow: 0
+  flex-shrink: 0
+  .level-item
+    // Modifiers
+    &.is-flexible
+      flex-grow: 1
+    // Responsiveness
+    +tablet
+      &:not(:last-child)
+        margin-right: $level-item-spacing
+
+.level-left
+  align-items: center
+  justify-content: flex-start
+  // Responsiveness
+  +mobile
+    & + .level-right
+      margin-top: 1.5rem
+  +tablet
+    display: flex
+
+.level-right
+  align-items: center
+  justify-content: flex-end
+  // Responsiveness
+  +tablet
+    display: flex
diff --git a/assets/html/scss/bulma/components/list.sass b/assets/html/scss/bulma/components/list.sass
new file mode 100644
index 0000000000..e09b551b9a
--- /dev/null
+++ b/assets/html/scss/bulma/components/list.sass
@@ -0,0 +1,39 @@
+$list-background-color: $white !default
+$list-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1) !default
+$list-radius: $radius !default
+
+$list-item-border: 1px solid $border !default
+$list-item-color: $text !default
+$list-item-active-background-color: $link !default
+$list-item-active-color: $link-invert !default
+$list-item-hover-background-color: $background !default
+
+.list
+  @extend %block
+  background-color: $list-background-color
+  border-radius: $list-radius
+  box-shadow: $list-shadow
+  // &.is-hoverable > .list-item:hover:not(.is-active)
+  //   background-color: $list-item-hover-background-color
+  //   cursor: pointer
+
+.list-item
+  display: block
+  padding: 0.5em 1em
+  &:not(a)
+    color: $list-item-color
+  &:first-child
+    border-top-left-radius: $list-radius
+    border-top-right-radius: $list-radius
+  &:last-child
+    border-bottom-left-radius: $list-radius
+    border-bottom-right-radius: $list-radius
+  &:not(:last-child)
+    border-bottom: $list-item-border
+  &.is-active
+    background-color: $list-item-active-background-color
+    color: $list-item-active-color
+
+a.list-item
+  background-color: $list-item-hover-background-color
+  cursor: pointer
diff --git a/assets/html/scss/bulma/components/media.sass b/assets/html/scss/bulma/components/media.sass
new file mode 100644
index 0000000000..e8542d8cd6
--- /dev/null
+++ b/assets/html/scss/bulma/components/media.sass
@@ -0,0 +1,48 @@
+.media
+  align-items: flex-start
+  display: flex
+  text-align: left
+  .content:not(:last-child)
+    margin-bottom: 0.75rem
+  .media
+    border-top: 1px solid rgba($border, 0.5)
+    display: flex
+    padding-top: 0.75rem
+    .content:not(:last-child),
+    .control:not(:last-child)
+      margin-bottom: 0.5rem
+    .media
+      padding-top: 0.5rem
+      & + .media
+        margin-top: 0.5rem
+  & + .media
+    border-top: 1px solid rgba($border, 0.5)
+    margin-top: 1rem
+    padding-top: 1rem
+  // Sizes
+  &.is-large
+    & + .media
+      margin-top: 1.5rem
+      padding-top: 1.5rem
+
+.media-left,
+.media-right
+  flex-basis: auto
+  flex-grow: 0
+  flex-shrink: 0
+
+.media-left
+  margin-right: 1rem
+
+.media-right
+  margin-left: 1rem
+
+.media-content
+  flex-basis: auto
+  flex-grow: 1
+  flex-shrink: 1
+  text-align: left
+
++mobile
+  .media-content
+    overflow-x: auto
diff --git a/assets/html/scss/bulma/components/menu.sass b/assets/html/scss/bulma/components/menu.sass
new file mode 100644
index 0000000000..3de7e18db0
--- /dev/null
+++ b/assets/html/scss/bulma/components/menu.sass
@@ -0,0 +1,57 @@
+$menu-item-color: $text !default
+$menu-item-radius: $radius-small !default
+$menu-item-hover-color: $text-strong !default
+$menu-item-hover-background-color: $background !default
+$menu-item-active-color: $link-invert !default
+$menu-item-active-background-color: $link !default
+
+$menu-list-border-left: 1px solid $border !default
+$menu-list-line-height: 1.25 !default
+$menu-list-link-padding: 0.5em 0.75em !default
+$menu-nested-list-margin: 0.75em !default
+$menu-nested-list-padding-left: 0.75em !default
+
+$menu-label-color: $text-light !default
+$menu-label-font-size: 0.75em !default
+$menu-label-letter-spacing: 0.1em !default
+$menu-label-spacing: 1em !default
+
+.menu
+  font-size: $size-normal
+  // Sizes
+  &.is-small
+    font-size: $size-small
+  &.is-medium
+    font-size: $size-medium
+  &.is-large
+    font-size: $size-large
+
+.menu-list
+  line-height: $menu-list-line-height
+  a
+    border-radius: $menu-item-radius
+    color: $menu-item-color
+    display: block
+    padding: $menu-list-link-padding
+    &:hover
+      background-color: $menu-item-hover-background-color
+      color: $menu-item-hover-color
+    // Modifiers
+    &.is-active
+      background-color: $menu-item-active-background-color
+      color: $menu-item-active-color
+  li
+    ul
+      border-left: $menu-list-border-left
+      margin: $menu-nested-list-margin
+      padding-left: $menu-nested-list-padding-left
+
+.menu-label
+  color: $menu-label-color
+  font-size: $menu-label-font-size
+  letter-spacing: $menu-label-letter-spacing
+  text-transform: uppercase
+  &:not(:first-child)
+    margin-top: $menu-label-spacing
+  &:not(:last-child)
+    margin-bottom: $menu-label-spacing
diff --git a/assets/html/scss/bulma/components/message.sass b/assets/html/scss/bulma/components/message.sass
new file mode 100644
index 0000000000..2e626adb87
--- /dev/null
+++ b/assets/html/scss/bulma/components/message.sass
@@ -0,0 +1,87 @@
+$message-background-color: $background !default
+$message-radius: $radius !default
+
+$message-header-background-color: $text !default
+$message-header-color: $text-invert !default
+$message-header-weight: $weight-bold !default
+$message-header-padding: 0.75em 1em !default
+$message-header-radius: $radius !default
+
+$message-body-border-color: $border !default
+$message-body-border-width: 0 0 0 4px !default
+$message-body-color: $text !default
+$message-body-padding: 1.25em 1.5em !default
+$message-body-radius: $radius !default
+
+$message-body-pre-background-color: $white !default
+$message-body-pre-code-background-color: transparent !default
+
+$message-header-body-border-width: 0 !default
+$message-colors: $colors !default
+
+.message
+  @extend %block
+  background-color: $message-background-color
+  border-radius: $message-radius
+  font-size: $size-normal
+  strong
+    color: currentColor
+  a:not(.button):not(.tag):not(.dropdown-item)
+    color: currentColor
+    text-decoration: underline
+  // Sizes
+  &.is-small
+    font-size: $size-small
+  &.is-medium
+    font-size: $size-medium
+  &.is-large
+    font-size: $size-large
+  // Colors
+  @each $name, $pair in $message-colors
+    $color: nth($pair, 1)
+    $color-invert: nth($pair, 2)
+    $color-lightning: max((100% - lightness($color)) - 2%, 0%)
+    $color-luminance: colorLuminance($color)
+    $darken-percentage: $color-luminance * 70%
+    $desaturate-percentage: $color-luminance * 30%
+    &.is-#{$name}
+      background-color: lighten($color, $color-lightning)
+      .message-header
+        background-color: $color
+        color: $color-invert
+      .message-body
+        border-color: $color
+        color: desaturate(darken($color, $darken-percentage), $desaturate-percentage)
+
+.message-header
+  align-items: center
+  background-color: $message-header-background-color
+  border-radius: $message-header-radius $message-header-radius 0 0
+  color: $message-header-color
+  display: flex
+  font-weight: $message-header-weight
+  justify-content: space-between
+  line-height: 1.25
+  padding: $message-header-padding
+  position: relative
+  .delete
+    flex-grow: 0
+    flex-shrink: 0
+    margin-left: 0.75em
+  & + .message-body
+    border-width: $message-header-body-border-width
+    border-top-left-radius: 0
+    border-top-right-radius: 0
+
+.message-body
+  border-color: $message-body-border-color
+  border-radius: $message-body-radius
+  border-style: solid
+  border-width: $message-body-border-width
+  color: $message-body-color
+  padding: $message-body-padding
+  code,
+  pre
+    background-color: $message-body-pre-background-color
+  pre code
+    background-color: $message-body-pre-code-background-color
diff --git a/assets/html/scss/bulma/components/modal.sass b/assets/html/scss/bulma/components/modal.sass
new file mode 100644
index 0000000000..c9d1979628
--- /dev/null
+++ b/assets/html/scss/bulma/components/modal.sass
@@ -0,0 +1,113 @@
+$modal-z: 40 !default
+
+$modal-background-background-color: rgba($black, 0.86) !default
+
+$modal-content-width: 640px !default
+$modal-content-margin-mobile: 20px !default
+$modal-content-spacing-mobile: 160px !default
+$modal-content-spacing-tablet: 40px !default
+
+$modal-close-dimensions: 40px !default
+$modal-close-right: 20px !default
+$modal-close-top: 20px !default
+
+$modal-card-spacing: 40px !default
+
+$modal-card-head-background-color: $background !default
+$modal-card-head-border-bottom: 1px solid $border !default
+$modal-card-head-padding: 20px !default
+$modal-card-head-radius: $radius-large !default
+
+$modal-card-title-color: $text-strong !default
+$modal-card-title-line-height: 1 !default
+$modal-card-title-size: $size-4 !default
+
+$modal-card-foot-radius: $radius-large !default
+$modal-card-foot-border-top: 1px solid $border !default
+
+$modal-card-body-background-color: $white !default
+$modal-card-body-padding: 20px !default
+
+.modal
+  @extend %overlay
+  align-items: center
+  display: none
+  flex-direction: column
+  justify-content: center
+  overflow: hidden
+  position: fixed
+  z-index: $modal-z
+  // Modifiers
+  &.is-active
+    display: flex
+
+.modal-background
+  @extend %overlay
+  background-color: $modal-background-background-color
+
+.modal-content,
+.modal-card
+  margin: 0 $modal-content-margin-mobile
+  max-height: calc(100vh - #{$modal-content-spacing-mobile})
+  overflow: auto
+  position: relative
+  width: 100%
+  // Responsiveness
+  +tablet
+    margin: 0 auto
+    max-height: calc(100vh - #{$modal-content-spacing-tablet})
+    width: $modal-content-width
+
+.modal-close
+  @extend %delete
+  background: none
+  height: $modal-close-dimensions
+  position: fixed
+  right: $modal-close-right
+  top: $modal-close-top
+  width: $modal-close-dimensions
+
+.modal-card
+  display: flex
+  flex-direction: column
+  max-height: calc(100vh - #{$modal-card-spacing})
+  overflow: hidden
+  -ms-overflow-y: visible
+
+.modal-card-head,
+.modal-card-foot
+  align-items: center
+  background-color: $modal-card-head-background-color
+  display: flex
+  flex-shrink: 0
+  justify-content: flex-start
+  padding: $modal-card-head-padding
+  position: relative
+
+.modal-card-head
+  border-bottom: $modal-card-head-border-bottom
+  border-top-left-radius: $modal-card-head-radius
+  border-top-right-radius: $modal-card-head-radius
+
+.modal-card-title
+  color: $modal-card-title-color
+  flex-grow: 1
+  flex-shrink: 0
+  font-size: $modal-card-title-size
+  line-height: $modal-card-title-line-height
+
+.modal-card-foot
+  border-bottom-left-radius: $modal-card-foot-radius
+  border-bottom-right-radius: $modal-card-foot-radius
+  border-top: $modal-card-foot-border-top
+  .button
+    &:not(:last-child)
+      margin-right: 0.5em
+
+.modal-card-body
+  +overflow-touch
+  background-color: $modal-card-body-background-color
+  flex-grow: 1
+  flex-shrink: 1
+  overflow: auto
+  padding: $modal-card-body-padding
diff --git a/assets/html/scss/bulma/components/navbar.sass b/assets/html/scss/bulma/components/navbar.sass
new file mode 100644
index 0000000000..7b97edb2fc
--- /dev/null
+++ b/assets/html/scss/bulma/components/navbar.sass
@@ -0,0 +1,443 @@
+$navbar-background-color: $white !default
+$navbar-box-shadow-size: 0 2px 0 0 !default
+$navbar-box-shadow-color: $background !default
+$navbar-height: 3.25rem !default
+$navbar-padding-vertical: 1rem !default
+$navbar-padding-horizontal: 2rem !default
+$navbar-z: 30 !default
+$navbar-fixed-z: 30 !default
+
+$navbar-item-color: $grey-dark !default
+$navbar-item-hover-color: $link !default
+$navbar-item-hover-background-color: $white-bis !default
+$navbar-item-active-color: $black !default
+$navbar-item-active-background-color: transparent !default
+$navbar-item-img-max-height: 1.75rem !default
+
+$navbar-burger-color: $navbar-item-color !default
+
+$navbar-tab-hover-background-color: transparent !default
+$navbar-tab-hover-border-bottom-color: $link !default
+$navbar-tab-active-color: $link !default
+$navbar-tab-active-background-color: transparent !default
+$navbar-tab-active-border-bottom-color: $link !default
+$navbar-tab-active-border-bottom-style: solid !default
+$navbar-tab-active-border-bottom-width: 3px !default
+
+$navbar-dropdown-background-color: $white !default
+$navbar-dropdown-border-top: 2px solid $border !default
+$navbar-dropdown-offset: -4px !default
+$navbar-dropdown-arrow: $link !default
+$navbar-dropdown-radius: $radius-large !default
+$navbar-dropdown-z: 20 !default
+
+$navbar-dropdown-boxed-radius: $radius-large !default
+$navbar-dropdown-boxed-shadow: 0 8px 8px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1) !default
+
+$navbar-dropdown-item-hover-color: $black !default
+$navbar-dropdown-item-hover-background-color: $background !default
+$navbar-dropdown-item-active-color: $link !default
+$navbar-dropdown-item-active-background-color: $background !default
+
+$navbar-divider-background-color: $background !default
+$navbar-divider-height: 2px !default
+
+$navbar-bottom-box-shadow-size: 0 -2px 0 0 !default
+
+$navbar-breakpoint: $desktop !default
+
+=navbar-fixed
+  left: 0
+  position: fixed
+  right: 0
+  z-index: $navbar-fixed-z
+
+.navbar
+  background-color: $navbar-background-color
+  min-height: $navbar-height
+  position: relative
+  z-index: $navbar-z
+  @each $name, $pair in $colors
+    $color: nth($pair, 1)
+    $color-invert: nth($pair, 2)
+    &.is-#{$name}
+      background-color: $color
+      color: $color-invert
+      .navbar-brand
+        & > .navbar-item,
+        .navbar-link
+          color: $color-invert
+        & > a.navbar-item,
+        .navbar-link
+          &:focus,
+          &:hover,
+          &.is-active
+            background-color: darken($color, 5%)
+            color: $color-invert
+        .navbar-link
+          &::after
+            border-color: $color-invert
+      .navbar-burger
+        color: $color-invert
+      +from($navbar-breakpoint)
+        .navbar-start,
+        .navbar-end
+          & > .navbar-item,
+          .navbar-link
+            color: $color-invert
+          & > a.navbar-item,
+          .navbar-link
+            &:focus,
+            &:hover,
+            &.is-active
+              background-color: darken($color, 5%)
+              color: $color-invert
+          .navbar-link
+            &::after
+              border-color: $color-invert
+        .navbar-item.has-dropdown:focus .navbar-link,
+        .navbar-item.has-dropdown:hover .navbar-link,
+        .navbar-item.has-dropdown.is-active .navbar-link
+          background-color: darken($color, 5%)
+          color: $color-invert
+        .navbar-dropdown
+          a.navbar-item
+            &.is-active
+              background-color: $color
+              color: $color-invert
+  & > .container
+    align-items: stretch
+    display: flex
+    min-height: $navbar-height
+    width: 100%
+  &.has-shadow
+    box-shadow: $navbar-box-shadow-size $navbar-box-shadow-color
+  &.is-fixed-bottom,
+  &.is-fixed-top
+    +navbar-fixed
+  &.is-fixed-bottom
+    bottom: 0
+    &.has-shadow
+      box-shadow: $navbar-bottom-box-shadow-size $navbar-box-shadow-color
+  &.is-fixed-top
+    top: 0
+
+html,
+body
+  &.has-navbar-fixed-top
+    padding-top: $navbar-height
+  &.has-navbar-fixed-bottom
+    padding-bottom: $navbar-height
+
+.navbar-brand,
+.navbar-tabs
+  align-items: stretch
+  display: flex
+  flex-shrink: 0
+  min-height: $navbar-height
+
+.navbar-brand
+  a.navbar-item
+    &:focus,
+    &:hover
+      background-color: transparent
+
+.navbar-tabs
+  +overflow-touch
+  max-width: 100vw
+  overflow-x: auto
+  overflow-y: hidden
+
+.navbar-burger
+  color: $navbar-burger-color
+  +hamburger($navbar-height)
+  margin-left: auto
+
+.navbar-menu
+  display: none
+
+.navbar-item,
+.navbar-link
+  color: $navbar-item-color
+  display: block
+  line-height: 1.5
+  padding: 0.5rem 0.75rem
+  position: relative
+  .icon
+    &:only-child
+      margin-left: -0.25rem
+      margin-right: -0.25rem
+
+a.navbar-item,
+.navbar-link
+  cursor: pointer
+  &:focus,
+  &:focus-within,
+  &:hover,
+  &.is-active
+    background-color: $navbar-item-hover-background-color
+    color: $navbar-item-hover-color
+
+.navbar-item
+  display: block
+  flex-grow: 0
+  flex-shrink: 0
+  img
+    max-height: $navbar-item-img-max-height
+  &.has-dropdown
+    padding: 0
+  &.is-expanded
+    flex-grow: 1
+    flex-shrink: 1
+  &.is-tab
+    border-bottom: 1px solid transparent
+    min-height: $navbar-height
+    padding-bottom: calc(0.5rem - 1px)
+    &:focus,
+    &:hover
+      background-color: $navbar-tab-hover-background-color
+      border-bottom-color: $navbar-tab-hover-border-bottom-color
+    &.is-active
+      background-color: $navbar-tab-active-background-color
+      border-bottom-color: $navbar-tab-active-border-bottom-color
+      border-bottom-style: $navbar-tab-active-border-bottom-style
+      border-bottom-width: $navbar-tab-active-border-bottom-width
+      color: $navbar-tab-active-color
+      padding-bottom: calc(0.5rem - #{$navbar-tab-active-border-bottom-width})
+
+.navbar-content
+  flex-grow: 1
+  flex-shrink: 1
+
+.navbar-link:not(.is-arrowless)
+  padding-right: 2.5em
+  &::after
+    @extend %arrow
+    border-color: $navbar-dropdown-arrow
+    margin-top: -0.375em
+    right: 1.125em
+
+.navbar-dropdown
+  font-size: 0.875rem
+  padding-bottom: 0.5rem
+  padding-top: 0.5rem
+  .navbar-item
+    padding-left: 1.5rem
+    padding-right: 1.5rem
+
+.navbar-divider
+  background-color: $navbar-divider-background-color
+  border: none
+  display: none
+  height: $navbar-divider-height
+  margin: 0.5rem 0
+
++until($navbar-breakpoint)
+  .navbar > .container
+    display: block
+  .navbar-brand,
+  .navbar-tabs
+    .navbar-item
+      align-items: center
+      display: flex
+  .navbar-link
+    &::after
+      display: none
+  .navbar-menu
+    background-color: $navbar-background-color
+    box-shadow: 0 8px 16px rgba($black, 0.1)
+    padding: 0.5rem 0
+    &.is-active
+      display: block
+  // Fixed navbar
+  .navbar
+    &.is-fixed-bottom-touch,
+    &.is-fixed-top-touch
+      +navbar-fixed
+    &.is-fixed-bottom-touch
+      bottom: 0
+      &.has-shadow
+        box-shadow: 0 -2px 3px rgba($black, 0.1)
+    &.is-fixed-top-touch
+      top: 0
+    &.is-fixed-top,
+    &.is-fixed-top-touch
+      .navbar-menu
+        +overflow-touch
+        max-height: calc(100vh - #{$navbar-height})
+        overflow: auto
+  html,
+  body
+    &.has-navbar-fixed-top-touch
+      padding-top: $navbar-height
+    &.has-navbar-fixed-bottom-touch
+      padding-bottom: $navbar-height
+
++from($navbar-breakpoint)
+  .navbar,
+  .navbar-menu,
+  .navbar-start,
+  .navbar-end
+    align-items: stretch
+    display: flex
+  .navbar
+    min-height: $navbar-height
+    &.is-spaced
+      padding: $navbar-padding-vertical $navbar-padding-horizontal
+      .navbar-start,
+      .navbar-end
+        align-items: center
+      a.navbar-item,
+      .navbar-link
+        border-radius: $radius
+    &.is-transparent
+      a.navbar-item,
+      .navbar-link
+        &:focus,
+        &:hover,
+        &.is-active
+          background-color: transparent !important
+      .navbar-item.has-dropdown
+        &.is-active,
+        &.is-hoverable:focus,
+        &.is-hoverable:focus-within,
+        &.is-hoverable:hover
+          .navbar-link
+            background-color: transparent !important
+      .navbar-dropdown
+        a.navbar-item
+          &:focus,
+          &:hover
+            background-color: $navbar-dropdown-item-hover-background-color
+            color: $navbar-dropdown-item-hover-color
+          &.is-active
+            background-color: $navbar-dropdown-item-active-background-color
+            color: $navbar-dropdown-item-active-color
+  .navbar-burger
+    display: none
+  .navbar-item,
+  .navbar-link
+    align-items: center
+    display: flex
+  .navbar-item
+    display: flex
+    &.has-dropdown
+      align-items: stretch
+    &.has-dropdown-up
+      .navbar-link::after
+        transform: rotate(135deg) translate(0.25em, -0.25em)
+      .navbar-dropdown
+        border-bottom: $navbar-dropdown-border-top
+        border-radius: $navbar-dropdown-radius $navbar-dropdown-radius 0 0
+        border-top: none
+        bottom: 100%
+        box-shadow: 0 -8px 8px rgba($black, 0.1)
+        top: auto
+    &.is-active,
+    &.is-hoverable:focus,
+    &.is-hoverable:focus-within,
+    &.is-hoverable:hover
+      .navbar-dropdown
+        display: block
+        .navbar.is-spaced &,
+        &.is-boxed
+          opacity: 1
+          pointer-events: auto
+          transform: translateY(0)
+  .navbar-menu
+    flex-grow: 1
+    flex-shrink: 0
+  .navbar-start
+    justify-content: flex-start
+    margin-right: auto
+  .navbar-end
+    justify-content: flex-end
+    margin-left: auto
+  .navbar-dropdown
+    background-color: $navbar-dropdown-background-color
+    border-bottom-left-radius: $navbar-dropdown-radius
+    border-bottom-right-radius: $navbar-dropdown-radius
+    border-top: $navbar-dropdown-border-top
+    box-shadow: 0 8px 8px rgba($black, 0.1)
+    display: none
+    font-size: 0.875rem
+    left: 0
+    min-width: 100%
+    position: absolute
+    top: 100%
+    z-index: $navbar-dropdown-z
+    .navbar-item
+      padding: 0.375rem 1rem
+      white-space: nowrap
+    a.navbar-item
+      padding-right: 3rem
+      &:focus,
+      &:hover
+        background-color: $navbar-dropdown-item-hover-background-color
+        color: $navbar-dropdown-item-hover-color
+      &.is-active
+        background-color: $navbar-dropdown-item-active-background-color
+        color: $navbar-dropdown-item-active-color
+    .navbar.is-spaced &,
+    &.is-boxed
+      border-radius: $navbar-dropdown-boxed-radius
+      border-top: none
+      box-shadow: $navbar-dropdown-boxed-shadow
+      display: block
+      opacity: 0
+      pointer-events: none
+      top: calc(100% + (#{$navbar-dropdown-offset}))
+      transform: translateY(-5px)
+      transition-duration: $speed
+      transition-property: opacity, transform
+    &.is-right
+      left: auto
+      right: 0
+  .navbar-divider
+    display: block
+  .navbar > .container,
+  .container > .navbar
+    .navbar-brand
+      margin-left: -.75rem
+    .navbar-menu
+      margin-right: -.75rem
+  // Fixed navbar
+  .navbar
+    &.is-fixed-bottom-desktop,
+    &.is-fixed-top-desktop
+      +navbar-fixed
+    &.is-fixed-bottom-desktop
+      bottom: 0
+      &.has-shadow
+        box-shadow: 0 -2px 3px rgba($black, 0.1)
+    &.is-fixed-top-desktop
+      top: 0
+  html,
+  body
+    &.has-navbar-fixed-top-desktop
+      padding-top: $navbar-height
+    &.has-navbar-fixed-bottom-desktop
+      padding-bottom: $navbar-height
+    &.has-spaced-navbar-fixed-top
+      padding-top: $navbar-height + ($navbar-padding-vertical * 2)
+    &.has-spaced-navbar-fixed-bottom
+      padding-bottom: $navbar-height + ($navbar-padding-vertical * 2)
+  // Hover/Active states
+  a.navbar-item,
+  .navbar-link
+    &.is-active
+      color: $navbar-item-active-color
+    &.is-active:not(:focus):not(:hover)
+      background-color: $navbar-item-active-background-color
+  .navbar-item.has-dropdown
+    &:focus,
+    &:hover,
+    &.is-active
+      .navbar-link
+        background-color: $navbar-item-hover-background-color
+
+// Combination
+
+.hero
+  &.is-fullheight-with-navbar
+    min-height: calc(100vh - #{$navbar-height})
diff --git a/assets/html/scss/bulma/components/pagination.sass b/assets/html/scss/bulma/components/pagination.sass
new file mode 100644
index 0000000000..634db9690c
--- /dev/null
+++ b/assets/html/scss/bulma/components/pagination.sass
@@ -0,0 +1,149 @@
+$pagination-color: $grey-darker !default
+$pagination-border-color: $grey-lighter !default
+$pagination-margin: -0.25rem !default
+$pagination-min-width: $control-height !default
+
+$pagination-item-font-size: 1em !default
+$pagination-item-margin: 0.25rem !default
+$pagination-item-padding-left: 0.5em !default
+$pagination-item-padding-right: 0.5em !default
+
+$pagination-hover-color: $link-hover !default
+$pagination-hover-border-color: $link-hover-border !default
+
+$pagination-focus-color: $link-focus !default
+$pagination-focus-border-color: $link-focus-border !default
+
+$pagination-active-color: $link-active !default
+$pagination-active-border-color: $link-active-border !default
+
+$pagination-disabled-color: $grey !default
+$pagination-disabled-background-color: $grey-lighter !default
+$pagination-disabled-border-color: $grey-lighter !default
+
+$pagination-current-color: $link-invert !default
+$pagination-current-background-color: $link !default
+$pagination-current-border-color: $link !default
+
+$pagination-ellipsis-color: $grey-light !default
+
+$pagination-shadow-inset: inset 0 1px 2px rgba($black, 0.2)
+
+.pagination
+  font-size: $size-normal
+  margin: $pagination-margin
+  // Sizes
+  &.is-small
+    font-size: $size-small
+  &.is-medium
+    font-size: $size-medium
+  &.is-large
+    font-size: $size-large
+  &.is-rounded
+    .pagination-previous,
+    .pagination-next
+      padding-left: 1em
+      padding-right: 1em
+      border-radius: $radius-rounded
+    .pagination-link
+      border-radius: $radius-rounded
+
+.pagination,
+.pagination-list
+  align-items: center
+  display: flex
+  justify-content: center
+  text-align: center
+
+.pagination-previous,
+.pagination-next,
+.pagination-link,
+.pagination-ellipsis
+  @extend %control
+  @extend %unselectable
+  font-size: $pagination-item-font-size
+  justify-content: center
+  margin: $pagination-item-margin
+  padding-left: $pagination-item-padding-left
+  padding-right: $pagination-item-padding-right
+  text-align: center
+
+.pagination-previous,
+.pagination-next,
+.pagination-link
+  border-color: $pagination-border-color
+  color: $pagination-color
+  min-width: $pagination-min-width
+  &:hover
+    border-color: $pagination-hover-border-color
+    color: $pagination-hover-color
+  &:focus
+    border-color: $pagination-focus-border-color
+  &:active
+    box-shadow: $pagination-shadow-inset
+  &[disabled]
+    background-color: $pagination-disabled-background-color
+    border-color: $pagination-disabled-border-color
+    box-shadow: none
+    color: $pagination-disabled-color
+    opacity: 0.5
+
+.pagination-previous,
+.pagination-next
+  padding-left: 0.75em
+  padding-right: 0.75em
+  white-space: nowrap
+
+.pagination-link
+  &.is-current
+    background-color: $pagination-current-background-color
+    border-color: $pagination-current-border-color
+    color: $pagination-current-color
+
+.pagination-ellipsis
+  color: $pagination-ellipsis-color
+  pointer-events: none
+
+.pagination-list
+  flex-wrap: wrap
+
++mobile
+  .pagination
+    flex-wrap: wrap
+  .pagination-previous,
+  .pagination-next
+    flex-grow: 1
+    flex-shrink: 1
+  .pagination-list
+    li
+      flex-grow: 1
+      flex-shrink: 1
+
++tablet
+  .pagination-list
+    flex-grow: 1
+    flex-shrink: 1
+    justify-content: flex-start
+    order: 1
+  .pagination-previous
+    order: 2
+  .pagination-next
+    order: 3
+  .pagination
+    justify-content: space-between
+    &.is-centered
+      .pagination-previous
+        order: 1
+      .pagination-list
+        justify-content: center
+        order: 2
+      .pagination-next
+        order: 3
+    &.is-right
+      .pagination-previous
+        order: 1
+      .pagination-next
+        order: 2
+      .pagination-list
+        justify-content: flex-end
+        order: 3
diff --git a/assets/html/scss/bulma/components/panel.sass b/assets/html/scss/bulma/components/panel.sass
new file mode 100644
index 0000000000..92d2cccf8c
--- /dev/null
+++ b/assets/html/scss/bulma/components/panel.sass
@@ -0,0 +1,103 @@
+$panel-margin: $block-spacing !default
+$panel-item-border: 1px solid $border !default
+
+$panel-heading-background-color: $background !default
+$panel-heading-color: $text-strong !default
+$panel-heading-line-height: 1.25 !default
+$panel-heading-padding: 0.5em 0.75em !default
+$panel-heading-radius: $radius !default
+$panel-heading-size: 1.25em !default
+$panel-heading-weight: $weight-light !default
+
+$panel-tabs-font-size: 0.875em !default
+$panel-tab-border-bottom: 1px solid $border !default
+$panel-tab-active-border-bottom-color: $link-active-border !default
+$panel-tab-active-color: $link-active !default
+
+$panel-list-item-color: $text !default
+$panel-list-item-hover-color: $link !default
+
+$panel-block-color: $text-strong !default
+$panel-block-hover-background-color: $background !default
+$panel-block-active-border-left-color: $link !default
+$panel-block-active-color: $link-active !default
+$panel-block-active-icon-color: $link !default
+
+$panel-icon-color: $text-light !default
+
+.panel
+  font-size: $size-normal
+  &:not(:last-child)
+    margin-bottom: $panel-margin
+
+.panel-heading,
+.panel-tabs,
+.panel-block
+  border-bottom: $panel-item-border
+  border-left: $panel-item-border
+  border-right: $panel-item-border
+  &:first-child
+    border-top: $panel-item-border
+
+.panel-heading
+  background-color: $panel-heading-background-color
+  border-radius: $panel-heading-radius $panel-heading-radius 0 0
+  color: $panel-heading-color
+  font-size: $panel-heading-size
+  font-weight: $panel-heading-weight
+  line-height: $panel-heading-line-height
+  padding: $panel-heading-padding
+
+.panel-tabs
+  align-items: flex-end
+  display: flex
+  font-size: $panel-tabs-font-size
+  justify-content: center
+  a
+    border-bottom: $panel-tab-border-bottom
+    margin-bottom: -1px
+    padding: 0.5em
+    // Modifiers
+    &.is-active
+      border-bottom-color: $panel-tab-active-border-bottom-color
+      color: $panel-tab-active-color
+
+.panel-list
+  a
+    color: $panel-list-item-color
+    &:hover
+      color: $panel-list-item-hover-color
+
+.panel-block
+  align-items: center
+  color: $panel-block-color
+  display: flex
+  justify-content: flex-start
+  padding: 0.5em 0.75em
+  input[type="checkbox"]
+    margin-right: 0.75em
+  & > .control
+    flex-grow: 1
+    flex-shrink: 1
+    width: 100%
+  &.is-wrapped
+    flex-wrap: wrap
+  &.is-active
+    border-left-color: $panel-block-active-border-left-color
+    color: $panel-block-active-color
+    .panel-icon
+      color: $panel-block-active-icon-color
+
+a.panel-block,
+label.panel-block
+  cursor: pointer
+  &:hover
+    background-color: $panel-block-hover-background-color
+
+.panel-icon
+  +fa(14px, 1em)
+  color: $panel-icon-color
+  margin-right: 0.75em
+  .fa
+    font-size: inherit
+    line-height: inherit
diff --git a/assets/html/scss/bulma/components/tabs.sass b/assets/html/scss/bulma/components/tabs.sass
new file mode 100644
index 0000000000..21ed90ae30
--- /dev/null
+++ b/assets/html/scss/bulma/components/tabs.sass
@@ -0,0 +1,151 @@
+$tabs-border-bottom-color: $border !default
+$tabs-border-bottom-style: solid !default
+$tabs-border-bottom-width: 1px !default
+$tabs-link-color: $text !default
+$tabs-link-hover-border-bottom-color: $text-strong !default
+$tabs-link-hover-color: $text-strong !default
+$tabs-link-active-border-bottom-color: $link !default
+$tabs-link-active-color: $link !default
+$tabs-link-padding: 0.5em 1em !default
+
+$tabs-boxed-link-radius: $radius !default
+$tabs-boxed-link-hover-background-color: $background !default
+$tabs-boxed-link-hover-border-bottom-color: $border !default
+
+$tabs-boxed-link-active-background-color: $white !default
+$tabs-boxed-link-active-border-color: $border !default
+$tabs-boxed-link-active-border-bottom-color: transparent !default
+
+$tabs-toggle-link-border-color: $border !default
+$tabs-toggle-link-border-style: solid !default
+$tabs-toggle-link-border-width: 1px !default
+$tabs-toggle-link-hover-background-color: $background !default
+$tabs-toggle-link-hover-border-color: $border-hover !default
+$tabs-toggle-link-radius: $radius !default
+$tabs-toggle-link-active-background-color: $link !default
+$tabs-toggle-link-active-border-color: $link !default
+$tabs-toggle-link-active-color: $link-invert !default
+
+.tabs
+  @extend %block
+  +overflow-touch
+  @extend %unselectable
+  align-items: stretch
+  display: flex
+  font-size: $size-normal
+  justify-content: space-between
+  overflow: hidden
+  overflow-x: auto
+  white-space: nowrap
+  a
+    align-items: center
+    border-bottom-color: $tabs-border-bottom-color
+    border-bottom-style: $tabs-border-bottom-style
+    border-bottom-width: $tabs-border-bottom-width
+    color: $tabs-link-color
+    display: flex
+    justify-content: center
+    margin-bottom: -#{$tabs-border-bottom-width}
+    padding: $tabs-link-padding
+    vertical-align: top
+    &:hover
+      border-bottom-color: $tabs-link-hover-border-bottom-color
+      color: $tabs-link-hover-color
+  li
+    display: block
+    &.is-active
+      a
+        border-bottom-color: $tabs-link-active-border-bottom-color
+        color: $tabs-link-active-color
+  ul
+    align-items: center
+    border-bottom-color: $tabs-border-bottom-color
+    border-bottom-style: $tabs-border-bottom-style
+    border-bottom-width: $tabs-border-bottom-width
+    display: flex
+    flex-grow: 1
+    flex-shrink: 0
+    justify-content: flex-start
+    &.is-left
+      padding-right: 0.75em
+    &.is-center
+      flex: none
+      justify-content: center
+      padding-left: 0.75em
+      padding-right: 0.75em
+    &.is-right
+      justify-content: flex-end
+      padding-left: 0.75em
+  .icon
+    &:first-child
+      margin-right: 0.5em
+    &:last-child
+      margin-left: 0.5em
+  // Alignment
+  &.is-centered
+    ul
+      justify-content: center
+  &.is-right
+    ul
+      justify-content: flex-end
+  // Styles
+  &.is-boxed
+    a
+      border: 1px solid transparent
+      border-radius: $tabs-boxed-link-radius $tabs-boxed-link-radius 0 0
+      &:hover
+        background-color: $tabs-boxed-link-hover-background-color
+        border-bottom-color: $tabs-boxed-link-hover-border-bottom-color
+    li
+      &.is-active
+        a
+          background-color: $tabs-boxed-link-active-background-color
+          border-color: $tabs-boxed-link-active-border-color
+          border-bottom-color: $tabs-boxed-link-active-border-bottom-color !important
+  &.is-fullwidth
+    li
+      flex-grow: 1
+      flex-shrink: 0
+  &.is-toggle
+    a
+      border-color: $tabs-toggle-link-border-color
+      border-style: $tabs-toggle-link-border-style
+      border-width: $tabs-toggle-link-border-width
+      margin-bottom: 0
+      position: relative
+      &:hover
+        background-color: $tabs-toggle-link-hover-background-color
+        border-color: $tabs-toggle-link-hover-border-color
+        z-index: 2
+    li
+      & + li
+        margin-left: -#{$tabs-toggle-link-border-width}
+      &:first-child a
+        border-radius: $tabs-toggle-link-radius 0 0 $tabs-toggle-link-radius
+      &:last-child a
+        border-radius: 0 $tabs-toggle-link-radius $tabs-toggle-link-radius 0
+      &.is-active
+        a
+          background-color: $tabs-toggle-link-active-background-color
+          border-color: $tabs-toggle-link-active-border-color
+          color: $tabs-toggle-link-active-color
+          z-index: 1
+    ul
+      border-bottom: none
+    &.is-toggle-rounded
+      li
+        &:first-child a
+          border-bottom-left-radius: $radius-rounded
+          border-top-left-radius: $radius-rounded
+          padding-left: 1.25em
+        &:last-child a
+          border-bottom-right-radius: $radius-rounded
+          border-top-right-radius: $radius-rounded
+          padding-right: 1.25em
+  // Sizes
+  &.is-small
+    font-size: $size-small
+  &.is-medium
+    font-size: $size-medium
+  &.is-large
+    font-size: $size-large
diff --git a/assets/html/scss/bulma/elements/_all.sass b/assets/html/scss/bulma/elements/_all.sass
new file mode 100644
index 0000000000..7490c00d86
--- /dev/null
+++ b/assets/html/scss/bulma/elements/_all.sass
@@ -0,0 +1,15 @@
+@charset "utf-8"
+
+@import "box.sass"
+@import "button.sass"
+@import "container.sass"
+@import "content.sass"
+@import "icon.sass"
+@import "image.sass"
+@import "notification.sass"
+@import "progress.sass"
+@import "table.sass"
+@import "tag.sass"
+@import "title.sass"
+
+@import "other.sass"
diff --git a/assets/html/scss/bulma/elements/box.sass b/assets/html/scss/bulma/elements/box.sass
new file mode 100644
index 0000000000..d58f405088
--- /dev/null
+++ b/assets/html/scss/bulma/elements/box.sass
@@ -0,0 +1,24 @@
+$box-color: $text !default
+$box-background-color: $white !default
+$box-radius: $radius-large !default
+$box-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1) !default
+$box-padding: 1.25rem !default
+
+$box-link-hover-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px $link !default
+$box-link-active-shadow: inset 0 1px 2px rgba($black, 0.2), 0 0 0 1px $link !default
+
+.box
+  @extend %block
+  background-color: $box-background-color
+  border-radius: $box-radius
+  box-shadow: $box-shadow
+  color: $box-color
+  display: block
+  padding: $box-padding
+
+a.box
+  &:hover,
+  &:focus
+    box-shadow: $box-link-hover-shadow
+  &:active
+    box-shadow: $box-link-active-shadow
diff --git a/assets/html/scss/bulma/elements/button.sass b/assets/html/scss/bulma/elements/button.sass
new file mode 100644
index 0000000000..5c5aca5887
--- /dev/null
+++ b/assets/html/scss/bulma/elements/button.sass
@@ -0,0 +1,305 @@
+$button-color: $grey-darker !default
+$button-background-color: $white !default
+$button-family: false !default
+
+$button-border-color: $grey-lighter !default
+$button-border-width: $control-border-width !default
+
+$button-padding-vertical: calc(0.375em - #{$button-border-width}) !default
+$button-padding-horizontal: 0.75em !default
+
+$button-hover-color: $link-hover !default
+$button-hover-border-color: $link-hover-border !default
+
+$button-focus-color: $link-focus !default
+$button-focus-border-color: $link-focus-border !default
+$button-focus-box-shadow-size: 0 0 0 0.125em !default
+$button-focus-box-shadow-color: rgba($link, 0.25) !default
+
+$button-active-color: $link-active !default
+$button-active-border-color: $link-active-border !default
+
+$button-text-color: $text !default
+$button-text-hover-background-color: $background !default
+$button-text-hover-color: $text-strong !default
+
+$button-disabled-background-color: $white !default
+$button-disabled-border-color: $grey-lighter !default
+$button-disabled-shadow: none !default
+$button-disabled-opacity: 0.5 !default
+
+$button-static-color: $grey !default
+$button-static-background-color: $white-ter !default
+$button-static-border-color: $grey-lighter !default
+
+// The button sizes use mixins so they can be used at different breakpoints
+=button-small
+  border-radius: $radius-small
+  font-size: $size-small
+=button-normal
+  font-size: $size-normal
+=button-medium
+  font-size: $size-medium
+=button-large
+  font-size: $size-large
+
+.button
+  @extend %control
+  @extend %unselectable
+  background-color: $button-background-color
+  border-color: $button-border-color
+  border-width: $button-border-width
+  color: $button-color
+  cursor: pointer
+  @if $button-family
+    font-family: $button-family
+  justify-content: center
+  padding-bottom: $button-padding-vertical
+  padding-left: $button-padding-horizontal
+  padding-right: $button-padding-horizontal
+  padding-top: $button-padding-vertical
+  text-align: center
+  white-space: nowrap
+  strong
+    color: inherit
+  .icon
+    &,
+    &.is-small,
+    &.is-medium,
+    &.is-large
+      height: 1.5em
+      width: 1.5em
+    &:first-child:not(:last-child)
+      margin-left: calc(-0.375em - #{$button-border-width})
+      margin-right: 0.1875em
+    &:last-child:not(:first-child)
+      margin-left: 0.1875em
+      margin-right: calc(-0.375em - #{$button-border-width})
+    &:first-child:last-child
+      margin-left: calc(-0.375em - #{$button-border-width})
+      margin-right: calc(-0.375em - #{$button-border-width})
+  // States
+  &:hover,
+  &.is-hovered
+    border-color: $button-hover-border-color
+    color: $button-hover-color
+  &:focus,
+  &.is-focused
+    border-color: $button-focus-border-color
+    color: $button-focus-color
+    &:not(:active)
+      box-shadow: $button-focus-box-shadow-size $button-focus-box-shadow-color
+  &:active,
+  &.is-active
+    border-color: $button-active-border-color
+    color: $button-active-color
+  // Colors
+  &.is-text
+    background-color: transparent
+    border-color: transparent
+    color: $button-text-color
+    text-decoration: underline
+    &:hover,
+    &.is-hovered,
+    &:focus,
+    &.is-focused
+      background-color: $button-text-hover-background-color
+      color: $button-text-hover-color
+    &:active,
+    &.is-active
+      background-color: darken($button-text-hover-background-color, 5%)
+      color: $button-text-hover-color
+    &[disabled],
+    fieldset[disabled] &
+      background-color: transparent
+      border-color: transparent
+      box-shadow: none
+  @each $name, $pair in $colors
+    $color: nth($pair, 1)
+    $color-invert: nth($pair, 2)
+    &.is-#{$name}
+      background-color: $color
+      border-color: transparent
+      color: $color-invert
+      &:hover,
+      &.is-hovered
+        background-color: darken($color, 2.5%)
+        border-color: transparent
+        color: $color-invert
+      &:focus,
+      &.is-focused
+        border-color: transparent
+        color: $color-invert
+        &:not(:active)
+          box-shadow: $button-focus-box-shadow-size rgba($color, 0.25)
+      &:active,
+      &.is-active
+        background-color: darken($color, 5%)
+        border-color: transparent
+        color: $color-invert
+      &[disabled],
+      fieldset[disabled] &
+        background-color: $color
+        border-color: transparent
+        box-shadow: none
+      &.is-inverted
+        background-color: $color-invert
+        color: $color
+        &:hover,
+        &.is-hovered
+          background-color: darken($color-invert, 5%)
+        &[disabled],
+        fieldset[disabled] &
+          background-color: $color-invert
+          border-color: transparent
+          box-shadow: none
+          color: $color
+      &.is-loading
+        &::after
+          border-color: transparent transparent $color-invert $color-invert !important
+      &.is-outlined
+        background-color: transparent
+        border-color: $color
+        color: $color
+        &:hover,
+        &.is-hovered,
+        &:focus,
+        &.is-focused
+          background-color: $color
+          border-color: $color
+          color: $color-invert
+        &.is-loading
+          &::after
+            border-color: transparent transparent $color $color !important
+          &:hover,
+          &.is-hovered,
+          &:focus,
+          &.is-focused
+            &::after
+              border-color: transparent transparent $color-invert $color-invert !important
+        &[disabled],
+        fieldset[disabled] &
+          background-color: transparent
+          border-color: $color
+          box-shadow: none
+          color: $color
+      &.is-inverted.is-outlined
+        background-color: transparent
+        border-color: $color-invert
+        color: $color-invert
+        &:hover,
+        &.is-hovered,
+        &:focus,
+        &.is-focused
+          background-color: $color-invert
+          color: $color
+        &.is-loading
+          &:hover,
+          &.is-hovered,
+          &:focus,
+          &.is-focused
+            &::after
+              border-color: transparent transparent $color $color !important
+        &[disabled],
+        fieldset[disabled] &
+          background-color: transparent
+          border-color: $color-invert
+          box-shadow: none
+          color: $color-invert
+  // Sizes
+  &.is-small
+    +button-small
+  &.is-normal
+    +button-normal
+  &.is-medium
+    +button-medium
+  &.is-large
+    +button-large
+  // Modifiers
+  &[disabled],
+  fieldset[disabled] &
+    background-color: $button-disabled-background-color
+    border-color: $button-disabled-border-color
+    box-shadow: $button-disabled-shadow
+    opacity: $button-disabled-opacity
+  &.is-fullwidth
+    display: flex
+    width: 100%
+  &.is-loading
+    color: transparent !important
+    pointer-events: none
+    &::after
+      @extend %loader
+      +center(1em)
+      position: absolute !important
+  &.is-static
+    background-color: $button-static-background-color
+    border-color: $button-static-border-color
+    color: $button-static-color
+    box-shadow: none
+    pointer-events: none
+  &.is-rounded
+    border-radius: $radius-rounded
+    padding-left: 1em
+    padding-right: 1em
+
+.buttons
+  align-items: center
+  display: flex
+  flex-wrap: wrap
+  justify-content: flex-start
+  .button
+    margin-bottom: 0.5rem
+    &:not(:last-child):not(.is-fullwidth)
+      margin-right: 0.5rem
+  &:last-child
+    margin-bottom: -0.5rem
+  &:not(:last-child)
+    margin-bottom: 1rem
+  // Sizes
+  &.are-small
+    .button:not(.is-normal):not(.is-medium):not(.is-large)
+      +button-small
+  &.are-medium
+    .button:not(.is-small):not(.is-normal):not(.is-large)
+      +button-medium
+  &.are-large
+    .button:not(.is-small):not(.is-normal):not(.is-medium)
+      +button-large
+  &.has-addons
+    .button
+      &:not(:first-child)
+        border-bottom-left-radius: 0
+        border-top-left-radius: 0
+      &:not(:last-child)
+        border-bottom-right-radius: 0
+        border-top-right-radius: 0
+        margin-right: -1px
+      &:last-child
+        margin-right: 0
+      &:hover,
+      &.is-hovered
+        z-index: 2
+      &:focus,
+      &.is-focused,
+      &:active,
+      &.is-active,
+      &.is-selected
+        z-index: 3
+        &:hover
+          z-index: 4
+      &.is-expanded
+        flex-grow: 1
+        flex-shrink: 1
+  &.is-centered
+    justify-content: center
+    &:not(.has-addons)
+      .button:not(.is-fullwidth)
+        margin-left: 0.25rem
+        margin-right: 0.25rem
+  &.is-right
+    justify-content: flex-end
+    &:not(.has-addons)
+      .button:not(.is-fullwidth)
+        margin-left: 0.25rem
+        margin-right: 0.25rem
diff --git a/assets/html/scss/bulma/elements/container.sass b/assets/html/scss/bulma/elements/container.sass
new file mode 100644
index 0000000000..c69a99362e
--- /dev/null
+++ b/assets/html/scss/bulma/elements/container.sass
@@ -0,0 +1,23 @@
+$container-offset: (2 * $gap) !default
+
+.container
+  flex-grow: 1
+  margin: 0 auto
+  position: relative
+  width: auto
+  +desktop
+    max-width: $desktop - $container-offset
+    &.is-fluid
+      margin-left: $gap
+      margin-right: $gap
+      max-width: none
+  +until-widescreen
+    &.is-widescreen
+      max-width: $widescreen - $container-offset
+  +until-fullhd
+    &.is-fullhd
+      max-width: $fullhd - $container-offset
+  +widescreen
+    max-width: $widescreen - $container-offset
+  +fullhd
+    max-width: $fullhd - $container-offset
diff --git a/assets/html/scss/bulma/elements/content.sass b/assets/html/scss/bulma/elements/content.sass
new file mode 100644
index 0000000000..001419abd8
--- /dev/null
+++ b/assets/html/scss/bulma/elements/content.sass
@@ -0,0 +1,155 @@
+$content-heading-color: $text-strong !default
+$content-heading-weight: $weight-semibold !default
+$content-heading-line-height: 1.125 !default
+
+$content-blockquote-background-color: $background !default
+$content-blockquote-border-left: 5px solid $border !default
+$content-blockquote-padding: 1.25em 1.5em !default
+
+$content-pre-padding: 1.25em 1.5em !default
+
+$content-table-cell-border: 1px solid $border !default
+$content-table-cell-border-width: 0 0 1px !default
+$content-table-cell-padding: 0.5em 0.75em !default
+$content-table-cell-heading-color: $text-strong !default
+$content-table-head-cell-border-width: 0 0 2px !default
+$content-table-head-cell-color: $text-strong !default
+$content-table-foot-cell-border-width: 2px 0 0 !default
+$content-table-foot-cell-color: $text-strong !default
+
+.content
+  @extend %block
+  // Inline
+  li + li
+    margin-top: 0.25em
+  // Block
+  p,
+  dl,
+  ol,
+  ul,
+  blockquote,
+  pre,
+  table
+    &:not(:last-child)
+      margin-bottom: 1em
+  h1,
+  h2,
+  h3,
+  h4,
+  h5,
+  h6
+    color: $content-heading-color
+    font-weight: $content-heading-weight
+    line-height: $content-heading-line-height
+  h1
+    font-size: 2em
+    margin-bottom: 0.5em
+    &:not(:first-child)
+      margin-top: 1em
+  h2
+    font-size: 1.75em
+    margin-bottom: 0.5714em
+    &:not(:first-child)
+      margin-top: 1.1428em
+  h3
+    font-size: 1.5em
+    margin-bottom: 0.6666em
+    &:not(:first-child)
+      margin-top: 1.3333em
+  h4
+    font-size: 1.25em
+    margin-bottom: 0.8em
+  h5
+    font-size: 1.125em
+    margin-bottom: 0.8888em
+  h6
+    font-size: 1em
+    margin-bottom: 1em
+  blockquote
+    background-color: $content-blockquote-background-color
+    border-left: $content-blockquote-border-left
+    padding: $content-blockquote-padding
+  ol
+    list-style-position: outside
+    margin-left: 2em
+    margin-top: 1em
+    &:not([type])
+      list-style-type: decimal
+      &.is-lower-alpha
+        list-style-type: lower-alpha
+      &.is-lower-roman
+        list-style-type: lower-roman
+      &.is-upper-alpha
+        list-style-type: upper-alpha
+      &.is-upper-roman
+        list-style-type: upper-roman
+  ul
+    list-style: disc outside
+    margin-left: 2em
+    margin-top: 1em
+    ul
+      list-style-type: circle
+      margin-top: 0.5em
+      ul
+        list-style-type: square
+  dd
+    margin-left: 2em
+  figure
+    margin-left: 2em
+    margin-right: 2em
+    text-align: center
+    &:not(:first-child)
+      margin-top: 2em
+    &:not(:last-child)
+      margin-bottom: 2em
+    img
+      display: inline-block
+    figcaption
+      font-style: italic
+  pre
+    +overflow-touch
+    overflow-x: auto
+    padding: $content-pre-padding
+    white-space: pre
+    word-wrap: normal
+  sup,
+  sub
+    font-size: 75%
+  table
+    width: 100%
+    td,
+    th
+      border: $content-table-cell-border
+      border-width: $content-table-cell-border-width
+      padding: $content-table-cell-padding
+      vertical-align: top
+    th
+      color: $content-table-cell-heading-color
+      &:not([align])
+        text-align: left
+    thead
+      td,
+      th
+        border-width: $content-table-head-cell-border-width
+        color: $content-table-head-cell-color
+    tfoot
+      td,
+      th
+        border-width: $content-table-foot-cell-border-width
+        color: $content-table-foot-cell-color
+    tbody
+      tr
+        &:last-child
+          td,
+          th
+            border-bottom-width: 0
+  .tabs
+    li + li
+      margin-top: 0
+  // Sizes
+  &.is-small
+    font-size: $size-small
+  &.is-medium
+    font-size: $size-medium
+  &.is-large
+    font-size: $size-large
diff --git a/assets/html/scss/bulma/elements/form.sass b/assets/html/scss/bulma/elements/form.sass
new file mode 100644
index 0000000000..3122dc4c5e
--- /dev/null
+++ b/assets/html/scss/bulma/elements/form.sass
@@ -0,0 +1 @@
+@warn "The form.sass file is DEPRECATED. It has moved into its own /form folder. Please import sass/form/_all instead."
diff --git a/assets/html/scss/bulma/elements/icon.sass b/assets/html/scss/bulma/elements/icon.sass
new file mode 100644
index 0000000000..988546c7fc
--- /dev/null
+++ b/assets/html/scss/bulma/elements/icon.sass
@@ -0,0 +1,21 @@
+$icon-dimensions: 1.5rem !default
+$icon-dimensions-small: 1rem !default
+$icon-dimensions-medium: 2rem !default
+$icon-dimensions-large: 3rem !default
+
+.icon
+  align-items: center
+  display: inline-flex
+  justify-content: center
+  height: $icon-dimensions
+  width: $icon-dimensions
+  // Sizes
+  &.is-small
+    height: $icon-dimensions-small
+    width: $icon-dimensions-small
+  &.is-medium
+    height: $icon-dimensions-medium
+    width: $icon-dimensions-medium
+  &.is-large
+    height: $icon-dimensions-large
+    width: $icon-dimensions-large
diff --git a/assets/html/scss/bulma/elements/image.sass b/assets/html/scss/bulma/elements/image.sass
new file mode 100644
index 0000000000..cfa64fef72
--- /dev/null
+++ b/assets/html/scss/bulma/elements/image.sass
@@ -0,0 +1,69 @@
+$dimensions: 16 24 32 48 64 96 128 !default
+
+.image
+  display: block
+  position: relative
+  img
+    display: block
+    height: auto
+    width: 100%
+    &.is-rounded
+      border-radius: $radius-rounded
+  // Ratio
+  &.is-square,
+  &.is-1by1,
+  &.is-5by4,
+  &.is-4by3,
+  &.is-3by2,
+  &.is-5by3,
+  &.is-16by9,
+  &.is-2by1,
+  &.is-3by1,
+  &.is-4by5,
+  &.is-3by4,
+  &.is-2by3,
+  &.is-3by5,
+  &.is-9by16,
+  &.is-1by2,
+  &.is-1by3
+    img,
+    .has-ratio
+      @extend %overlay
+      height: 100%
+      width: 100%
+  &.is-square,
+  &.is-1by1
+    padding-top: 100%
+  &.is-5by4
+    padding-top: 80%
+  &.is-4by3
+    padding-top: 75%
+  &.is-3by2
+    padding-top: 66.6666%
+  &.is-5by3
+    padding-top: 60%
+  &.is-16by9
+    padding-top: 56.25%
+  &.is-2by1
+    padding-top: 50%
+  &.is-3by1
+    padding-top: 33.3333%
+  &.is-4by5
+    padding-top: 125%
+  &.is-3by4
+    padding-top: 133.3333%
+  &.is-2by3
+    padding-top: 150%
+  &.is-3by5
+    padding-top: 166.6666%
+  &.is-9by16
+    padding-top: 177.7777%
+  &.is-1by2
+    padding-top: 200%
+  &.is-1by3
+    padding-top: 300%
+  // Sizes
+  @each $dimension in $dimensions
+    &.is-#{$dimension}x#{$dimension}
+      height: $dimension * 1px
+      width: $dimension * 1px
diff --git a/assets/html/scss/bulma/elements/notification.sass b/assets/html/scss/bulma/elements/notification.sass
new file mode 100644
index 0000000000..2bda414444
--- /dev/null
+++ b/assets/html/scss/bulma/elements/notification.sass
@@ -0,0 +1,35 @@
+$notification-background-color: $background !default
+$notification-radius: $radius !default
+$notification-padding: 1.25rem 2.5rem 1.25rem 1.5rem !default
+
+.notification
+  @extend %block
+  background-color: $notification-background-color
+  border-radius: $notification-radius
+  padding: $notification-padding
+  position: relative
+  a:not(.button):not(.dropdown-item)
+    color: currentColor
+    text-decoration: underline
+  strong
+    color: currentColor
+  code,
+  pre
+    background: $white
+  pre code
+    background: transparent
+  & > .delete
+    position: absolute
+    right: 0.5rem
+    top: 0.5rem
+  .title,
+  .subtitle,
+  .content
+    color: currentColor
+  // Colors
+  @each $name, $pair in $colors
+    $color: nth($pair, 1)
+    $color-invert: nth($pair, 2)
+    &.is-#{$name}
+      background-color: $color
+      color: $color-invert
diff --git a/assets/html/scss/bulma/elements/other.sass b/assets/html/scss/bulma/elements/other.sass
new file mode 100644
index 0000000000..5725617c26
--- /dev/null
+++ b/assets/html/scss/bulma/elements/other.sass
@@ -0,0 +1,39 @@
+.block
+  @extend %block
+
+.delete
+  @extend %delete
+
+.heading
+  display: block
+  font-size: 11px
+  letter-spacing: 1px
+  margin-bottom: 5px
+  text-transform: uppercase
+
+.highlight
+  @extend %block
+  font-weight: $weight-normal
+  max-width: 100%
+  overflow: hidden
+  padding: 0
+  pre
+    overflow: auto
+    max-width: 100%
+
+.loader
+  @extend %loader
+
+.number
+  align-items: center
+  background-color: $background
+  border-radius: $radius-rounded
+  display: inline-flex
+  font-size: $size-medium
+  height: 2em
+  justify-content: center
+  margin-right: 1.5rem
+  min-width: 2.5em
+  padding: 0.25rem 0.5rem
+  text-align: center
+  vertical-align: top
diff --git a/assets/html/scss/bulma/elements/progress.sass b/assets/html/scss/bulma/elements/progress.sass
new file mode 100644
index 0000000000..08e2bcc99b
--- /dev/null
+++ b/assets/html/scss/bulma/elements/progress.sass
@@ -0,0 +1,67 @@
+$progress-bar-background-color: $border !default
+$progress-value-background-color: $text !default
+$progress-border-radius: $radius-rounded !default
+
+$progress-indeterminate-duration: 1.5s !default
+
+.progress
+  @extend %block
+  -moz-appearance: none
+  -webkit-appearance: none
+  border: none
+  border-radius: $progress-border-radius
+  display: block
+  height: $size-normal
+  overflow: hidden
+  padding: 0
+  width: 100%
+  &::-webkit-progress-bar
+    background-color: $progress-bar-background-color
+  &::-webkit-progress-value
+    background-color: $progress-value-background-color
+  &::-moz-progress-bar
+    background-color: $progress-value-background-color
+  &::-ms-fill
+    background-color: $progress-value-background-color
+    border: none
+  // Colors
+  @each $name, $pair in $colors
+    $color: nth($pair, 1)
+    &.is-#{$name}
+      &::-webkit-progress-value
+        background-color: $color
+      &::-moz-progress-bar
+        background-color: $color
+      &::-ms-fill
+        background-color: $color
+      &:indeterminate
+        background-image: linear-gradient(to right, $color 30%, $progress-bar-background-color 30%)
+
+  &:indeterminate
+    animation-duration: $progress-indeterminate-duration
+    animation-iteration-count: infinite
+    animation-name: moveIndeterminate
+    animation-timing-function: linear
+    background-color: $progress-bar-background-color
+    background-image: linear-gradient(to right, $text 30%, $progress-bar-background-color 30%)
+    background-position: top left
+    background-repeat: no-repeat
+    background-size: 150% 150%
+    &::-webkit-progress-bar
+      background-color: transparent
+    &::-moz-progress-bar
+      background-color: transparent
+
+  // Sizes
+  &.is-small
+    height: $size-small
+  &.is-medium
+    height: $size-medium
+  &.is-large
+    height: $size-large
+
+@keyframes moveIndeterminate
+  from
+    background-position: 200% 0
+  to
+    background-position: -200% 0
diff --git a/assets/html/scss/bulma/elements/table.sass b/assets/html/scss/bulma/elements/table.sass
new file mode 100644
index 0000000000..d344a1f75f
--- /dev/null
+++ b/assets/html/scss/bulma/elements/table.sass
@@ -0,0 +1,127 @@
+$table-color: $grey-darker !default
+$table-background-color: $white !default
+
+$table-cell-border: 1px solid $grey-lighter !default
+$table-cell-border-width: 0 0 1px !default
+$table-cell-padding: 0.5em 0.75em !default
+$table-cell-heading-color: $text-strong !default
+
+$table-head-cell-border-width: 0 0 2px !default
+$table-head-cell-color: $text-strong !default
+$table-foot-cell-border-width: 2px 0 0 !default
+$table-foot-cell-color: $text-strong !default
+
+$table-head-background-color: transparent !default
+$table-body-background-color: transparent !default
+$table-foot-background-color: transparent !default
+
+$table-row-hover-background-color: $white-bis !default
+
+$table-row-active-background-color: $primary !default
+$table-row-active-color: $primary-invert !default
+
+$table-striped-row-even-background-color: $white-bis !default
+$table-striped-row-even-hover-background-color: $white-ter !default
+
+.table
+  @extend %block
+  background-color: $table-background-color
+  color: $table-color
+  td,
+  th
+    border: $table-cell-border
+    border-width: $table-cell-border-width
+    padding: $table-cell-padding
+    vertical-align: top
+    // Colors
+    @each $name, $pair in $colors
+      $color: nth($pair, 1)
+      $color-invert: nth($pair, 2)
+      &.is-#{$name}
+        background-color: $color
+        border-color: $color
+        color: $color-invert
+    // Modifiers
+    &.is-narrow
+      white-space: nowrap
+      width: 1%
+    &.is-selected
+      background-color: $table-row-active-background-color
+      color: $table-row-active-color
+      a,
+      strong
+        color: currentColor
+  th
+    color: $table-cell-heading-color
+    &:not([align])
+      text-align: left
+  tr
+    &.is-selected
+      background-color: $table-row-active-background-color
+      color: $table-row-active-color
+      a,
+      strong
+        color: currentColor
+      td,
+      th
+        border-color: $table-row-active-color
+        color: currentColor
+  thead
+    background-color: $table-head-background-color
+    td,
+    th
+      border-width: $table-head-cell-border-width
+      color: $table-head-cell-color
+  tfoot
+    background-color: $table-foot-background-color
+    td,
+    th
+      border-width: $table-foot-cell-border-width
+      color: $table-foot-cell-color
+  tbody
+    background-color: $table-body-background-color
+    tr
+      &:last-child
+        td,
+        th
+          border-bottom-width: 0
+  // Modifiers
+  &.is-bordered
+    td,
+    th
+      border-width: 1px
+    tr
+      &:last-child
+        td,
+        th
+          border-bottom-width: 1px
+  &.is-fullwidth
+    width: 100%
+  &.is-hoverable
+    tbody
+      tr:not(.is-selected)
+        &:hover
+          background-color: $table-row-hover-background-color
+    &.is-striped
+      tbody
+        tr:not(.is-selected)
+          &:hover
+            background-color: $table-row-hover-background-color
+            &:nth-child(even)
+              background-color: $table-striped-row-even-hover-background-color
+  &.is-narrow
+    td,
+    th
+      padding: 0.25em 0.5em
+  &.is-striped
+    tbody
+      tr:not(.is-selected)
+        &:nth-child(even)
+          background-color: $table-striped-row-even-background-color
+
+.table-container
+  @extend %block
+  +overflow-touch
+  overflow: auto
+  overflow-y: hidden
+  max-width: 100%
diff --git a/assets/html/scss/bulma/elements/tag.sass b/assets/html/scss/bulma/elements/tag.sass
new file mode 100644
index 0000000000..7e7d0775f9
--- /dev/null
+++ b/assets/html/scss/bulma/elements/tag.sass
@@ -0,0 +1,121 @@
+$tag-background-color: $background !default
+$tag-color: $text !default
+$tag-radius: $radius !default
+$tag-delete-margin: 1px !default
+
+.tags
+  align-items: center
+  display: flex
+  flex-wrap: wrap
+  justify-content: flex-start
+  .tag
+    margin-bottom: 0.5rem
+    &:not(:last-child)
+      margin-right: 0.5rem
+  &:last-child
+    margin-bottom: -0.5rem
+  &:not(:last-child)
+    margin-bottom: 1rem
+  // Sizes
+  &.are-medium
+    .tag:not(.is-normal):not(.is-large)
+      font-size: $size-normal
+  &.are-large
+    .tag:not(.is-normal):not(.is-medium)
+      font-size: $size-medium
+  &.is-centered
+    justify-content: center
+    .tag
+      margin-right: 0.25rem
+      margin-left: 0.25rem
+  &.is-right
+    justify-content: flex-end
+    .tag
+      &:not(:first-child)
+        margin-left: 0.5rem
+      &:not(:last-child)
+        margin-right: 0
+  &.has-addons
+    .tag
+      margin-right: 0
+      &:not(:first-child)
+        margin-left: 0
+        border-bottom-left-radius: 0
+        border-top-left-radius: 0
+      &:not(:last-child)
+        border-bottom-right-radius: 0
+        border-top-right-radius: 0
+
+.tag:not(body)
+  align-items: center
+  background-color: $tag-background-color
+  border-radius: $tag-radius
+  color: $tag-color
+  display: inline-flex
+  font-size: $size-small
+  height: 2em
+  justify-content: center
+  line-height: 1.5
+  padding-left: 0.75em
+  padding-right: 0.75em
+  white-space: nowrap
+  .delete
+    margin-left: 0.25rem
+    margin-right: -0.375rem
+  // Colors
+  @each $name, $pair in $colors
+    $color: nth($pair, 1)
+    $color-invert: nth($pair, 2)
+    &.is-#{$name}
+      background-color: $color
+      color: $color-invert
+  // Sizes
+  &.is-normal
+    font-size: $size-small
+  &.is-medium
+    font-size: $size-normal
+  &.is-large
+    font-size: $size-medium
+  .icon
+    &:first-child:not(:last-child)
+      margin-left: -0.375em
+      margin-right: 0.1875em
+    &:last-child:not(:first-child)
+      margin-left: 0.1875em
+      margin-right: -0.375em
+    &:first-child:last-child
+      margin-left: -0.375em
+      margin-right: -0.375em
+  // Modifiers
+  &.is-delete
+    margin-left: $tag-delete-margin
+    padding: 0
+    position: relative
+    width: 2em
+    &::before,
+    &::after
+      background-color: currentColor
+      content: ""
+      display: block
+      left: 50%
+      position: absolute
+      top: 50%
+      transform: translateX(-50%) translateY(-50%) rotate(45deg)
+      transform-origin: center center
+    &::before
+      height: 1px
+      width: 50%
+    &::after
+      height: 50%
+      width: 1px
+    &:hover,
+    &:focus
+      background-color: darken($tag-background-color, 5%)
+    &:active
+      background-color: darken($tag-background-color, 10%)
+  &.is-rounded
+    border-radius: $radius-rounded
+
+a.tag
+  &:hover
+    text-decoration: underline
diff --git a/assets/html/scss/bulma/elements/title.sass b/assets/html/scss/bulma/elements/title.sass
new file mode 100644
index 0000000000..a3db142588
--- /dev/null
+++ b/assets/html/scss/bulma/elements/title.sass
@@ -0,0 +1,70 @@
+$title-color: $grey-darker !default
+$title-family: false !default
+$title-size: $size-3 !default
+$title-weight: $weight-semibold !default
+$title-line-height: 1.125 !default
+$title-strong-color: inherit !default
+$title-strong-weight: inherit !default
+$title-sub-size: 0.75em !default
+$title-sup-size: 0.75em !default
+
+$subtitle-color: $grey-dark !default
+$subtitle-family: false !default
+$subtitle-size: $size-5 !default
+$subtitle-weight: $weight-normal !default
+$subtitle-line-height: 1.25 !default
+$subtitle-strong-color: $grey-darker !default
+$subtitle-strong-weight: $weight-semibold !default
+$subtitle-negative-margin: -1.25rem !default
+
+.title,
+.subtitle
+  @extend %block
+  word-break: break-word
+  em,
+  span
+    font-weight: inherit
+  sub
+    font-size: $title-sub-size
+  sup
+    font-size: $title-sup-size
+  .tag
+    vertical-align: middle
+
+.title
+  color: $title-color
+  @if $title-family
+    font-family: $title-family
+  font-size: $title-size
+  font-weight: $title-weight
+  line-height: $title-line-height
+  strong
+    color: $title-strong-color
+    font-weight: $title-strong-weight
+  & + .highlight
+    margin-top: -0.75rem
+  &:not(.is-spaced) + .subtitle
+    margin-top: $subtitle-negative-margin
+  // Sizes
+  @each $size in $sizes
+    $i: index($sizes, $size)
+    &.is-#{$i}
+      font-size: $size
+
+.subtitle
+  color: $subtitle-color
+  @if $subtitle-family
+    font-family: $subtitle-family
+  font-size: $subtitle-size
+  font-weight: $subtitle-weight
+  line-height: $subtitle-line-height
+  strong
+    color: $subtitle-strong-color
+    font-weight: $subtitle-strong-weight
+  &:not(.is-spaced) + .title
+    margin-top: $subtitle-negative-margin
+  // Sizes
+  @each $size in $sizes
+    $i: index($sizes, $size)
+    &.is-#{$i}
+      font-size: $size
diff --git a/assets/html/scss/bulma/form/_all.sass b/assets/html/scss/bulma/form/_all.sass
new file mode 100644
index 0000000000..d9a2b95525
--- /dev/null
+++ b/assets/html/scss/bulma/form/_all.sass
@@ -0,0 +1,8 @@
+@charset "utf-8"
+
+@import "shared.sass"
+@import "input-textarea.sass"
+@import "checkbox-radio.sass"
+@import "select.sass"
+@import "file.sass"
+@import "tools.sass"
diff --git a/assets/html/scss/bulma/form/checkbox-radio.sass b/assets/html/scss/bulma/form/checkbox-radio.sass
new file mode 100644
index 0000000000..d9f3ff0c5d
--- /dev/null
+++ b/assets/html/scss/bulma/form/checkbox-radio.sass
@@ -0,0 +1,21 @@
+%checkbox-radio
+  cursor: pointer
+  display: inline-block
+  line-height: 1.25
+  position: relative
+  input
+    cursor: pointer
+  &:hover
+    color: $input-hover-color
+  &[disabled],
+  fieldset[disabled] &
+    color: $input-disabled-color
+    cursor: not-allowed
+
+.checkbox
+  @extend %checkbox-radio
+
+.radio
+  @extend %checkbox-radio
+  & + .radio
+    margin-left: 0.5em
diff --git a/assets/html/scss/bulma/form/file.sass b/assets/html/scss/bulma/form/file.sass
new file mode 100644
index 0000000000..b50a42e5d9
--- /dev/null
+++ b/assets/html/scss/bulma/form/file.sass
@@ -0,0 +1,180 @@
+$file-border-color: $border !default
+$file-radius: $radius !default
+
+$file-cta-background-color: $white-ter !default
+$file-cta-color: $grey-dark !default
+$file-cta-hover-color: $grey-darker !default
+$file-cta-active-color: $grey-darker !default
+
+$file-name-border-color: $border !default
+$file-name-border-style: solid !default
+$file-name-border-width: 1px 1px 1px 0 !default
+$file-name-max-width: 16em !default
+
+.file
+  @extend %unselectable
+  align-items: stretch
+  display: flex
+  justify-content: flex-start
+  position: relative
+  // Colors
+  @each $name, $pair in $colors
+    $color: nth($pair, 1)
+    $color-invert: nth($pair, 2)
+    &.is-#{$name}
+      .file-cta
+        background-color: $color
+        border-color: transparent
+        color: $color-invert
+      &:hover,
+      &.is-hovered
+        .file-cta
+          background-color: darken($color, 2.5%)
+          border-color: transparent
+          color: $color-invert
+      &:focus,
+      &.is-focused
+        .file-cta
+          border-color: transparent
+          box-shadow: 0 0 0.5em rgba($color, 0.25)
+          color: $color-invert
+      &:active,
+      &.is-active
+        .file-cta
+          background-color: darken($color, 5%)
+          border-color: transparent
+          color: $color-invert
+  // Sizes
+  &.is-small
+    font-size: $size-small
+  &.is-medium
+    font-size: $size-medium
+    .file-icon
+      .fa
+        font-size: 21px
+  &.is-large
+    font-size: $size-large
+    .file-icon
+      .fa
+        font-size: 28px
+  // Modifiers
+  &.has-name
+    .file-cta
+      border-bottom-right-radius: 0
+      border-top-right-radius: 0
+    .file-name
+      border-bottom-left-radius: 0
+      border-top-left-radius: 0
+    &.is-empty
+      .file-cta
+        border-radius: $file-radius
+      .file-name
+        display: none
+  &.is-boxed
+    .file-label
+      flex-direction: column
+    .file-cta
+      flex-direction: column
+      height: auto
+      padding: 1em 3em
+    .file-name
+      border-width: 0 1px 1px
+    .file-icon
+      height: 1.5em
+      width: 1.5em
+      .fa
+        font-size: 21px
+    &.is-small
+      .file-icon .fa
+        font-size: 14px
+    &.is-medium
+      .file-icon .fa
+        font-size: 28px
+    &.is-large
+      .file-icon .fa
+        font-size: 35px
+    &.has-name
+      .file-cta
+        border-radius: $file-radius $file-radius 0 0
+      .file-name
+        border-radius: 0 0 $file-radius $file-radius
+        border-width: 0 1px 1px
+  &.is-centered
+    justify-content: center
+  &.is-fullwidth
+    .file-label
+      width: 100%
+    .file-name
+      flex-grow: 1
+      max-width: none
+  &.is-right
+    justify-content: flex-end
+    .file-cta
+      border-radius: 0 $file-radius $file-radius 0
+    .file-name
+      border-radius: $file-radius 0 0 $file-radius
+      border-width: 1px 0 1px 1px
+      order: -1
+
+.file-label
+  align-items: stretch
+  display: flex
+  cursor: pointer
+  justify-content: flex-start
+  overflow: hidden
+  position: relative
+  &:hover
+    .file-cta
+      background-color: darken($file-cta-background-color, 2.5%)
+      color: $file-cta-hover-color
+    .file-name
+      border-color: darken($file-name-border-color, 2.5%)
+  &:active
+    .file-cta
+      background-color: darken($file-cta-background-color, 5%)
+      color: $file-cta-active-color
+    .file-name
+      border-color: darken($file-name-border-color, 5%)
+
+.file-input
+  height: 100%
+  left: 0
+  opacity: 0
+  outline: none
+  position: absolute
+  top: 0
+  width: 100%
+
+.file-cta,
+.file-name
+  @extend %control
+  border-color: $file-border-color
+  border-radius: $file-radius
+  font-size: 1em
+  padding-left: 1em
+  padding-right: 1em
+  white-space: nowrap
+
+.file-cta
+  background-color: $file-cta-background-color
+  color: $file-cta-color
+
+.file-name
+  border-color: $file-name-border-color
+  border-style: $file-name-border-style
+  border-width: $file-name-border-width
+  display: block
+  max-width: $file-name-max-width
+  overflow: hidden
+  text-align: left
+  text-overflow: ellipsis
+
+.file-icon
+  align-items: center
+  display: flex
+  height: 1em
+  justify-content: center
+  margin-right: 0.5em
+  width: 1em
+  .fa
+    font-size: 14px
diff --git a/assets/html/scss/bulma/form/input-textarea.sass b/assets/html/scss/bulma/form/input-textarea.sass
new file mode 100644
index 0000000000..da4315ce49
--- /dev/null
+++ b/assets/html/scss/bulma/form/input-textarea.sass
@@ -0,0 +1,60 @@
+%input-textarea
+  @extend %input
+  box-shadow: $input-shadow
+  max-width: 100%
+  width: 100%
+  &[readonly]
+    box-shadow: none
+  // Colors
+  @each $name, $pair in $colors
+    $color: nth($pair, 1)
+    &.is-#{$name}
+      border-color: $color
+      &:focus,
+      &.is-focused,
+      &:active,
+      &.is-active
+        box-shadow: $input-focus-box-shadow-size rgba($color, 0.25)
+  // Sizes
+  &.is-small
+    +control-small
+  &.is-medium
+    +control-medium
+  &.is-large
+    +control-large
+  // Modifiers
+  &.is-fullwidth
+    display: block
+    width: 100%
+  &.is-inline
+    display: inline
+    width: auto
+
+.input
+  @extend %input-textarea
+  &.is-rounded
+    border-radius: $radius-rounded
+    padding-left: 1em
+    padding-right: 1em
+  &.is-static
+    background-color: transparent
+    border-color: transparent
+    box-shadow: none
+    padding-left: 0
+    padding-right: 0
+
+.textarea
+  @extend %input-textarea
+  display: block
+  max-width: 100%
+  min-width: 100%
+  padding: 0.625em
+  resize: vertical
+  &:not([rows])
+    max-height: 600px
+    min-height: 120px
+  &[rows]
+    height: initial
+  // Modifiers
+  &.has-fixed-size
+    resize: none
diff --git a/assets/html/scss/bulma/form/select.sass b/assets/html/scss/bulma/form/select.sass
new file mode 100644
index 0000000000..909b9d5249
--- /dev/null
+++ b/assets/html/scss/bulma/form/select.sass
@@ -0,0 +1,85 @@
+.select
+  display: inline-block
+  max-width: 100%
+  position: relative
+  vertical-align: top
+  &:not(.is-multiple)
+    height: $input-height
+  &:not(.is-multiple):not(.is-loading)
+    &::after
+      @extend %arrow
+      border-color: $input-arrow
+      right: 1.125em
+      z-index: 4
+  &.is-rounded
+    select
+      border-radius: $radius-rounded
+      padding-left: 1em
+  select
+    @extend %input
+    cursor: pointer
+    display: block
+    font-size: 1em
+    max-width: 100%
+    outline: none
+    &::-ms-expand
+      display: none
+    &[disabled]:hover,
+    fieldset[disabled] &:hover
+      border-color: $input-disabled-border-color
+    &:not([multiple])
+      padding-right: 2.5em
+    &[multiple]
+      height: auto
+      padding: 0
+      option
+        padding: 0.5em 1em
+  // States
+  &:not(.is-multiple):not(.is-loading):hover
+    &::after
+      border-color: $input-hover-color
+  // Colors
+  @each $name, $pair in $colors
+    $color: nth($pair, 1)
+    &.is-#{$name}
+      &:not(:hover)::after
+        border-color: $color
+      select
+        border-color: $color
+        &:hover,
+        &.is-hovered
+          border-color: darken($color, 5%)
+        &:focus,
+        &.is-focused,
+        &:active,
+        &.is-active
+          box-shadow: $input-focus-box-shadow-size rgba($color, 0.25)
+  // Sizes
+  &.is-small
+    +control-small
+  &.is-medium
+    +control-medium
+  &.is-large
+    +control-large
+  // Modifiers
+  &.is-disabled
+    &::after
+      border-color: $input-disabled-color
+  &.is-fullwidth
+    width: 100%
+    select
+      width: 100%
+  &.is-loading
+    &::after
+      @extend %loader
+      margin-top: 0
+      position: absolute
+      right: 0.625em
+      top: 0.625em
+      transform: none
+    &.is-small:after
+      font-size: $size-small
+    &.is-medium:after
+      font-size: $size-medium
+    &.is-large:after
+      font-size: $size-large
diff --git a/assets/html/scss/bulma/form/shared.sass b/assets/html/scss/bulma/form/shared.sass
new file mode 100644
index 0000000000..d391955913
--- /dev/null
+++ b/assets/html/scss/bulma/form/shared.sass
@@ -0,0 +1,55 @@
+$input-color: $grey-darker !default
+$input-background-color: $white !default
+$input-border-color: $grey-lighter !default
+$input-height: $control-height !default
+$input-shadow: inset 0 1px 2px rgba($black, 0.1) !default
+$input-placeholder-color: rgba($input-color, 0.3) !default
+
+$input-hover-color: $grey-darker !default
+$input-hover-border-color: $grey-light !default
+
+$input-focus-color: $grey-darker !default
+$input-focus-border-color: $link !default
+$input-focus-box-shadow-size: 0 0 0 0.125em !default
+$input-focus-box-shadow-color: rgba($link, 0.25) !default
+
+$input-disabled-color: $text-light !default
+$input-disabled-background-color: $background !default
+$input-disabled-border-color: $background !default
+$input-disabled-placeholder-color: rgba($input-disabled-color, 0.3) !default
+
+$input-arrow: $link !default
+
+$input-icon-color: $grey-lighter !default
+$input-icon-active-color: $grey !default
+
+$input-radius: $radius !default
+
+=input
+  @extend %control
+  background-color: $input-background-color
+  border-color: $input-border-color
+  border-radius: $input-radius
+  color: $input-color
+  +placeholder
+    color: $input-placeholder-color
+  &:hover,
+  &.is-hovered
+    border-color: $input-hover-border-color
+  &:focus,
+  &.is-focused,
+  &:active,
+  &.is-active
+    border-color: $input-focus-border-color
+    box-shadow: $input-focus-box-shadow-size $input-focus-box-shadow-color
+  &[disabled],
+  fieldset[disabled] &
+    background-color: $input-disabled-background-color
+    border-color: $input-disabled-border-color
+    box-shadow: none
+    color: $input-disabled-color
+    +placeholder
+      color: $input-disabled-placeholder-color
+
+%input
+  +input
diff --git a/assets/html/scss/bulma/form/tools.sass b/assets/html/scss/bulma/form/tools.sass
new file mode 100644
index 0000000000..32ee141219
--- /dev/null
+++ b/assets/html/scss/bulma/form/tools.sass
@@ -0,0 +1,205 @@
+$label-color: $grey-darker !default
+$label-weight: $weight-bold !default
+
+$help-size: $size-small !default
+
+.label
+  color: $label-color
+  display: block
+  font-size: $size-normal
+  font-weight: $label-weight
+  &:not(:last-child)
+    margin-bottom: 0.5em
+  // Sizes
+  &.is-small
+    font-size: $size-small
+  &.is-medium
+    font-size: $size-medium
+  &.is-large
+    font-size: $size-large
+
+.help
+  display: block
+  font-size: $help-size
+  margin-top: 0.25rem
+  @each $name, $pair in $colors
+    $color: nth($pair, 1)
+    &.is-#{$name}
+      color: $color
+
+// Containers
+
+.field
+  &:not(:last-child)
+    margin-bottom: 0.75rem
+  // Modifiers
+  &.has-addons
+    display: flex
+    justify-content: flex-start
+    .control
+      &:not(:last-child)
+        margin-right: -1px
+      &:not(:first-child):not(:last-child)
+        .button,
+        .input,
+        .select select
+          border-radius: 0
+      &:first-child:not(:only-child)
+        .button,
+        .input,
+        .select select
+          border-bottom-right-radius: 0
+          border-top-right-radius: 0
+      &:last-child:not(:only-child)
+        .button,
+        .input,
+        .select select
+          border-bottom-left-radius: 0
+          border-top-left-radius: 0
+      .button,
+      .input,
+      .select select
+        &:not([disabled])
+          &:hover,
+          &.is-hovered
+            z-index: 2
+          &:focus,
+          &.is-focused,
+          &:active,
+          &.is-active
+            z-index: 3
+            &:hover
+              z-index: 4
+      &.is-expanded
+        flex-grow: 1
+        flex-shrink: 1
+    &.has-addons-centered
+      justify-content: center
+    &.has-addons-right
+      justify-content: flex-end
+    &.has-addons-fullwidth
+      .control
+        flex-grow: 1
+        flex-shrink: 0
+  &.is-grouped
+    display: flex
+    justify-content: flex-start
+    & > .control
+      flex-shrink: 0
+      &:not(:last-child)
+        margin-bottom: 0
+        margin-right: 0.75rem
+      &.is-expanded
+        flex-grow: 1
+        flex-shrink: 1
+    &.is-grouped-centered
+      justify-content: center
+    &.is-grouped-right
+      justify-content: flex-end
+    &.is-grouped-multiline
+      flex-wrap: wrap
+      & > .control
+        &:last-child,
+        &:not(:last-child)
+          margin-bottom: 0.75rem
+      &:last-child
+        margin-bottom: -0.75rem
+      &:not(:last-child)
+        margin-bottom: 0
+  &.is-horizontal
+    +tablet
+      display: flex
+
+.field-label
+  .label
+    font-size: inherit
+  +mobile
+    margin-bottom: 0.5rem
+  +tablet
+    flex-basis: 0
+    flex-grow: 1
+    flex-shrink: 0
+    margin-right: 1.5rem
+    text-align: right
+    &.is-small
+      font-size: $size-small
+      padding-top: 0.375em
+    &.is-normal
+      padding-top: 0.375em
+    &.is-medium
+      font-size: $size-medium
+      padding-top: 0.375em
+    &.is-large
+      font-size: $size-large
+      padding-top: 0.375em
+
+.field-body
+  .field .field
+    margin-bottom: 0
+  +tablet
+    display: flex
+    flex-basis: 0
+    flex-grow: 5
+    flex-shrink: 1
+    .field
+      margin-bottom: 0
+    & > .field
+      flex-shrink: 1
+      &:not(.is-narrow)
+        flex-grow: 1
+      &:not(:last-child)
+        margin-right: 0.75rem
+
+.control
+  box-sizing: border-box
+  clear: both
+  font-size: $size-normal
+  position: relative
+  text-align: left
+  // Modifiers
+  &.has-icons-left,
+  &.has-icons-right
+    .input,
+    .select
+      &:focus
+        & ~ .icon
+          color: $input-icon-active-color
+      &.is-small ~ .icon
+        font-size: $size-small
+      &.is-medium ~ .icon
+        font-size: $size-medium
+      &.is-large ~ .icon
+        font-size: $size-large
+    .icon
+      color: $input-icon-color
+      height: $input-height
+      pointer-events: none
+      position: absolute
+      top: 0
+      width: $input-height
+      z-index: 4
+  &.has-icons-left
+    .input,
+    .select select
+      padding-left: $input-height
+    .icon.is-left
+      left: 0
+  &.has-icons-right
+    .input,
+    .select select
+      padding-right: $input-height
+    .icon.is-right
+      right: 0
+  &.is-loading
+    &::after
+      @extend %loader
+      position: absolute !important
+      right: 0.625em
+      top: 0.625em
+      z-index: 4
+    &.is-small:after
+      font-size: $size-small
+    &.is-medium:after
+      font-size: $size-medium
+    &.is-large:after
+      font-size: $size-large
diff --git a/assets/html/scss/bulma/grid/_all.sass b/assets/html/scss/bulma/grid/_all.sass
new file mode 100644
index 0000000000..e53070f6c3
--- /dev/null
+++ b/assets/html/scss/bulma/grid/_all.sass
@@ -0,0 +1,4 @@
+@charset "utf-8"
+
+@import "columns.sass"
+@import "tiles.sass"
diff --git a/assets/html/scss/bulma/grid/columns.sass b/assets/html/scss/bulma/grid/columns.sass
new file mode 100644
index 0000000000..34a8353313
--- /dev/null
+++ b/assets/html/scss/bulma/grid/columns.sass
@@ -0,0 +1,504 @@
+$column-gap: 0.75rem !default
+
+.column
+  display: block
+  flex-basis: 0
+  flex-grow: 1
+  flex-shrink: 1
+  padding: $column-gap
+  .columns.is-mobile > &.is-narrow
+    flex: none
+  .columns.is-mobile > &.is-full
+    flex: none
+    width: 100%
+  .columns.is-mobile > &.is-three-quarters
+    flex: none
+    width: 75%
+  .columns.is-mobile > &.is-two-thirds
+    flex: none
+    width: 66.6666%
+  .columns.is-mobile > &.is-half
+    flex: none
+    width: 50%
+  .columns.is-mobile > &.is-one-third
+    flex: none
+    width: 33.3333%
+  .columns.is-mobile > &.is-one-quarter
+    flex: none
+    width: 25%
+  .columns.is-mobile > &.is-one-fifth
+    flex: none
+    width: 20%
+  .columns.is-mobile > &.is-two-fifths
+    flex: none
+    width: 40%
+  .columns.is-mobile > &.is-three-fifths
+    flex: none
+    width: 60%
+  .columns.is-mobile > &.is-four-fifths
+    flex: none
+    width: 80%
+  .columns.is-mobile > &.is-offset-three-quarters
+    margin-left: 75%
+  .columns.is-mobile > &.is-offset-two-thirds
+    margin-left: 66.6666%
+  .columns.is-mobile > &.is-offset-half
+    margin-left: 50%
+  .columns.is-mobile > &.is-offset-one-third
+    margin-left: 33.3333%
+  .columns.is-mobile > &.is-offset-one-quarter
+    margin-left: 25%
+  .columns.is-mobile > &.is-offset-one-fifth
+    margin-left: 20%
+  .columns.is-mobile > &.is-offset-two-fifths
+    margin-left: 40%
+  .columns.is-mobile > &.is-offset-three-fifths
+    margin-left: 60%
+  .columns.is-mobile > &.is-offset-four-fifths
+    margin-left: 80%
+  @for $i from 0 through 12
+    .columns.is-mobile > &.is-#{$i}
+      flex: none
+      width: percentage($i / 12)
+    .columns.is-mobile > &.is-offset-#{$i}
+      margin-left: percentage($i / 12)
+  +mobile
+    &.is-narrow-mobile
+      flex: none
+    &.is-full-mobile
+      flex: none
+      width: 100%
+    &.is-three-quarters-mobile
+      flex: none
+      width: 75%
+    &.is-two-thirds-mobile
+      flex: none
+      width: 66.6666%
+    &.is-half-mobile
+      flex: none
+      width: 50%
+    &.is-one-third-mobile
+      flex: none
+      width: 33.3333%
+    &.is-one-quarter-mobile
+      flex: none
+      width: 25%
+    &.is-one-fifth-mobile
+      flex: none
+      width: 20%
+    &.is-two-fifths-mobile
+      flex: none
+      width: 40%
+    &.is-three-fifths-mobile
+      flex: none
+      width: 60%
+    &.is-four-fifths-mobile
+      flex: none
+      width: 80%
+    &.is-offset-three-quarters-mobile
+      margin-left: 75%
+    &.is-offset-two-thirds-mobile
+      margin-left: 66.6666%
+    &.is-offset-half-mobile
+      margin-left: 50%
+    &.is-offset-one-third-mobile
+      margin-left: 33.3333%
+    &.is-offset-one-quarter-mobile
+      margin-left: 25%
+    &.is-offset-one-fifth-mobile
+      margin-left: 20%
+    &.is-offset-two-fifths-mobile
+      margin-left: 40%
+    &.is-offset-three-fifths-mobile
+      margin-left: 60%
+    &.is-offset-four-fifths-mobile
+      margin-left: 80%
+    @for $i from 0 through 12
+      &.is-#{$i}-mobile
+        flex: none
+        width: percentage($i / 12)
+      &.is-offset-#{$i}-mobile
+        margin-left: percentage($i / 12)
+  +tablet
+    &.is-narrow,
+    &.is-narrow-tablet
+      flex: none
+    &.is-full,
+    &.is-full-tablet
+      flex: none
+      width: 100%
+    &.is-three-quarters,
+    &.is-three-quarters-tablet
+      flex: none
+      width: 75%
+    &.is-two-thirds,
+    &.is-two-thirds-tablet
+      flex: none
+      width: 66.6666%
+    &.is-half,
+    &.is-half-tablet
+      flex: none
+      width: 50%
+    &.is-one-third,
+    &.is-one-third-tablet
+      flex: none
+      width: 33.3333%
+    &.is-one-quarter,
+    &.is-one-quarter-tablet
+      flex: none
+      width: 25%
+    &.is-one-fifth,
+    &.is-one-fifth-tablet
+      flex: none
+      width: 20%
+    &.is-two-fifths,
+    &.is-two-fifths-tablet
+      flex: none
+      width: 40%
+    &.is-three-fifths,
+    &.is-three-fifths-tablet
+      flex: none
+      width: 60%
+    &.is-four-fifths,
+    &.is-four-fifths-tablet
+      flex: none
+      width: 80%
+    &.is-offset-three-quarters,
+    &.is-offset-three-quarters-tablet
+      margin-left: 75%
+    &.is-offset-two-thirds,
+    &.is-offset-two-thirds-tablet
+      margin-left: 66.6666%
+    &.is-offset-half,
+    &.is-offset-half-tablet
+      margin-left: 50%
+    &.is-offset-one-third,
+    &.is-offset-one-third-tablet
+      margin-left: 33.3333%
+    &.is-offset-one-quarter,
+    &.is-offset-one-quarter-tablet
+      margin-left: 25%
+    &.is-offset-one-fifth,
+    &.is-offset-one-fifth-tablet
+      margin-left: 20%
+    &.is-offset-two-fifths,
+    &.is-offset-two-fifths-tablet
+      margin-left: 40%
+    &.is-offset-three-fifths,
+    &.is-offset-three-fifths-tablet
+      margin-left: 60%
+    &.is-offset-four-fifths,
+    &.is-offset-four-fifths-tablet
+      margin-left: 80%
+    @for $i from 0 through 12
+      &.is-#{$i},
+      &.is-#{$i}-tablet
+        flex: none
+        width: percentage($i / 12)
+      &.is-offset-#{$i},
+      &.is-offset-#{$i}-tablet
+        margin-left: percentage($i / 12)
+  +touch
+    &.is-narrow-touch
+      flex: none
+    &.is-full-touch
+      flex: none
+      width: 100%
+    &.is-three-quarters-touch
+      flex: none
+      width: 75%
+    &.is-two-thirds-touch
+      flex: none
+      width: 66.6666%
+    &.is-half-touch
+      flex: none
+      width: 50%
+    &.is-one-third-touch
+      flex: none
+      width: 33.3333%
+    &.is-one-quarter-touch
+      flex: none
+      width: 25%
+    &.is-one-fifth-touch
+      flex: none
+      width: 20%
+    &.is-two-fifths-touch
+      flex: none
+      width: 40%
+    &.is-three-fifths-touch
+      flex: none
+      width: 60%
+    &.is-four-fifths-touch
+      flex: none
+      width: 80%
+    &.is-offset-three-quarters-touch
+      margin-left: 75%
+    &.is-offset-two-thirds-touch
+      margin-left: 66.6666%
+    &.is-offset-half-touch
+      margin-left: 50%
+    &.is-offset-one-third-touch
+      margin-left: 33.3333%
+    &.is-offset-one-quarter-touch
+      margin-left: 25%
+    &.is-offset-one-fifth-touch
+      margin-left: 20%
+    &.is-offset-two-fifths-touch
+      margin-left: 40%
+    &.is-offset-three-fifths-touch
+      margin-left: 60%
+    &.is-offset-four-fifths-touch
+      margin-left: 80%
+    @for $i from 0 through 12
+      &.is-#{$i}-touch
+        flex: none
+        width: percentage($i / 12)
+      &.is-offset-#{$i}-touch
+        margin-left: percentage($i / 12)
+  +desktop
+    &.is-narrow-desktop
+      flex: none
+    &.is-full-desktop
+      flex: none
+      width: 100%
+    &.is-three-quarters-desktop
+      flex: none
+      width: 75%
+    &.is-two-thirds-desktop
+      flex: none
+      width: 66.6666%
+    &.is-half-desktop
+      flex: none
+      width: 50%
+    &.is-one-third-desktop
+      flex: none
+      width: 33.3333%
+    &.is-one-quarter-desktop
+      flex: none
+      width: 25%
+    &.is-one-fifth-desktop
+      flex: none
+      width: 20%
+    &.is-two-fifths-desktop
+      flex: none
+      width: 40%
+    &.is-three-fifths-desktop
+      flex: none
+      width: 60%
+    &.is-four-fifths-desktop
+      flex: none
+      width: 80%
+    &.is-offset-three-quarters-desktop
+      margin-left: 75%
+    &.is-offset-two-thirds-desktop
+      margin-left: 66.6666%
+    &.is-offset-half-desktop
+      margin-left: 50%
+    &.is-offset-one-third-desktop
+      margin-left: 33.3333%
+    &.is-offset-one-quarter-desktop
+      margin-left: 25%
+    &.is-offset-one-fifth-desktop
+      margin-left: 20%
+    &.is-offset-two-fifths-desktop
+      margin-left: 40%
+    &.is-offset-three-fifths-desktop
+      margin-left: 60%
+    &.is-offset-four-fifths-desktop
+      margin-left: 80%
+    @for $i from 0 through 12
+      &.is-#{$i}-desktop
+        flex: none
+        width: percentage($i / 12)
+      &.is-offset-#{$i}-desktop
+        margin-left: percentage($i / 12)
+  +widescreen
+    &.is-narrow-widescreen
+      flex: none
+    &.is-full-widescreen
+      flex: none
+      width: 100%
+    &.is-three-quarters-widescreen
+      flex: none
+      width: 75%
+    &.is-two-thirds-widescreen
+      flex: none
+      width: 66.6666%
+    &.is-half-widescreen
+      flex: none
+      width: 50%
+    &.is-one-third-widescreen
+      flex: none
+      width: 33.3333%
+    &.is-one-quarter-widescreen
+      flex: none
+      width: 25%
+    &.is-one-fifth-widescreen
+      flex: none
+      width: 20%
+    &.is-two-fifths-widescreen
+      flex: none
+      width: 40%
+    &.is-three-fifths-widescreen
+      flex: none
+      width: 60%
+    &.is-four-fifths-widescreen
+      flex: none
+      width: 80%
+    &.is-offset-three-quarters-widescreen
+      margin-left: 75%
+    &.is-offset-two-thirds-widescreen
+      margin-left: 66.6666%
+    &.is-offset-half-widescreen
+      margin-left: 50%
+    &.is-offset-one-third-widescreen
+      margin-left: 33.3333%
+    &.is-offset-one-quarter-widescreen
+      margin-left: 25%
+    &.is-offset-one-fifth-widescreen
+      margin-left: 20%
+    &.is-offset-two-fifths-widescreen
+      margin-left: 40%
+    &.is-offset-three-fifths-widescreen
+      margin-left: 60%
+    &.is-offset-four-fifths-widescreen
+      margin-left: 80%
+    @for $i from 0 through 12
+      &.is-#{$i}-widescreen
+        flex: none
+        width: percentage($i / 12)
+      &.is-offset-#{$i}-widescreen
+        margin-left: percentage($i / 12)
+  +fullhd
+    &.is-narrow-fullhd
+      flex: none
+    &.is-full-fullhd
+      flex: none
+      width: 100%
+    &.is-three-quarters-fullhd
+      flex: none
+      width: 75%
+    &.is-two-thirds-fullhd
+      flex: none
+      width: 66.6666%
+    &.is-half-fullhd
+      flex: none
+      width: 50%
+    &.is-one-third-fullhd
+      flex: none
+      width: 33.3333%
+    &.is-one-quarter-fullhd
+      flex: none
+      width: 25%
+    &.is-one-fifth-fullhd
+      flex: none
+      width: 20%
+    &.is-two-fifths-fullhd
+      flex: none
+      width: 40%
+    &.is-three-fifths-fullhd
+      flex: none
+      width: 60%
+    &.is-four-fifths-fullhd
+      flex: none
+      width: 80%
+    &.is-offset-three-quarters-fullhd
+      margin-left: 75%
+    &.is-offset-two-thirds-fullhd
+      margin-left: 66.6666%
+    &.is-offset-half-fullhd
+      margin-left: 50%
+    &.is-offset-one-third-fullhd
+      margin-left: 33.3333%
+    &.is-offset-one-quarter-fullhd
+      margin-left: 25%
+    &.is-offset-one-fifth-fullhd
+      margin-left: 20%
+    &.is-offset-two-fifths-fullhd
+      margin-left: 40%
+    &.is-offset-three-fifths-fullhd
+      margin-left: 60%
+    &.is-offset-four-fifths-fullhd
+      margin-left: 80%
+    @for $i from 0 through 12
+      &.is-#{$i}-fullhd
+        flex: none
+        width: percentage($i / 12)
+      &.is-offset-#{$i}-fullhd
+        margin-left: percentage($i / 12)
+
+.columns
+  margin-left: (-$column-gap)
+  margin-right: (-$column-gap)
+  margin-top: (-$column-gap)
+  &:last-child
+    margin-bottom: (-$column-gap)
+  &:not(:last-child)
+    margin-bottom: calc(1.5rem - #{$column-gap})
+  // Modifiers
+  &.is-centered
+    justify-content: center
+  &.is-gapless
+    margin-left: 0
+    margin-right: 0
+    margin-top: 0
+    & > .column
+      margin: 0
+      padding: 0 !important
+    &:not(:last-child)
+      margin-bottom: 1.5rem
+    &:last-child
+      margin-bottom: 0
+  &.is-mobile
+    display: flex
+  &.is-multiline
+    flex-wrap: wrap
+  &.is-vcentered
+    align-items: center
+  // Responsiveness
+  +tablet
+    &:not(.is-desktop)
+      display: flex
+  +desktop
+    // Modifiers
+    &.is-desktop
+      display: flex
+
+@if $variable-columns
+  .columns.is-variable
+    --columnGap: 0.75rem
+    margin-left: calc(-1 * var(--columnGap))
+    margin-right: calc(-1 * var(--columnGap))
+    .column
+      padding-left: var(--columnGap)
+      padding-right: var(--columnGap)
+    @for $i from 0 through 8
+      &.is-#{$i}
+        --columnGap: #{$i * 0.25rem}
+      +mobile
+        &.is-#{$i}-mobile
+          --columnGap: #{$i * 0.25rem}
+      +tablet
+        &.is-#{$i}-tablet
+          --columnGap: #{$i * 0.25rem}
+      +tablet-only
+        &.is-#{$i}-tablet-only
+          --columnGap: #{$i * 0.25rem}
+      +touch
+        &.is-#{$i}-touch
+          --columnGap: #{$i * 0.25rem}
+      +desktop
+        &.is-#{$i}-desktop
+          --columnGap: #{$i * 0.25rem}
+      +desktop-only
+        &.is-#{$i}-desktop-only
+          --columnGap: #{$i * 0.25rem}
+      +widescreen
+        &.is-#{$i}-widescreen
+          --columnGap: #{$i * 0.25rem}
+      +widescreen-only
+        &.is-#{$i}-widescreen-only
+          --columnGap: #{$i * 0.25rem}
+      +fullhd
+        &.is-#{$i}-fullhd
+          --columnGap: #{$i * 0.25rem}
diff --git a/assets/html/scss/bulma/grid/tiles.sass b/assets/html/scss/bulma/grid/tiles.sass
new file mode 100644
index 0000000000..15648c2981
--- /dev/null
+++ b/assets/html/scss/bulma/grid/tiles.sass
@@ -0,0 +1,34 @@
+$tile-spacing: 0.75rem !default
+
+.tile
+  align-items: stretch
+  display: block
+  flex-basis: 0
+  flex-grow: 1
+  flex-shrink: 1
+  min-height: min-content
+  // Modifiers
+  &.is-ancestor
+    margin-left: $tile-spacing * -1
+    margin-right: $tile-spacing * -1
+    margin-top: $tile-spacing * -1
+    &:last-child
+      margin-bottom: $tile-spacing * -1
+    &:not(:last-child)
+      margin-bottom: $tile-spacing
+  &.is-child
+    margin: 0 !important
+  &.is-parent
+    padding: $tile-spacing
+  &.is-vertical
+    flex-direction: column
+    & > .tile.is-child:not(:last-child)
+      margin-bottom: 1.5rem !important
+  // Responsiveness
+  +tablet
+    &:not(.is-child)
+      display: flex
+    @for $i from 1 through 12
+      &.is-#{$i}
+        flex: none
+        width: ($i / 12) * 100%
diff --git a/assets/html/scss/bulma/layout/_all.sass b/assets/html/scss/bulma/layout/_all.sass
new file mode 100644
index 0000000000..143ada35be
--- /dev/null
+++ b/assets/html/scss/bulma/layout/_all.sass
@@ -0,0 +1,5 @@
+@charset "utf-8"
+
+@import "hero.sass"
+@import "section.sass"
+@import "footer.sass"
diff --git a/assets/html/scss/bulma/layout/footer.sass b/assets/html/scss/bulma/layout/footer.sass
new file mode 100644
index 0000000000..aba1ecafe8
--- /dev/null
+++ b/assets/html/scss/bulma/layout/footer.sass
@@ -0,0 +1,9 @@
+$footer-background-color: $white-bis !default
+$footer-color: false !default
+$footer-padding: 3rem 1.5rem 6rem !default
+
+.footer
+  background-color: $footer-background-color
+  padding: $footer-padding
+  @if $footer-color
+    color: $footer-color
diff --git a/assets/html/scss/bulma/layout/hero.sass b/assets/html/scss/bulma/layout/hero.sass
new file mode 100644
index 0000000000..327d80fd98
--- /dev/null
+++ b/assets/html/scss/bulma/layout/hero.sass
@@ -0,0 +1,143 @@
+// Main container
+
+.hero
+  align-items: stretch
+  display: flex
+  flex-direction: column
+  justify-content: space-between
+  .navbar
+    background: none
+  .tabs
+    ul
+      border-bottom: none
+  // Colors
+  @each $name, $pair in $colors
+    $color: nth($pair, 1)
+    $color-invert: nth($pair, 2)
+    &.is-#{$name}
+      background-color: $color
+      color: $color-invert
+      a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
+      strong
+        color: inherit
+      .title
+        color: $color-invert
+      .subtitle
+        color: rgba($color-invert, 0.9)
+        a:not(.button),
+        strong
+          color: $color-invert
+      .navbar-menu
+        +touch
+          background-color: $color
+      .navbar-item,
+      .navbar-link
+        color: rgba($color-invert, 0.7)
+      a.navbar-item,
+      .navbar-link
+        &:hover,
+        &.is-active
+          background-color: darken($color, 5%)
+          color: $color-invert
+      .tabs
+        a
+          color: $color-invert
+          opacity: 0.9
+          &:hover
+            opacity: 1
+        li
+          &.is-active a
+            opacity: 1
+        &.is-boxed,
+        &.is-toggle
+          a
+            color: $color-invert
+            &:hover
+              background-color: rgba($black, 0.1)
+          li.is-active a
+            &,
+            &:hover
+              background-color: $color-invert
+              border-color: $color-invert
+              color: $color
+      // Modifiers
+      &.is-bold
+        $gradient-top-left: darken(saturate(adjust-hue($color, -10deg), 10%), 10%)
+        $gradient-bottom-right: lighten(saturate(adjust-hue($color, 10deg), 5%), 5%)
+        background-image: linear-gradient(141deg, $gradient-top-left 0%, $color 71%, $gradient-bottom-right 100%)
+        +mobile
+          .navbar-menu
+            background-image: linear-gradient(141deg, $gradient-top-left 0%, $color 71%, $gradient-bottom-right 100%)
+  // Sizes
+  &.is-small
+    .hero-body
+      padding-bottom: 1.5rem
+      padding-top: 1.5rem
+  &.is-medium
+    +tablet
+      .hero-body
+        padding-bottom: 9rem
+        padding-top: 9rem
+  &.is-large
+    +tablet
+      .hero-body
+        padding-bottom: 18rem
+        padding-top: 18rem
+  &.is-halfheight,
+  &.is-fullheight,
+  &.is-fullheight-with-navbar
+    .hero-body
+      align-items: center
+      display: flex
+      & > .container
+        flex-grow: 1
+        flex-shrink: 1
+  &.is-halfheight
+    min-height: 50vh
+  &.is-fullheight
+    min-height: 100vh
+
+// Components
+
+.hero-video
+  @extend %overlay
+  overflow: hidden
+  video
+    left: 50%
+    min-height: 100%
+    min-width: 100%
+    position: absolute
+    top: 50%
+    transform: translate3d(-50%, -50%, 0)
+  // Modifiers
+  &.is-transparent
+    opacity: 0.3
+  // Responsiveness
+  +mobile
+    display: none
+
+.hero-buttons
+  margin-top: 1.5rem
+  // Responsiveness
+  +mobile
+    .button
+      display: flex
+      &:not(:last-child)
+        margin-bottom: 0.75rem
+  +tablet
+    display: flex
+    justify-content: center
+    .button:not(:last-child)
+      margin-right: 1.5rem
+
+// Containers
+
+.hero-head,
+.hero-foot
+  flex-grow: 0
+  flex-shrink: 0
+
+.hero-body
+  flex-grow: 1
+  flex-shrink: 0
+  padding: 3rem 1.5rem
diff --git a/assets/html/scss/bulma/layout/section.sass b/assets/html/scss/bulma/layout/section.sass
new file mode 100644
index 0000000000..6f2d35231f
--- /dev/null
+++ b/assets/html/scss/bulma/layout/section.sass
@@ -0,0 +1,13 @@
+$section-padding: 3rem 1.5rem !default
+$section-padding-medium: 9rem 1.5rem !default
+$section-padding-large: 18rem 1.5rem !default
+
+.section
+  padding: $section-padding
+  // Responsiveness
+  +desktop
+    // Sizes
+    &.is-medium
+      padding: $section-padding-medium
+    &.is-large
+      padding: $section-padding-large
diff --git a/assets/html/scss/bulma/utilities/_all.sass b/assets/html/scss/bulma/utilities/_all.sass
new file mode 100644
index 0000000000..bf4ecfe358
--- /dev/null
+++ b/assets/html/scss/bulma/utilities/_all.sass
@@ -0,0 +1,8 @@
+@charset "utf-8"
+
+@import "initial-variables.sass"
+@import "functions.sass"
+@import "derived-variables.sass"
+@import "animations.sass"
+@import "mixins.sass"
+@import "controls.sass"
diff --git a/assets/html/scss/bulma/utilities/animations.sass b/assets/html/scss/bulma/utilities/animations.sass
new file mode 100644
index 0000000000..a14525d75e
--- /dev/null
+++ b/assets/html/scss/bulma/utilities/animations.sass
@@ -0,0 +1,5 @@
+@keyframes spinAround
+  from
+    transform: rotate(0deg)
+  to
+    transform: rotate(359deg)
diff --git a/assets/html/scss/bulma/utilities/controls.sass b/assets/html/scss/bulma/utilities/controls.sass
new file mode 100644
index 0000000000..7ca05213fb
--- /dev/null
+++ b/assets/html/scss/bulma/utilities/controls.sass
@@ -0,0 +1,50 @@
+$control-radius: $radius !default
+$control-radius-small: $radius-small !default
+
+$control-border-width: 1px !default
+
+$control-height: 2.25em !default
+$control-line-height: 1.5 !default
+
+$control-padding-vertical: calc(0.375em - #{$control-border-width}) !default
+$control-padding-horizontal: calc(0.625em - #{$control-border-width}) !default
+
+=control
+  -moz-appearance: none
+  -webkit-appearance: none
+  align-items: center
+  border: $control-border-width solid transparent
+  border-radius: $control-radius
+  box-shadow: none
+  display: inline-flex
+  font-size: $size-normal
+  height: $control-height
+  justify-content: flex-start
+  line-height: $control-line-height
+  padding-bottom: $control-padding-vertical
+  padding-left: $control-padding-horizontal
+  padding-right: $control-padding-horizontal
+  padding-top: $control-padding-vertical
+  position: relative
+  vertical-align: top
+  // States
+  &:focus,
+  &.is-focused,
+  &:active,
+  &.is-active
+    outline: none
+  &[disabled],
+  fieldset[disabled] &
+    cursor: not-allowed
+
+%control
+  +control
+
+// The controls sizes use mixins so they can be used at different breakpoints
+=control-small
+  border-radius: $control-radius-small
+  font-size: $size-small
+=control-medium
+  font-size: $size-medium
+=control-large
+  font-size: $size-large
diff --git a/assets/html/scss/bulma/utilities/derived-variables.sass b/assets/html/scss/bulma/utilities/derived-variables.sass
new file mode 100644
index 0000000000..c464814af1
--- /dev/null
+++ b/assets/html/scss/bulma/utilities/derived-variables.sass
@@ -0,0 +1,85 @@
+$primary: $turquoise !default
+
+$info: $cyan !default
+$success: $green !default
+$warning: $yellow !default
+$danger: $red !default
+
+$light: $white-ter !default
+$dark: $grey-darker !default
+
+// Invert colors
+
+$orange-invert: findColorInvert($orange) !default
+$yellow-invert: findColorInvert($yellow) !default
+$green-invert: findColorInvert($green) !default
+$turquoise-invert: findColorInvert($turquoise) !default
+$cyan-invert: findColorInvert($cyan) !default
+$blue-invert: findColorInvert($blue) !default
+$purple-invert: findColorInvert($purple) !default
+$red-invert: findColorInvert($red) !default
+
+$primary-invert: $turquoise-invert !default
+$info-invert: $cyan-invert !default
+$success-invert: $green-invert !default
+$warning-invert: $yellow-invert !default
+$danger-invert: $red-invert !default
+$light-invert: $dark !default
+$dark-invert: $light !default
+
+// General colors
+
+$background: $white-ter !default
+
+$border: $grey-lighter !default
+$border-hover: $grey-light !default
+
+// Text colors
+
+$text: $grey-dark !default
+$text-invert: findColorInvert($text) !default
+$text-light: $grey !default
+$text-strong: $grey-darker !default
+
+// Code colors
+
+$code: $red !default
+$code-background: $background !default
+
+$pre: $text !default
+$pre-background: $background !default
+
+// Link colors
+
+$link: $blue !default
+$link-invert: $blue-invert !default
+$link-visited: $purple !default
+
+$link-hover: $grey-darker !default
+$link-hover-border: $grey-light !default
+
+$link-focus: $grey-darker !default
+$link-focus-border: $blue !default
+
+$link-active: $grey-darker !default
+$link-active-border: $grey-dark !default
+
+// Typography
+
+$family-primary: $family-sans-serif !default
+$family-secondary: $family-sans-serif !default
+$family-code: $family-monospace !default
+
+$size-small: $size-7 !default
+$size-normal: $size-6 !default
+$size-medium: $size-5 !default
+$size-large: $size-4 !default
+
+// Lists and maps
+$custom-colors: null !default
+$custom-shades: null !default
+
+$colors: mergeColorMaps(("white": ($white, $black), "black": ($black, $white), "light": ($light, $light-invert), "dark": ($dark, $dark-invert), "primary": ($primary, $primary-invert), "link": ($link, $link-invert), "info": ($info, $info-invert), "success": ($success, $success-invert), "warning": ($warning, $warning-invert), "danger": ($danger, $danger-invert)), $custom-colors) !default
+$shades: mergeColorMaps(("black-bis": $black-bis, "black-ter": $black-ter, "grey-darker": $grey-darker, "grey-dark": $grey-dark, "grey": $grey, "grey-light": $grey-light, "grey-lighter": $grey-lighter, "white-ter": $white-ter, "white-bis": $white-bis), $custom-shades) !default
+
+$sizes: $size-1 $size-2 $size-3 $size-4 $size-5 $size-6 $size-7 !default
diff --git a/assets/html/scss/bulma/utilities/functions.sass b/assets/html/scss/bulma/utilities/functions.sass
new file mode 100644
index 0000000000..acd3e839cf
--- /dev/null
+++ b/assets/html/scss/bulma/utilities/functions.sass
@@ -0,0 +1,62 @@
+@function mergeColorMaps($bulma-colors, $custom-colors)
+  // we return at least bulma hardcoded colors
+  $merged-colors: $bulma-colors
+
+  // we want a map as input
+  @if type-of($custom-colors) == 'map'
+    @each $name, $components in $custom-colors
+      // color name should be a string and colors pair a list with at least one element
+      @if type-of($name) == 'string' and (type-of($components) == 'list' or type-of($components) == 'color') and length($components) >= 1
+        $color-base: null
+
+        // the param can either be a single color
+        // or a list of 2 colors
+        @if type-of($components) == 'color'
+          $color-base: $components
+        @else if type-of($components) == 'list'
+          $color-base: nth($components, 1)
+
+        $color-invert: null
+        // is an inverted color provided in the list
+        @if length($components) > 1
+          $color-invert: nth($components, 2)
+
+        // we only want a color as base color
+        @if type-of($color-base) == 'color'
+          // if inverted color is not provided or is not a color we compute it
+          @if type-of($color-invert) != 'color'
+            $color-invert: findColorInvert($color-base)
+
+          // we merge this colors elements as map with bulma colors (we can override them this way, no multiple definition for the same name)
+          $merged-colors: map_merge($merged-colors, ($name: ($color-base, $color-invert)))
+
+  @return $merged-colors
+
+@function powerNumber($number, $exp)
+  $value: 1
+  @if $exp > 0
+    @for $i from 1 through $exp
+      $value: $value * $number
+  @else if $exp < 0
+    @for $i from 1 through -$exp
+      $value: $value / $number
+  @return $value
+
+@function colorLuminance($color)
+  $color-rgb: ('red': red($color),'green': green($color),'blue': blue($color))
+  @each $name, $value in $color-rgb
+    $adjusted: 0
+    $value: $value / 255
+    @if $value < 0.03928
+      $value: $value / 12.92
+    @else
+      $value: ($value + .055) / 1.055
+      $value: powerNumber($value, 2)
+    $color-rgb: map-merge($color-rgb, ($name: $value))
+  @return (map-get($color-rgb, 'red') * .2126) + (map-get($color-rgb, 'green') * .7152) + (map-get($color-rgb, 'blue') * .0722)
+
+@function findColorInvert($color)
+  @if (colorLuminance($color) > 0.55)
+    @return rgba(#000, 0.7)
+  @else
+    @return #fff
diff --git a/assets/html/scss/bulma/utilities/initial-variables.sass b/assets/html/scss/bulma/utilities/initial-variables.sass
new file mode 100644
index 0000000000..0650ce3abb
--- /dev/null
+++ b/assets/html/scss/bulma/utilities/initial-variables.sass
@@ -0,0 +1,76 @@
+// Colors
+
+$black:        hsl(0, 0%, 4%) !default
+$black-bis:    hsl(0, 0%, 7%) !default
+$black-ter:    hsl(0, 0%, 14%) !default
+
+$grey-darker:  hsl(0, 0%, 21%) !default
+$grey-dark:    hsl(0, 0%, 29%) !default
+$grey:         hsl(0, 0%, 48%) !default
+$grey-light:   hsl(0, 0%, 71%) !default
+$grey-lighter: hsl(0, 0%, 86%) !default
+
+$white-ter:    hsl(0, 0%, 96%) !default
+$white-bis:    hsl(0, 0%, 98%) !default
+$white:        hsl(0, 0%, 100%) !default
+
+$orange:       hsl(14,  100%, 53%) !default
+$yellow:       hsl(48,  100%, 67%) !default
+$green:        hsl(141, 71%,  48%) !default
+$turquoise:    hsl(171, 100%, 41%) !default
+$cyan:         hsl(204, 86%,  53%) !default
+$blue:         hsl(217, 71%,  53%) !default
+$purple:       hsl(271, 100%, 71%) !default
+$red:          hsl(348, 100%, 61%) !default
+
+// Typography
+
+$family-sans-serif: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !default
+$family-monospace: monospace !default
+$render-mode: optimizeLegibility !default
+
+$size-1: 3rem !default
+$size-2: 2.5rem !default
+$size-3: 2rem !default
+$size-4: 1.5rem !default
+$size-5: 1.25rem !default
+$size-6: 1rem !default
+$size-7: 0.75rem !default
+
+$weight-light: 300 !default
+$weight-normal: 400 !default
+$weight-medium: 500 !default
+$weight-semibold: 600 !default
+$weight-bold: 700 !default
+
+// Spacing
+
+$block-spacing: 1.5rem !default
+
+// Responsiveness
+
+// The container horizontal gap, which acts as the offset for breakpoints
+$gap: 32px !default
+// 960, 1152, and 1344 have been chosen because they are divisible by both 12 and 16
+$tablet: 769px !default
+// 960px container + 4rem
+$desktop: 960px + (2 * $gap) !default
+// 1152px container + 4rem
+$widescreen: 1152px + (2 * $gap) !default
+$widescreen-enabled: true !default
+// 1344px container + 4rem
+$fullhd: 1344px + (2 * $gap) !default
+$fullhd-enabled: true !default
+
+// Miscellaneous
+
+$easing: ease-out !default
+$radius-small: 2px !default
+$radius: 4px !default
+$radius-large: 6px !default
+$radius-rounded: 290486px !default
+$speed: 86ms !default
+
+// Flags
+
+$variable-columns: true !default
diff --git a/assets/html/scss/bulma/utilities/mixins.sass b/assets/html/scss/bulma/utilities/mixins.sass
new file mode 100644
index 0000000000..e95abd0254
--- /dev/null
+++ b/assets/html/scss/bulma/utilities/mixins.sass
@@ -0,0 +1,261 @@
+@import "initial-variables"
+
+=clearfix
+  &::after
+    clear: both
+    content: " "
+    display: table
+
+=center($width, $height: 0)
+  position: absolute
+  @if $height != 0
+    left: calc(50% - (#{$width} / 2))
+    top: calc(50% - (#{$height} / 2))
+  @else
+    left: calc(50% - (#{$width} / 2))
+    top: calc(50% - (#{$width} / 2))
+
+=fa($size, $dimensions)
+  display: inline-block
+  font-size: $size
+  height: $dimensions
+  line-height: $dimensions
+  text-align: center
+  vertical-align: top
+  width: $dimensions
+
+=hamburger($dimensions)
+  cursor: pointer
+  display: block
+  height: $dimensions
+  position: relative
+  width: $dimensions
+  span
+    background-color: currentColor
+    display: block
+    height: 1px
+    left: calc(50% - 8px)
+    position: absolute
+    transform-origin: center
+    transition-duration: $speed
+    transition-property: background-color, opacity, transform
+    transition-timing-function: $easing
+    width: 16px
+    &:nth-child(1)
+      top: calc(50% - 6px)
+    &:nth-child(2)
+      top: calc(50% - 1px)
+    &:nth-child(3)
+      top: calc(50% + 4px)
+  &:hover
+    background-color: rgba(black, 0.05)
+  // Modifers
+  &.is-active
+    span
+      &:nth-child(1)
+        transform: translateY(5px) rotate(45deg)
+      &:nth-child(2)
+        opacity: 0
+      &:nth-child(3)
+        transform: translateY(-5px) rotate(-45deg)
+
+=overflow-touch
+  -webkit-overflow-scrolling: touch
+
+=placeholder
+  $placeholders: ':-moz' ':-webkit-input' '-moz' '-ms-input'
+  @each $placeholder in $placeholders
+    &:#{$placeholder}-placeholder
+      @content
+
+// Responsiveness
+
+=from($device)
+  @media screen and (min-width: $device)
+    @content
+
+=until($device)
+  @media screen and (max-width: $device - 1px)
+    @content
+
+=mobile
+  @media screen and (max-width: $tablet - 1px)
+    @content
+
+=tablet
+  @media screen and (min-width: $tablet), print
+    @content
+
+=tablet-only
+  @media screen and (min-width: $tablet) and (max-width: $desktop - 1px)
+    @content
+
+=touch
+  @media screen and (max-width: $desktop - 1px)
+    @content
+
+=desktop
+  @media screen and (min-width: $desktop)
+    @content
+
+=desktop-only
+  @if $widescreen-enabled
+    @media screen and (min-width: $desktop) and (max-width: $widescreen - 1px)
+      @content
+
+=until-widescreen
+  @if $widescreen-enabled
+    @media screen and (max-width: $widescreen - 1px)
+      @content
+
+=widescreen
+  @if $widescreen-enabled
+    @media screen and (min-width: $widescreen)
+      @content
+
+=widescreen-only
+  @if $widescreen-enabled and $fullhd-enabled
+    @media screen and (min-width: $widescreen) and (max-width: $fullhd - 1px)
+      @content
+
+=until-fullhd
+  @if $fullhd-enabled
+    @media screen and (max-width: $fullhd - 1px)
+      @content
+
+=fullhd
+  @if $fullhd-enabled
+    @media screen and (min-width: $fullhd)
+      @content
+
+// Placeholders
+
+=unselectable
+  -webkit-touch-callout: none
+  -webkit-user-select: none
+  -moz-user-select: none
+  -ms-user-select: none
+  user-select: none
+
+%unselectable
+  +unselectable
+
+=arrow($color: transparent)
+  border: 3px solid $color
+  border-radius: 2px
+  border-right: 0
+  border-top: 0
+  content: " "
+  display: block
+  height: 0.625em
+  margin-top: -0.4375em
+  pointer-events: none
+  position: absolute
+  top: 50%
+  transform: rotate(-45deg)
+  transform-origin: center
+  width: 0.625em
+
+%arrow
+  +arrow
+
+=block($spacing: $block-spacing)
+  &:not(:last-child)
+    margin-bottom: $spacing
+
+%block
+  +block
+
+=delete
+  @extend %unselectable
+  -moz-appearance: none
+  -webkit-appearance: none
+  background-color: rgba($black, 0.2)
+  border: none
+  border-radius: $radius-rounded
+  cursor: pointer
+  pointer-events: auto
+  display: inline-block
+  flex-grow: 0
+  flex-shrink: 0
+  font-size: 0
+  height: 20px
+  max-height: 20px
+  max-width: 20px
+  min-height: 20px
+  min-width: 20px
+  outline: none
+  position: relative
+  vertical-align: top
+  width: 20px
+  &::before,
+  &::after
+    background-color: $white
+    content: ""
+    display: block
+    left: 50%
+    position: absolute
+    top: 50%
+    transform: translateX(-50%) translateY(-50%) rotate(45deg)
+    transform-origin: center center
+  &::before
+    height: 2px
+    width: 50%
+  &::after
+    height: 50%
+    width: 2px
+  &:hover,
+  &:focus
+    background-color: rgba($black, 0.3)
+  &:active
+    background-color: rgba($black, 0.4)
+  // Sizes
+  &.is-small
+    height: 16px
+    max-height: 16px
+    max-width: 16px
+    min-height: 16px
+    min-width: 16px
+    width: 16px
+  &.is-medium
+    height: 24px
+    max-height: 24px
+    max-width: 24px
+    min-height: 24px
+    min-width: 24px
+    width: 24px
+  &.is-large
+    height: 32px
+    max-height: 32px
+    max-width: 32px
+    min-height: 32px
+    min-width: 32px
+    width: 32px
+
+%delete
+  +delete
+
+=loader
+  animation: spinAround 500ms infinite linear
+  border: 2px solid $grey-lighter
+  border-radius: $radius-rounded
+  border-right-color: transparent
+  border-top-color: transparent
+  content: ""
+  display: block
+  height: 1em
+  position: relative
+  width: 1em
+
+%loader
+  +loader
+
+=overlay($offset: 0)
+  bottom: $offset
+  left: $offset
+  position: absolute
+  right: $offset
+  top: $offset
+
+%overlay
+  +overlay
diff --git a/assets/html/scss/darkly/LICENSE b/assets/html/scss/darkly/LICENSE
new file mode 100644
index 0000000000..65ab366b53
--- /dev/null
+++ b/assets/html/scss/darkly/LICENSE
@@ -0,0 +1,26 @@
+Darkly theme from Bulmaswatch
+
+- https://jenil.github.io/bulmaswatch/
+- https://github.com/jenil/bulmaswatch
+
+MIT License
+
+Copyright (c) 2017 - Present Jenil Gogari
+
+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 NONINFRINGEMENT. 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.
diff --git a/assets/html/scss/darkly/_overrides.scss b/assets/html/scss/darkly/_overrides.scss
new file mode 100644
index 0000000000..11865a1829
--- /dev/null
+++ b/assets/html/scss/darkly/_overrides.scss
@@ -0,0 +1,300 @@
+// Overrides
+@if $bulmaswatch-import-font {
+    @import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic);
+}
+
+hr {
+  height: $border-width;
+}
+
+h6 {
+  text-transform: uppercase;
+  letter-spacing: 0.5px;
+}
+
+.hero {
+  background-color: $grey-dark;
+}
+
+a {
+  transition: all 200ms ease;
+}
+
+.button {
+  transition: all 200ms ease;
+  border-width: $border-width;
+  color: $white;
+
+  &.is-active,
+  &.is-focused,
+  &:active,
+  &:focus {
+    box-shadow: 0 0 0 2px rgba($button-focus-border-color, 0.5);
+  }
+  @each $name, $pair in $colors {
+    $color: nth($pair, 1);
+    $color-invert: nth($pair, 2);
+
+    &.is-#{$name} {
+      &.is-hovered,
+      &:hover {
+        background-color: lighten($color, 7.5%);
+      }
+
+      &.is-active,
+      &.is-focused,
+      &:active,
+      &:focus {
+        border-color: $color;
+        box-shadow: 0 0 0 2px rgba($color, 0.5);
+      }
+    }
+  }
+}
+
+.label {
+  color: $grey-lighter;
+}
+
+.button,
+.control.has-icons-left .icon,
+.control.has-icons-right .icon,
+.input,
+.pagination-ellipsis,
+.pagination-link,
+.pagination-next,
+.pagination-previous,
+.select,
+.select select,
+.textarea {
+  height: 2.5em;
+}
+
+.input,
+.textarea {
+  transition: all 200ms ease;
+  box-shadow: none;
+  border-width: $border-width;
+  padding-left: 1em;
+  padding-right: 1em;
+}
+
+.select {
+  &:after,
+  select {
+    border-width: $border-width;
+  }
+}
+
+.control {
+  &.has-addons {
+    .button,
+    .input,
+    .select {
+      margin-right: -$border-width;
+    }
+  }
+}
+
+.notification {
+  background-color: $grey-dark;
+}
+
+.card {
+  $card-border-color: lighten($grey-darker, 5);
+  box-shadow: none;
+  border: $border-width solid $card-border-color;
+  background-color: $grey-darker;
+  border-radius: $radius;
+
+  .card-image {
+    img {
+      border-radius: $radius $radius 0 0;
+    }
+  }
+
+  .card-header {
+    box-shadow: none;
+    background-color: rgba($black-bis, 0.2);
+    border-radius: $radius $radius 0 0;
+  }
+
+  .card-footer {
+    background-color: rgba($black-bis, 0.2);
+  }
+
+  .card-footer,
+  .card-footer-item {
+    border-width: $border-width;
+    border-color: $card-border-color;
+  }
+}
+
+.notification {
+  @each $name, $pair in $colors {
+    $color: nth($pair, 1);
+    $color-invert: nth($pair, 2);
+
+    &.is-#{$name} {
+      a:not(.button) {
+        color: $color-invert;
+        text-decoration: underline;
+      }
+    }
+  }
+}
+
+.tag {
+  border-radius: $radius;
+}
+
+.menu-list {
+  a {
+    transition: all 300ms ease;
+  }
+}
+
+.modal-card-body {
+  background-color: $grey-darker;
+}
+
+.modal-card-foot,
+.modal-card-head {
+  border-color: $grey-dark;
+}
+
+.message-header {
+  font-weight: $weight-bold;
+  background-color: $grey-dark;
+  color: $white;
+}
+
+.message-body {
+  border-width: $border-width;
+  border-color: $grey-dark;
+}
+
+.navbar {
+  border-radius: $radius;
+
+  &.is-transparent {
+    background: none;
+  }
+
+  &.is-primary {
+    .navbar-dropdown {
+      a.navbar-item.is-active {
+        background-color: $link;
+      }
+    }
+  }
+
+  @include touch {
+    .navbar-menu {
+      background-color: $navbar-background-color;
+      border-radius: 0 0 $radius $radius;
+    }
+  }
+}
+
+.hero .navbar,
+body > .navbar {
+  border-radius: 0;
+}
+
+.pagination-link,
+.pagination-next,
+.pagination-previous {
+  border-width: $border-width;
+}
+
+.panel-block,
+.panel-heading,
+.panel-tabs {
+  border-width: $border-width;
+
+  &:first-child {
+    border-top-width: $border-width;
+  }
+}
+
+.panel-heading {
+  font-weight: $weight-bold;
+}
+
+.panel-tabs {
+  a {
+    border-width: $border-width;
+    margin-bottom: -$border-width;
+
+    &.is-active {
+      border-bottom-color: $link-active;
+    }
+  }
+}
+
+.panel-block {
+  &:hover {
+    color: $link-hover;
+
+    .panel-icon {
+      color: $link-hover;
+    }
+  }
+
+  &.is-active {
+    .panel-icon {
+      color: $link-active;
+    }
+  }
+}
+
+.tabs {
+  a {
+    border-bottom-width: $border-width;
+    margin-bottom: -$border-width;
+  }
+
+  ul {
+    border-bottom-width: $border-width;
+  }
+
+  &.is-boxed {
+    a {
+      border-width: $border-width;
+    }
+
+    li.is-active a {
+      background-color: darken($grey-darker, 4);
+    }
+  }
+
+  &.is-toggle {
+    li a {
+      border-width: $border-width;
+      margin-bottom: 0;
+    }
+
+    li + li {
+      margin-left: -$border-width;
+    }
+  }
+}
+
+.hero {
+  // Colors
+  @each $name, $pair in $colors {
+    $color: nth($pair, 1);
+    $color-invert: nth($pair, 2);
+
+    &.is-#{$name} {
+      .navbar {
+        .navbar-dropdown {
+          .navbar-item:hover {
+            background-color: $navbar-dropdown-item-hover-background-color;
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/assets/html/scss/darkly/_variables.scss b/assets/html/scss/darkly/_variables.scss
new file mode 100644
index 0000000000..898d67e503
--- /dev/null
+++ b/assets/html/scss/darkly/_variables.scss
@@ -0,0 +1,105 @@
+////////////////////////////////////////////////
+// DARKLY
+////////////////////////////////////////////////
+$grey-lighter: #dbdee0;
+$grey-light:   #8c9b9d;
+$grey:         darken($grey-light, 18);
+$grey-dark:    darken($grey, 18);
+$grey-darker:  darken($grey, 23);
+
+$orange: #e67e22;
+$yellow: #f1b70e;
+$green: #2ecc71;
+$turquoise: #1abc9c;
+$blue: #3498db;
+$purple: #8e44ad;
+$red: #e74c3c;
+$white-ter: #ecf0f1;
+$primary: #375a7f !default;
+$yellow-invert: #fff;
+
+$family-sans-serif: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
+$family-monospace: "Inconsolata", "Consolas", "Monaco", monospace;
+
+$radius-small: 3px;
+$radius: .4em;
+$radius-large: 8px;
+$size-6: 15px;
+$size-7: .85em;
+$title-weight: 500;
+$subtitle-weight: 400;
+$subtitle-color: $grey-dark;
+
+$border-width: 2px;
+$border: $grey;
+
+$body-background-color: darken($grey-darker, 4);
+$body-size: 15px;
+
+$background: $grey-darker;
+$footer-background-color: $background;
+$button-background-color: $background;
+$button-border-color: lighten($button-background-color, 15);
+
+$title-color: #fff;
+$subtitle-color: $grey-light;
+$subtitle-strong-color: $grey-light;
+
+$text: #fff;
+$text-light: lighten($text, 10);
+$text-strong: darken($text, 5);
+
+$box-color: $text;
+$box-background-color: $grey-dark;
+$box-shadow: none;
+
+$link: $turquoise;
+$link-hover: lighten($link, 5);
+$link-focus: darken($link, 5);
+$link-active: darken($link, 5);
+$link-focus-border: $grey-light;
+
+$button-color: $primary;
+$button-hover-color: darken($text, 5); // text-dark
+$button-focus: darken($text, 5); // text-dark
+$button-active-color: darken($text, 5); // text-dark
+$button-disabled-background-color: $grey-light;
+
+$input-hover-color: $grey-light;
+$input-disabled-background-color: $grey-light;
+$input-disabled-border: $grey-lighter;
+
+$table-color: $text;
+$table-head: $grey-lighter;
+$table-background-color: $grey-dark;
+$table-cell-border: 1px solid $grey;
+
+$table-row-hover-background-color: $grey-darker;
+$table-striped-row-even-background-color: $grey-darker;
+$table-striped-row-even-hover-background-color: lighten($grey-darker, 2);
+
+$pagination-color: $link;
+$pagination-border-color: $border;
+
+$navbar-height: 4rem;
+
+$navbar-background-color: $primary;
+$navbar-item-color: $text;
+$navbar-item-hover-color: $link;
+$navbar-item-hover-background-color: transparent;
+$navbar-item-active-color: $link;
+$navbar-dropdown-arrow: #fff;
+$navbar-divider-background-color: rgba(0, 0, 0, 0.2);
+$navbar-dropdown-border-top: 1px solid $navbar-divider-background-color;
+$navbar-dropdown-background-color: $primary;
+$navbar-dropdown-item-hover-color: $grey-lighter;
+$navbar-dropdown-item-hover-background-color: transparent;
+$navbar-dropdown-item-active-background-color: transparent;
+$navbar-dropdown-item-active-color: $link;
+
+$dropdown-content-background-color: $background;
+$dropdown-item-color: $text;
+
+$progress-value-background-color: $grey-lighter;
+
+$bulmaswatch-import-font: true !default;
diff --git a/assets/html/scss/documenter-dark.scss b/assets/html/scss/documenter-dark.scss
new file mode 100644
index 0000000000..86402abcfa
--- /dev/null
+++ b/assets/html/scss/documenter-dark.scss
@@ -0,0 +1,99 @@
+@charset "UTF-8";
+// The Documente dark theme is a modified version of the Darkly theme from Bulmaswatch:
+// https://jenil.github.io/bulmaswatch/, https://github.com/jenil/bulmaswatch
+$themename: "documenter-dark"; // CSS file must be called `$(themename).css`
+
+// Darkly wants to @import the Lato font by default, but we don't need it.
+$bulmaswatch-import-font: false;
+
+@import "darkly/variables";
+
+$documenter-is-dark-theme: true;
+
+$family-sans-serif: 'Lato', -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
+$family-monospace: 'Roboto Mono', 'SFMono-Regular', 'Menlo', 'Consolas', 'Liberation Mono', 'DejaVu Sans Mono', monospace;
+
+$info: #024c7d;
+$success: #008438;
+$warning: #ad8100;
+$danger: #9e1b0d;
+$turquoise: #137886;
+
+$admonition-background: (
+  'default': $background, 'info': $background, 'success': $background, 'warning': $background,
+  'danger': $background, 'compat': $background
+);
+$admonition-header-background: ('default': $grey);
+
+$body-size: 16px;
+$documenter-sidebar-background: $grey-darker;
+$shadow: #171717;
+$documenter-sidebar-color: $text;
+$lightness-unit: -8%;
+
+// $docstring-pre-background: adjust-color($background, $lightness: 5);
+$border-width: 1px;
+
+@import "documenter/utilities";
+@import "documenter/variables";
+
+$code: $red;
+$code-background: rgba(255, 255, 255, 0.05);
+
+$documenter-docstring-shadow: none;
+
+@import "bulma/utilities/all";
+@import "bulma/base/minireset.sass";
+@import "bulma/base/helpers.sass";
+
+// Search box, version selector etc.
+$input-color: $grey-lighter;
+$input-background-color: $body-background-color;
+$input-border-color: $border;
+$input-placeholder-color: rgba($input-color, 0.3);
+
+$button-static-color: $grey-lighter;
+$button-static-background-color: $background;
+$button-static-border-color: $border;
+
+// All secondary themes have to be nested in a theme--$(themename) class. When Documenter
+// switches themes, it applies this class to  and then disables the primary
+// stylesheet.
+html.theme--#{$themename} {
+  @import "bulma/base/generic.sass";
+
+  @import "documenter/overrides";
+
+  @import "bulma/elements/all";
+  @import "bulma/form/all";
+  @import "bulma/components/all";
+  @import "bulma/grid/all";
+  @import "bulma/layout/all";
+
+  @import "darkly/overrides";
+
+  @import "documenter/elements";
+  @import "documenter/components/all";
+  @import "documenter/patches";
+  @import "documenter/layout/all";
+
+  @import "documenter/theme_overrides";
+
+  // .docstring {
+  //   border: $border-width solid $border;
+  //   box-shadow: none;
+  //
+  //   header {
+  //     box-shadow: none;
+  //     background-color: rgba($black-bis, 0.2);
+  //     border-radius: $radius $radius 0 0;
+  //   }
+  // }
+
+  // FIXME: Hack to get a proper theme for highlight.js in the Darkly theme
+  @import "highlightjs/a11y-dark";
+  // Also, a11y-dark does not highlight string interpolation properly.
+  .hljs-subst {
+    color: #f8f8f2;
+  }
+}
diff --git a/assets/html/scss/documenter-light.scss b/assets/html/scss/documenter-light.scss
new file mode 100644
index 0000000000..3b80a695d8
--- /dev/null
+++ b/assets/html/scss/documenter-light.scss
@@ -0,0 +1,24 @@
+@charset "UTF-8";
+
+@import "documenter/utilities";
+@import "documenter/variables";
+
+@import "bulma/utilities/all";
+@import "bulma/base/all";
+
+@import "documenter/overrides";
+
+@import "bulma/elements/all";
+@import "bulma/form/all";
+@import "bulma/components/all";
+@import "bulma/grid/all";
+@import "bulma/layout/all";
+
+@import "documenter/elements";
+@import "documenter/components/all";
+@import "documenter/patches";
+@import "documenter/layout/all";
+
+// Workaround to compile in highlightjs theme, so that we could have different
+// themes for both
+@import "highlightjs/default"
diff --git a/assets/html/scss/documenter/_elements.scss b/assets/html/scss/documenter/_elements.scss
new file mode 100644
index 0000000000..9736bde35e
--- /dev/null
+++ b/assets/html/scss/documenter/_elements.scss
@@ -0,0 +1,35 @@
+// Permalinks to page headings
+// Implemented as empty  tags inside the  tags, showing up as chain icons
+h1, h2, h3, h4, h5, h6 {
+  .docs-heading-anchor {
+    &, &:hover, &:visited {
+      color: $content-heading-color;
+    }
+  }
+
+  .docs-heading-anchor-permalink {
+    visibility: hidden;
+    vertical-align: middle;
+    margin-left: 0.5em;
+    font-size: 0.7rem;
+
+    &::before {
+      @include font-awesome;
+      content: "\f0c1";
+    }
+  }
+  // the permalinks icon is only shown if the user hovers over the heading
+  &:hover .docs-heading-anchor-permalink {
+    visibility: visible;
+  }
+}
+
+@if $documenter-is-dark-theme {
+  .docs-light-only {
+    display: none !important;
+  }
+} @else {
+  .docs-dark-only {
+    display: none !important;
+  }
+}
diff --git a/assets/html/scss/documenter/_overrides.scss b/assets/html/scss/documenter/_overrides.scss
new file mode 100644
index 0000000000..fa7c81f988
--- /dev/null
+++ b/assets/html/scss/documenter/_overrides.scss
@@ -0,0 +1,41 @@
+// Additional variables and overrides
+
+// While the docs claim that the navbar breakpoint is `mobile`, it actually is `desktop`.
+// Hence the need to override this variable.
+// $navbar-breakpoint: $tablet !default;
+
+$documenter-sidebar-size: $size-normal !default;
+$documenter-sidebar-submenu-size: 0.95*$documenter-sidebar-size !default;
+$documenter-sidebar-menu-chevron-size: 0.75*$documenter-sidebar-size !default;
+$documenter-sidebar-menu-active-size: 0.85*$documenter-sidebar-size !default;
+
+$documenter-sidebar-title-width: 0.9 * $documenter-sidebar-width !default;
+$documenter-sidebar-menu-padding: 1rem !default;
+$documenter-sidebar-title-font-size: $size-large !default;
+
+// The coloring of the sidebar works as follows:
+//  - by default, everything gets $documenter-sidebar-color/background
+//  - clickable menu items also get a :hover color with $documenter-sidebar-menu-hover-*
+//  - the in-page ("active") links get a different color/background with
+//    $documenter-sidebar-menu-active-*, and the clickable in-page links also get their
+//    own :hover colors with $documenter-sidebar-menu-active-hover-*
+$documenter-sidebar-background: $background !default;
+$documenter-sidebar-color: invert($documenter-sidebar-background) !default;
+$documenter-sidebar-menu-hover-background: darken-color($documenter-sidebar-background, 0.5) !default;
+$documenter-sidebar-menu-hover-color: $documenter-sidebar-color !default;
+$documenter-sidebar-menu-active-background: lighten-color($documenter-sidebar-background, 0.5) !default;
+$documenter-sidebar-menu-active-color: $documenter-sidebar-color !default;
+$documenter-sidebar-menu-active-hover-background: darken-color($documenter-sidebar-background, 0.5) !default;
+$documenter-sidebar-menu-active-hover-color: $documenter-sidebar-menu-active-color !default;
+
+$documenter-sidebar-scrollbar-color: darken-color($documenter-sidebar-background, 1) !default;
+$documenter-sidebar-scrollbar-color-hover: darken-color($documenter-sidebar-background, 2) !default;
+
+$breadcrumb-item-disabled-color: $text-strong !default;
+
+$content-pre-padding: 0.7rem 0.5rem !default;
+
+$admonition-background: ('default': $grey-light, 'warning': #fff3c5) !default;
+
+$documenter-docstring-shadow: 2px 2px 3px rgba($black, 0.1) !default;
+$documenter-docstring-header-background: $background !default;
diff --git a/assets/html/scss/documenter/_patches.scss b/assets/html/scss/documenter/_patches.scss
new file mode 100644
index 0000000000..f76f736227
--- /dev/null
+++ b/assets/html/scss/documenter/_patches.scss
@@ -0,0 +1,73 @@
+// We need to override some .content behavior
+.content {
+  pre {
+    border: 1px solid $border;
+  }
+  // Bold code spans
+  code {
+    font-weight: inherit;
+  }
+  a code {
+    color: $link;
+  }
+  h1, h2, h3, h4, h5, h6 {
+    code {
+      color: $content-heading-color;
+    }
+  }
+  // Don't make tables full-width and make sure that overflowing tables are scrollable
+  table {
+    display: block;
+    width: initial;
+    max-width: 100%;
+    overflow-x: auto;
+  }
+  // kbd tags
+  kbd {
+    @extend .tag;
+    @extend .is-dark;
+  }
+  //
+  blockquote, .admonition-body {
+    > ul:first-child, > ol:first-child {
+      margin-top: 0;
+    }
+  }
+}
+
+// We want to be able to disable certain breadcrumb components
+.breadcrumb a.is-disabled {
+  cursor: default;
+  pointer-events: none;
+  &, &:hover{
+    color: $breadcrumb-item-disabled-color;
+  }
+}
+
+// highlight.js background color fix
+.hljs {
+  background: initial !important;
+  padding: initial !important;
+}
+
+// There appears to be a rendering bug in Chrome, where elements with `position: absolute` in
+// an overflow container affect whether the outer container is overflowing / needs
+// scrollbars.
+//
+// In this particular case, KaTeX applies `position: absolute` on the the MathML
+// accessibility span. This breaks the dashboard layout of the equation is somewhere far
+// down in the container.
+//
+// Moving all of these accessbility "pixels" to the top-right seems to take care of the
+// issue. An alternative is also to use `position: fixed`, which does not cause the outer
+// container to scroll.
+.katex .katex-mathml {
+  top: 0;
+  right: 0;
+}
+
+// Set font subpixel rendering to auto on the HTML tag
+html {
+  -moz-osx-font-smoothing: auto;
+  -webkit-font-smoothing: auto;
+}
diff --git a/assets/html/scss/documenter/_theme_overrides.scss b/assets/html/scss/documenter/_theme_overrides.scss
new file mode 100644
index 0000000000..056002aa95
--- /dev/null
+++ b/assets/html/scss/documenter/_theme_overrides.scss
@@ -0,0 +1,9 @@
+& {
+  background-color: $body-background-color;
+  font-size: $body-size;
+  min-width: $body-min-width;
+  overflow-x: $body-overflow-x;
+  overflow-y: $body-overflow-y;
+  text-rendering: $body-rendering;
+  text-size-adjust: 100%;
+}
diff --git a/assets/html/scss/documenter/_utilities.scss b/assets/html/scss/documenter/_utilities.scss
new file mode 100644
index 0000000000..cb477c8fbb
--- /dev/null
+++ b/assets/html/scss/documenter/_utilities.scss
@@ -0,0 +1,5 @@
+/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */
+@mixin font-awesome {
+  font-family: "Font Awesome 5 Free";
+  font-weight: 900;
+}
diff --git a/assets/html/scss/documenter/_variables.scss b/assets/html/scss/documenter/_variables.scss
new file mode 100644
index 0000000000..64260b2fdf
--- /dev/null
+++ b/assets/html/scss/documenter/_variables.scss
@@ -0,0 +1,80 @@
+// Variable definitions. Some are Documenter-specific, others are setting Bulma variables.
+
+
+// Colors
+// ------
+$primary: #4eb5de !default;
+$red: #da0b00 !default;
+$blue: #2e63b8 !default;
+$green: #22c35b !default;
+$turquoise: #1db5c9 !default;
+$text: #222222 !default;
+$text-strong: $text !default;
+$code: #000000 !default;
+// The inline  tags get rendered on various different backgrounds. Therefore, in order
+// to make sure it always renders nicely, we'll just use transparent black color to make the
+// background of the  elements slightly darker.
+$code-background: rgba(0, 0, 0, 0.05) !default;
+$code-padding: 0.1em;
+
+$documenter-docstring-background: transparent !default;
+
+$documenter-is-dark-theme: false !default;
+
+// Helper functions
+// ----------------
+// Declares the amount of lightness modifier used in the darken-color and lighten-color
+// functions. Setting this to a negative value is useful for dark themes.
+$lightness-unit: 8% !default;
+// Uses adjust-color to create a darker version of $color
+@function darken-color($color, $factor) {
+  @return adjust-color($color, $lightness: -$factor*$lightness-unit);
+}
+// Uses adjust-color to create a lighter version of $color
+@function lighten-color($color, $factor) {
+  @return adjust-color($color, $lightness: $factor*$lightness-unit);
+}
+
+
+// Fonts
+// -----
+// Declares the font family for the main text.
+$family-sans-serif: 'Lato', -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !default;
+$family-monospace: 'Roboto Mono', 'SFMono-Regular', 'Menlo', 'Consolas', 'Liberation Mono', 'DejaVu Sans Mono', monospace !default;
+// Note: declaring a font family here does not necessarily mean that it will be available
+// for the user. For uncommon fonts it is up to the user to also provide the necessary font
+// assets, e.g. via a CDN, in the makedocs() call.
+
+
+// Shadows
+// -------
+// Shadows are used to visually elevate UI elements that are "floating" (e.g. the sidebar
+// on mobile layout).
+$shadow: #bbb !default;
+$shadow-size: 0.2rem !default;
+$shadow-blur: 0.4rem !default;
+
+
+// Layout
+// ------
+$body-overflow-x: auto !default;
+$body-size: 16px !default;
+$documenter-max-width: 50rem !default;
+$documenter-sidebar-width: 18rem !default;
+
+$documenter-sidebar-main-gap: 2rem !default;
+$documenter-main-padding-right: 1rem !default;
+$documenter-main-padding: 1rem !default;
+
+// We'll override the Bulma $tablet width, which is the point at which the
+// layout switches between the mobile and tablet modes. Note: $tablet needs
+// to be in px, hence the unit conversion.
+$desktop: round($body-size * ($documenter-max-width + $documenter-sidebar-width + $documenter-sidebar-main-gap + $documenter-main-padding-right - 5rem)/1rem) !default;
+
+// Admonitions
+$message-header-padding: 0.75em;
+$message-body-padding: 1em 1.25em;
+// Docstrings
+$card-content-padding-v: 1rem;
+$card-content-padding-h: 1.25rem;
+$card-content-padding: $card-content-padding-v $card-content-padding-h;
diff --git a/assets/html/scss/documenter/components/_admonition.scss b/assets/html/scss/documenter/components/_admonition.scss
new file mode 100644
index 0000000000..6e1a7b6085
--- /dev/null
+++ b/assets/html/scss/documenter/components/_admonition.scss
@@ -0,0 +1,105 @@
+// This is a heavily customized version of Bulma's message component
+// Original copyright (c) 2019 Jeremy Thomas, The MIT License (MIT)
+$admonition-colors: (
+  'default': $grey-darker, 'info': $info, 'success': $success, 'warning': $warning,
+  'danger': $danger, 'compat': $turquoise,
+) !default;
+
+$admonition-background: () !default;
+$admonition-body-color: () !default;
+$admonition-header-background: () !default;
+$admonition-header-color: () !default;
+@each $name, $color in $admonition-colors {
+  $bg: lighten-color($color, 4);
+  @if not map-has-key($admonition-header-background, $name) {
+    $admonition-header-background: map-merge($admonition-header-background, ($name: $color)) !global;
+  }
+  @if not map-has-key($admonition-header-color, $name) {
+    $admonition-header-color: map-merge($admonition-header-color, ($name: findColorInvert($color))) !global;
+  }
+  @if not map-has-key($admonition-background, $name) {
+    $admonition-background: map-merge($admonition-background, ($name: $bg)) !global;
+  }
+  @if not map-has-key($admonition-body-color, $name) {
+    $admonition-body-color: map-merge($admonition-body-color, ($name: findColorInvert($bg))) !global;
+  }
+}
+
+.admonition {
+  @extend %block;
+
+  background-color: map-get($admonition-background, 'default');
+  border-style: solid;
+  border-width: 1px;
+  border-color: map-get($admonition-header-background, 'default');
+  border-radius: $message-radius;
+  font-size: $size-normal;
+
+  strong {
+    color: currentColor;
+  }
+
+  // Sizes
+  &.is-small {
+    font-size: $size-small;
+  }
+
+  &.is-medium {
+    font-size: $size-medium;
+  }
+
+  &.is-large {
+    font-size: $size-large;
+  }
+
+  // Colors
+  @each $name, $pair in $admonition-colors {
+    // $text-color: desaturate(darken($color, $darken-percentage), $desaturate-percentage);
+    // $color-lightning: max(100% - lightness($color) - 5%, 0%);
+    // $background: lighten($color, $color-lightning);
+
+    &.is-#{$name} {
+      background-color: map-get($admonition-background, $name);
+      border-color: map-get($admonition-header-background, $name);
+
+      > .admonition-header {
+        background-color: map-get($admonition-header-background, $name);
+        color: map-get($admonition-header-color, $name);
+      }
+
+      > .admonition-body {
+        color: map-get($admonition-body-color, $name);
+      }
+    }
+  }
+}
+
+.admonition-header {
+  color: map-get($admonition-header-color, 'default');
+  background-color: map-get($admonition-header-background, 'default');
+  align-items: center;
+  font-weight: $message-header-weight;
+  justify-content: space-between;
+  line-height: 1.25;
+  padding: $message-header-padding;
+  position: relative;
+
+  &:before {
+    @include font-awesome;
+    margin-right: $message-header-padding;
+    content: "\f06a";
+}
+}
+
+.admonition-body {
+  color: $message-body-color;
+  padding: $message-body-padding;
+
+  pre {
+    background-color: $pre-background;
+  }
+
+  code {
+    background-color: $code-background;
+  }
+}
diff --git a/assets/html/scss/documenter/components/_all.scss b/assets/html/scss/documenter/components/_all.scss
new file mode 100644
index 0000000000..f4ab337b7f
--- /dev/null
+++ b/assets/html/scss/documenter/components/_all.scss
@@ -0,0 +1,2 @@
+@import "admonition";
+@import "docstring";
diff --git a/assets/html/scss/documenter/components/_docstring.scss b/assets/html/scss/documenter/components/_docstring.scss
new file mode 100644
index 0000000000..367f5f93f5
--- /dev/null
+++ b/assets/html/scss/documenter/components/_docstring.scss
@@ -0,0 +1,60 @@
+// The docstring element which reuses parts of the Bulma card component
+.docstring {
+  margin-bottom: 1em;
+  background-color: $documenter-docstring-background;
+  border: 1px solid $border;
+  box-shadow: $documenter-docstring-shadow;
+  max-width: 100%;
+
+  > header {
+    display: flex;
+    flex-grow: 1;
+    align-items: stretch;
+    padding: $card-header-padding;
+
+    background-color: $documenter-docstring-header-background;
+    box-shadow: $card-header-shadow;
+    box-shadow: none;
+    border-bottom: 1px solid $border;
+
+    code {
+      background-color: transparent;
+    }
+
+    .docstring-binding {
+      margin-right: 0.3em;
+    }
+    .docstring-category {
+      margin-left: 0.3em;
+    }
+  }
+
+  > section {
+    position: relative;
+    padding: $card-content-padding;
+
+    border-bottom: 1px solid $border;
+    &:last-child {
+      border-bottom: none;
+    }
+
+    > a.docs-sourcelink {
+      transition: opacity 0.3s;
+      opacity: 0;
+      position: absolute;
+      right: $card-content-padding-h / 2;
+      bottom: $card-content-padding-v / 2;
+      @extend .tag;
+      @extend .is-primary;
+      @extend .is-size-7;
+    }
+  }
+
+  &:hover > section > a.docs-sourcelink {
+    opacity: 0.2;
+  }
+
+  & > section:hover a.docs-sourcelink {
+    opacity: 1;
+  }
+}
diff --git a/assets/html/scss/documenter/layout/_all.scss b/assets/html/scss/documenter/layout/_all.scss
new file mode 100644
index 0000000000..f4c7a1d9c6
--- /dev/null
+++ b/assets/html/scss/documenter/layout/_all.scss
@@ -0,0 +1,3 @@
+@import "main";
+@import "sidebar";
+@import "search";
diff --git a/assets/html/scss/documenter/layout/_main.scss b/assets/html/scss/documenter/layout/_main.scss
new file mode 100644
index 0000000000..0bf30500d8
--- /dev/null
+++ b/assets/html/scss/documenter/layout/_main.scss
@@ -0,0 +1,130 @@
+/* This file contain the overall layout.
+ *
+ * The main container is 
that is identified by id #documenter. + */ +#documenter { + .docs-main { + > article { + // Long inline words can happen, so we'll break them in case that, instead of letting + // go into overflow. Most likely to happen with inline code snippets. + overflow-wrap: break-word; + } + + @include desktop { + max-width: $documenter-max-width + 2*$documenter-main-padding; + margin-left: $documenter-sidebar-width + $documenter-sidebar-main-gap; + padding-right: $documenter-main-padding-right; + } + + @include touch { + width: 100%; + + > article { + max-width: $documenter-max-width + 2*$documenter-main-padding; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 $documenter-main-padding; + } + > header, > nav { + max-width: 100%; + width: 100%; + margin: 0; + } + } + + // Navbar is the top bar of the page that contains the breadcrumb, + // the "Edit on GitHub" link and the sidebar burger (when on mobile). + header.docs-navbar { + background-color: $body-background-color; + border-bottom: 1px solid $border; + z-index: 2; + + min-height: 4rem; + margin-bottom: 1rem; + + display: flex; + .breadcrumb { + flex-grow: 1; + } + + .docs-right { + display: flex; + .docs-icon, .docs-label, .docs-sidebar-button { + display: inline-block; + } + white-space: nowrap; + .docs-label { + padding: 0; + margin-left: 0.3em; + } + .docs-settings-button { + margin: auto 0 auto 1rem; + } + .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; + } + } + + // ensure vertical middle alignment of everything in the navbar + > * { + margin: auto 0; + } + + @include touch { + position: sticky; + top: 0; + padding: 0 1rem; + + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; /* Safari */ + &.headroom--not-top { + box-shadow: $shadow-size 0rem $shadow-blur $shadow; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; /* Safari */ + } + &.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; /* Safari */ + } + } + } + + // Footnotes + section.footnotes { + border-top: 1px solid $border; + li { + .tag:first-child { + margin-right: 1em; + margin-bottom: 0.4em; + } + } + } + + .docs-footer { + display: flex; + margin-left: 0; + margin-right: 0; + border-top: 1px solid $border; + padding-top: 1rem; + padding-bottom: 1rem; + + @include touch { + padding-left: $documenter-main-padding; + padding-right: $documenter-main-padding; + } + + .docs-footer-nextpage, .docs-footer-prevpage { + flex-grow: 1; + } + .docs-footer-nextpage { + text-align: right; + } + } + } +} diff --git a/assets/html/scss/documenter/layout/_search.scss b/assets/html/scss/documenter/layout/_search.scss new file mode 100644 index 0000000000..d688b995f0 --- /dev/null +++ b/assets/html/scss/documenter/layout/_search.scss @@ -0,0 +1,27 @@ +// Additional styling for the search page +#documenter .docs-main { + #documenter-search-info { + margin-bottom: 1rem; + } + + #documenter-search-results { + // border: 1px solid $border; + // padding: 1rem; + list-style-type: circle; + list-style-position: outside; + // padding-left: 1rem; + + li { + margin-left: 2rem; + // &::before { + // @include font-awesome; + // content: ""; + // } + > header { + } + } + .docs-highlight { + background-color: yellow; + } + } +} diff --git a/assets/html/scss/documenter/layout/_sidebar.scss b/assets/html/scss/documenter/layout/_sidebar.scss new file mode 100644 index 0000000000..a1d1815007 --- /dev/null +++ b/assets/html/scss/documenter/layout/_sidebar.scss @@ -0,0 +1,253 @@ +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + + color: $documenter-sidebar-color; + background-color: $documenter-sidebar-background; + border-right: 1px solid $border; + padding: 0; + flex: 0 0 $documenter-sidebar-width; + z-index: 5; // make sure it's on top of the main body and top bar + + font-size: $documenter-sidebar-size; + + // This is mobile-first, so our default state is that the sidebar is hidden away left + // of the screen. + position: fixed; + left: -$documenter-sidebar-width; + width: $documenter-sidebar-width; + height: 100%; + transition: left 0.3s; + // Clicking on the hamburger on mobile toggles the .visible class on the sidebar + // If enabled, we'll move the sidebar into view. As it is now floating above the + // main body content, we apply a shadow. + &.visible { + left: 0; + box-shadow: 2*$shadow-size 0rem 2*$shadow-blur $shadow; + @include desktop { + // We make sure that the shadow is gone if we've ended up in non-mobile layout + // but the .visible class is still toggled. + box-shadow: none; + } + } + // In the non-mobile layout, we show the sidebar as a left panel of the dashboard. + @include desktop { + left: 0; + top: 0; + } + + // The top bar of the sidebar bar contains: + // 1. Logo (optional) + .docs-logo { + margin-top: 1rem; + padding: 0 1rem; + > img { + @extend .image; + max-height: 6rem; + margin: auto; + } + } + // 2. The site name, from the sitename keyword (optional) + .docs-package-name { + flex-shrink: 0; + font-size: $documenter-sidebar-title-font-size; + font-weight: $weight-bold; + text-align: center; + white-space: nowrap; + overflow: hidden; + // The padding works around the problem that when you set overflow: hidden, part + // of the container gets hidden. + padding: 0.5rem 0; + // We don't know how wide the text is (the user can provide a _really_ long string to + // sitename). So we wrap the name in a which can be dynamically resized with + // JS. + .docs-autofit { + max-width: $documenter-sidebar-title-width; + } + } + + // The version selector (optional). It is hidden by default, but can be toggled by JS + // if there actually are some versions to display. + .docs-version-selector { + border-top: 1px solid $border; + display: none; + padding: 0.5rem; + &.visible { + display: flex; + } + } + + // Styling, positioning etc. of the menu items + ul.docs-menu { + flex-grow: 1; + + // Heavy-handed approach to disable selecting when you double click on an expandable menu + // item + user-select: none; + + border-top: 1px solid $border; + padding-bottom: 1.5rem; + + // First level items + > li { + > .tocitem { + font-weight: bold; + } + } + + // Second and lower + > li li { + font-size: $documenter-sidebar-submenu-size; + margin-left: 1em; + border-left: 1px solid $border; + } + + /* Managing collapsible submenus */ + input.collapse-toggle { + display: none; + } + + ul.collapsed { + display: none; + } + + input:checked ~ ul.collapsed { + display: block; + } + + label.tocitem { + display: flex; + .docs-label { + flex-grow: 2; + } + .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + + font-size: $documenter-sidebar-menu-chevron-size; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; + &::before { + @include font-awesome; + content: "\f054"; + } + } + } + input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; + } + + .tocitem { + display: block; + padding: 0.5rem 0.5rem; + + // We'll force all .tocitems to have the sidebar colors. This is to override any + // higher-level defaults, such as when the .tocitem is in an tag. We'll also make + // sure that they do not display any :hover behaviour by default. + &, &:hover { + color: $documenter-sidebar-color; + background: $documenter-sidebar-background; + } + } + // If the .tocitem is in an or '+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + cat = $('('+data.category+')') + li = $('
  • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) } - lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') - lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') - - var index = lunr(function () { - this.ref('location') - this.field('title') - this.field('text') - documenterSearchIndex['docs'].forEach(function(e) { - this.add(e) - }, this) - }) - var store = {} - - documenterSearchIndex['docs'].forEach(function(e) { - store[e.location] = {title: e.title, category: e.category} - }) - - $(function(){ - function update_search(querystring) { - tokens = lunr.tokenizer(querystring) - results = index.query(function (q) { - tokens.forEach(function (t) { - q.term(t.toString(), { - fields: ["title"], - boost: 100, - usePipeline: false, - editDistance: 0, - wildcard: lunr.Query.wildcard.NONE - }) - q.term(t.toString(), { - fields: ["title"], - boost: 10, - usePipeline: false, - editDistance: 2, - wildcard: lunr.Query.wildcard.NONE - }) - q.term(t.toString(), { - fields: ["text"], - boost: 1, - usePipeline: true, - editDistance: 0, - wildcard: lunr.Query.wildcard.NONE - }) - }) - }) - $('#search-info').text("Number of results: " + results.length) - $('#search-results').empty() - results.forEach(function(result) { - data = store[result.ref] - link = $('') - link.text(data.title) - link.attr('href', documenterBaseURL+'/'+result.ref) - cat = $('('+data.category+')') - li = $('
  • ').append(link).append(" ").append(cat) - $('#search-results').append(li) - }) - } - - function update_search_box() { - querystring = $('#search-query').val() - update_search(querystring) - } + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } - $('#search-query').keyup(_.debounce(update_search_box, 250)) - $('#search-query').change(update_search_box) + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) - search_query_uri = parseUri(window.location).queryKey["q"] - if(search_query_uri !== undefined) { - search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) - $("#search-query").val(search_query) - } - update_search_box(); - }) + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) }) diff --git a/assets/html/style.css b/assets/html/style.css deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/assets/html/themes/documenter-dark.css b/assets/html/themes/documenter-dark.css new file mode 100644 index 0000000000..1c370f2261 --- /dev/null +++ b/assets/html/themes/documenter-dark.css @@ -0,0 +1,7628 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .delete, html.theme--documenter-dark .modal-close, .is-unselectable, html.theme--documenter-dark .button, html.theme--documenter-dark .file, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after, html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .box:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .admonition:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .delete, html.theme--documenter-dark .modal-close { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::after, html.theme--documenter-dark .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .delete::after, html.theme--documenter-dark .modal-close::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:focus, html.theme--documenter-dark .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .delete:active, html.theme--documenter-dark .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete, html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.delete, html.theme--documenter-dark .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.delete, html.theme--documenter-dark .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .button.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .control.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.is-overlay, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, html.theme--documenter-dark .modal, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .button, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea, html.theme--documenter-dark .select select, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .button:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .is-active.button, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis { + outline: none; } + html.theme--documenter-dark .button[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], + fieldset[disabled] html.theme--documenter-dark .button, + html.theme--documenter-dark fieldset[disabled] .button, + fieldset[disabled] html.theme--documenter-dark .input, + html.theme--documenter-dark fieldset[disabled] .input, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] html.theme--documenter-dark .textarea, + html.theme--documenter-dark fieldset[disabled] .textarea, + fieldset[disabled] html.theme--documenter-dark .select select, + html.theme--documenter-dark .select fieldset[disabled] select, + fieldset[disabled] html.theme--documenter-dark .file-cta, + html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, + fieldset[disabled] html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
    that is identified by id #documenter. + */ + /* a11y-dark theme */ + /* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */ + /* @author: ericwbailey */ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #e74c3c; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark, + fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], + fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0.7rem 0.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body), html.theme--documenter-dark .content kbd:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag:not(body).is-white, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-white, html.theme--documenter-dark .content kbd:not(body).is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag:not(body).is-black, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-black, html.theme--documenter-dark .content kbd:not(body).is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag:not(body).is-light, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-light, html.theme--documenter-dark .content kbd:not(body).is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag:not(body).is-dark, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-dark, html.theme--documenter-dark .content kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag:not(body).is-primary, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body), html.theme--documenter-dark .content kbd:not(body).is-primary { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-link, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-link, html.theme--documenter-dark .content kbd:not(body).is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-info, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-info, html.theme--documenter-dark .content kbd:not(body).is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-success, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-success, html.theme--documenter-dark .content kbd:not(body).is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-warning, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-warning, html.theme--documenter-dark .content kbd:not(body).is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-danger, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-danger, html.theme--documenter-dark .content kbd:not(body).is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-normal, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-normal, html.theme--documenter-dark .content kbd:not(body).is-normal { + font-size: 0.85em; } + html.theme--documenter-dark .tag:not(body).is-medium, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-medium, html.theme--documenter-dark .content kbd:not(body).is-medium { + font-size: 15px; } + html.theme--documenter-dark .tag:not(body).is-large, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-large, html.theme--documenter-dark .content kbd:not(body).is-large { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body).is-delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete, html.theme--documenter-dark .content kbd:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag:not(body).is-delete::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::before, html.theme--documenter-dark .content kbd:not(body).is-delete::before, html.theme--documenter-dark .tag:not(body).is-delete::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::after, html.theme--documenter-dark .content kbd:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag:not(body).is-delete::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::before, html.theme--documenter-dark .content kbd:not(body).is-delete::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag:not(body).is-delete::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::after, html.theme--documenter-dark .content kbd:not(body).is-delete::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag:not(body).is-delete:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:hover, html.theme--documenter-dark .content kbd:not(body).is-delete:hover, html.theme--documenter-dark .tag:not(body).is-delete:focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:focus, html.theme--documenter-dark .content kbd:not(body).is-delete:focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag:not(body).is-delete:active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:active, html.theme--documenter-dark .content kbd:not(body).is-delete:active { + background-color: #111414; } + html.theme--documenter-dark .tag:not(body).is-rounded, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-rounded, html.theme--documenter-dark .content kbd:not(body).is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tag:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea, html.theme--documenter-dark .select select { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .select select::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .select select::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .select select:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .select select:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .select select.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .select select.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .select select[disabled], + fieldset[disabled] html.theme--documenter-dark .input, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + fieldset[disabled] html.theme--documenter-dark .textarea, + fieldset[disabled] html.theme--documenter-dark .select select { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .select select[disabled]::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .select select[disabled]:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly], html.theme--documenter-dark .textarea[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white, html.theme--documenter-dark .is-white.textarea { + border-color: white; } + html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white.is-focused, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white.is-active, html.theme--documenter-dark .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black, html.theme--documenter-dark .is-black.textarea { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black.is-focused, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black.is-active, html.theme--documenter-dark .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light, html.theme--documenter-dark .is-light.textarea { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light.is-focused, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light.is-active, html.theme--documenter-dark .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark .content kbd.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark.is-focused, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark.is-active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary.is-focused, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary.is-active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link, html.theme--documenter-dark .is-link.textarea { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link.is-focused, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link.is-active, html.theme--documenter-dark .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info, html.theme--documenter-dark .is-info.textarea { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info.is-focused, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info.is-active, html.theme--documenter-dark .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success, html.theme--documenter-dark .is-success.textarea { + border-color: #008438; } + html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success.is-focused, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success.is-active, html.theme--documenter-dark .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning, html.theme--documenter-dark .is-warning.textarea { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning.is-focused, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning.is-active, html.theme--documenter-dark .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger, html.theme--documenter-dark .is-danger.textarea { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger.is-focused, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger.is-active, html.theme--documenter-dark .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .is-small.textarea { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium, html.theme--documenter-dark .is-medium.textarea { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large, html.theme--documenter-dark .is-large.textarea { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth, html.theme--documenter-dark .is-fullwidth.textarea { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline, html.theme--documenter-dark .is-inline.textarea { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .checkbox, html.theme--documenter-dark .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .checkbox input, html.theme--documenter-dark .radio input { + cursor: pointer; } + html.theme--documenter-dark .checkbox:hover, html.theme--documenter-dark .radio:hover { + color: #8c9b9d; } + html.theme--documenter-dark .checkbox[disabled], html.theme--documenter-dark .radio[disabled], + fieldset[disabled] html.theme--documenter-dark .checkbox, + fieldset[disabled] html.theme--documenter-dark .radio { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, + fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-hovered, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-focused, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-focused:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, + html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.select ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon, + html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.select ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.control.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1rem 1.25rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1em 1.25em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .content kbd { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75em; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 1em 1.25em; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 1rem 1.25rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.625rem; + bottom: 0.5rem; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; + padding: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-builtin-name, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs { + display: block; + overflow-x: auto; + background: #2b2b2b; + color: #f8f8f2; + padding: 0.5em; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-builtin-name, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/assets/html/themes/documenter-light.css b/assets/html/themes/documenter-light.css new file mode 100644 index 0000000000..bfb4e9dbf8 --- /dev/null +++ b/assets/html/themes/documenter-light.css @@ -0,0 +1,7614 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.delete, .modal-close, .is-unselectable, .button, .file, .breadcrumb, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.select:not(.is-multiple):not(.is-loading)::after, .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.box:not(:last-child), .content:not(:last-child), .notification:not(:last-child), .progress:not(:last-child), .table:not(:last-child), .table-container:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .block:not(:last-child), .highlight:not(:last-child), .breadcrumb:not(:last-child), .level:not(:last-child), .list:not(:last-child), .message:not(:last-child), .tabs:not(:last-child), .admonition:not(:last-child) { + margin-bottom: 1.5rem; } + +.delete, .modal-close { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .delete::before, .modal-close::before, .delete::after, .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .delete::before, .modal-close::before { + height: 2px; + width: 50%; } + .delete::after, .modal-close::after { + height: 50%; + width: 2px; } + .delete:hover, .modal-close:hover, .delete:focus, .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); } + .delete:active, .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete, .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.delete, .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.delete, .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.button.is-loading::after, .loader, .select.is-loading::after, .control.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.is-overlay, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .modal, .modal-background, .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.button, .input, #documenter .docs-sidebar form.docs-search > input, .textarea, .select select, .file-cta, +.file-name, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .button:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .textarea:focus, .select select:focus, .file-cta:focus, + .file-name:focus, .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .is-focused.button, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.textarea, .select select.is-focused, .is-focused.file-cta, + .is-focused.file-name, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .button:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .textarea:active, .select select:active, .file-cta:active, + .file-name:active, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .is-active.button, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.textarea, .select select.is-active, .is-active.file-cta, + .is-active.file-name, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis { + outline: none; } + .button[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .textarea[disabled], .select select[disabled], .file-cta[disabled], + .file-name[disabled], .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], + fieldset[disabled] .button, + fieldset[disabled] .input, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] .textarea, + fieldset[disabled] .select select, + .select fieldset[disabled] select, + fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, + fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #0f81cc !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #7a7a7a !important; } + +.has-background-grey { + background-color: #7a7a7a !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #2e63b8; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], + fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], + fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], + fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], + fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], + fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], + fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], + fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], + fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], + fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], + fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], + fieldset[disabled] .button.is-dark, + fieldset[disabled] .content kbd.button, + .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], + fieldset[disabled] .button.is-dark.is-inverted, + fieldset[disabled] .content kbd.button.is-inverted, + .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], + fieldset[disabled] .button.is-dark.is-outlined, + fieldset[disabled] .content kbd.button.is-outlined, + .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-dark.is-inverted.is-outlined, + fieldset[disabled] .content kbd.button.is-inverted.is-outlined, + .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary, + fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-inverted, + fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-outlined, + fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-inverted.is-outlined, + fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], + fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], + fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], + fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1496ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #118fe4; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], + fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], + fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], + fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], + fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], + fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], + fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], + fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], + fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], + fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], + fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], + fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], + fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], + fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #7a7a7a; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } + +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; } + .content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; } + .content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; } + .content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0.7rem 0.5rem; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .docstring > section > a.docs-sourcelink, .tags .content kbd, .content .tags kbd { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .docstring > section > a.docs-sourcelink, .tags.is-centered .content kbd, .content .tags.is-centered kbd { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .docstring > section > a.docs-sourcelink, .tags.has-addons .content kbd, .content .tags.has-addons kbd { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .docstring > section > a.docs-sourcelink:not(body), .content kbd:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete, .content kbd:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag:not(body).is-white, .docstring > section > a.docs-sourcelink:not(body).is-white, .content kbd:not(body).is-white { + background-color: white; + color: #0a0a0a; } + .tag:not(body).is-black, .docstring > section > a.docs-sourcelink:not(body).is-black, .content kbd:not(body).is-black { + background-color: #0a0a0a; + color: white; } + .tag:not(body).is-light, .docstring > section > a.docs-sourcelink:not(body).is-light, .content kbd:not(body).is-light { + background-color: whitesmoke; + color: #363636; } + .tag:not(body).is-dark, .docstring > section > a.docs-sourcelink:not(body).is-dark, .content kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag:not(body).is-primary, .docstring > section > a.docs-sourcelink:not(body), .content kbd:not(body).is-primary { + background-color: #4eb5de; + color: #fff; } + .tag:not(body).is-link, .docstring > section > a.docs-sourcelink:not(body).is-link, .content kbd:not(body).is-link { + background-color: #2e63b8; + color: #fff; } + .tag:not(body).is-info, .docstring > section > a.docs-sourcelink:not(body).is-info, .content kbd:not(body).is-info { + background-color: #209cee; + color: #fff; } + .tag:not(body).is-success, .docstring > section > a.docs-sourcelink:not(body).is-success, .content kbd:not(body).is-success { + background-color: #22c35b; + color: #fff; } + .tag:not(body).is-warning, .docstring > section > a.docs-sourcelink:not(body).is-warning, .content kbd:not(body).is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag:not(body).is-danger, .docstring > section > a.docs-sourcelink:not(body).is-danger, .content kbd:not(body).is-danger { + background-color: #da0b00; + color: #fff; } + .tag:not(body).is-normal, .docstring > section > a.docs-sourcelink:not(body).is-normal, .content kbd:not(body).is-normal { + font-size: 0.75rem; } + .tag:not(body).is-medium, .docstring > section > a.docs-sourcelink:not(body).is-medium, .content kbd:not(body).is-medium { + font-size: 1rem; } + .tag:not(body).is-large, .docstring > section > a.docs-sourcelink:not(body).is-large, .content kbd:not(body).is-large { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag:not(body).is-delete, .docstring > section > a.docs-sourcelink:not(body).is-delete, .content kbd:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag:not(body).is-delete::before, .docstring > section > a.docs-sourcelink:not(body).is-delete::before, .content kbd:not(body).is-delete::before, .tag:not(body).is-delete::after, .docstring > section > a.docs-sourcelink:not(body).is-delete::after, .content kbd:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag:not(body).is-delete::before, .docstring > section > a.docs-sourcelink:not(body).is-delete::before, .content kbd:not(body).is-delete::before { + height: 1px; + width: 50%; } + .tag:not(body).is-delete::after, .docstring > section > a.docs-sourcelink:not(body).is-delete::after, .content kbd:not(body).is-delete::after { + height: 50%; + width: 1px; } + .tag:not(body).is-delete:hover, .docstring > section > a.docs-sourcelink:not(body).is-delete:hover, .content kbd:not(body).is-delete:hover, .tag:not(body).is-delete:focus, .docstring > section > a.docs-sourcelink:not(body).is-delete:focus, .content kbd:not(body).is-delete:focus { + background-color: #e8e8e8; } + .tag:not(body).is-delete:active, .docstring > section > a.docs-sourcelink:not(body).is-delete:active, .content kbd:not(body).is-delete:active { + background-color: #dbdbdb; } + .tag:not(body).is-rounded, .docstring > section > a.docs-sourcelink:not(body).is-rounded, .content kbd:not(body).is-rounded, #documenter .docs-sidebar form.docs-search > input.tag:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .docstring > section > a.docs-sourcelink, .title .content kbd, .content .title kbd, + .subtitle .tag, + .subtitle .docstring > section > a.docs-sourcelink, + .subtitle .content kbd, + .content .subtitle kbd { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.input, #documenter .docs-sidebar form.docs-search > input, .textarea, .select select { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, .textarea::-moz-placeholder, .select select::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .select select::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, .textarea:-moz-placeholder, .select select:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, .textarea:-ms-input-placeholder, .select select:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .textarea:hover, .select select:hover, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered, .is-hovered.textarea, .select select.is-hovered { + border-color: #b5b5b5; } + .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .textarea:focus, .select select:focus, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.textarea, .select select.is-focused, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .textarea:active, .select select:active, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.textarea, .select select.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .textarea[disabled], .select select[disabled], + fieldset[disabled] .input, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] .textarea, + fieldset[disabled] .select select, + .select fieldset[disabled] select { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #7a7a7a; } + .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .select select[disabled]::-moz-placeholder, + fieldset[disabled] .input::-moz-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder, + fieldset[disabled] .textarea::-moz-placeholder, + fieldset[disabled] .select select::-moz-placeholder, + .select fieldset[disabled] select::-moz-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .select select[disabled]::-webkit-input-placeholder, + fieldset[disabled] .input::-webkit-input-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder, + fieldset[disabled] .textarea::-webkit-input-placeholder, + fieldset[disabled] .select select::-webkit-input-placeholder, + .select fieldset[disabled] select::-webkit-input-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .select select[disabled]:-moz-placeholder, + fieldset[disabled] .input:-moz-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder, + fieldset[disabled] .textarea:-moz-placeholder, + fieldset[disabled] .select select:-moz-placeholder, + .select fieldset[disabled] select:-moz-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .select select[disabled]:-ms-input-placeholder, + fieldset[disabled] .input:-ms-input-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder, + fieldset[disabled] .textarea:-ms-input-placeholder, + fieldset[disabled] .select select:-ms-input-placeholder, + .select fieldset[disabled] select:-ms-input-placeholder { + color: rgba(122, 122, 122, 0.3); } + +.input, #documenter .docs-sidebar form.docs-search > input, .textarea { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly], .textarea[readonly] { + box-shadow: none; } + .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white, .is-white.textarea { + border-color: white; } + .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.textarea:focus, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-white.is-focused, .is-white.is-focused.textarea, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.textarea:active, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-white.is-active, .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black, .is-black.textarea { + border-color: #0a0a0a; } + .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.textarea:focus, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-black.is-focused, .is-black.is-focused.textarea, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.textarea:active, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-black.is-active, .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light, .is-light.textarea { + border-color: whitesmoke; } + .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.textarea:focus, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-light.is-focused, .is-light.is-focused.textarea, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.textarea:active, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-light.is-active, .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.input, .content kbd.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .is-dark.textarea, .content kbd.textarea { + border-color: #363636; } + .is-dark.input:focus, .content kbd.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.is-focused.input, .content kbd.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-dark.is-focused, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.input:active, .content kbd.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.is-active.input, .content kbd.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-dark.is-active, .is-dark.is-active.textarea, .content kbd.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.input, .docstring > section > a.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary, .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.input:focus, .docstring > section > a.input.docs-sourcelink:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.is-focused.input, .docstring > section > a.is-focused.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary.is-focused, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.input:active, .docstring > section > a.input.docs-sourcelink:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.is-active.input, .docstring > section > a.is-active.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary.is-active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link, .is-link.textarea { + border-color: #2e63b8; } + .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.textarea:focus, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-link.is-focused, .is-link.is-focused.textarea, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.textarea:active, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-link.is-active, .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info, .is-info.textarea { + border-color: #209cee; } + .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.textarea:focus, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-info.is-focused, .is-info.is-focused.textarea, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.textarea:active, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-info.is-active, .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success, .is-success.textarea { + border-color: #22c35b; } + .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.textarea:focus, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-success.is-focused, .is-success.is-focused.textarea, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.textarea:active, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-success.is-active, .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning, .is-warning.textarea { + border-color: #ffdd57; } + .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.textarea:focus, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-warning.is-focused, .is-warning.is-focused.textarea, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.textarea:active, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-warning.is-active, .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger, .is-danger.textarea { + border-color: #da0b00; } + .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.textarea:focus, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-danger.is-focused, .is-danger.is-focused.textarea, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.textarea:active, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-danger.is-active, .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.input, #documenter .docs-sidebar form.docs-search > input, .is-small.textarea { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium, .is-medium.textarea { + font-size: 1.25rem; } + .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large, .is-large.textarea { + font-size: 1.5rem; } + .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth, .is-fullwidth.textarea { + display: block; + width: 100%; } + .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline, .is-inline.textarea { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.checkbox, .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .checkbox input, .radio input { + cursor: pointer; } + .checkbox:hover, .radio:hover { + color: #363636; } + .checkbox[disabled], .radio[disabled], + fieldset[disabled] .checkbox, + fieldset[disabled] .radio { + color: #7a7a7a; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, + fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #118fe4; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83d; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #7a7a7a; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.select.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1496ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #118fe4; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.file.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button:not([disabled]).is-hovered, + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]).is-hovered, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-hovered, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-hovered, + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button:not([disabled]).is-focused, .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button:not([disabled]).is-active, + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input:not([disabled]).is-focused, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused, + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input:not([disabled]).is-active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active, + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select:not([disabled]).is-focused, + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button:not([disabled]).is-focused:hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button:not([disabled]).is-active:hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input:not([disabled]).is-focused:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused:hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input:not([disabled]).is-active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active:hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select:not([disabled]).is-focused:hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #7a7a7a; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, + .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.select ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon, + .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.select ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.control.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1rem 1.25rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } + +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } + +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #7a7a7a; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537e; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3b3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1em 1.25em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #2e63b8; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #7a7a7a; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #7a7a7a; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.33333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.33333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.66667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.66667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.33333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.33333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.66667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.66667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.33333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.33333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.66667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.66667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.33333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.33333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.66667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.66667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.33333%; } + .column.is-offset-1-mobile { + margin-left: 8.33333%; } + .column.is-2-mobile { + flex: none; + width: 16.66667%; } + .column.is-offset-2-mobile { + margin-left: 16.66667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.33333%; } + .column.is-offset-4-mobile { + margin-left: 33.33333%; } + .column.is-5-mobile { + flex: none; + width: 41.66667%; } + .column.is-offset-5-mobile { + margin-left: 41.66667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.33333%; } + .column.is-offset-7-mobile { + margin-left: 58.33333%; } + .column.is-8-mobile { + flex: none; + width: 66.66667%; } + .column.is-offset-8-mobile { + margin-left: 66.66667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.33333%; } + .column.is-offset-10-mobile { + margin-left: 83.33333%; } + .column.is-11-mobile { + flex: none; + width: 91.66667%; } + .column.is-offset-11-mobile { + margin-left: 91.66667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.33333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.33333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.66667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.66667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.33333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.33333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.66667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.66667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.33333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.33333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.66667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.66667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.33333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.33333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.66667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.66667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.33333%; } + .column.is-offset-1-touch { + margin-left: 8.33333%; } + .column.is-2-touch { + flex: none; + width: 16.66667%; } + .column.is-offset-2-touch { + margin-left: 16.66667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.33333%; } + .column.is-offset-4-touch { + margin-left: 33.33333%; } + .column.is-5-touch { + flex: none; + width: 41.66667%; } + .column.is-offset-5-touch { + margin-left: 41.66667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.33333%; } + .column.is-offset-7-touch { + margin-left: 58.33333%; } + .column.is-8-touch { + flex: none; + width: 66.66667%; } + .column.is-offset-8-touch { + margin-left: 66.66667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.33333%; } + .column.is-offset-10-touch { + margin-left: 83.33333%; } + .column.is-11-touch { + flex: none; + width: 91.66667%; } + .column.is-offset-11-touch { + margin-left: 91.66667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.33333%; } + .column.is-offset-1-desktop { + margin-left: 8.33333%; } + .column.is-2-desktop { + flex: none; + width: 16.66667%; } + .column.is-offset-2-desktop { + margin-left: 16.66667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.33333%; } + .column.is-offset-4-desktop { + margin-left: 33.33333%; } + .column.is-5-desktop { + flex: none; + width: 41.66667%; } + .column.is-offset-5-desktop { + margin-left: 41.66667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.33333%; } + .column.is-offset-7-desktop { + margin-left: 58.33333%; } + .column.is-8-desktop { + flex: none; + width: 66.66667%; } + .column.is-offset-8-desktop { + margin-left: 66.66667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.33333%; } + .column.is-offset-10-desktop { + margin-left: 83.33333%; } + .column.is-11-desktop { + flex: none; + width: 91.66667%; } + .column.is-offset-11-desktop { + margin-left: 91.66667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.33333%; } + .column.is-offset-1-widescreen { + margin-left: 8.33333%; } + .column.is-2-widescreen { + flex: none; + width: 16.66667%; } + .column.is-offset-2-widescreen { + margin-left: 16.66667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.33333%; } + .column.is-offset-4-widescreen { + margin-left: 33.33333%; } + .column.is-5-widescreen { + flex: none; + width: 41.66667%; } + .column.is-offset-5-widescreen { + margin-left: 41.66667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.33333%; } + .column.is-offset-7-widescreen { + margin-left: 58.33333%; } + .column.is-8-widescreen { + flex: none; + width: 66.66667%; } + .column.is-offset-8-widescreen { + margin-left: 66.66667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.33333%; } + .column.is-offset-10-widescreen { + margin-left: 83.33333%; } + .column.is-11-widescreen { + flex: none; + width: 91.66667%; } + .column.is-offset-11-widescreen { + margin-left: 91.66667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.33333%; } + .column.is-offset-1-fullhd { + margin-left: 8.33333%; } + .column.is-2-fullhd { + flex: none; + width: 16.66667%; } + .column.is-offset-2-fullhd { + margin-left: 16.66667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.33333%; } + .column.is-offset-4-fullhd { + margin-left: 33.33333%; } + .column.is-5-fullhd { + flex: none; + width: 41.66667%; } + .column.is-offset-5-fullhd { + margin-left: 41.66667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.33333%; } + .column.is-offset-7-fullhd { + margin-left: 58.33333%; } + .column.is-8-fullhd { + flex: none; + width: 66.66667%; } + .column.is-offset-8-fullhd { + margin-left: 66.66667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.33333%; } + .column.is-offset-10-fullhd { + margin-left: 83.33333%; } + .column.is-11-fullhd { + flex: none; + width: 91.66667%; } + .column.is-offset-11-fullhd { + margin-left: 91.66667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } + +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } + +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.33333%; } + .tile.is-2 { + flex: none; + width: 16.66667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.33333%; } + .tile.is-5 { + flex: none; + width: 41.66667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.33333%; } + .tile.is-8 { + flex: none; + width: 66.66667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.33333%; } + .tile.is-11 { + flex: none; + width: 91.66667%; } + .tile.is-12 { + flex: none; + width: 100%; } } + +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .content kbd.hero .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover, .content kbd.hero .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } + +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } + +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #b8dffa; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #9beeb8; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ff857e; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: #fff; } + .admonition.is-compat { + background-color: #99e6f0; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75em; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 1em 1.25em; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 1rem 1.25rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.625rem; + bottom: 0.5rem; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; + padding: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +/* This file contain the overall layout. + * + * The main container is
    that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +/* + +Original highlight.js style (c) Ivan Sagalaev + +*/ +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #F0F0F0; } + +/* Base color: saturation 0; */ +.hljs, +.hljs-subst { + color: #444; } + +.hljs-comment { + color: #888888; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/assets/html/themeswap.js b/assets/html/themeswap.js new file mode 100644 index 0000000000..d4666841d2 --- /dev/null +++ b/assets/html/themeswap.js @@ -0,0 +1,42 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Browser does not support Web Storage, bail early. + if(typeof(window.localStorage) === "undefined") return; + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + var theme = window.localStorage.getItem("documenter-theme"); + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(!isprimary && themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } +} +set_theme_from_local_storage(); diff --git a/assets/latex/documenter.sty b/assets/latex/documenter.sty index 8774c63200..1bccffff9c 100644 --- a/assets/latex/documenter.sty +++ b/assets/latex/documenter.sty @@ -1,9 +1,14 @@ % font settings \usepackage{fontspec, newunicodechar, polyglossia} -\setsansfont{Lato}[Scale=MatchLowercase, Ligatures=TeX] -\setmonofont{Roboto Mono}[Scale=MatchLowercase] +\setsansfont{DejaVu Sans}[Scale=MatchLowercase, Ligatures=TeX] +\setmonofont{DejaVu Sans Mono}[Scale=MatchLowercase] \renewcommand{\familydefault}{\sfdefault} +% DejaVu Sans Mono does not have the xor symbol. So we hack around that by replacing all +% instances of it with calls to \unicodeveebar, which prints this single character as with +% DejaVu Sans instead. +\newfontfamily\unicodeveebarfont{DejaVu Sans}[Scale=MatchLowercase] +\newcommand\unicodeveebar{{\unicodeveebarfont ⊻}} % % colours @@ -78,4 +83,5 @@ % images etc. \usepackage{graphicx} +\usepackage[export]{adjustbox} % diff --git a/.codecov.yml b/coverage/.codecov.yml similarity index 100% rename from .codecov.yml rename to coverage/.codecov.yml diff --git a/coverage/coverage.jl b/coverage/coverage.jl deleted file mode 100644 index c15a01cbbf..0000000000 --- a/coverage/coverage.jl +++ /dev/null @@ -1,9 +0,0 @@ -# Only run coverage from linux nightly build on travis. -get(ENV, "TRAVIS_OS_NAME", "") == "linux" || exit() -get(ENV, "TRAVIS_JULIA_VERSION", "") == "nightly" || exit() - -using Coverage - -cd(joinpath(dirname(@__FILE__), "..")) do - Codecov.submit(Codecov.process_folder()) -end diff --git a/docs/DocumenterShowcase.jl b/docs/DocumenterShowcase.jl new file mode 100644 index 0000000000..3e1d4d29b4 --- /dev/null +++ b/docs/DocumenterShowcase.jl @@ -0,0 +1,76 @@ +""" +This is the [`DocumenterShowcase`](@ref), which contains + +* [`DocumenterShowcase.foo`](@ref) +* [`DocumenterShowcase.bar`](@ref) + +!!! compat "Documenter 0.24" + + This showcase page is included in Documenter version 0.24.0 and above. + +# Contents + +Docstrings can contain admonitions and other block-level nodes. + +!!! info + + This admonition is in a docstring. It itself can contain block levels nodes such + as code blocks: + + ```julia + println("Hello World") + ``` + + ... or block quotes: + + > Lorem ipsum. + +In fact, while not recommended, you can actually have a matryoshka of admonitions: + +!!! danger + !!! warning + !!! tip + !!! note + Stack overflow. +""" +module DocumenterShowcase + +""" +Docstring for `foo(::Integer)`. +""" +foo(::Integer) = nothing + +""" +Docstring for `foo(::AbstractString)`. +""" +foo(::AbstractString) = nothing + +""" +Docstring for `bar(::Integer)`. +""" +bar(::Integer) = nothing + +""" +Docstring for `bar(::AbstractString)`. +""" +bar(::AbstractString) = nothing + +function hello(who) + println("Hello, $(who)!") +end + +struct SVGCircle + stroke :: String + fill :: String +end +function Base.show(io, ::MIME"image/svg+xml", c::SVGCircle) + write(io, """ + + + + + + """) +end + +end # module diff --git a/docs/Project.toml b/docs/Project.toml index 2742e84b27..3efd132293 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -1,3 +1,6 @@ [deps] Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" DocumenterTools = "35a29f4d-8980-5a13-9543-d66fff28ecb8" + +[compat] +DocumenterTools = "=0.1.3" diff --git a/docs/make.jl b/docs/make.jl index 2d101a6128..a1ed073f13 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -1,18 +1,41 @@ using Documenter, DocumenterTools +include("DocumenterShowcase.jl") + +# The DOCSARGS environment variable can be used to pass additional arguments to make.jl. +# This is useful on CI, if you need to change the behavior of the build slightly but you +# can not change the .travis.yml or make.jl scripts any more (e.g. for a tag build). +if haskey(ENV, "DOCSARGS") + for arg in split(ENV["DOCSARGS"]) + (arg in ARGS) || push!(ARGS, arg) + end +end makedocs( - modules = [Documenter, DocumenterTools], + modules = [Documenter, DocumenterTools, DocumenterShowcase], format = Documenter.HTML( # Use clean URLs, unless built as a "local" build prettyurls = !("local" in ARGS), canonical = "https://juliadocs.github.io/Documenter.jl/stable/", assets = ["assets/favicon.ico"], - analytics = "UA-89508993-1", + analytics = "UA-136089579-2", + highlights = ["yaml"], ), clean = false, sitename = "Documenter.jl", authors = "Michael Hatherly, Morten Piibeleht, and contributors.", linkcheck = !("skiplinks" in ARGS), + linkcheck_ignore = [ + # timelessrepo.com seems to 404 on any CURL request... + "http://timelessrepo.com/json-isnt-a-javascript-subset", + # We'll ignore links that point to GitHub's edit pages, as they redirect to the + # login screen and cause a warning: + r"https://github.com/([A-Za-z0-9_.-]+)/([A-Za-z0-9_.-]+)/edit(.*)", + ] ∪ (get(ENV, "GITHUB_ACTIONS", nothing) == "true" ? [ + # Extra ones we ignore only on CI. + # + # It seems that CTAN blocks GitHub Actions? + "https://ctan.org/pkg/minted", + ] : []), pages = [ "Home" => "index.md", "Manual" => Any[ @@ -26,32 +49,22 @@ makedocs( ]), "man/other-formats.md", ], + "showcase.md", "Library" => Any[ "Public" => "lib/public.md", - hide("Internals" => "lib/internals.md", Any[ - "lib/internals/anchors.md", - "lib/internals/builder.md", - "lib/internals/cross-references.md", - "lib/internals/docchecks.md", - "lib/internals/docsystem.md", - "lib/internals/doctests.md", - "lib/internals/documenter.md", - "lib/internals/documentertools.md", - "lib/internals/documents.md", - "lib/internals/dom.md", - "lib/internals/expanders.md", - "lib/internals/mdflatten.md", - "lib/internals/selectors.md", - "lib/internals/textdiff.md", - "lib/internals/utilities.md", - "lib/internals/writers.md", - ]) + "Internals" => map( + s -> "lib/internals/$(s)", + sort(readdir(joinpath(@__DIR__, "src/lib/internals"))) + ), ], "contributing.md", ], + strict = !("strict=false" in ARGS), + doctest = ("doctest=only" in ARGS) ? :only : true, ) deploydocs( repo = "github.com/JuliaDocs/Documenter.jl.git", target = "build", + push_preview = true, ) diff --git a/docs/pdf/make.jl b/docs/pdf/make.jl index a8a40fcc05..6ffe36c8ba 100644 --- a/docs/pdf/make.jl +++ b/docs/pdf/make.jl @@ -26,13 +26,15 @@ doc = makedocs( ]), "man/other-formats.md", ], + "showcase.md", "Library" => Any[ "Public" => "lib/public.md", - hide("Internals" => "lib/internals.md", Any[ + "Internals" => Any[ "lib/internals/anchors.md", "lib/internals/builder.md", "lib/internals/cross-references.md", "lib/internals/docchecks.md", + "lib/internals/docmeta.md", "lib/internals/docsystem.md", "lib/internals/doctests.md", "lib/internals/documenter.md", @@ -40,15 +42,16 @@ doc = makedocs( "lib/internals/documents.md", "lib/internals/dom.md", "lib/internals/expanders.md", + "lib/internals/markdown2.md", "lib/internals/mdflatten.md", "lib/internals/selectors.md", "lib/internals/textdiff.md", "lib/internals/utilities.md", "lib/internals/writers.md", - ]) + ], ], "contributing.md", - ] + ], ); # hack to only deploy the actual pdf-file diff --git a/docs/src/assets/favicon.ico b/docs/src/assets/favicon.ico index d7931951e1..c4781e5d73 100644 Binary files a/docs/src/assets/favicon.ico and b/docs/src/assets/favicon.ico differ diff --git a/docs/src/assets/logo-dark.svg b/docs/src/assets/logo-dark.svg new file mode 100644 index 0000000000..071c7b8f34 --- /dev/null +++ b/docs/src/assets/logo-dark.svg @@ -0,0 +1,77 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff --git a/docs/src/assets/logo.svg b/docs/src/assets/logo.svg index dcc0d3c6f0..f4eaf97fe9 100644 --- a/docs/src/assets/logo.svg +++ b/docs/src/assets/logo.svg @@ -1,154 +1,11 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - ! - ? - - - - + + + + + + + + + + diff --git a/docs/src/contributing.md b/docs/src/contributing.md index 51f7432bc6..af090f6fb8 100644 --- a/docs/src/contributing.md +++ b/docs/src/contributing.md @@ -17,7 +17,7 @@ Feel free to nominate commits that should be backported by opening an issue. Req ### `release-*` branches - * Each new minor version `x.y.0` gets a branch called `release-x.y` (a [protected branch](https://help.github.com/articles/about-protected-branches/)). + * Each new minor version `x.y.0` gets a branch called `release-x.y` (a [protected branch](https://help.github.com/en/github/administering-a-repository/about-protected-branches)). * New versions are usually tagged only from the `release-x.y` branches. * For patch releases, changes get backported to the `release-x.y` branch via a single PR with the standard name "Backports for x.y.z" and label ["Type: Backport"](https://github.com/JuliaDocs/Documenter.jl/pulls?q=label%3A%22Type%3A+Backport%22). The PR message links to all the PRs that are providing commits to the backport. The PR gets merged as a merge commit (i.e. not squashed). * The old `release-*` branches may be removed once they have outlived their usefulness. diff --git a/docs/src/lib/internals.md b/docs/src/lib/internals.md deleted file mode 100644 index b78ce0e726..0000000000 --- a/docs/src/lib/internals.md +++ /dev/null @@ -1,17 +0,0 @@ -# Internal Documentation - -This page lists all the documented internals of the `Documenter` module and submodules. - -## Contents - -```@contents -Pages = [joinpath("internals", f) for f in readdir("internals")] -``` - -## Index - -A list of all internal documentation sorted by module. - -```@index -Pages = [joinpath("internals", f) for f in readdir("internals")] -``` diff --git a/docs/src/lib/internals/docmeta.md b/docs/src/lib/internals/docmeta.md new file mode 100644 index 0000000000..fb7896d375 --- /dev/null +++ b/docs/src/lib/internals/docmeta.md @@ -0,0 +1,9 @@ +# DocMeta + +```@docs +DocMeta.initdocmeta! +DocMeta.META +DocMeta.METAMODULES +DocMeta.METATYPE +DocMeta.VALIDMETA +``` diff --git a/docs/src/lib/internals/documentertools.md b/docs/src/lib/internals/documentertools.md index ba3966f501..b655781aba 100644 --- a/docs/src/lib/internals/documentertools.md +++ b/docs/src/lib/internals/documentertools.md @@ -9,3 +9,13 @@ DocumenterTools.package_devpath ```@autodocs Modules = [DocumenterTools.Generator] ``` + +## Themes + +!!! warning "Experimental API" + + The theming API in DocumenterTools is very experimental and may change without notice. + +```@autodocs +Modules = [DocumenterTools.Themes] +``` diff --git a/docs/src/lib/internals/jsdependencies.md b/docs/src/lib/internals/jsdependencies.md new file mode 100644 index 0000000000..d42601f3a0 --- /dev/null +++ b/docs/src/lib/internals/jsdependencies.md @@ -0,0 +1,5 @@ +# JSDependencies + +```@autodocs +Modules = [Documenter.Utilities.JSDependencies] +``` diff --git a/docs/src/lib/internals/markdown2.md b/docs/src/lib/internals/markdown2.md new file mode 100644 index 0000000000..2d7bda5e69 --- /dev/null +++ b/docs/src/lib/internals/markdown2.md @@ -0,0 +1,15 @@ +# Markdown2 + +Documentation for the private [`Markdown2`](@ref Documenter.Utilities.Markdown2) module. + +## Index + +```@index +Pages = ["markdown2.md"] +``` + +## Docstrings + +```@autodocs +Modules = [Documenter.Utilities.Markdown2] +``` diff --git a/docs/src/lib/internals/writers.md b/docs/src/lib/internals/writers.md index 3b08cc016e..c54d260728 100644 --- a/docs/src/lib/internals/writers.md +++ b/docs/src/lib/internals/writers.md @@ -5,6 +5,7 @@ Modules = [ Documenter.Writers, Documenter.Writers.MarkdownWriter, Documenter.Writers.HTMLWriter, + Documenter.Writers.HTMLWriter.RD, Documenter.Writers.LaTeXWriter, ] ``` diff --git a/docs/src/lib/public.md b/docs/src/lib/public.md index f0ebbd3656..f9531d7247 100644 --- a/docs/src/lib/public.md +++ b/docs/src/lib/public.md @@ -2,7 +2,7 @@ Documentation for `Documenter.jl`'s public interface. -See [Internal Documentation](@ref) for internal package docs covering all submodules. +See the Internals section of the manual for internal package docs covering all submodules. ## Contents @@ -22,15 +22,19 @@ Pages = ["public.md"] Documenter makedocs hide +asset deploydocs Deps Deps.pip +doctest +DocMeta +DocMeta.getdocmeta +DocMeta.setdocmeta! ``` ## DocumenterTools ```@docs DocumenterTools.generate -DocumenterTools.Travis.genkeys -DocumenterTools.Travis +DocumenterTools.genkeys ``` diff --git a/docs/src/man/doctests.md b/docs/src/man/doctests.md index 5768864d85..52561b88b2 100644 --- a/docs/src/man/doctests.md +++ b/docs/src/man/doctests.md @@ -1,9 +1,9 @@ # Doctests -Documenter will, by default, try to run `jldoctest` code blocks that it finds in the generated -documentation. This can help to avoid documentation examples from becoming outdated, -incorrect, or misleading. It's recommended that as many of a package's examples be runnable -by Documenter's doctest. +Documenter will, by default, run `jldoctest` code blocks that it finds and makes sure that +the actual output matches what's in the doctest. This can help to avoid documentation +examples from becoming outdated, incorrect, or misleading. It's recommended that as many of +a package's examples be runnable by Documenter's doctest. This section of the manual outlines how to go about enabling doctests for code blocks in your package's documentation. @@ -81,6 +81,12 @@ and will suppress the output, although the line is still evaluated. Note that not all features of the REPL are supported such as shell and help modes. +!!! note "Soft vs hard scope" + + Julia 1.5 changed the REPL to use the _soft scope_ when handling global variables in + `for` loops etc. When using Documenter with Julia 1.5 or above, Documenter uses the soft + scope in `@repl`-blocks and REPL-type doctests. + ## Exceptions Doctests can also test for thrown exceptions and their stacktraces. Comparing of the actual @@ -178,10 +184,14 @@ julia> println(foo) ## Setup Code Doctests may require some setup code that must be evaluated prior to that of the actual -example, but that should not be displayed in the final documentation. For this purpose a -`@meta` block containing a `DocTestSetup = ...` value can be used. In the example below, -the function `foo` is defined inside a `@meta` block. This block will be evaluated at -the start of the following doctest blocks: +example, but that should not be displayed in the final documentation. There are three ways +to specify the setup code, each appropriate in a different situation. + +### `DocTestSetup` in `@meta` blocks + +For doctests in the Markdown source files, an `@meta` block containing a `DocTestSetup = +...` value can be used. In the example below, the function `foo` is defined inside a `@meta` +block. This block will be evaluated at the start of the following doctest blocks: ````markdown ```@meta @@ -205,8 +215,36 @@ DocTestSetup = nothing The `DocTestSetup = nothing` is not strictly necessary, but good practice nonetheless to help avoid unintentional definitions in following doctest blocks. -Another option is to use the `setup` keyword argument, which is convenient for short definitions, -and for setups needed in inline docstrings. +While technically the `@meta` blocks also work within docstrings, their use there is +discouraged since the `@meta` blocks will show up when querying docstrings in the REPL. + +!!! note "Historic note" + It used to be that `DocTestSetup`s in `@meta` blocks in Markdown files that included + docstrings also affected the doctests in the docstrings. Since Documenter 0.23 that is + no longer the case. You should use [Module-level metadata](@ref) or [Block-level setup + code](@ref) instead. + +### Module-level metadata + +For doctests that are in docstrings, the exported [`DocMeta`](@ref) module provides an API +to attach metadata that applies to all the docstrings in a particular module. Setting up the +`DocTestSetup` metadata should be done before the [`makedocs`](@ref) or [`doctest`](@ref) +call: + +```julia +using MyPackage, Documenter +DocMeta.setdocmeta!(MyPackage, :DocTestSetup, :(using MyPackage); recursive=true) +makedocs(modules=[MyPackage], ...) +``` + +!!! note + Make sure to include all (top-level) modules that contain docstrings with doctests in the + `modules` argument to [`makedocs`](@ref). Otherwise these doctests will not be run. + +### Block-level setup code + +Yet another option is to use the `setup` keyword argument to the `jldoctest` block, which is +convenient for short definitions, and for setups needed in inline docstrings. ````markdown ```jldoctest; setup = :(foo(x) = x^2) @@ -221,10 +259,6 @@ julia> foo(2) and no state is shared between any code blocks. To preserve definitions see [Preserving Definitions Between Blocks](@ref). -!!! note - - If you rely on setup-code for doctests inside docstrings, included in the document with `@docs` or `@autodocs`, the `@meta` block must be in the markdown file that calls these macros and not within the docstrings themselves, otherwise they will be ignored. - ## Filtering Doctests A part of the output of a doctest might be non-deterministic, e.g. pointer addresses and timings. @@ -286,25 +320,67 @@ julia> @time [1,2,3,4] The global filters, filters defined in `@meta` blocks, and filters defined with the `filter` keyword argument are all applied to each doctest. + +## Doctesting as Part of Testing + +Documenter provides the [`doctest`](@ref) function which can be used to verify all doctests +independently of manual builds. It behaves like a `@testset`, so it will return a testset +if all the tests pass or throw a `TestSetException` if it does not. + +For example, it can be used to verify doctests as part of the normal test suite by having +e.g. the following in `runtests.jl`: + +```julia +using Test, Documenter, MyPackage +doctest(MyPackage) +``` + +By default, it will also attempt to verify all the doctests on manual `.md` files, which it +assumes are located under `docs/src`. This can be configured or disabled with the `manual` +keyword (see [`doctest`](@ref) for more information). + +It can also be included in another testset, in which case it gets incorporated into the +parent testset. So, as another example, to test a package that does have separate manual +pages, just docstrings, and also collects all the tests into a single testset, the +`runtests.jl` might look as follows: + +```julia +using Test, Documenter, MyPackage +@testset "MyPackage" begin + ... # other tests & testsets + doctest(MyPackage; manual = false) + ... # other tests & testsets +end +``` + +Note that you still need to make sure that all the necessary [Module-level metadata](@ref) +for the doctests is set up before [`doctest`](@ref) is called. Also, you need to add +Documenter and all the other packages you are loading in the doctests as test dependencies. + + ## Fixing Outdated Doctests -To fix outdated doctests, the `doctest` flag to [`makedocs`](@ref) can be set to -`doctest = :fix`. This will run the doctests, and overwrite the old results with -the new output. +To fix outdated doctests, the [`doctest`](@ref) function can be called with `fix = true`. +This will run the doctests, and overwrite the old results with the new output. This can be +done just in the REPL: -!!! note +```julia-repl +julia> using Documenter, MyPackage +julia> doctest(MyPackage, fix=true) +``` - The `:fix` option currently only works for LF line endings (`'\n'`) +Alternatively, you can also pass the `doctest = :fix` keyword to [`makedocs`](@ref). !!! note - It is recommended to `git commit` any code changes before running the doctest fixing. - That way it is simple to restore to the previous state if the fixing goes wrong. + * The `:fix` option currently only works for LF line endings (`'\n'`) -!!! note + * It is recommended to `git commit` any code changes before running the doctest fixing. + That way it is simple to restore to the previous state if the fixing goes wrong. - There are some corner cases where the fixing algorithm may replace the wrong code snippet. - It is therefore recommended to manually inspect the result of the fixing before committing. + * There are some corner cases where the fixing algorithm may replace the wrong code + snippet. It is therefore recommended to manually inspect the result of the fixing + before committing. ## Skipping Doctests diff --git a/docs/src/man/examples.md b/docs/src/man/examples.md index ece152470d..08aa25c993 100644 --- a/docs/src/man/examples.md +++ b/docs/src/man/examples.md @@ -11,51 +11,51 @@ should give a good overview of what this package is currently able to do. Packages are listed alphabetically. If you have a package that uses Documenter then please open a PR that adds it to the appropriate list below; a simple way to do so is to navigate to - https://github.com/JuliaDocs/Documenter.jl/edit/master/docs/src/man/examples.md. + . The `make.jl` file for all listed packages will be tested to check for potential regressions prior to tagging new Documenter releases whenever possible. ## Registered -Packages that have tagged versions available in `METADATA.jl`. +Packages that have tagged versions available in the general Registry: - [Augmentor.jl](https://evizero.github.io/Augmentor.jl/) - [BanditOpt.jl](https://v-i-s-h.github.io/BanditOpt.jl/stable/) - [BeaData.jl](https://stephenbnicar.github.io/BeaData.jl/stable/) - [Bio.jl](https://biojulia.net/Bio.jl/stable/) -- [ControlSystems.jl](http://juliacontrol.github.io/ControlSystems.jl/stable/) -- [Currencies.jl](https://juliafinance.github.io/Currencies.jl/stable/) +- [ControlSystems.jl](https://juliacontrol.github.io/ControlSystems.jl/stable/) - [DiscretePredictors.jl](https://github.com/v-i-s-h/DiscretePredictors.jl) - [Documenter.jl](https://juliadocs.github.io/Documenter.jl/stable/) +- [DrWatson](https://juliadynamics.github.io/DrWatson.jl/stable/) - [EvolvingGraphs.jl](https://etymoio.github.io/EvolvingGraphs.jl/stable/) - [ExtractMacro.jl](https://carlobaldassi.github.io/ExtractMacro.jl/stable/) - [EzXML.jl](https://bicycle1885.github.io/EzXML.jl/stable/) - [FourierFlows.jl](https://FourierFlows.github.io/FourierFlows.jl/stable/) -- [Gadfly.jl](http://gadflyjl.org/stable/) -- [GeoStats.jl](http://juliohm.github.io/GeoStats.jl/stable/) +- [Gadfly.jl](https://gadflyjl.org/stable/) +- [GeoStats.jl](https://juliaearth.github.io/GeoStats.jl/stable/) - [Highlights.jl](https://juliadocs.github.io/Highlights.jl/stable/) - [IntervalConstraintProgramming.jl](https://juliaintervals.github.io/IntervalConstraintProgramming.jl/stable/) - [Luxor.jl](https://juliagraphics.github.io/Luxor.jl/stable/) - [MergedMethods.jl](https://michaelhatherly.github.io/MergedMethods.jl/stable/) -- [Mimi.jl](http://anthofflab.berkeley.edu/Mimi.jl/stable/) +- [Mimi.jl](https://www.mimiframework.org/Mimi.jl/stable/) - [NumericSuffixes.jl](https://michaelhatherly.github.io/NumericSuffixes.jl/stable/) - [NLOptControl.jl](https://huckl3b3rry87.github.io/MPCDocs.jl/stable/) - [OhMyREPL.jl](https://github.com/KristofferC/OhMyREPL.jl) - [OnlineStats.jl](https://joshday.github.io/OnlineStats.jl/stable/) -- [POMDPs.jl](http://juliapomdp.github.io/POMDPs.jl/stable/) -- [PhyloNetworks.jl](http://crsl4.github.io/PhyloNetworks.jl/stable/) +- [POMDPs.jl](https://juliapomdp.github.io/POMDPs.jl/stable/) +- [PhyloNetworks.jl](https://crsl4.github.io/PhyloNetworks.jl/stable/) - [PrivateModules.jl](https://michaelhatherly.github.io/PrivateModules.jl/stable/) -- [Query.jl](http://www.queryverse.org/Query.jl/stable/) -- [TaylorSeries.jl](http://www.juliadiff.org/TaylorSeries.jl/stable/) -- [Weave.jl](http://weavejl.mpastell.com/stable/) +- [Query.jl](https://www.queryverse.org/Query.jl/stable/) +- [TaylorSeries.jl](https://www.juliadiff.org/TaylorSeries.jl/stable/) +- [Weave.jl](https://weavejl.mpastell.com/stable/) ## Documentation repositories Some projects or organizations maintain dedicated documentation repositories that are separate from specific packages. -- [DifferentialEquations.jl](http://docs.juliadiffeq.org/latest/) -- [JuliaDocs landing page](https://juliadocs.github.io/latest/) -- [JuliaMusic](https://juliamusic.github.io/JuliaMusic_documentation.jl/latest/) -- [Plots.jl](https://docs.juliaplots.org/latest/) +- [DifferentialEquations.jl](https://docs.sciml.ai/dev/) +- [JuliaDocs landing page](https://juliadocs.github.io/dev/) +- [JuliaMusic](https://juliamusic.github.io/JuliaMusic_documentation.jl/dev/) +- [Plots.jl](https://docs.juliaplots.org/dev/) diff --git a/docs/src/man/guide.md b/docs/src/man/guide.md index 9260914383..1c87119825 100644 --- a/docs/src/man/guide.md +++ b/docs/src/man/guide.md @@ -27,9 +27,9 @@ guide we'll be using a package called `Example.jl` that has the following direct ``` Example/ - src/ - Example.jl - ... +├── src/ +│ └── Example.jl +... ``` Note that the `...` just represent unimportant files and folders. @@ -39,11 +39,11 @@ It's recommended to use a folder named `docs/` in the toplevel of the package, l ``` Example/ - docs/ - ... - src/ - Example.jl - ... +├── docs/ +│ └── ... +├── src/ +│ └── Example.jl +... ``` Inside the `docs/` folder we need to add two things. A source folder which will contain the @@ -52,8 +52,8 @@ be used to control the build process. The following names are recommended ``` docs/ - src/ - make.jl +├── src/ +└── make.jl ``` @@ -121,14 +121,14 @@ look like the following ``` build/ - assets/ - arrow.svg - documenter.css - documenter.js - search.js - index.html - search/index.html - search_index.js +├── assets/ +│ ├── arrow.svg +│ ├── documenter.css +│ ├── documenter.js +│ └── search.js +├── index.html +├── search/index.html +└── search_index.js ``` !!! note diff --git a/docs/src/man/hosting.md b/docs/src/man/hosting.md index 068144d56e..0c71242179 100644 --- a/docs/src/man/hosting.md +++ b/docs/src/man/hosting.md @@ -2,8 +2,9 @@ After going through the [Package Guide](@ref) and [Doctests](@ref) page you will need to host the generated documentation somewhere for potential users to read. This guide will -describe how to setup automatic updates for your package docs using the Travis build service -and GitHub Pages. This is the same approach used by this package to host its own docs -- +describe how to setup automatic updates for your package docs using either the Travis CI +build service or GitHub Actions together with and GitHub Pages for hosting the generated +HTML files. This is the same approach used by this package to host its own docs -- the docs you're currently reading. !!! note @@ -17,13 +18,16 @@ the docs you're currently reading. [Travis](https://travis-ci.com/) accounts setup. If not then go set those up first and then return here. + It is possible to deploy from other systems than Travis CI or GitHub Actions, + see the section on [Deployment systems](@ref). + ## Overview Once set up correctly, the following will happen each time you push new updates to your package repository: -- Travis buildbots will start up and run your package tests in a "Test" stage. +- Buildbots will start up and run your package tests in a "Test" stage. - After the Test stage completes, a single bot will run a new "Documentation" stage, which will build the documentation. - If the documentation is built successfully, the bot will attempt to push the generated @@ -32,15 +36,61 @@ package repository: Note that the hosted documentation does not update when you make pull requests; you see updates only when you merge to `master` or push new tags. -The following sections outline how to enable this for your own package. +In the upcoming sections we describe how to configure the build service to run +the documentation build stage. In general it is easiest to choose the same +service as the one testing your package. If you don't explicitly select +the service with the `deploy_config` keyword argument to `deploydocs` +Documenter will try to automatically detect which system is running and use that. + +## Travis CI + +To tell Travis that we want a new build stage, we can add the following to an existing `.travis.yml` +file. Note that the snippet below will not work by itself and must be accompanied by a complete Travis file. +```yaml +jobs: + include: + - stage: "Documentation" + julia: 1.4 + os: linux + script: + - julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); + Pkg.instantiate()' + - julia --project=docs/ docs/make.jl + after_success: skip +``` -## SSH Deploy Keys +where the `julia:` and `os:` entries decide the worker from which the docs are built and +deployed. In the example above we will thus build and deploy the documentation from a linux +worker running Julia 1.4. For more information on how to setup a build stage, see the Travis +manual for [Build Stages](https://docs.travis-ci.com/user/build-stages). +The three lines in the `script:` section do the following: + + 1. Instantiate the doc-building environment (i.e. `docs/Project.toml`, see below). + 2. Install your package in the doc-build environment. + 3. Run the docs/make.jl script, which builds and deploys the documentation. + +!!! note + If your package has a build script you should call + `Pkg.build("PackageName")` after the call to `Pkg.develop` to make + sure the package is built properly. + +!!! note "matrix: section in .travis.yml" + + Travis CI used to use `matrix:` as the section to configure to build matrix in the config + file. This now appears to be a deprecated alias for `jobs:`. If you use both `matrix:` and + `jobs:` in your configuration, `matrix:` overrides the settings under `jobs:`. + + If your `.travis.yml` file still uses `matrix:`, it should be replaced with a a single + `jobs:` section. + +### [Authentication: SSH Deploy Keys](@id travis-ssh) + +In order to push the generated documentation from Travis you need to add deploy keys. Deploy keys provide push access to a *single* repository, to allow secure deployment of -generated documentation from Travis to GitHub. The SSH keys can be generated with the -`Travis.genkeys` from the [DocumenterTools](https://github.com/JuliaDocs/DocumenterTools.jl) -package. +generated documentation from the builder to GitHub. The SSH keys can be generated with +`DocumenterTools.genkeys` from the [DocumenterTools](https://github.com/JuliaDocs/DocumenterTools.jl) package. !!! note @@ -59,32 +109,36 @@ pkg> add DocumenterTools julia> using DocumenterTools ``` -Then call the [`Travis.genkeys`](@ref) function as follows: +Then call the [`DocumenterTools.genkeys`](@ref) function as follows: ```julia-repl julia> using MyPackage -julia> Travis.genkeys(user="MyUser", repo="git@github.com:MyUser/MyPackage.jl.git") +julia> DocumenterTools.genkeys(user="MyUser", repo="git@github.com:MyUser/MyPackage.jl.git") ``` -where `MyPackage` is the name of the package you would like to create deploy keys for and `MyUser` is your GitHub username. Note that the keyword arguments are optional and can be omitted. +where `MyPackage` is the name of the package you would like to create deploy keys for and +`MyUser` is your GitHub username. Note that the keyword arguments are optional and can be +omitted. -If the package is checked out in development mode with `] dev MyPackage`, you can also use `Travis.genkeys` as follows: +If the package is checked out in development mode with `] dev MyPackage`, you can also use +`DocumenterTools.genkeys` as follows: ```julia-repl julia> using MyPackage -julia> Travis.genkeys(MyPackage) +julia> DocumenterTools.genkeys(MyPackage) ``` -where `MyPackage` is the package you would like to create deploy keys for. The output will look similar to the text below: +where `MyPackage` is the package you would like to create deploy keys for. The output will +look similar to the text below: ``` -INFO: add the public key below to https://github.com/USER/REPO/settings/keys +[ Info: add the public key below to https://github.com/USER/REPO/settings/keys with read/write access: [SSH PUBLIC KEY HERE] -INFO: add a secure environment variable named 'DOCUMENTER_KEY' to - https://travis-ci.org/USER/REPO/settings with value: +[ Info: add a secure environment variable named 'DOCUMENTER_KEY' to + https://travis-ci.com/USER/REPO/settings with value: [LONG BASE64 ENCODED PRIVATE KEY] ``` @@ -97,14 +151,15 @@ Follow the instructions that are printed out, namely: **`Key`** field. Check **`Allow write access`** to allow Documenter to commit the generated documentation to the repo. - 2. Next add the long private key to the Travis settings page using the provided link. Again - note that you should include **no whitespace** when copying the key. In the **`Environment + 2. Next add the long private key to the Travis settings page using the provided link. + Again note that you should include **no whitespace** when copying the key. In the **`Environment Variables`** section add a key with the name `DOCUMENTER_KEY` and the value that was printed out. **Do not** set the variable to be displayed in the build log. Then click **`Add`**. !!! warning "Security warning" - To reiterate: make sure that the "Display value in build log" option is **OFF** for + To reiterate: make sure that this key is hidden. In particular, in the Travis CI settings + the "Display value in build log" option should be **OFF** for the variable, so that it does not get printed when the tests run. This base64-encoded string contains the *unencrypted* private key that gives full write access to your repository, so it must be kept safe. Also, make sure that you never @@ -113,54 +168,114 @@ Follow the instructions that are printed out, namely: !!! note - There are more explicit instructions for adding the keys to GitHub and Travis in the + There are more explicit instructions for adding the keys to Travis in the [SSH Deploy Keys Walkthrough](@ref) section of the manual. -## `.travis.yml` Configuration -To tell Travis that we want a new build stage we can add the following to the `.travis.yml` -file: +## GitHub Actions + +To run the documentation build from GitHub Actions you should add the following to your +workflow configuration file: ```yaml +name: Documentation + +on: + push: + branches: + - master + tags: '*' + pull_request: + jobs: - include: - - stage: "Documentation" - julia: 1.0 - os: linux - script: - - julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); - Pkg.instantiate()' - - julia --project=docs/ docs/make.jl - after_success: skip + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: julia-actions/setup-julia@latest + with: + version: '1.4' + - name: Install dependencies + run: julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' + - name: Build and deploy + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # For authentication with GitHub Actions token + DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key + run: julia --project=docs/ docs/make.jl ``` -where the `julia:` and `os:` entries decide the worker from which the docs are built and -deployed. In the example above we will thus build and deploy the documentation from a linux -worker running Julia 1.0. For more information on how to setup a build stage, see the Travis -manual for [Build Stages](https://docs.travis-ci.com/user/build-stages). +which will install Julia, checkout the correct commit of your repository, and run the +build of the documentation. The `julia-version:`, `julia-arch:` and `os:` entries decide +the environment from which the docs are built and deployed. In the example above we will +thus build and deploy the documentation from a ubuntu worker running Julia 1.2. For more +information on how to setup a GitHub workflow see the manual for +[Configuring a workflow](https://help.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow). -The three lines in the `script:` section do the following: +The commands in the lines in the `run:` section do the same as for Travis, +see the previous section. - 1. Instantiate the doc-building environment (i.e. `docs/Project.toml`, see below). - 2. Install your package in the doc-build environment. - 3. Run the docs/make.jl script, which builds and deploys the documentation. +### Authentication: `GITHUB_TOKEN` + +When running from GitHub Actions it is possible to authenticate using +[the GitHub Actions authentication token +(`GITHUB_TOKEN`)](https://help.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token). This is done by adding + +```yaml +GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +``` + +to the configuration file, as showed in the [previous section](@ref GitHub-Actions). !!! note - If your package has a build script you should call - `Pkg.build("PackageName")` after the call to `Pkg.develop` to make - sure the package is built properly. + You can only use `GITHUB_TOKEN` for authentication if the target repository + of the deployment is the same as the current repository. In order to push + elsewhere you should instead use a SSH deploy key. + +!!! warning "GitHub Pages and GitHub Token" + Currently the GitHub Page build is not triggered when the GitHub provided + `GITHUB_TOKEN` is used for authentication. See + [issue #1177](https://github.com/JuliaDocs/Documenter.jl/issues/1177) + for more information. + +### Authentication: SSH Deploy Keys + +It is also possible to authenticate using a SSH deploy key, just as described in +the [SSH Deploy Keys section for Travis CI](@ref travis-ssh). You can generate the +key in the same way, and then set the encoded key as a secret environment variable +in your repository settings. You also need to make the key available for the doc +building workflow by adding + +```yaml +DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} +``` + +to the configuration file, as showed in the [previous section](@ref GitHub-Actions). +See GitHub's manual for +[Creating and using encrypted secrets](https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets) +for more information. + + +## `docs/Project.toml` The doc-build environment `docs/Project.toml` includes Documenter and other doc-build dependencies your package might have. If Documenter is the only dependency, then the `Project.toml` should include the following: +````@eval +import Documenter, Markdown +m = match(r"^version = \"(\d+.\d+.\d+)(-DEV)?(\+.+)?\"$"m, + read(joinpath(dirname(dirname(pathof(Documenter))), "Project.toml"), String)) +v = VersionNumber(m.captures[1]) +Markdown.parse(""" ```toml [deps] Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" [compat] -Documenter = "~0.20" +Documenter = "$(v.major).$(v.minor)" ``` +""") +```` Note that it is recommended that you have a `[compat]` section, like the one above, in your `Project.toml` file, which would restrict Documenter's version that gets installed when the @@ -211,11 +326,11 @@ These are needed to avoid committing generated content to your repository. ## `gh-pages` Branch By default, Documenter pushes documentation to the `gh-pages` branch. If the branch does not -exist it will be created automatically by [`deploydocs`](@ref). If does exist then +exist it will be created automatically by [`deploydocs`](@ref). If it does exist then Documenter simply adds an additional commit with the built documentation. You should be aware that Documenter may overwrite existing content without warning. -If you wish to create the `gh-pages` branch manually the that can be done following +If you wish to create the `gh-pages` branch manually that can be done following [these instructions](https://coderwall.com/p/0n3soa/create-a-disconnected-git-branch). ## Documentation Versions @@ -273,3 +388,22 @@ trigger these builds and neither do pull requests by potential contributors.** If you would like to see a more complete example of how this process is setup then take a look at this package's repository for some inspiration. + +## Deployment systems + +It is possible to customize Documenter to use other systems then the ones described in +the sections above. This is done by passing a configuration +(a [`DeployConfig`](@ref Documenter.DeployConfig)) to `deploydocs` by the `deploy_config` +keyword argument. Documenter natively supports [`Travis`](@ref Documenter.Travis) and +[`GitHubActions`](@ref Documenter.GitHubActions) natively, but it is easy to define +your own by following the simple interface described below. + +```@docs +Documenter.DeployConfig +Documenter.deploy_folder +Documenter.authentication_method +Documenter.authenticated_repo_url +Documenter.documenter_key +Documenter.Travis +Documenter.GitHubActions +``` diff --git a/docs/src/man/hosting/walkthrough.md b/docs/src/man/hosting/walkthrough.md index d1e4871ad6..0cc68cda72 100644 --- a/docs/src/man/hosting/walkthrough.md +++ b/docs/src/man/hosting/walkthrough.md @@ -1,12 +1,12 @@ # SSH Deploy Keys Walkthrough -If the instructions in [SSH Deploy Keys](@ref) did not work for you (for example, +If the instructions in [Authentication: SSH Deploy Keys](@ref) did not work for you (for example, `ssh-keygen` is not installed), don't worry! This walkthrough will guide you through the process. There are three main steps: 1. [Generating an SSH Key](@ref) 2. [Adding the Public Key to GitHub](@ref) -3. [Adding the Private Key to Travis](@ref) +3. [Adding the Private Key](@ref) ## Generating an SSH Key @@ -30,7 +30,7 @@ And the private key usually look something like this ### If you have `ssh-keygen` installed -If you have `ssh-keygen` installed, but `Travis.genkeys()` didn't work, you can generate an +If you have `ssh-keygen` installed, but `DocumenterTools.genkeys()` didn't work, you can generate an SSH key as follows. First, generate a key using `ssh-keygen` and save it to the file `privatekey`: @@ -41,11 +41,12 @@ shell> ssh-keygen -N "" -f privatekey Next, we need to encode the private key in Base64. Run the following command: ```julia +julia> using Base64 + julia> read("privatekey", String) |> base64encode |> println ``` -Copy and paste the output somewhere. This is your *private key* and is required for the step -[Adding the Private Key to Travis](@ref). +Copy and paste the output somewhere. This is your *private key* and is required for the last step. Now we need to get the public key. Run the following command: @@ -87,8 +88,7 @@ Now we need to save the public key somewhere. Finally, we need to save the private key somewhere. * Click the "Conversions" tab, and then click "Export OpenSSH key". Save that file - somewhere. That file is your *private key* and is required for the [Adding the Private Key - to Travis](@ref) step. + somewhere. That file is your *private key* and is required for the last step. ![](puttygen-export-private-key.png) @@ -121,10 +121,10 @@ Now we need to fill in three pieces of information. 3. Make sure that the "Allow write access" box is checked. Once you're done, click "Add key". Congratulations! You've added the public key -to GitHub. The next step is to add the private key to Travis. +to GitHub. The next step is to add the private key to Travis or GitHub Secrets. -## Adding the Private Key to Travis +## Adding the Private Key In this section, we explain how to upload a private SSH key to Travis. By this point, you should have generated a private key and saved it to a file. If you haven't done this, go @@ -133,12 +133,14 @@ read [Generating an SSH Key](@ref). First, we need to Base64 encode the private key. Open Julia, and run the command ```julia -julia> read("path/to/private/key", String) |> Documenter.base64encode |> println +julia> using Base64 + +julia> read("path/to/private/key", String) |> base64encode |> println ``` Copy the resulting output. -Next, go to `https://travis-ci.org/[YOUR_USER_NAME]/[YOUR_REPO_NAME]/settings`. Scroll down +Go to `https://travis-ci.com/[YOUR_USER_NAME]/[YOUR_REPO_NAME]/settings`. Scroll down to the "Environment Variables" section. It should look like this: ![](travis-variables.png) @@ -146,7 +148,7 @@ to the "Environment Variables" section. It should look like this: Now, add a new environment variable called `DOCUMENTER_KEY`, and set its value to the output from the Julia command above (make sure to remove the surrounding quotes). -Finally, check that the "Display value in build log" is switched off and then click "Add". +Finally, make sure that the "Display value in build log" is left switched off and then click "Add". Congratulations! You've added the private key to Travis. !!! warning "Security warning" diff --git a/docs/src/man/latex.md b/docs/src/man/latex.md index cd899be0c5..dc41da3fc1 100644 --- a/docs/src/man/latex.md +++ b/docs/src/man/latex.md @@ -71,6 +71,22 @@ Here's an equation: ``` This is the binomial coefficient. + +--- + +To write a system of equations, use the `aligned` environment: + +```math +\begin{aligned} +\nabla\cdot\mathbf{E} &= 4 \pi \rho \\ +\nabla\cdot\mathbf{B} &= 0 \\ +\nabla\times\mathbf{E} &= - \frac{1}{c} \frac{\partial\mathbf{B}}{\partial t} \\ +\nabla\times\mathbf{B} &= - \frac{1}{c} \left(4 \pi \mathbf{J} + \frac{\partial\mathbf{E}}{\partial t} \right) +\end{aligned} +``` + +These are Maxwell's equations. + ```` which will be displayed as @@ -84,3 +100,18 @@ Here's an equation: ``` This is the binomial coefficient. + +--- + +To write a system of equations, use the `aligned` environment: + +```math +\begin{aligned} +\nabla\cdot\mathbf{E} &= 4 \pi \rho \\ +\nabla\cdot\mathbf{B} &= 0 \\ +\nabla\times\mathbf{E} &= - \frac{1}{c} \frac{\partial\mathbf{B}}{\partial t} \\ +\nabla\times\mathbf{B} &= - \frac{1}{c} \left(4 \pi \mathbf{J} + \frac{\partial\mathbf{E}}{\partial t} \right) +\end{aligned} +``` + +These are Maxwell's equations. diff --git a/docs/src/man/other-formats.md b/docs/src/man/other-formats.md index aca6287dc9..ce2da79dea 100644 --- a/docs/src/man/other-formats.md +++ b/docs/src/man/other-formats.md @@ -170,9 +170,8 @@ The following is required to build the documentation: * You need `pdflatex` command to be installed and available to Documenter. * You need the [minted](https://ctan.org/pkg/minted) LaTeX package and its backend source - highlighter [Pygments](http://pygments.org/) installed. -* You need the [Lato](http://www.latofonts.com/lato-free-fonts/) and - [Roboto Mono](https://fonts.google.com/specimen/Roboto+Mono) fonts installed. + highlighter [Pygments](https://pygments.org/) installed. +* You need the [_DejaVu Sans_ and _DejaVu Sans Mono_](https://dejavu-fonts.github.io/) fonts installed. ### Compiling using docker image diff --git a/docs/src/man/syntax.md b/docs/src/man/syntax.md index e8c54b6141..98c82c6264 100644 --- a/docs/src/man/syntax.md +++ b/docs/src/man/syntax.md @@ -40,6 +40,25 @@ which will cause any unlisted docstrings to raise warnings when [`makedocs`](@re called. If `modules` is not defined then no warnings are printed, even if a document has missing docstrings. +Notice also that you can use `@docs` to display the documentation strings of only specific +methods, by stating the dispatch types. For example +````markdown +```@docs +f(::Type1, ::Type2) +``` +```` +will only display the documentation string of `f` that is related to these types. +This can be useful when your module extends a function and adds a documentation +string to that new method. + +Note that when specifying signatures, it should match the method definition exactly. +Documenter will not match methods based on dispatch rules. For example, assuming you +have a docstring attached to `foo(::Integer) = ...`, then neither `foo(::Number)` nor +`foo(::Int64)` will match it in an at-docs block (even though `Int64 <: Integer <: Number`). +The only way you can splice that docstring is by listing exactly `foo(::Integer)` in +the at-docs block. + + ## `@autodocs` block Automatically splices all docstrings from the provided modules in place of the code block. @@ -86,7 +105,7 @@ docstrings. Note that page matching is done using the end of the provided string `a.jl` will be matched by *any* source file that ends in `a.jl`, i.e. `src/a.jl` or `src/foo/a.jl`. -To filter out certain docstrings by your own criteria, you can provide function with them +To filter out certain docstrings by your own criteria, you can provide function with the `Filter` keyword: ````markdown @@ -334,7 +353,8 @@ on each line is also removed. !!! note The working directory, `pwd`, is set to the directory in `build` where the file - will be written to, and the paths in `include` calls are interpreted to be relative to `pwd`. + will be written to, and the paths in `include` calls are interpreted to be relative to + `pwd`. This can be customized with the `workdir` keyword of [`makedocs`](@ref). **Hiding Source Code** @@ -493,7 +513,14 @@ Named `@repl ` blocks behave in the same way as named `@example ` bl !!! note The working directory, `pwd`, is set to the directory in `build` where the file - will be written to, and the paths in `include` calls are interpreted to be relative to `pwd`. + will be written to, and the paths in `include` calls are interpreted to be relative to + `pwd`. This can be customized with the `workdir` keyword of [`makedocs`](@ref). + +!!! note "Soft vs hard scope" + + Julia 1.5 changed the REPL to use the _soft scope_ when handling global variables in + `for` loops etc. When using Documenter with Julia 1.5 or above, Documenter uses the soft + scope in `@repl`-blocks and REPL-type doctests. ## `@setup ` block diff --git a/docs/src/showcase.md b/docs/src/showcase.md new file mode 100644 index 0000000000..07a8293eb1 --- /dev/null +++ b/docs/src/showcase.md @@ -0,0 +1,399 @@ +# Showcase + +This page showcases the various page elements that are supported by Documenter. +It should be read side-by-side with its source (`docs/src/showcase.md`) to see what syntax exactly is used to create the various elements. + +## Table of contents + +A table of contents can be generated with an [`@contents` block](@ref). +The one for this page renders as + +```@contents +Pages = ["showcase.md"] +``` + +## Basic Markdown + +Documenter can render all the [Markdown syntax supported by the Julia Markdown parser](https://docs.julialang.org/en/v1/stdlib/Markdown/). +You can use all the usual markdown syntax, such as **bold text** and _italic text_ and `print("inline code")`. + +Code blocks are rendered as follows: + +``` +This is an non-highlighted code block. +... Rendered in monospace. +``` + +When the language is specified for the block, e.g. by starting the block with ````` ```julia`````, the contents gets highlighted appropriately (for the language that are supported by the highlighter). + +```julia +function foo(x::Integer) + @show x + 1 +end +``` + +For mathematics, both inline and display equations are available. +Inline equations should be written as LaTeX between two backticks, +e.g. ``` ``A x^2 + B x + C = 0`` ```. +It will render as ``A x^2 + B x + C = 0``. + +The LaTeX for display equations must be wrapped in a ````` ```math ````` code block and will render like + +```math +x_{1,2} = \frac{-B \pm \sqrt{B^2 - 4 A C}}{2A} +``` + +By default, the HTML output renders equations with [KaTeX](https://katex.org/), but [MathJax](https://www.mathjax.org/) can optionally be used as well. + +Finally, admonitions for notes, warnings and such: + +!!! note "'note' admonition" + Admonitions look like this. This is a `!!! note`-type admonition. + + Note that admonitions themselves can contain other block-level elements too, + such as code blocks. E.g. + + ```julia + f(x) = x^2 + ``` + + However, you **can not** have at-blocks, docstrings, doctests etc. in an admonition. + + Headings are OK though: + # Heading 1 + ## Heading 2 + ### Heading 3 + #### Heading 4 + ##### Heading 5 + ###### Heading 6 + +!!! info "'info' admonition" + This is a `!!! info`-type admonition. This is the same as a `!!! note`-type. + +!!! tip "'tip' admonition" + This is a `!!! tip`-type admonition. + +!!! warning "'warning' admonition" + This is a `!!! warning`-type admonition. + +!!! danger "'danger' admonition" + This is a `!!! danger`-type admonition. + +!!! compat "'compat' admonition" + This is a `!!! compat`-type admonition. + +!!! ukw "Unknown admonition class" + Admonition with an unknown admonition class. This is a `code example`. + +### Lists + +Tight lists look as follows + +* Lorem ipsum dolor sit amet, consectetur adipiscing elit. +* Nulla quis venenatis justo. +* In non _sodales_ eros. + +If the lists contain paragraphs or other block level elements, they look like this: + +* Morbi et varius nisl, eu semper orci. + + Donec vel nibh sapien. Maecenas ultricies mauris sapien. Nunc et sem ac justo ultricies dignissim ac vitae sem. + +* Nulla molestie aliquet metus, a dapibus ligula. + + Morbi pellentesque sodales sollicitudin. Fusce semper placerat suscipit. Aliquam semper tempus ex, non efficitur erat posuere in. Fusce at orci eu ex sagittis commodo. + + > Fusce tempus scelerisque egestas. Pellentesque varius nulla a varius fringilla. + + Fusce nec urna eu orci porta blandit. + +Numbered lists are also supported + +1. Lorem ipsum dolor sit amet, consectetur adipiscing elit. +2. Nulla quis venenatis justo. +3. In non _sodales_ eros. + +As are nested lists + +* Morbi et varius nisl, eu semper orci. + + Donec vel nibh sapien. Maecenas ultricies mauris sapien. Nunc et sem ac justo ultricies dignissim ac vitae sem. + + - Lorem ipsum dolor sit amet, consectetur adipiscing elit. + - Nulla quis venenatis justo. + - In non _sodales_ eros. + +* Nulla molestie aliquet metus, a dapibus ligula. + + 1. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + 2. Nulla quis venenatis justo. + 3. In non _sodales_ eros. + + Fusce nec urna eu orci porta blandit. + +Lists can also be included in other blocks that can contain block level items + +!!! note "Bulleted lists in admonitions" + + * Lorem ipsum dolor sit amet, consectetur adipiscing elit. + * Nulla quis venenatis justo. + * In non _sodales_ eros. + +!!! note "Large lists in admonitions" + + * Morbi et varius nisl, eu semper orci. + + Donec vel nibh sapien. Maecenas ultricies mauris sapien. Nunc et sem ac justo ultricies dignissim ac vitae sem. + + - Lorem ipsum dolor sit amet, consectetur adipiscing elit. + - Nulla quis venenatis justo. + - In non _sodales_ eros. + + * Nulla molestie aliquet metus, a dapibus ligula. + + 1. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + 2. Nulla quis venenatis justo. + 3. In non _sodales_ eros. + + Fusce nec urna eu orci porta blandit. + +> * Morbi et varius nisl, eu semper orci. +> +> Donec vel nibh sapien. Maecenas ultricies mauris sapien. Nunc et sem ac justo ultricies dignissim ac vitae sem. +> +> - Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> - Nulla quis venenatis justo. +> - In non _sodales_ eros. + +### Tables + +| object | implemented | value | +|--------|-------------|------------| +| `A` | ✓ | 10.00 | +| `BB` | ✓ | 1000000.00 | + +With explicit alignment. + +| object | implemented | value | +| :--- | :---: | ---: | +| `A` | ✓ | 10.00 | +| `BB` | ✓ | 1000000.00 | + +Tables that are too wide should become scrollable. + +| object | implemented | value | +| :--- | :---: | ---: | +| `A` | ✓ | 10.00 | +| `BBBBBBBBBBBBBBBBBBBB` | ✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓✓ | 1000000000000000000000000000000000000000000000000000000.00 | + + +### Footnotes + +Footnote references can be added with the `[^label]` syntax.[^1] The footnote definitions get collected at the bottom of the page. + +The footnote label can be an arbitrary string and even consist of block-level elements.[^Clarke61] + +[^1]: A footnote definition uses the `[^label]: ...` sytax in a block scope. + +[^Clarke61]: + > Any sufficiently advanced technology is indistinguishable from magic. + Arthur C. Clarke, _Profiles of the Future_ (1961): Clarke's Third Law. + +### Headings + +Finally, headings render as follows + +### Heading level 3 +#### Heading level 4 +##### Heading level 5 +###### Heading level 6 + +To see an example of a level 1 heading see the page title and for level 2 heading, see the one just under this paragraph. + +!!! note "Headings in sidebars" + Level 1 and 2 heading show up in the sidebar, for the current page. + +## Docstrings + +The key feature of Documenter, of course, is the ability to automatically include docstrings +from your package in the manual. The following example docstrings come from the demo +[`DocumenterShowcase`](@ref) module, the source of which can be found in +`docs/DocumenterShowcase.jl`. + +To include a docstrings into a manual page, you needs to use an [`@docs` block](@ref) + +````markdown +```@docs +DocumenterShowcase +``` +```` + +This will include a single docstring and it will look like this + +```@docs +DocumenterShowcase +``` + +You can include the docstrings corresponding to different function signatures one by one. +E.g., the [`DocumenterShowcase.foo`](@ref) function has two signatures -- `(::Integer)` and `(::AbstractString)`. + +````markdown +```@docs +DocumenterShowcase.foo(::Integer) +``` +```` + +yielding the following docstring + +```@docs +DocumenterShowcase.foo(::Integer) +``` + +And now, by having `DocumenterShowcase.foo(::AbstractString)` in the `@docs` block will give the other docstring + +```@docs +DocumenterShowcase.foo(::AbstractString) +``` + +However, if you want, you can also combine multiple docstrings into a single docstring block. +The [`DocumenterShowcase.bar`](@ref) function has the same signatures as + +If we just put `DocumenterShowcase.bar` in an `@docs` block, it will combine the docstrings as follows: + +```@docs +DocumenterShowcase.bar +``` + +If you have very many docstrings, you may also want to consider using the [`@autodocs` block](@ref) which can include a whole set of docstrings automatically based on certain filtering options + +### An index of docstrings + +The [`@index` block](@ref) can be used to generate a list of all the docstrings on a page (or even across pages) and will look as follows + +```@index +Pages = ["showcase.md"] +``` + +## Doctesting example + +Often you want to write code example such as this: + +```jldoctest +julia> f(x) = x^2 +f (generic function with 1 method) + +julia> f(3) +9 +``` + +If you write them as a ````` ```jldoctest ````` code block, Documenter can make sure that the doctest has not become outdated. See [Doctests](@ref) for more information. + +Script-style doctests are supported too: + +```jldoctest +2 + 2 +# output +4 +``` + +## Running interactive code + +[`@example` block](@ref) run a code snippet and insert the output into the document. +E.g. the following Markdown + +````markdown +```@example +2 + 3 +``` +```` + +becomes the following code-output block pair + +```@example +2 + 3 +``` + +If the last element can be rendered as an image or `text/html` etc. (the corresponding `Base.show` method for the particular MIME type has to be defined), it will be rendered appropriately. e.g.: + +```@example +using Main: DocumenterShowcase +DocumenterShowcase.SVGCircle("000", "aaa") +``` + +This is handy when combined with the `Markdown` standard library + +```@example +using Markdown +Markdown.parse(""" +`Markdown.MD` objects can be constructed dynamically on the fly and still get rendered "natively". +""") +``` + +If the last value in an `@example` block is a `nothing`, the standard output from the blocks' evaluation gets displayed instead + +```@example +println("Hello World") +``` + +However, do note that if the block prints to standard output, but also has a final non-`nothing` value, the standard output just gets discarded: + +```@example +println("Hello World") +42 +``` + +### REPL-type + +[`@repl` block](@ref) can be used to simulate the REPL evaluation of code blocks. For example, the following block + +````markdown +```@repl +using Statistics +xs = collect(1:10) +median(xs) +sum(xs) +``` +```` + +It gets expanded into something that looks like as if it was evaluated in the REPL, with the `julia>` prompt prepended etc.: + +```@repl +using Statistics +xs = collect(1:10) +median(xs) +sum(xs) +``` + +## Doctest showcase + +Currently exists just so that there would be doctests to run in manual pages of Documenter's +manual. This page does not show up in navigation. + +```jldoctest +julia> 2 + 2 +4 +``` + +The following doctests needs doctestsetup: + +```jldoctest; setup=:(using Documenter) +julia> Documenter.Utilities.splitexpr(:(Foo.Bar.baz)) +(:(Foo.Bar), :(:baz)) +``` + +Let's also try `@meta` blocks: + +```@meta +DocTestSetup = quote + f(x) = x^2 +end +``` + +```jldoctest +julia> f(2) +4 +``` + +```@meta +DocTestSetup = nothing +``` diff --git a/src/Builder.jl b/src/Builder.jl index 69b63bc576..6c83e5204b 100644 --- a/src/Builder.jl +++ b/src/Builder.jl @@ -9,6 +9,7 @@ module Builder import ..Documenter: Anchors, + DocTests, Documents, Documenter, Utilities @@ -24,6 +25,7 @@ using DocStringExtensions The default document processing "pipeline", which consists of the following actions: - [`SetupBuildDirectory`](@ref) +- [`Doctest`](@ref) - [`ExpandTemplates`](@ref) - [`CrossReferences`](@ref) - [`CheckDocument`](@ref) @@ -38,6 +40,11 @@ Creates the correct directory layout within the `build` folder and parses markdo """ abstract type SetupBuildDirectory <: DocumentPipeline end +""" +Runs all the doctests in all docstrings and Markdown files. +""" +abstract type Doctest <: DocumentPipeline end + """ Executes a sequence of actions on each node of the parsed markdown files in turn. """ @@ -65,6 +72,7 @@ Writes the document tree to the `build` directory. abstract type RenderDocument <: DocumentPipeline end Selectors.order(::Type{SetupBuildDirectory}) = 1.0 +Selectors.order(::Type{Doctest}) = 1.1 Selectors.order(::Type{ExpandTemplates}) = 2.0 Selectors.order(::Type{CrossReferences}) = 3.0 Selectors.order(::Type{CheckDocument}) = 4.0 @@ -81,6 +89,8 @@ function Selectors.runner(::Type{SetupBuildDirectory}, doc::Documents.Document) # Frequently used fields. build = doc.user.build source = doc.user.source + workdir = doc.user.workdir + # The .user.source directory must exist. isdir(source) || error("source directory '$(abspath(source))' is missing.") @@ -105,9 +115,20 @@ function Selectors.runner(::Type{SetupBuildDirectory}, doc::Documents.Document) for file in files src = normpath(joinpath(root, file)) dst = normpath(joinpath(build, relpath(root, source), file)) + + if workdir == :build + # set working directory to be the same as `build` + wd = normpath(joinpath(build, relpath(root, source))) + elseif workdir isa Symbol + # Maybe allow `:src` and `:root` as well? + throw(ArgumentError("Unrecognized working directory option '$workdir'")) + else + wd = normpath(joinpath(doc.user.root, workdir)) + end + if endswith(file, ".md") push!(mdpages, Utilities.srcpath(source, root, file)) - Documents.addpage!(doc, src, dst) + Documents.addpage!(doc, src, dst, wd) else cp(src, dst; force = true) end @@ -152,7 +173,7 @@ function walk_navpages(visible, title, src, children, parent, doc) parent_visible = (parent === nothing) || parent.visible if src !== nothing src = normpath(src) - src in keys(doc.internal.pages) || error("'$src' is not an existing page!") + src in keys(doc.blueprint.pages) || error("'$src' is not an existing page!") end nn = Documents.NavNode(src, title, parent) (src === nothing) || push!(doc.internal.navlist, nn) @@ -174,31 +195,48 @@ walk_navpages(ps::Vector, parent, doc) = [walk_navpages(p, parent, doc)::Documen walk_navpages(src::String, parent, doc) = walk_navpages(true, nothing, src, [], parent, doc) +function Selectors.runner(::Type{Doctest}, doc::Documents.Document) + if doc.user.doctest in [:fix, :only, true] + @info "Doctest: running doctests." + DocTests.doctest(doc.blueprint, doc) + num_errors = length(doc.internal.errors) + if (doc.user.doctest === :only || doc.user.strict) && num_errors > 0 + error("`makedocs` encountered $(num_errors > 1 ? "$(num_errors) doctest errors" : "a doctest error"). Terminating build") + end + else + @info "Doctest: skipped." + end +end + function Selectors.runner(::Type{ExpandTemplates}, doc::Documents.Document) + is_doctest_only(doc, "ExpandTemplates") && return @info "ExpandTemplates: expanding markdown templates." Documenter.Expanders.expand(doc) end function Selectors.runner(::Type{CrossReferences}, doc::Documents.Document) + is_doctest_only(doc, "CrossReferences") && return @info "CrossReferences: building cross-references." Documenter.CrossReferences.crossref(doc) end function Selectors.runner(::Type{CheckDocument}, doc::Documents.Document) + is_doctest_only(doc, "CheckDocument") && return @info "CheckDocument: running document checks." Documenter.DocChecks.missingdocs(doc) - Documenter.DocTests.doctest(doc) Documenter.DocChecks.footnotes(doc) Documenter.DocChecks.linkcheck(doc) end function Selectors.runner(::Type{Populate}, doc::Documents.Document) + is_doctest_only(doc, "Populate") && return @info "Populate: populating indices." Documents.doctest_replace!(doc) Documents.populate!(doc) end function Selectors.runner(::Type{RenderDocument}, doc::Documents.Document) + is_doctest_only(doc, "RenderDocument") && return count = length(doc.internal.errors) if doc.user.strict && count > 0 error("`makedocs` encountered $(count > 1 ? "errors" : "an error"). Terminating build") @@ -210,4 +248,12 @@ end Selectors.runner(::Type{DocumentPipeline}, doc::Documents.Document) = nothing +function is_doctest_only(doc, stepname) + if doc.user.doctest in [:fix, :only] + @info "Skipped $stepname step (doctest only)." + return true + end + return false +end + end diff --git a/src/CrossReferences.jl b/src/CrossReferences.jl index cc9dcbd02e..451bf14045 100644 --- a/src/CrossReferences.jl +++ b/src/CrossReferences.jl @@ -21,7 +21,7 @@ Traverses a [`Documents.Document`](@ref) and replaces links containg `@ref` URLs their real URLs. """ function crossref(doc::Documents.Document) - for (src, page) in doc.internal.pages + for (src, page) in doc.blueprint.pages empty!(page.globals.meta) for element in page.elements crossref(page.mapping[element], page, doc) diff --git a/src/Deps.jl b/src/Deps.jl index 1dd1302d5a..76eb1a6983 100644 --- a/src/Deps.jl +++ b/src/Deps.jl @@ -29,11 +29,7 @@ deploydocs( ) ``` """ -function pip(deps...) - for dep in deps - run(`pip install --user $(dep)`) - end -end +pip(deps...) = () -> map(dep -> run(`pip install --user $(dep)`), deps) function localbin() diff --git a/src/DocChecks.jl b/src/DocChecks.jl index 40ece0b5e7..f108bbc619 100644 --- a/src/DocChecks.jl +++ b/src/DocChecks.jl @@ -7,7 +7,8 @@ module DocChecks import ..Documenter: Documenter, Documents, - Utilities + Utilities, + Utilities.Markdown2 using DocStringExtensions import Markdown @@ -26,12 +27,24 @@ Prints out the name of each object that has not had its docs spliced into the do function missingdocs(doc::Documents.Document) doc.user.checkdocs === :none && return @debug "checking for missing docstrings." - bindings = allbindings(doc.user.checkdocs, doc.user.modules) + bindings = allbindings(doc.user.checkdocs, doc.blueprint.modules) for object in keys(doc.internal.objects) - if haskey(bindings, object.binding) - signatures = bindings[object.binding] + # The module references in docs blocks can yield a binding like + # Docs.Binding(Mod, :SubMod) for a module SubMod, a submodule of Mod. However, the + # module bindings that come from Docs.meta() always appear to be of the form + # Docs.Binding(Mod.SubMod, :SubMod) (since Julia 0.7). We therefore "normalize" + # module bindings before we search in the list returned by allbindings(). + binding = if Documenter.DocSystem.defined(object.binding) && !Documenter.DocSystem.iskeyword(object.binding) + m = Documenter.DocSystem.resolve(object.binding) + isa(m, Module) && nameof(object.binding.mod) != object.binding.var ? + Docs.Binding(m, nameof(m)) : object.binding + else + object.binding + end + if haskey(bindings, binding) + signatures = bindings[binding] if object.signature ≡ Union{} || length(signatures) ≡ 1 - delete!(bindings, object.binding) + delete!(bindings, binding) elseif object.signature in signatures delete!(signatures, object.signature) end @@ -95,7 +108,7 @@ function footnotes(doc::Documents.Document) # For all ids the final result should be `(N, 1)` where `N > 1`, i.e. one or more # footnote references and a single footnote body. footnotes = Dict{Documents.Page, Dict{String, Tuple{Int, Int}}}() - for (src, page) in doc.internal.pages + for (src, page) in doc.blueprint.pages empty!(page.globals.meta) orphans = Dict{String, Tuple{Int, Int}}() for element in page.elements @@ -154,7 +167,7 @@ Checks external links using curl. function linkcheck(doc::Documents.Document) if doc.user.linkcheck if hascurl() - for (src, page) in doc.internal.pages + for (src, page) in doc.blueprint.pages for element in page.elements Documents.walk(page.globals.meta, page.mapping[element]) do block linkcheck(block, doc) diff --git a/src/DocMeta.jl b/src/DocMeta.jl new file mode 100644 index 0000000000..819e25c903 --- /dev/null +++ b/src/DocMeta.jl @@ -0,0 +1,88 @@ +""" +This module provides APIs for handling documentation metadata in modules. + +The implementation is similar to how docstrings are handled in `Base` by the `Base.Docs` +module — a special variable is created in each module that has documentation metadata. + +# Public API + +* [`DocMeta.getdocmeta`](@ref) +* [`DocMeta.setdocmeta!`](@ref) + +# Supported metadata + +* `DocTestSetup`: contains the doctest setup code for doctests in the module. +""" +module DocMeta +using ..Documenter: Utilities +using DocStringExtensions + +"The unique `Symbol` that is used to store the metadata dictionary in each module." +const META = gensym(:docmeta) + +"List of modules that have the metadata dictionary added." +const METAMODULES = Module[] + +"Type of the metadata dictionary." +const METATYPE = Dict{Symbol,Any} + +"Dictionary of all valid metadata keys and their types." +const VALIDMETA = Dict{Symbol,Type}(:DocTestSetup => Union{Expr,Symbol}) + +""" +""" +function initdocmeta!(m::Module) + if !isdefined(m, META) + @debug "Creating documentation metadata dictionary (META=$META) in $m" + Core.eval(m, :(const $META = $(METATYPE()))) + push!(METAMODULES, m) + else + @warn "Existing documentation metadata dictionary (META=$META) in $m. Ignoring." + end + return getfield(m, META) +end + +""" + getdocmeta(m::Module) + +Returns the documentation metadata dictionary for the module `m`. The dictionary should be +considered immutable and assigning values to it is not well-defined. To set documentation +metadata values, [`DocMeta.setdocmeta!`](@ref) should be used instead. +""" +getdocmeta(m::Module) = isdefined(m, META) ? getfield(m, META) : METATYPE() + +""" + getdocmeta(m::Module, key::Symbol, default=nothing) + +Return the `key` entry from the documentation metadata for module `m`, or `default` if the +value is unset. +""" +getdocmeta(m::Module, key::Symbol, default=nothing) = get(getdocmeta(m), key, default) + +""" + setdocmeta!(m::Module, key::Symbol, value; recursive=false, warn=true) + +Set the documentation metadata value `key` for module `m` to `value`. + +If `recursive` is set to `true`, it sets the same metadata value for all the submodules too. +If `warn` is `true`, it prints a warning when `key` already exists and is gets rewritten. +""" +function setdocmeta!(m::Module, key::Symbol, value; warn=true, recursive=false) + key in keys(VALIDMETA) || throw(ArgumentError("Invalid metadata key\nValid keys are: $(join(keys(VALIDMETA), ", "))")) + isa(value, VALIDMETA[key]) || throw(ArgumentError("Bad value type ($(typeof(value))) for metadata key $(key). Must be <: $(VALIDMETA[key])")) + if recursive + for mod in Utilities.submodules(m) + setdocmeta!(mod, key, value; warn=warn, recursive=false) + end + else + isdefined(m, META) || initdocmeta!(m) + meta = getdocmeta(m) + if warn && haskey(meta, key) + @warn "$(key) already set for module $m. Overwriting." + end + meta[key] = value + end + return nothing +end + +end diff --git a/src/DocTests.jl b/src/DocTests.jl index 15e6cd729e..e3b739f273 100644 --- a/src/DocTests.jl +++ b/src/DocTests.jl @@ -6,49 +6,128 @@ module DocTests using DocStringExtensions import ..Documenter: + DocSystem, + DocMeta, Documenter, Documents, Expanders, - Utilities + Utilities, + IdDict import Markdown, REPL +import .Utilities: Markdown2 # Julia code block testing. # ------------------------- +mutable struct MutableMD2CodeBlock + language :: String + code :: String +end +MutableMD2CodeBlock(block :: Markdown2.CodeBlock) = MutableMD2CodeBlock(block.language, block.code) + +struct DocTestContext + file :: String + doc :: Documents.Document + meta :: Dict{Symbol, Any} + DocTestContext(file::String, doc::Documents.Document) = new(file, doc, Dict()) +end + """ $(SIGNATURES) -Traverses the document tree and tries to run each Julia code block encountered. Will abort -the document generation when an error is thrown. Use `doctest = false` keyword in -[`Documenter.makedocs`](@ref) to disable doctesting. +Traverses the pages and modules in the documenter blueprint, searching and +executing doctests. + +Will abort the document generation when an error is thrown. Use `doctest = false` +keyword in [`Documenter.makedocs`](@ref) to disable doctesting. """ -function doctest(doc::Documents.Document) - if doc.user.doctest === :fix || doc.user.doctest - @debug "running doctests." - for (src, page) in doc.internal.pages - empty!(page.globals.meta) - for element in page.elements - page.globals.meta[:CurrentFile] = page.source - Documents.walk(page.globals.meta, page.mapping[element]) do block - doctest(block, page.globals.meta, doc, page) - end +function doctest(blueprint::Documents.DocumentBlueprint, doc::Documents.Document) + @debug "Running doctests." + # find all the doctest blocks in the pages + for (src, page) in blueprint.pages + doctest(page, doc) + end + + # find all the doctest block in all the docstrings (within specified modules) + for mod in blueprint.modules + for (binding, multidoc) in DocSystem.getmeta(mod) + for signature in multidoc.order + doctest(multidoc.docs[signature], mod, doc) + end + end + end +end + +function doctest(page::Documents.Page, doc::Documents.Document) + ctx = DocTestContext(page.source, doc) # FIXME + ctx.meta[:CurrentFile] = page.source + doctest(ctx, page.md2ast) +end + +function doctest(docstr::Docs.DocStr, mod::Module, doc::Documents.Document) + md = DocSystem.parsedoc(docstr) + # Note: parsedocs / formatdoc in Base is weird. It double-wraps the docstring Markdown + # in a Markdown.MD object.. + @assert isa(md, Markdown.MD) # relying on Julia internals here + while length(md.content) == 1 && isa(first(md.content), Markdown.MD) + md = first(md.content) + end + md2ast = try + Markdown2.convert(Markdown2.MD, md) + catch err + @error """ + Markdown2 conversion error for a docstring in $(mod). + This is a bug — please report this on the Documenter issue tracker + """ docstr.data + rethrow(err) + end + ctx = DocTestContext(docstr.data[:path], doc) + merge!(ctx.meta, DocMeta.getdocmeta(mod)) + ctx.meta[:CurrentFile] = get(docstr.data, :path, nothing) + doctest(ctx, md2ast) +end + +function parse_metablock(ctx::DocTestContext, block::Markdown2.CodeBlock) + @assert startswith(block.language, "@meta") + meta = Dict{Symbol, Any}() + for (ex, str) in Utilities.parseblock(block.code, ctx.doc, ctx.file) + if Utilities.isassign(ex) + try + meta[ex.args[1]] = Core.eval(Main, ex.args[2]) + catch err + push!(ctx.doc.internal.errors, :meta_block) + @warn "Failed to evaluate `$(strip(str))` in `@meta` block." err end end - else - @debug "skipped doctesting." end + return meta end -function doctest(block::Markdown.Code, meta::Dict, doc::Documents.Document, page) - lang = block.language +function doctest(ctx::DocTestContext, md2ast::Markdown2.MD) + Markdown2.walk(md2ast) do node + isa(node, Markdown2.CodeBlock) || return true + if startswith(node.language, "jldoctest") + doctest(ctx, node) + elseif startswith(node.language, "@meta") + merge!(ctx.meta, parse_metablock(ctx, node)) + else + return true + end + return false + end +end + +function doctest(ctx::DocTestContext, block_immutable::Markdown2.CodeBlock) + lang = block_immutable.language if startswith(lang, "jldoctest") # Define new module or reuse an old one from this page if we have a named doctest. name = match(r"jldoctest[ ]?(.*)$", split(lang, ';', limit = 2)[1])[1] sym = isempty(name) ? gensym("doctest-") : Symbol("doctest-", name) - sandbox = get!(() -> Expanders.get_new_sandbox(sym), page.globals.meta, sym) + sandbox = get!(() -> Expanders.get_new_sandbox(sym), ctx.meta, sym) # Normalise line endings. + block = MutableMD2CodeBlock(block_immutable) block.code = replace(block.code, "\r\n" => "\n") # parse keyword arguments to doctest @@ -58,7 +137,7 @@ function doctest(block::Markdown.Code, meta::Dict, doc::Documents.Document, page kwargs = Meta.parse("($(lang[nextind(lang, idx):end]),)") for kwarg in kwargs.args if !(isa(kwarg, Expr) && kwarg.head === :(=) && isa(kwarg.args[1], Symbol)) - file = meta[:CurrentFile] + file = ctx.meta[:CurrentFile] lines = Utilities.find_block_in_file(block.code, file) @warn(""" invalid syntax for doctest keyword arguments in $(Utilities.locrepr(file, lines)) @@ -73,26 +152,26 @@ function doctest(block::Markdown.Code, meta::Dict, doc::Documents.Document, page d[kwarg.args[1]] = Core.eval(sandbox, kwarg.args[2]) end end - meta[:LocalDocTestArguments] = d + ctx.meta[:LocalDocTestArguments] = d - for expr in [get(meta, :DocTestSetup, []); get(meta[:LocalDocTestArguments], :setup, [])] + for expr in [get(ctx.meta, :DocTestSetup, []); get(ctx.meta[:LocalDocTestArguments], :setup, [])] Meta.isexpr(expr, :block) && (expr.head = :toplevel) try Core.eval(sandbox, expr) catch e - push!(doc.internal.errors, :doctest) + push!(ctx.doc.internal.errors, :doctest) @error("could not evaluate expression from doctest setup.", expression = expr, exception = e) return false end end if occursin(r"^julia> "m, block.code) - eval_repl(block, sandbox, meta, doc, page) + eval_repl(block, sandbox, ctx.meta, ctx.doc, ctx.file) elseif occursin(r"^# output$"m, block.code) - eval_script(block, sandbox, meta, doc, page) + eval_script(block, sandbox, ctx.meta, ctx.doc, ctx.file) else - push!(doc.internal.errors, :doctest) - file = meta[:CurrentFile] + push!(ctx.doc.internal.errors, :doctest) + file = ctx.meta[:CurrentFile] lines = Utilities.find_block_in_file(block.code, file) @warn(""" invalid doctest block in $(Utilities.locrepr(file, lines)) @@ -103,21 +182,16 @@ function doctest(block::Markdown.Code, meta::Dict, doc::Documents.Document, page ``` """) end - delete!(meta, :LocalDocTestArguments) + delete!(ctx.meta, :LocalDocTestArguments) end false end -doctest(block, meta::Dict, doc::Documents.Document, page) = true - -function doctest(block::Markdown.MD, meta::Dict, doc::Documents.Document, page) - haskey(block.meta, :path) && (meta[:CurrentFile] = block.meta[:path]) - return true -end +doctest(ctx::DocTestContext, block) = true # Doctest evaluation. mutable struct Result - block :: Markdown.Code # The entire code block that is being tested. + block :: MutableMD2CodeBlock # The entire code block that is being tested. input :: String # Part of `block.code` representing the current input. output :: String # Part of `block.code` representing the current expected output. file :: String # File in which the doctest is written. Either `.md` or `.jl`. @@ -134,9 +208,14 @@ end function eval_repl(block, sandbox, meta::Dict, doc::Documents.Document, page) for (input, output) in repl_splitter(block.code) result = Result(block, input, output, meta[:CurrentFile]) - for (ex, str) in Utilities.parseblock(input, doc, page; keywords = false) + for (ex, str) in Utilities.parseblock(input, doc, page; keywords = false, raise=false) # Input containing a semi-colon gets suppressed in the final output. result.hide = REPL.ends_with_semicolon(str) + if VERSION >= v"1.5.0-DEV.178" + # Use the REPL softscope for REPL jldoctests, + # see https://github.com/JuliaLang/julia/pull/33864 + ex = REPL.softscope!(ex) + end (value, success, backtrace, text) = Utilities.withoutput() do Core.eval(sandbox, ex) end @@ -146,6 +225,8 @@ function eval_repl(block, sandbox, meta::Dict, doc::Documents.Document, page) if !success result.bt = backtrace end + # don't evaluate further if there is a parse error + isa(ex, Expr) && ex.head === :error && break end checkresult(sandbox, result, meta, doc) end @@ -161,7 +242,7 @@ function eval_script(block, sandbox, meta::Dict, doc::Documents.Document, page) input = rstrip(input, '\n') output = lstrip(output, '\n') result = Result(block, input, output, meta[:CurrentFile]) - for (ex, str) in Utilities.parseblock(input, doc, page; keywords = false) + for (ex, str) in Utilities.parseblock(input, doc, page; keywords = false, raise=false) (value, success, backtrace, text) = Utilities.withoutput() do Core.eval(sandbox, ex) end @@ -211,6 +292,8 @@ function checkresult(sandbox::Module, result::Result, meta::Dict, doc::Documents fix_doctest(result, str, doc) else report(result, str, doc) + @debug "Doctest metadata" meta + push!(doc.internal.errors, :doctest) end end else @@ -225,6 +308,8 @@ function checkresult(sandbox::Module, result::Result, meta::Dict, doc::Documents fix_doctest(result, str, doc) else report(result, str, doc) + @debug "Doctest metadata" meta + push!(doc.internal.errors, :doctest) end end end @@ -239,14 +324,34 @@ function result_to_string(buf, value) end function error_to_string(buf, er, bt) - # Remove unimportant backtrace info. + # Remove unimportant backtrace info. TODO: this backtrace handling should maybe be done + # by Utilities.withoutput() already. + bt = remove_common_backtrace(bt, backtrace()) + # Remove everything below the last eval call (which should be the one in withoutput) index = findlast(ptr -> Base.ip_matches_func(ptr, :eval), bt) + bt = (index === nothing) ? bt : bt[1:(index - 1)] # Print a REPL-like error message. print(buf, "ERROR: ") - Base.invokelatest(showerror, buf, er, index === nothing ? bt : bt[1:(index - 1)]) + Base.invokelatest(showerror, buf, er, bt) return sanitise(buf) end +function remove_common_backtrace(bt, reference_bt) + cutoff = nothing + # We'll start from the top of the backtrace (end of the array) and go down, checking + # if the backtraces agree + for ridx in 1:length(bt) + # Cancel search if we run out the reference BT or find a non-matching one frames: + if ridx > length(reference_bt) || bt[length(bt) - ridx + 1] != reference_bt[length(reference_bt) - ridx + 1] + cutoff = length(bt) - ridx + 1 + break + end + end + # It's possible that the loop does not find anything, i.e. that all BT elements are in + # the reference_BT too. In that case we'll just return an empty BT. + bt[1:(cutoff === nothing ? 0 : cutoff)] +end + # Strip trailing whitespace from each line and return resulting string function sanitise(buffer) out = IOBuffer() @@ -272,13 +377,13 @@ function report(result::Result, str, doc::Documents.Document) $(result.input) - Output: + Evaluated output: - $(result.output) + $(rstrip(str)) Expected output: - $(rstrip(str)) + $(result.output) """, diff) end diff --git a/src/Documenter.jl b/src/Documenter.jl index 55d5590b22..77ee1bc843 100644 --- a/src/Documenter.jl +++ b/src/Documenter.jl @@ -13,6 +13,7 @@ $(EXPORTS) """ module Documenter +using Test: @testset, @test using DocStringExtensions import Base64: base64decode @@ -30,30 +31,32 @@ a new `T` object will be created. """ abstract type Plugin end +abstract type Writer end # Submodules # ---------- include("Utilities/Utilities.jl") +include("DocMeta.jl") include("DocSystem.jl") include("Anchors.jl") include("Documents.jl") -include("Builder.jl") include("Expanders.jl") -include("CrossReferences.jl") include("DocTests.jl") +include("Builder.jl") +include("CrossReferences.jl") include("DocChecks.jl") include("Writers/Writers.jl") include("Deps.jl") import .Utilities: Selectors -import .Writers.HTMLWriter: HTML - +import .Writers.HTMLWriter: HTML, asset +import .Writers.HTMLWriter.RD: KaTeX, MathJax # User Interface. # --------------- +export Deps, makedocs, deploydocs, hide, doctest, DocMeta, KaTeX, MathJax, asset -export Deps, makedocs, deploydocs, hide """ makedocs( root = "", @@ -65,6 +68,7 @@ export Deps, makedocs, deploydocs, hide repo = "", highlightsig = true, sitename = "", + expandfirst = [], ) Combines markdown files and inline docstrings into an interlinked document. @@ -118,6 +122,10 @@ After that, it's encouraged to always make sure that documentation examples are produce the expected results. See the [Doctests](@ref) manual section for details about running doctests. +Setting `doctest` to `:only` allows for doctesting without a full build. In this mode, most +build stages are skipped and the `strict` keyword is ignore (a doctesting error will always +make `makedocs` throw an error). + **`modules`** specifies a vector of modules that should be documented in `source`. If any inline docstrings from those modules are seen to be missing from the generated content then a warning will be printed during execution of [`makedocs`](@ref). By default no modules are @@ -159,6 +167,16 @@ is enabled by default. **`sitename`** is displayed in the title bar and/or the navigation menu when applicable. +**`expandfirst`** allows some of the pages to be _expanded_ (i.e. at-blocks evaluated etc.) +before the others. Documenter normally evaluates the files in the alphabetic order of their +file paths relative to `src`, but `expandfirst` allows some pages to be prioritized. + +For example, if you have `foo.md` and `bar.md`, `bar.md` would normally be evaluated before +`foo.md`. But with `expandfirst = ["foo.md"]`, you can force `foo.md` to be evaluated first. + +Evaluation order among the `expandfirst` pages is according to the order they appear in the +argument. + # Experimental keywords In addition to standard arguments there is a set of non-finalized experimental keyword @@ -168,9 +186,9 @@ when a minor version changes (i.e. except in patch releases). **`checkdocs`** instructs [`makedocs`](@ref) to check whether all names within the modules defined in the `modules` keyword that have a docstring attached have the docstring also listed in the manual (e.g. there's a `@docs` block with that docstring). Possible values -are `:all` (check all names) and `:exports` (check only exported names). The default value -is `:none`, in which case no checks are performed. If `strict` is also enabled then the -build will fail if any missing docstrings are encountered. +are `:all` (check all names; the default), `:exports` (check only exported names) and +`:none` (no checks are performed). If `strict` is also enabled then the build will fail if +any missing docstrings are encountered. **`linkcheck`** -- if set to `true` [`makedocs`](@ref) uses `curl` to check the status codes of external-pointing links, to make sure that they are up-to-date. The links and their @@ -184,6 +202,20 @@ ignored. **`strict`** -- [`makedocs`](@ref) fails the build right before rendering if it encountered any errors with the document in the previous build phases. +**`workdir`** determines the working directory where `@example` and `@repl` code blocks are +executed. It can be either a path or the special value `:build` (default). + +If the `workdir` is set to a path, the working directory is reset to that path for each code +block being evaluated. Relative paths are taken to be relative to `root`, but using absolute +paths is recommended (e.g. `workdir = joinpath(@__DIR__, "..")` for executing in the package +root for the usual `docs/make.jl` setup). + +With the default `:build` option, the working directory is set to a subdirectory of `build`, +determined from the source file path. E.g. for `src/foo.md` it is set to `build/`, for +`src/foo/bar.md` it is set to `build/foo` etc. + +Note that `workdir` does not affect doctests. + ## Output formats **`format`** allows the output format to be specified. The default format is [`Documenter.HTML`](@ref) which creates a set of HTML files. @@ -199,89 +231,7 @@ See the [Other Output Formats](@ref) for more information. A guide detailing how to document a package using Documenter's [`makedocs`](@ref) is provided in the [setup guide in the manual](@ref Package-Guide). """ -function makedocs(components...; debug = false, format = HTML(), - html_prettyurls::Union{Bool, Nothing} = nothing, # deprecated - html_disable_git::Union{Bool, Nothing} = nothing, # deprecated - html_edit_branch::Union{String, Nothing} = nothing, # deprecated - html_canonical::Union{String, Nothing} = nothing, # deprecated - assets::Union{Vector{<:AbstractString}, Nothing} = nothing, # deprecated - analytics::Union{<:AbstractString, Nothing} = nothing, # deprecated - kwargs...) - # html_ keywords deprecation - html_keywords = Dict() - function html_warn(kw) - replace_with = startswith(kw, "html_") ? kw[6:end] : kw - @warn """ - The `$kw` keyword argument should now be specified in the - `Documenter.HTML()` format specifier. To fix this warning replace - ``` - $kw = ... - ``` - with - ``` - format = Documenter.HTML($(replace_with) = ...) - ``` - """ - end - if html_prettyurls !== nothing - html_warn("html_prettyurls") - html_keywords[:prettyurls] = html_prettyurls - end - if html_disable_git !== nothing - html_warn("html_disable_git") - html_keywords[:disable_git] = html_disable_git - end - if html_edit_branch !== nothing - html_warn("html_edit_branch") - html_keywords[:edit_branch] = html_edit_branch - end - if html_canonical !== nothing - html_warn("html_canonical") - html_keywords[:canonical] = html_canonical - end - if assets !== nothing - html_warn("assets") - html_keywords[:assets] = assets - end - if analytics !== nothing - html_warn("analytics") - html_keywords[:analytics] = analytics - end - - # deprecation of format as Symbols - function fmt(f) - if f === :html - Base.depwarn("`format = :html` is deprecated, use `format = Documenter.HTML()` instead.", :makedocs) - return Writers.HTMLWriter.HTML(; html_keywords...) - elseif f === :latex - Base.depwarn("`format = :latex` is deprecated, use `format = LaTeX()` from " * - "the DocumenterLaTeX package instead.", :makedocs) - return Writers.LaTeXWriter.LaTeX() - elseif f === :markdown - Base.depwarn("`format = :markdown` is deprecated, use `format = Markdown()` " * - "from the DocumenterMarkdown package instead.", :makedocs) - return Writers.MarkdownWriter.Markdown() - end - end - if isa(format, AbstractVector{<:Symbol}) - format = fmt.(format) - elseif isa(format, Symbol) - format = fmt(format) - end - # overwrite some stuff in HTML() if outer html_ kwargs have been set - # seems ok since the depwarns will still be there. - overwrite(x) = x - function overwrite(html::HTML) - d = Dict(x => getfield(html, x) for x in fieldnames(HTML)) - d = merge!(d, html_keywords) - return HTML(; d...) - end - if isa(format, HTML) - format = overwrite(format) - elseif format isa AbstractVector - format = overwrite.(format) - end - +function makedocs(components...; debug = false, format = HTML(), kwargs...) document = Documents.Document(components; format=format, kwargs...) cd(document.user.root) do Selectors.dispatch(Builder.DocumentPipeline, document) @@ -339,6 +289,8 @@ makedocs( hide(root::Pair, children) = (true, root.first, root.second, map(hide, children)) hide(root::AbstractString, children) = (true, nothing, root, map(hide, children)) +include("deployconfig.jl") + """ deploydocs( root = "", @@ -349,7 +301,8 @@ hide(root::AbstractString, children) = (true, nothing, root, map(hide, children) make = nothing | , devbranch = "master", devurl = "dev", - versions = ["stable" => "v^", "v#.#", devurl => devurl] + versions = ["stable" => "v^", "v#.#", devurl => devurl], + push_preview = false ) Converts markdown files generated by [`makedocs`](@ref) to HTML and pushes them to `repo`. @@ -383,6 +336,11 @@ repo = "github.com/JuliaDocs/Documenter.jl.git" # Optional keyword arguments +**`deploy_config`** determines configuration for the deployment. +If this is not specified Documenter will try to autodetect from the +currently running environment. See the manual section about +[Deployment systems](@ref). + **`root`** has the same purpose as the `root` keyword for [`makedocs`](@ref). **`target`** is the directory, relative to `root`, where generated content that should be @@ -430,42 +388,8 @@ the generated html. The following entries are valid in the `versions` vector: The second argument can be `"v^"`, to point to the maximum version docs (as in e.g. `"stable" => "v^"`). -# Environment variables - -[`deploydocs`](@ref)'s behavior is influenced by the following environment variables, many -of which are specific to the [Travis CI platform](https://travis-ci.com/). - - - **`DOCUMENTER_KEY`**: must contain the Base64-encoded SSH private key for the repository. - - - **`TRAVIS_PULL_REQUEST`**: must be set to `false`. - - This avoids deployment on pull request builds. Note that there is no way to _safely_ - enable builds on pull requests, since that would expose the SSH private key - (`DOCUMENTER_KEY`), giving anyone opening a pull request full write access to the repository. - - - **`TRAVIS_REPO_SLUG`**: must match the value of the `repo` keyword. - - - **`TRAVIS_EVENT_TYPE`**: may not be set to `cron`. - - This avoids the re-deployment of existing docs on builds that were triggered by a Travis - cron job. - - - **`TRAVIS_BRANCH`**: unless `TRAVIS_TAG` is non-empty, this must have the same value as the - `devbranch` keyword. - - This makes sure that only the development branch (commonly, the `master` branch) will deploy - the "dev" documentation (deployed into a directory specified by the `devurl` keyword). - - - **`TRAVIS_TAG`**: if set, a tagged version deployment is performed instead; the value must be - a valid version number (i.e. match `Base.VERSION_REGEX`). - - The documentation for a package version tag gets deployed to a directory named after the - version number in `TRAVIS_TAG` instead. - -The `TRAVIS_*` variables are set automatically on Travis, but could be set manually to -appropriate values as well to run [`deploydocs`](@ref) locally or on other CI platforms. -More information on how Travis sets the `TRAVIS_*` variables can be found in the -[Travis documentation](https://docs.travis-ci.com/user/environment-variables/#default-environment-variables). +**`push_preview`** a boolean that specifies if preview documentation should be +deployed from pull requests or not. # See Also @@ -480,10 +404,6 @@ function deploydocs(; repo = error("no 'repo' keyword provided."), branch = "gh-pages", - latest::Union{String,Nothing} = nothing, # deprecated - - osname::Union{String,Nothing} = nothing, # deprecated - julia::Union{String,Nothing} = nothing, # deprecated deps = nothing, make = nothing, @@ -492,81 +412,12 @@ function deploydocs(; devurl = "dev", versions = ["stable" => "v^", "v#.#", devurl => devurl], forcepush::Bool = false, + deploy_config = auto_detect_deploy_system(), + push_preview::Bool = false, ) - # deprecation of latest kwarg (renamed to devbranch) - if latest !== nothing - Base.depwarn("The `latest` keyword argument has been renamed to `devbranch`.", :deploydocs) - devbranch = latest - @info "setting `devbranch` to `$(devbranch)`." - end - # deprecation/removal of `julia` and `osname` kwargs - if julia !== nothing - Base.depwarn("the `julia` keyword argument to `Documenter.deploydocs` is " * - "removed. Use Travis Build Stages for determining from where to deploy instead. " * - "See the section about Hosting in the Documenter manual for more details.", :deploydocs) - @info "skipping docs deployment." - return - end - if osname !== nothing - Base.depwarn("the `osname` keyword argument to `Documenter.deploydocs` is " * - "removed. Use Travis Build Stages for determining from where to deploy instead. " * - "See the section about Hosting in the Documenter manual for more details.", :deploydocs) - @info "skipping docs deployment." - return - end - - # Get environment variables. - documenter_key = get(ENV, "DOCUMENTER_KEY", "") - travis_branch = get(ENV, "TRAVIS_BRANCH", "") - travis_pull_request = get(ENV, "TRAVIS_PULL_REQUEST", "") - travis_repo_slug = get(ENV, "TRAVIS_REPO_SLUG", "") - travis_tag = get(ENV, "TRAVIS_TAG", "") - travis_event_type = get(ENV, "TRAVIS_EVENT_TYPE", "") - - - # Other variables. - sha = cd(root) do - # We'll make sure we run the git commands in the source directory (root), in case - # the working directory has been changed (e.g. if the makedocs' build argument is - # outside root). - try - readchomp(`git rev-parse --short HEAD`) - catch - # git rev-parse will throw an error and return code 128 if it is not being - # run in a git repository, which will make run/readchomp throw an exception. - # We'll assume that if readchomp fails it is due to this and set the sha - # variable accordingly. - "(not-git-repo)" - end - end - # Check criteria for deployment - ## The deploydocs' repo should match TRAVIS_REPO_SLUG - repo_ok = occursin(travis_repo_slug, repo) - ## Do not deploy for PRs - pr_ok = travis_pull_request == "false" - ## If a tag exist it should be a valid VersionNumber - tag_ok = isempty(travis_tag) || occursin(Base.VERSION_REGEX, travis_tag) - ## If no tag exists deploydocs' devbranch should match TRAVIS_BRANCH - branch_ok = !isempty(travis_tag) || travis_branch == devbranch - ## DOCUMENTER_KEY should exist - key_ok = !isempty(documenter_key) - ## Cron jobs should not deploy - type_ok = travis_event_type != "cron" - should_deploy = repo_ok && pr_ok && tag_ok && branch_ok && key_ok && type_ok - - marker(x) = x ? "✔" : "✘" - @info """Deployment criteria: - - $(marker(repo_ok)) ENV["TRAVIS_REPO_SLUG"]="$(travis_repo_slug)" occurs in repo="$(repo)" - - $(marker(pr_ok)) ENV["TRAVIS_PULL_REQUEST"]="$(travis_pull_request)" is "false" - - $(marker(tag_ok)) ENV["TRAVIS_TAG"]="$(travis_tag)" is (i) empty or (ii) a valid VersionNumber - - $(marker(branch_ok)) ENV["TRAVIS_BRANCH"]="$(travis_branch)" matches devbranch="$(devbranch)" (if tag is empty) - - $(marker(key_ok)) ENV["DOCUMENTER_KEY"] exists - - $(marker(type_ok)) ENV["TRAVIS_EVENT_TYPE"]="$(travis_event_type)" is not "cron" - Deploying: $(marker(should_deploy)) - """ - - if should_deploy + subfolder = deploy_folder(deploy_config; repo=repo, devbranch=devbranch, push_preview=push_preview, devurl=devurl) + if subfolder !== nothing # Add local bin path if needed. Deps.updatepath!() # Install dependencies when applicable. @@ -576,6 +427,20 @@ function deploydocs(; end # Change to the root directory and try to deploy the docs. cd(root) do + # Find the commit sha. + # We'll make sure we run the git commands in the source directory (root), in case + # the working directory has been changed (e.g. if the makedocs' build argument is + # outside root). + sha = try + readchomp(`git rev-parse --short HEAD`) + catch + # git rev-parse will throw an error and return code 128 if it is not being + # run in a git repository, which will make run/readchomp throw an exception. + # We'll assume that if readchomp fails it is due to this and set the sha + # variable accordingly. + "(not-git-repo)" + end + @debug "setting up target directory." isdir(target) || mkpath(target) # Run extra build steps defined in `make` if required. @@ -588,8 +453,8 @@ function deploydocs(; git_push( root, temp, repo; branch=branch, dirname=dirname, target=target, - tag=travis_tag, key=documenter_key, sha=sha, - devurl = devurl, versions = versions, forcepush = forcepush, + sha=sha, deploy_config=deploy_config, subfolder=subfolder, + devurl=devurl, versions=versions, forcepush=forcepush, ) end end @@ -599,139 +464,155 @@ end """ git_push( root, tmp, repo; - branch="gh-pages", dirname="", target="site", tag="", key="", sha="", devurl="dev" + branch="gh-pages", dirname="", target="site", sha="", devurl="dev", + deploy_config, folder, ) Handles pushing changes to the remote documentation branch. -When `tag` is empty the docs are deployed to the `devurl` directory, -and when building docs for a tag they are deployed to a `vX.Y.Z` directory. +The documentation are placed in the folder specified by `subfolder`. """ function git_push( root, temp, repo; - branch="gh-pages", dirname="", target="site", tag="", key="", sha="", devurl="dev", - versions, forcepush=false, + branch="gh-pages", dirname="", target="site", sha="", devurl="dev", + versions, forcepush=false, deploy_config, subfolder, ) dirname = isempty(dirname) ? temp : joinpath(temp, dirname) isdir(dirname) || mkpath(dirname) target_dir = abspath(target) - # Extract host from repo as everything up to first ':' or '/' character - host = match(r"(.*?)[:\/]", repo)[1] - - # The upstream URL to which we push new content and the ssh decryption commands. - upstream = "git@$(replace(repo, "$host/" => "$host:"))" - - keyfile = abspath(joinpath(root, ".documenter")) - try - write(keyfile, String(base64decode(key))) - catch e - @error """ - Documenter failed to decode the DOCUMENTER_KEY environment variable. - Make sure that the environment variable is properly set up as a Base64-encoded string - of the SSH private key. You may need to re-generate the keys with DocumenterTools. - """ - rethrow(e) - end - chmod(keyfile, 0o600) + # Generate a closure with common commands for ssh and https + function git_commands(sshconfig=nothing) + # Setup git. + run(`git init`) + run(`git config user.name "zeptodoctor"`) + run(`git config user.email "44736852+zeptodoctor@users.noreply.github.com"`) + if sshconfig !== nothing + run(`git config core.sshCommand "ssh -F $(sshconfig)"`) + end - try - # Use a custom SSH config file to avoid overwriting the default user config. - withfile(joinpath(homedir(), ".ssh", "config"), - """ - Host $host - StrictHostKeyChecking no - HostName $host - IdentityFile "$keyfile" - BatchMode yes + # Fetch from remote and checkout the branch. + run(`git remote add upstream $upstream`) + try + run(`git fetch upstream`) + catch e + @error """ + Git failed to fetch $upstream + This can be caused by a DOCUMENTER_KEY variable that is not correctly set up. + Make sure that the environment variable is properly set up as a Base64-encoded string + of the SSH private key. You may need to re-generate the keys with DocumenterTools. """ - ) do - cd(temp) do - # Setup git. - run(`git init`) - run(`git config user.name "zeptodoctor"`) - run(`git config user.email "44736852+zeptodoctor@users.noreply.github.com"`) - - # Fetch from remote and checkout the branch. - run(`git remote add upstream $upstream`) - try - run(`git fetch upstream`) - catch e - @error """ - Git failed to fetch $upstream - This can be caused by a DOCUMENTER_KEY variable that is not correctly set up. - Make sure that the environment variable is properly set up as a Base64-encoded string - of the SSH private key. You may need to re-generate the keys with DocumenterTools. - """ - rethrow(e) - end + rethrow(e) + end - try - run(`git checkout -b $branch upstream/$branch`) - catch e - @debug "checking out $branch failed with error: $e" - @debug "creating a new local $branch branch." - run(`git checkout --orphan $branch`) - run(`git commit --allow-empty -m "Initial empty commit for docs"`) - end + try + run(`git checkout -b $branch upstream/$branch`) + catch e + @debug "checking out $branch failed with error: $e" + @debug "creating a new local $branch branch." + run(`git checkout --orphan $branch`) + run(`git commit --allow-empty -m "Initial empty commit for docs"`) + end + + # Copy docs to `subfolder` directory. + deploy_dir = joinpath(dirname, subfolder) + gitrm_copy(target_dir, deploy_dir) + Writers.HTMLWriter.generate_siteinfo_file(deploy_dir, subfolder) - # Copy docs to `devurl`, or `stable`, ``, and `` directories. - if isempty(tag) - devurl_dir = joinpath(dirname, devurl) - gitrm_copy(target_dir, devurl_dir) - Writers.HTMLWriter.generate_siteinfo_file(devurl_dir, devurl) - # symlink "latest" to devurl to preserve links (remove in some future release) - if devurl != "latest" - rm(joinpath(dirname, "latest"); recursive = true, force = true) - @warn(string("creating symlink from `latest` to `$(devurl)` for backwards ", - "compatibility with old links. In future Documenter versions this symlink ", - "will not be created. Please update any links that point to `latest`.")) - cd(dirname) do; rm_and_add_symlink(devurl, "latest"); end - end + # Expand the users `versions` vector + entries, symlinks = Writers.HTMLWriter.expand_versions(dirname, versions) + + # Create the versions.js file containing a list of `entries`. + # This must always happen after the folder copying. + Writers.HTMLWriter.generate_version_file(joinpath(dirname, "versions.js"), entries) + + # generate the symlinks, make sure we don't overwrite devurl + cd(dirname) do + for kv in symlinks + i = findfirst(x -> x.first == devurl, symlinks) + if i === nothing + rm_and_add_symlink(kv.second, kv.first) else - tagged_dir = joinpath(dirname, tag) - gitrm_copy(target_dir, tagged_dir) - Writers.HTMLWriter.generate_siteinfo_file(tagged_dir, tag) + throw(ArgumentError(string("link `$(kv)` cannot overwrite ", + "`devurl = $(devurl)` with the same name."))) end + end + end - # Expand the users `versions` vector - entries, symlinks = Writers.HTMLWriter.expand_versions(dirname, versions) - - # Create the versions.js file containing a list of `entries`. - # This must always happen after the folder copying. - Writers.HTMLWriter.generate_version_file(joinpath(dirname, "versions.js"), entries) - - # generate the symlinks, make sure we don't overwrite devurl - cd(dirname) do - for kv in symlinks - i = findfirst(x -> x.first == devurl, symlinks) - if i === nothing - rm_and_add_symlink(kv.second, kv.first) - else - throw(ArgumentError(string("link `$(kv)` cannot overwrite ", - "`devurl = $(devurl)` with the same name."))) - end - end - end + # Add, commit, and push the docs to the remote. + run(`git add -A .`) + if !success(`git diff --cached --exit-code`) + if forcepush + run(`git commit --amend --date=now -m "build based on $sha"`) + run(`git push -fq upstream HEAD:$branch`) + else + run(`git commit -m "build based on $sha"`) + run(`git push -q upstream HEAD:$branch`) + end + else + @debug "new docs identical to the old -- not committing nor pushing." + end + end - # Add, commit, and push the docs to the remote. - run(`git add -A .`) - if !success(`git diff --cached --exit-code`) - if forcepush - run(`git commit --amend --date=now -m "build based on $sha"`) - run(`git push -fq upstream HEAD:$branch`) - else - run(`git commit -m "build based on $sha"`) - run(`git push -q upstream HEAD:$branch`) - end - else - @debug "new docs identical to the old -- not committing nor pushing." + if authentication_method(deploy_config) === SSH + # Extract host from repo as everything up to first ':' or '/' character + host = match(r"(.*?)[:\/]", repo)[1] + + # The upstream URL to which we push new content and the ssh decryption commands. + upstream = "git@$(replace(repo, "$host/" => "$host:"))" + + keyfile = abspath(joinpath(root, ".documenter")) + try + write(keyfile, base64decode(documenter_key(deploy_config))) + catch e + @error """ + Documenter failed to decode the DOCUMENTER_KEY environment variable. + Make sure that the environment variable is properly set up as a Base64-encoded string + of the SSH private key. You may need to re-generate the keys with DocumenterTools. + """ + rm(keyfile; force=true) + rethrow(e) + end + chmod(keyfile, 0o600) + + try + mktemp() do sshconfig, io + print(io, + """ + Host $host + StrictHostKeyChecking no + User git + HostName $host + IdentityFile "$keyfile" + IdentitiesOnly yes + BatchMode yes + """) + close(io) + chmod(sshconfig, 0o600) + # git config core.sshCommand requires git 2.10.0, but + # GIT_SSH_COMMAND works from 2.3.0 so define both. + withenv("GIT_SSH_COMMAND" => "ssh -F $(sshconfig)") do + cd(() -> git_commands(sshconfig), temp) end end + post_status(deploy_config; repo=repo, type="success", subfolder=subfolder) + catch e + @error "Failed to push:" exception=(e, catch_backtrace()) + post_status(deploy_config; repo=repo, type="error") + finally + # Remove the unencrypted private key. + isfile(keyfile) && rm(keyfile) + end + else # authentication_method(deploy_config) === HTTPS + # The upstream URL to which we push new content authenticated with token + upstream = authenticated_repo_url(deploy_config) + try + cd(git_commands, temp) + post_status(deploy_config; repo=repo, type="success", subfolder=subfolder) + catch e + @error "Failed to push:" exception=(e, catch_backtrace()) + post_status(deploy_config; repo=repo, type="error") end - finally - # Remove the unencrypted private key. - isfile(keyfile) && rm(keyfile) end end @@ -756,43 +637,109 @@ first, `git add -A` will not detect case changes in filenames. function gitrm_copy(src, dst) # --ignore-unmatch so that we wouldn't get errors if dst does not exist run(`git rm -rf --ignore-unmatch $(dst)`) + # git rm also removed parent directories + # if they are empty so need to mkpath after + mkpath(dst) cp(src, dst; force=true) end -function withfile(func, file::AbstractString, contents::AbstractString) - dir = dirname(file) - hasdir = isdir(dir) - hasdir || mkpath(dir) - - hasfile = isfile(file) - original = hasfile ? read(file, String) : "" - open(file, "w") do stream - print(stream, contents) - flush(stream) # Make sure file is written before continuing. +function getenv(regex::Regex) + for (key, value) in ENV + occursin(regex, key) && return value end - try - func() - finally - if hasfile - open(file, "w") do stream - print(stream, original) - end - else - rm(file) - end + error("could not find key/iv pair.") +end - if !hasdir - # dir should be empty now as the only file inside was deleted - rm(dir, recursive=true) - end +""" + doctest(package::Module; kwargs...) + +Convenience method that runs and checks all the doctests for a given Julia package. +`package` must be the `Module` object corresponding to the top-level module of the package. +Behaves like an `@testset` call, returning a testset if all the doctests are successful or +throwing a `TestSetException` if there are any failures. Can be included in other testsets. + +# Keywords + +**`manual`** controls how manual pages are handled. By default (`manual = true`), `doctest` +assumes that manual pages are located under `docs/src`. If that is not the case, the +`manual` keyword argument can be passed to specify the directory. Setting `manual = false` +will skip doctesting of manual pages altogether. + +Additional keywords are passed on to the main [`doctest`](@ref) method. +""" +function doctest(package::Module; manual=true, testset=nothing, kwargs...) + if pathof(package) === nothing + throw(ArgumentError("$(package) is not a top-level package module.")) end + source = nothing + if manual === true + source = normpath(joinpath(dirname(pathof(package)), "..", "docs", "src")) + isdir(source) || throw(ArgumentError(""" + Package $(package) does not have a documentation source directory at standard location. + Searched at: $(source) + If ... + """)) + end + testset = (testset === nothing) ? "Doctests: $(package)" : testset + doctest(source, [package]; testset=testset, kwargs...) end -function getenv(regex::Regex) - for (key, value) in ENV - occursin(regex, key) && return value +""" + doctest(source, modules; kwargs...) + +Runs all the doctests in the given modules and on manual pages under the `source` directory. +Behaves like an `@testset` call, returning a testset if all the doctests are successful or +throwing a `TestSetException` if there are any failures. Can be included in other testsets. + +The manual pages are searched recursively in subdirectories of `source` too. Doctesting of +manual pages can be disabled if `source` is set to `nothing`. + +# Keywords + +**`testset`** specifies the name of test testset (default `Doctests`). + +**`fix`**, if set to `true`, updates all the doctests that fail with the correct output +(default `false`). + +!!! warning + When running `doctest(...; fix=true)`, Documenter will modify the Markdown and Julia + source files. It is strongly recommended that you only run it on packages in Pkg's + develop mode and commit any staged changes. You should also review all the changes made + by `doctest` before committing them, as there may be edge cases when the automatic + fixing fails. +""" +function doctest( + source::Union{AbstractString,Nothing}, + modules::AbstractVector{Module}; + fix = false, + testset = "Doctests", + ) + function all_doctests() + dir = mktempdir() + try + @debug "Doctesting in temporary directory: $(dir)" modules + if source === nothing + source = joinpath(dir, "src") + mkdir(source) + end + makedocs( + root = dir, + source = source, + sitename = "", + doctest = fix ? :fix : :only, + modules = modules, + ) + true + catch err + @error "Doctesting failed" exception=(err, catch_backtrace()) + false + finally + rm(dir; recursive=true) + end + end + @testset "$testset" begin + @test all_doctests() end - error("could not find key/iv pair.") end end # module diff --git a/src/Documents.jl b/src/Documents.jl index 7a50eeb92a..02fb86e27e 100644 --- a/src/Documents.jl +++ b/src/Documents.jl @@ -13,8 +13,10 @@ import ..Documenter: Documenter, Anchors, Utilities, - Plugin + Plugin, + Writer +import ..Documenter.Utilities.Markdown2 using DocStringExtensions import Markdown using Unicode @@ -35,8 +37,9 @@ Globals() = Globals(Main, Dict()) Represents a single markdown file. """ struct Page - source :: String - build :: String + source :: String + build :: String + workdir :: Union{Symbol,String} """ Ordered list of raw toplevel markdown nodes from the parsed page contents. This vector should be considered immutable. @@ -49,24 +52,48 @@ struct Page """ mapping :: IdDict{Any,Any} globals :: Globals + md2ast :: Markdown2.MD end -function Page(source::AbstractString, build::AbstractString) - elements = Markdown.parse(read(source, String)).content - Page(source, build, elements, IdDict{Any,Any}(), Globals()) +function Page(source::AbstractString, build::AbstractString, workdir::AbstractString) + mdpage = Markdown.parse(read(source, String)) + md2ast = try + Markdown2.convert(Markdown2.MD, mdpage) + catch err + @error """ + Markdown2 conversion error on $(source). + This is a bug — please report this on the Documenter issue tracker + """ + rethrow(err) + end + Page(source, build, workdir, mdpage.content, IdDict{Any,Any}(), Globals(), md2ast) +end + +# FIXME -- special overload for Utilities.parseblock +Utilities.parseblock(code::AbstractString, doc, page::Documents.Page; kwargs...) = Utilities.parseblock(code, doc, page.source; kwargs...) + +# Document blueprints. +# -------------------- + +# Should contain all the information that is necessary to build a document. +# Currently has enough information to just run doctests. +struct DocumentBlueprint + pages :: Dict{String, Page} # Markdown files only. + modules :: Set{Module} # Which modules to check for missing docs? end + # Document Nodes. # --------------- ## IndexNode. struct IndexNode - pages :: Vector{String} # Which pages to include in the index? Set by user. - modules :: Vector{Module} # Which modules to include? Set by user. - order :: Vector{Symbol} # What order should docs be listed in? Set by user. - build :: String # Path to the file where this index will appear. - source :: String # Path to the file where this index was written. - elements :: Vector # (object, doc, page, mod, cat)-tuple for constructing links. + pages :: Vector{String} # Which pages to include in the index? Set by user. + modules :: Vector{Module} # Which modules to include? Set by user. + order :: Vector{Symbol} # What order should docs be listed in? Set by user. + build :: String # Path to the file where this index will appear. + source :: String # Path to the file where this index was written. + elements :: Vector # (object, doc, page, mod, cat)-tuple for constructing links. function IndexNode(; # TODO: Fix difference between uppercase and lowercase naming of keys. @@ -85,11 +112,11 @@ end ## ContentsNode. struct ContentsNode - pages :: Vector{String} # Which pages should be included in contents? Set by user. - depth :: Int # Down to which level should headers be displayed? Set by user. - build :: String # Same as for `IndexNode`s. - source :: String # Same as for `IndexNode`s. - elements :: Vector # (order, page, anchor)-tuple for constructing links. + pages :: Vector{String} # Which pages should be included in contents? Set by user. + depth :: Int # Down to which level should headers be displayed? Set by user. + build :: String # Same as for `IndexNode`s. + source :: String # Same as for `IndexNode`s. + elements :: Vector # (order, page, anchor)-tuple for constructing links. function ContentsNode(; Pages = [], @@ -152,7 +179,7 @@ to other page, reference to the [`Page`](@ref) object etc. mutable struct NavNode """ `nothing` if the `NavNode` is a non-page node of the navigation tree, otherwise - the string should be a valid key in `doc.internal.pages` + the string should be a valid key in `doc.blueprint.pages` """ page :: Union{String, Nothing} """ @@ -187,7 +214,8 @@ struct User root :: String # An absolute path to the root directory of the document. source :: String # Parent directory is `.root`. Where files are read from. build :: String # Parent directory is also `.root`. Where files are written to. - format :: Vector{Plugin} # What format to render the final document with? + workdir :: Union{Symbol,String} # Parent directory is also `.root`. Where code is executed from. + format :: Vector{Writer} # What format to render the final document with? clean :: Bool # Empty the `build` directory before starting a new build? doctest :: Union{Bool,Symbol} # Run doctests? linkcheck::Bool # Check external links.. @@ -195,8 +223,8 @@ struct User checkdocs::Symbol # Check objects missing from `@docs` blocks. `:none`, `:exports`, or `:all`. doctestfilters::Vector{Regex} # Filtering for doctests strict::Bool # Throw an exception when any warnings are encountered. - modules :: Set{Module} # Which modules to check for missing docs? pages :: Vector{Any} # Ordering of document pages specified by the user. + expandfirst::Vector{String} # List of pages that get "expanded" before others repo :: String # Template for URL to source code repo sitename:: String authors :: String @@ -210,7 +238,6 @@ Private state used to control the generation process. struct Internal assets :: String # Path where asset files will be copied to. remote :: String # The remote repo on github where this package is hosted. - pages :: Dict{String, Page} # Markdown files only. navtree :: Vector{NavNode} # A vector of top-level navigation items. navlist :: Vector{NavNode} # An ordered list of `NavNode`s that point to actual pages headers :: Anchors.AnchorMap # See `modules/Anchors.jl`. Tracks `Markdown.Header` objects. @@ -233,12 +260,14 @@ struct Document user :: User # Set by the user via `makedocs`. internal :: Internal # Computed values. plugins :: Dict{DataType, Plugin} + blueprint :: DocumentBlueprint end function Document(plugins = nothing; root :: AbstractString = Utilities.currentdir(), source :: AbstractString = "src", build :: AbstractString = "build", + workdir :: Union{Symbol, AbstractString} = :build, format :: Any = Documenter.HTML(), clean :: Bool = true, doctest :: Union{Bool,Symbol} = true, @@ -249,6 +278,7 @@ function Document(plugins = nothing; strict::Bool = false, modules :: Utilities.ModVec = Module[], pages :: Vector = Any[], + expandfirst :: Vector = String[], repo :: AbstractString = "", sitename :: AbstractString = "", authors :: AbstractString = "", @@ -259,7 +289,7 @@ function Document(plugins = nothing; Utilities.check_kwargs(others) if !isa(format, AbstractVector) - format = Plugin[format] + format = Writer[format] end if version == "git-commit" @@ -270,6 +300,7 @@ function Document(plugins = nothing; root, source, build, + workdir, format, clean, doctest, @@ -278,8 +309,8 @@ function Document(plugins = nothing; checkdocs, doctestfilters, strict, - Utilities.submodules(modules), pages, + expandfirst, repo, sitename, authors, @@ -289,7 +320,6 @@ function Document(plugins = nothing; internal = Internal( Utilities.assetsdir(), Utilities.getremote(root), - Dict{String, Page}(), [], [], Anchors.AnchorMap(), @@ -306,14 +336,18 @@ function Document(plugins = nothing; if plugins !== nothing for plugin in plugins plugin isa Plugin || - throw("$(typeof(plugin)) is not a subtype of `Documenter.Plugin`.") + throw(ArgumentError("$(typeof(plugin)) is not a subtype of `Documenter.Plugin`.")) haskey(plugin_dict, typeof(plugin)) && - throw("only one copy of $(typeof(plugin)) may be passed.") + throw(ArgumentError("only one copy of $(typeof(plugin)) may be passed.")) plugin_dict[typeof(plugin)] = plugin end end - Document(user, internal, plugin_dict) + blueprint = DocumentBlueprint( + Dict{String, Page}(), + Utilities.submodules(modules), + ) + Document(user, internal, plugin_dict, blueprint) end """ @@ -333,11 +367,11 @@ end ## Methods -function addpage!(doc::Document, src::AbstractString, dst::AbstractString) - page = Page(src, dst) +function addpage!(doc::Document, src::AbstractString, dst::AbstractString, wd::AbstractString) + page = Page(src, dst, wd) # page's identifier is the path relative to the `doc.user.source` directory name = normpath(relpath(src, doc.user.source)) - doc.internal.pages[name] = page + doc.blueprint.pages[name] = page end """ @@ -406,7 +440,7 @@ end # some replacements for jldoctest blocks function doctest_replace!(doc::Documents.Document) - for (src, page) in doc.internal.pages + for (src, page) in doc.blueprint.pages empty!(page.globals.meta) for element in page.elements page.globals.meta[:CurrentFile] = page.source diff --git a/src/Expanders.jl b/src/Expanders.jl index 5955d8f87b..109ddf5558 100644 --- a/src/Expanders.jl +++ b/src/Expanders.jl @@ -5,7 +5,6 @@ module Expanders import ..Documenter: Anchors, - Builder, Documents, Documenter, Utilities @@ -24,7 +23,20 @@ import Base64: stringmime function expand(doc::Documents.Document) - for (src, page) in doc.internal.pages + priority_pages = filter(doc.user.expandfirst) do src + if src in keys(doc.blueprint.pages) + return true + else + @warn "$(src) in expandfirst does not exist" + return false + end + end + normal_pages = filter(src -> !(src in priority_pages), keys(doc.blueprint.pages)) + normal_pages = sort([src for src in normal_pages]) + @debug "pages" keys(doc.blueprint.pages) priority_pages normal_pages + for src in Iterators.flatten([priority_pages, normal_pages]) + page = doc.blueprint.pages[src] + @debug "Running ExpanderPipeline on $src" empty!(page.globals.meta) for element in page.elements Selectors.dispatch(ExpanderPipeline, element, page, doc) @@ -309,11 +321,11 @@ function Selectors.runner(::Type{DocsBlocks}, x, page, doc) end # Find the docs matching `binding` and `typesig`. Only search within the provided modules. - docs = Documenter.DocSystem.getdocs(binding, typesig; modules = doc.user.modules) + docs = Documenter.DocSystem.getdocs(binding, typesig; modules = doc.blueprint.modules) # Include only docstrings from user-provided modules if provided. - if !isempty(doc.user.modules) - filter!(d -> d.data[:module] in doc.user.modules, docs) + if !isempty(doc.blueprint.modules) + filter!(d -> d.data[:module] in doc.blueprint.modules, docs) end # Check that we aren't printing an empty docs list. Skip block when empty. @@ -478,7 +490,7 @@ end function Selectors.runner(::Type{EvalBlocks}, x, page, doc) sandbox = Module(:EvalBlockSandbox) lines = Utilities.find_block_in_file(x.code, page.source) - cd(dirname(page.build)) do + cd(page.workdir) do result = nothing for (ex, str) in Utilities.parseblock(x.code, doc, page; keywords = false) try @@ -540,7 +552,7 @@ function Selectors.runner(::Type{ExampleBlocks}, x, page, doc) end for (ex, str) in Utilities.parseblock(code, doc, page; keywords = false) (value, success, backtrace, text) = Utilities.withoutput() do - cd(dirname(page.build)) do + cd(page.workdir) do Core.eval(mod, ex) end end @@ -596,8 +608,13 @@ function Selectors.runner(::Type{REPLBlocks}, x, page, doc) for (ex, str) in Utilities.parseblock(x.code, doc, page; keywords = false) buffer = IOBuffer() input = droplines(str) + if VERSION >= v"1.5.0-DEV.178" + # Use the REPL softscope for REPLBlocks, + # see https://github.com/JuliaLang/julia/pull/33864 + ex = REPL.softscope!(ex) + end (value, success, backtrace, text) = Utilities.withoutput() do - cd(dirname(page.build)) do + cd(page.workdir) do Core.eval(mod, ex) end end @@ -629,12 +646,12 @@ function Selectors.runner(::Type{SetupBlocks}, x, page, doc) # The sandboxed module -- either a new one or a cached one from this page. name = matched[1] sym = isempty(name) ? gensym("ex-") : Symbol("ex-", name) - mod = get!(page.globals.meta, sym, Module(sym))::Module + mod = get!(() -> get_new_sandbox(sym), page.globals.meta, sym) # Evaluate whole @setup block at once instead of piecewise page.mapping[x] = try - cd(dirname(page.build)) do + cd(page.workdir) do include_string(mod, x.code) end Markdown.MD([]) diff --git a/src/Utilities/JSDependencies.jl b/src/Utilities/JSDependencies.jl new file mode 100644 index 0000000000..9d84f72cb3 --- /dev/null +++ b/src/Utilities/JSDependencies.jl @@ -0,0 +1,339 @@ +""" +Provides an API to programmatically construct a [RequireJS](https://requirejs.org/) script. +""" +module JSDependencies +using JSON + +""" + struct RemoteLibrary + +Declares a remote JS dependency that should be declared in the RequireJS configuration shim. + +# Fields + +* `name`: a unique name for the dependency, used to refer to it in other dependencies and + snippets +* `url`: full remote URL from where the dependency can be loaded from +* `deps`: a list of the library's dependencies (becomes the `deps` configuration in the + RequireJS shim) +* `exports`: sets the `exports` config in the resulting RequireJS shim + +# Constructors + +```julia +RemoteLibrary(name::AbstractString, url::AbstractString; deps=String[], exports=nothing) +``` +""" +struct RemoteLibrary + name :: String + url :: String + # The following become part of the shim + deps :: Vector{String} + exports :: Union{Nothing, String} + + function RemoteLibrary(name::AbstractString, url::AbstractString; deps=String[], exports=nothing) + new(name, url, deps, exports) + end +end + +""" + struct Snippet + +Declares a JS code snipped that should be loaded with RequireJS. This gets wrapped in +`require([deps...], function(args...) {script...})` in the output. + +# Fields + +* `deps`: names of the [`RemoteLibrary`](@ref) dependencies of the snippet +* `args`: the arguments of the callback function, corresponding to the library objects + of the dependencies, in the order of `deps` +* `js`: the JS code of the function that gets used as the function body of the callback + +# Constructors + +```julia +Snippet(deps::AbstractVector, args::AbstractVector, js::AbstractString) +``` +""" +struct Snippet + deps :: Vector{String} + args :: Vector{String} + js :: String + + function Snippet(deps::AbstractVector, args::AbstractVector, js::AbstractString) + new(deps, args, js) + end +end + +""" + struct RequireJS + +Declares a single RequireJS configuration/app file. + +# Fields + +* `libraries`: a dictionary of [`RemoteLibrary`](@ref) declarations (keys are the library + names) +* `snippets`: a list of JS snippets ([`Snippet`](@ref)) + +# Constructors + +```julia +RequireJS(libraries::AbstractVector{RemoteLibrary}, snippets::AbstractVector{Snippet} = Snippet[]) +``` + +# API + +* The `push!` function can be used to add additional libraries and snippets. +* +""" +struct RequireJS + libraries :: Dict{String, RemoteLibrary} + snippets :: Vector{Snippet} + + function RequireJS(libraries::AbstractVector, snippets::AbstractVector = Snippet[]) + all(x -> isa(x, RemoteLibrary), libraries) || throw(ArgumentError("Bad element types for `libraries`: $(typeof.(libraries))")) + all(x -> isa(x, Snippet), snippets) || throw(ArgumentError("Bad element types for `snippets`: $(typeof.(snippets))")) + r = new(Dict(), []) + for library in libraries + push!(r, library) + end + for snippet in snippets + push!(r, snippet) + end + return r + end +end + +function Base.push!(r::RequireJS, lib::RemoteLibrary) + if lib.name in keys(r.libraries) + error("Library already added.") + end + r.libraries[lib.name] = lib +end + +Base.push!(r::RequireJS, s::Snippet) = push!(r.snippets, s) + +""" + verify(r::RequireJS; verbose=false) -> Bool + +Checks that none of the dependencies are missing (returns `false` if some are). If `verbose` +is set to `true`, it will also log an error with the missing dependency. +""" +function verify(r::RequireJS; verbose=false) + isvalid = true + for (name, lib) in r.libraries + for dep in lib.deps + if !(dep in keys(r.libraries)) + verbose && @error("$(dep) of $(name) missing from libraries") + isvalid = false + end + end + end + for s in r.snippets + for dep in s.deps + if !(dep in keys(r.libraries)) + verbose && @error("$(dep) missing from libraries") + isvalid = false + end + end + end + return isvalid +end + +""" + writejs(io::IO, r::RequireJS) + writejs(filename::AbstractString, r::RequireJS) + +Writes out the [`RequireJS`](@ref) object as a valid JS that can be loaded with a `
    ` tag). +""" +struct ThematicBreak <: MarkdownBlockNode end + +struct Heading <: MarkdownBlockNode + level :: Int + nodes :: Vector{MarkdownInlineNode} + + function Heading(level::Integer, nodes::Vector{MarkdownInlineNode}) + @assert 1 <= level <= 6 # TODO: error message + new(level, nodes) + end +end + +struct CodeBlock <: MarkdownBlockNode + language :: String + code :: String +end + +#struct HTMLBlock <: MarkdownBlockNode end # the parser in Base does not support this currently +#struct LinkDefinition <: MarkdownBlockNode end # the parser in Base does not support this currently + +""" + struct Paragraph <: MarkdownBlockNode + +Represents a paragraph block-type node. Its children are inline nodes. +""" +struct Paragraph <: MarkdownBlockNode + nodes :: Vector{MarkdownInlineNode} +end + +## Container blocks +struct BlockQuote <: MarkdownBlockNode + nodes :: Vector{MarkdownBlockNode} +end + +""" + struct List <: MarkdownBlockNode + +If `.orderedstart` is `nothing` then the list is unordered. Otherwise is specifies the first +number in the list. +""" +struct List <: MarkdownBlockNode + tight :: Bool + orderedstart :: Union{Int, Nothing} + items :: Vector{Vector{MarkdownBlockNode}} # TODO: Better types? +end + +# Non-Commonmark extensions +struct DisplayMath <: MarkdownBlockNode + formula :: String +end + +struct Footnote <: MarkdownBlockNode + id :: String + nodes :: Vector{MarkdownBlockNode} # Footnote is a container block +end + +struct Table <: MarkdownBlockNode + align :: Vector{Symbol} + cells :: Array{Vector{MarkdownInlineNode}, 2} # TODO: better type? + # Note: Table is _not_ a container type -- the cells can only contan inlines. +end + +struct Admonition <: MarkdownBlockNode + category :: String + title :: String + nodes :: Vector{MarkdownBlockNode} # Admonition is a container block +end + +# Inline nodes +# ------------ + +struct Text <: MarkdownInlineNode + text :: String +end + +struct CodeSpan <: MarkdownInlineNode + code :: String +end + +struct Emphasis <: MarkdownInlineNode + nodes :: Vector{MarkdownInlineNode} +end + +struct Strong <: MarkdownInlineNode + nodes :: Vector{MarkdownInlineNode} +end + +struct Link <: MarkdownInlineNode + destination :: String + #title :: String # the parser in Base does not support this currently + nodes :: Vector{MarkdownInlineNode} +end + +struct Image <: MarkdownInlineNode + destination :: String + description :: String + #title :: String # the parser in Base does not support this currently + #nodes :: Vector{MarkdownInlineNode} # the parser in Base does not parse the description currently +end +#struct InlineHTML <: MarkdownInlineNode end # the parser in Base does not support this currently +struct LineBreak <: MarkdownInlineNode end + +# Non-Commonmark extensions +struct InlineMath <: MarkdownInlineNode + formula :: String +end + +struct FootnoteReference <: MarkdownInlineNode + id :: String +end + + +# Conversion methods +# ================== +""" + convert(::Type{MD}, md::Markdown.MD) -> Markdown2.MD + +Converts a Markdown standard library AST into a Markdown2 AST. +""" +function Base.convert(::Type{MD}, md::Markdown.MD) + nodes = map(_convert_block, md.content) + MD(nodes) +end + +_convert_block(xs::Vector) = MarkdownBlockNode[_convert_block(x) for x in xs] +_convert_block(b::Markdown.HorizontalRule) = ThematicBreak() +function _convert_block(b::Markdown.Header{N}) where N + text = _convert_inline(b.text) + # Empty headings have just an empty String as text + nodes = isa(text, AbstractVector) ? text : MarkdownInlineNode[text] + Heading(N, nodes) +end +_convert_block(b::Markdown.Code) = CodeBlock(b.language, b.code) +_convert_block(b::Markdown.Paragraph) = Paragraph(_convert_inline(b.content)) +_convert_block(b::Markdown.BlockQuote) = BlockQuote(_convert_block(b.content)) +function _convert_block(b::Markdown.List) + tight = all(isequal(1), length.(b.items)) + orderedstart = (b.ordered == -1) ? nothing : b.ordered + List(tight, orderedstart, _convert_block.(b.items)) +end + +# Non-Commonmark extensions +_convert_block(b::Markdown.LaTeX) = DisplayMath(b.formula) +_convert_block(b::Markdown.Footnote) = Footnote(b.id, _convert_block(b.text)) +function _convert_block(b::Markdown.Table) + @assert all(isequal(length(b.align)), length.(b.rows)) # TODO: error + cells = [_convert_inline(b.rows[i][j]) for i = 1:length(b.rows), j = 1:length(b.align)] + Table( + b.align, + [_convert_inline(b.rows[i][j]) for i = 1:length(b.rows), j = 1:length(b.align)] + ) +end +_convert_block(b::Markdown.Admonition) = Admonition(b.category, b.title, _convert_block(b.content)) + +# Fallback +function _convert_block(x) + @debug "Strange inline Markdown node (typeof(x) = $(typeof(x))), falling back to repr()" x + Paragraph([Text(repr(x))]) +end + +_convert_inline(xs::Vector) = MarkdownInlineNode[_convert_inline(x) for x in xs] +_convert_inline(s::String) = Text(s) +function _convert_inline(s::Markdown.Code) + @assert isempty(s.language) # TODO: error + CodeSpan(s.code) +end +_convert_inline(s::Markdown.Bold) = Strong(_convert_inline(s.text)) +_convert_inline(s::Markdown.Italic) = Emphasis(_convert_inline(s.text)) +function _convert_inline(s::Markdown.Link) + text = _convert_inline(s.text) + # Autolinks (the `` syntax) yield Link objects where .text is just a String + nodes = isa(text, AbstractVector) ? text : [text] + Link(s.url, nodes) +end +_convert_inline(s::Markdown.Image) = Image(s.url, s.alt) +# struct InlineHTML <: MarkdownInlineNode end # the parser in Base does not support this currently +_convert_inline(::Markdown.LineBreak) = LineBreak() + +# Non-Commonmark extensions +_convert_inline(s::Markdown.LaTeX) = InlineMath(s.formula) +function _convert_inline(s::Markdown.Footnote) + @assert s.text === nothing # footnote references should not have any content, TODO: error + FootnoteReference(s.id) +end + +# Fallback +function _convert_inline(x) + @debug "Strange inline Markdown node (typeof(x) = $(typeof(x))), falling back to repr()" x + Text(repr(x)) +end + + +# walk() function +# =============== +""" + walk(f, element) + +Calls `f(element)` on `element` and any of its child elements. The elements are assumed to +be [`Markdown2`](@ref) elements. +""" +function walk end + +function walk(f, node::T) where {T <: Union{MarkdownNode, MD}} + f(node) || return + if :nodes in fieldnames(T) + walk(f, node.nodes) + end + return +end + +function walk(f, nodes::Vector) + for node in nodes + walk(f, node) + end +end + +function walk(f, list::List) + f(list) || return + for item in list.items + walk(f, item) + end +end + +function walk(f, table::Table) + f(table) || return + for cell in table.cells + walk(f, cell) + end +end +end diff --git a/src/Utilities/Utilities.jl b/src/Utilities/Utilities.jl index f81e709b69..7172c54f1c 100644 --- a/src/Utilities/Utilities.jl +++ b/src/Utilities/Utilities.jl @@ -84,8 +84,12 @@ Returns a `Vector` of tuples `(expr, code)`, where `expr` is the corresponding e parsed from. The keyword argument `skip = N` drops the leading `N` lines from the input string. + +If `raise=false` is passed, the `Meta.parse` does not raise an exception on parse errors, +but instead returns an expression that will raise an error when evaluated. `parseblock` +returns this expression normally and it must be handled appropriately by the caller. """ -function parseblock(code::AbstractString, doc, page; skip = 0, keywords = true) +function parseblock(code::AbstractString, doc, file; skip = 0, keywords = true, raise=true) # Drop `skip` leading lines from the code block. Needed for deprecated `{docs}` syntax. code = string(code, '\n') code = last(split(code, '\n', limit = skip + 1)) @@ -102,10 +106,10 @@ function parseblock(code::AbstractString, doc, page; skip = 0, keywords = true) (QuoteNode(keyword), cursor + lastindex(line)) else try - Meta.parse(code, cursor) + Meta.parse(code, cursor; raise=raise) catch err push!(doc.internal.errors, :parse_error) - @warn "failed to parse exception in $(Utilities.locrepr(page.source))" exception = err + @warn "failed to parse exception in $(Utilities.locrepr(file))" exception = err break end end @@ -359,7 +363,12 @@ function repo_commit(file) end function url(repo, file; commit=nothing) - file = realpath(abspath(file)) + file = abspath(file) + if !isfile(file) + @warn "couldn't find file \"$file\" when generating URL" + return nothing + end + file = realpath(file) remote = getremote(dirname(file)) isempty(repo) && (repo = "https://github.com/$remote/blob/{commit}{path}") path = relpath_from_repo_root(file) @@ -654,9 +663,33 @@ function display_dict(x) return out end +""" + struct Default{T} + +Internal wrapper type that is meant to be used in situations where it is necessary to +distinguish whether the user explicitly passed the same value as the default value to a +keyword argument, or whether the keyword argument was not passed at all. + +```julia +function foo(; kwarg = Default("default value")) + if isa(kwarg, Default) + # User did not explicitly pass a value for kwarg + else kwarg === "default value" + # User passed "default value" explicitly + end +end +``` +""" +struct Default{T} + value :: T +end +Base.getindex(default::Default) = default.value + include("DOM.jl") include("MDFlatten.jl") include("TextDiff.jl") include("Selectors.jl") +include("Markdown2.jl") +include("JSDependencies.jl") end diff --git a/src/Writers/HTMLWriter.jl b/src/Writers/HTMLWriter.jl index bc7d254865..fbb17307ab 100644 --- a/src/Writers/HTMLWriter.jl +++ b/src/Writers/HTMLWriter.jl @@ -7,7 +7,7 @@ A module for rendering `Document` objects to HTML. [`Documenter.makedocs`](@ref): `authors`, `pages`, `sitename`, `version`. The behavior of [`HTMLWriter`](@ref) can be further customized by setting the `format` keyword of [`Documenter.makedocs`](@ref) to a [`HTML`](@ref), which accepts the following -keyword arguments: `analytics`, `assets`, `canonical`, `disable_git`, `edit_branch` and +keyword arguments: `analytics`, `assets`, `canonical`, `disable_git`, `edit_link` and `prettyurls`. **`sitename`** is the site's title displayed in the title bar and at the top of the @@ -40,6 +40,7 @@ then it is intended as the page title. This has two consequences: """ module HTMLWriter +using Dates: Dates, @dateformat_str, now import Markdown import JSON @@ -52,11 +53,169 @@ import ...Documenter: Utilities, Writers +using ...Utilities: Default +using ...Utilities.JSDependencies: JSDependencies, json_jsescape import ...Utilities.DOM: DOM, Tag, @tags using ...Utilities.MDFlatten export HTML +"List of Documenter native themes." +const THEMES = ["documenter-light", "documenter-dark"] +"The root directory of the HTML assets." +const ASSETS = normpath(joinpath(@__DIR__, "..", "..", "assets", "html")) +"The directory where all the Sass/SCSS files needed for theme building are." +const ASSETS_SASS = joinpath(ASSETS, "scss") +"Directory for the compiled CSS files of the themes." +const ASSETS_THEMES = joinpath(ASSETS, "themes") + +struct HTMLAsset + class :: Symbol + uri :: String + islocal :: Bool + + function HTMLAsset(class::Symbol, uri::String, islocal::Bool) + if !islocal && match(r"^https?://", uri) === nothing + error("Remote asset URL must start with http:// or https://") + end + class in [:ico, :css, :js] || error("Unrecognised asset class $class for `$(uri)`") + new(class, uri, islocal) + end +end + +""" + asset(uri) + +Can be used to pass non-local web assets to [`HTML`](@ref), where `uri` should be an absolute +HTTP or HTTPS URL. + +It accepts the following keyword arguments: + +**`class`** can be used to override the asset class, which determines how exactly the asset +gets included in the HTML page. This is necessary if the class can not be determined +automatically (default). + +Should be one of: `:js`, `:css` or `:ico`. They become a `