diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index ca9e6728..2225a8e6 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -2,29 +2,26 @@ "version": 1, "isRoot": true, "tools": { - "fake-cli": { - "version": "5.20.4", - "commands": [ - "fake" - ] - }, "paket": { - "version": "6.0.7", + "version": "10.3.1", "commands": [ "paket" - ] + ], + "rollForward": false }, - "fsharp.formatting.commandtool": { - "version": "11.4.4", + "fantomas": { + "version": "7.0.5", "commands": [ - "fsdocs" - ] + "fantomas" + ], + "rollForward": false }, - "fantomas-tool": { - "version": "4.5.7", + "fsdocs-tool": { + "version": "22.0.0", "commands": [ - "fantomas" - ] + "fsdocs" + ], + "rollForward": false } } } \ No newline at end of file diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index e8e1a96f..0f5c212f 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -8,30 +8,24 @@ jobs: build: runs-on: ${{ matrix.os }} - timeout-minutes: 30 strategy: - fail-fast: false matrix: - os: [ macos-latest, ubuntu-latest, windows-latest ] + r-version: [ '4.5.0' ] + os: [macos-latest, windows-latest] + arch: [ x64, arm64 ] + exclude: + - os: windows-latest + arch: arm64 env: - RPROVIDER_LOG: rlog.txt + RPROVIDER_LOG: true steps: - uses: actions/checkout@master - - name: Setup R - Ubuntu - if: matrix.os == 'ubuntu-latest' - run: | - sudo apt update -qq - sudo apt install --no-install-recommends software-properties-common dirmngr - wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc - sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/" - sudo apt install --no-install-recommends r-base - - uses: r-lib/actions/setup-r@v1 - name: Setup R - Windows / macOS - if: matrix.os != 'ubuntu-latest' + - uses: r-lib/actions/setup-r@v2 + name: Setup R with: - r-version: '4.0.2' - - name: Set R environment variables + r-version: ${{ matrix.r-version }} + - name: Set R_HOME environment variable run: | if [ "$RUNNER_OS" == "Linux" ]; then mkdir -p ~/.local/lib/R @@ -46,34 +40,37 @@ jobs: exit 1 fi shell: bash - - name: Verify R Home - run: | - Rscript -e 'R.home()' - echo "${{ env.R_HOME }}" - name: Install R package dependencies - run: Rscript -e "install.packages(c('tseries', 'zoo'), repos = 'http://cran.us.r-project.org')" + run: Rscript -e "install.packages(c('tseries', 'zoo'), repos = 'https://cran.r-project.org')" shell: bash - - name: Setup .NET 5 - uses: actions/setup-dotnet@v1 - with: - dotnet-version: '5.0.x' - - name: Setup .NET 6 + - name: Setup .NET uses: actions/setup-dotnet@v1 with: - dotnet-version: '6.0.x' - include-prerelease: true - - name: Test F# scripts - run: dotnet fsi citest.fsx + dotnet-version: 10.0.100 - name: Restore tool dependencies run: dotnet tool restore - name: Restore paket dependencies run: dotnet paket restore - - name: Restore dependencies - run: dotnet restore RProvider.sln - - name: Restore dependencies (tests) - run: dotnet restore RProvider.Tests.sln - - name: Build - run: dotnet fake build -t All + - name: Restore solution + run: dotnet restore + - name: Build and test + run: dotnet fsi build.fsx + timeout-minutes: 10 - name: Check R log if: ${{ always() }} - run: cat rlog.txt + run: | + if [ "$RUNNER_OS" = "Linux" ]; then + LOGFILE="${XDG_STATE_HOME:-$HOME/.local/state}/RProvider/rprovider.log" + elif [ "$RUNNER_OS" = "macOS" ]; then + LOGFILE="$HOME/Library/Logs/RProvider/rprovider.log" + else + LOGFILE="/c/Users/$USERNAME/AppData/Local/RProvider/rprovider.log" + fi + echo "Looking for log at: $LOGFILE" + if [ -f "$LOGFILE" ]; then + echo "=== RProvider log found ===" + cat "$LOGFILE" + else + echo "No RProvider log file found" + fi + shell: bash \ No newline at end of file diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 56a84aea..a821abd9 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -7,28 +7,22 @@ on: jobs: build: runs-on: ${{ matrix.os }} - timeout-minutes: 30 strategy: - fail-fast: false matrix: - os: [ ubuntu-latest, windows-latest, macos-latest ] + r-version: [ '4.5.0' ] + os: [macos-latest, windows-latest] + arch: [ x64, arm64 ] + exclude: + - os: windows-latest + arch: arm64 steps: - uses: actions/checkout@master - - name: Setup R - Ubuntu - if: matrix.os == 'ubuntu-latest' - run: | - sudo apt update -qq - sudo apt install --no-install-recommends software-properties-common dirmngr - wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc - sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/" - sudo apt install --no-install-recommends r-base - - uses: r-lib/actions/setup-r@v1 - name: Setup R - Windows / macOS - if: matrix.os != 'ubuntu-latest' + - uses: r-lib/actions/setup-r@v2 + name: Setup R with: - r-version: '4.0.2' - - name: Set R environment variables + r-version: ${{ matrix.r-version }} + - name: Set R_HOME environment variable run: | if [ "$RUNNER_OS" == "Linux" ]; then mkdir -p ~/.local/lib/R @@ -43,34 +37,21 @@ jobs: exit 1 fi shell: bash - - name: Verify R Home - run: | - Rscript -e 'R.home()' - echo "${{ env.R_HOME }}" - name: Install R package dependencies - run: Rscript -e "install.packages(c('tseries', 'zoo'), repos = 'http://cran.us.r-project.org')" + run: Rscript -e "install.packages(c('tseries', 'zoo'), repos = 'https://cran.r-project.org')" shell: bash - - name: Setup .NET 5 - uses: actions/setup-dotnet@v1 - with: - dotnet-version: '5.0.x' - - name: Setup .NET 6 + - name: Setup .NET uses: actions/setup-dotnet@v1 with: - dotnet-version: '6.0.x' - include-prerelease: true - - name: Test F# scripts - run: dotnet fsi citest.fsx + dotnet-version: 10.0.100 - name: Restore tool dependencies run: dotnet tool restore - name: Restore paket dependencies run: dotnet paket restore - name: Restore dependencies run: dotnet restore RProvider.sln - - name: Restore dependencies (tests) - run: dotnet restore RProvider.Tests.sln - name: Build - run: dotnet fake build -t All + run: dotnet fsi build.fsx - name: Deploy documentation from master uses: peaceiris/actions-gh-pages@v3 with: diff --git a/.gitignore b/.gitignore index 26d086cb..bcae35de 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ ################# paket-files/ -Test.RProvider.dll* packages/ temp/ docs/output/ @@ -11,6 +10,7 @@ docs/output/ *.userprefs .paket/paket.exe .fake +local-packages ################# ## Eclipse diff --git a/LICENSE.md b/LICENSE.md index 2c66f029..54d99deb 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,7 @@ RProvider License ================= +Copyright (c) 2012–2026, RProvider Contributors Copyright (c) 2012, BlueMountain Capital Management LLC All rights reserved. @@ -12,11 +13,3 @@ Redistributions of source code must retain the above copyright notice, this list Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -RDotNet License -=============== - -Please see References/LICENSE.MD for the RDotNet license agreement. - - - diff --git a/README.md b/README.md index d780037c..1266baae 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # F# R Provider [![Discord](https://img.shields.io/discord/836161044501889064?color=purple&label=Join%20our%20Discord%21&logo=discord&logoColor=white)](https://discord.gg/VUpfpzfBmd) +[![Github Actions](https://github.com/fslaborg/RProvider/actions/workflows/push.yml/badge.svg?branch=master)](https://github.com/fslaborg/RProvider/actions/workflows/push.yml) RProvider @@ -12,33 +13,24 @@ An F# type provider for interoperating with [R](http://www.r-project.org/). For The R Provider discovers R packages that are available in your R installation and makes them available as .NET namespaces underneath the parent namespace RProvider. For example, the stats package is available as RProvider.stats. If you open the namespaces you want to use, functions and values will be available as R.name. ---- - -## Builds - -GitHub Actions | -:---: | -[![Github Actions](https://github.com/fslaborg/RProvider/actions/workflows/push.yml/badge.svg?branch=master)](https://github.com/fslaborg/RProvider/actions/workflows/push.yml) | - -## NuGet +## Packages Package | Stable | Prerelease --- | --- | --- -RProvider | [![NuGet Badge](https://buildstats.info/nuget/RProvider)](https://www.nuget.org/packages/RProvider/) | [![NuGet Badge](https://buildstats.info/nuget/RProvider?includePreReleases=true)](https://www.nuget.org/packages/RProvider/) +RProvider | [![NuGet Version](https://img.shields.io/nuget/v/RProvider)](https://www.nuget.org/packages/bristlecone/) | [![NuGet Version](https://img.shields.io/nuget/vpre/RProvider)](https://www.nuget.org/packages/bristlecone/) ---- +## Requirements -### Requirements +RProvider is tested and supported for Windows 11 and macOS (apple silicon), but may work on older / other platforms. Make sure the following **requirements** are installed on your system: -- [dotnet SDK](https://www.microsoft.com/net/download/core) 5.0 or greater; and -- [R statistical language](http://cran.r-project.org/). _Note: on Windows, there is currently a bug in R preventing us from supporting R versions greater than 4.0.2._ -- R_HOME environment variable set to the R home directory. This can usually be identified by running the command 'R RHOME'. +- [dotnet SDK](https://www.microsoft.com/net/download/core) 10.0+; and +- [R statistical language](http://cran.r-project.org/), version 4.5.0+. -_Note: for .NET framework support, you should use the legacy RProvider 1.2 or earlier; we are no longer supporting these versions._ +_Note: for classic .NET framework (v4) support, use the legacy RProvider 1.2 or earlier._ -### What does it do? +## What does it do? The R Provider discovers R packages that are available in your R installation and makes them available as .NET namespaces underneath the parent namespace RProvider. For example, the stats package is available as RProvider.stats. If you open the namespaces you want to use, functions and values will be available as R.name. For example, consider this F# interactive script: @@ -56,30 +48,26 @@ This creates an R numeric vector containing 1,2,3, and names it v. Note that we Note that you can set the version of RProvider to use (for reproducability) by changing the #r line to: ```fsharp -#r "nuget:RProvider,2.0.3" //replace 2.0.3 with desired version +#r "nuget:RProvider,3.0.0" //replace 3.0.0 with desired version ``` -### How to use +## How to use -RProvider is distributed as a [NuGet package](https://nuget.org/packages/RProvider/), which can be used from an F# script or F# projects. See our [documentation](https://fslab.org/RProvider//) for more detailed information and tutorials. +RProvider is distributed as a [NuGet package](https://nuget.org/packages/RProvider/), which can be used from an F# script or F# projects. See the [documentation](https://fslab.org/RProvider/) for more detailed information. -If you are using R 2.15 or later, you should not try to load the RProvider inside a script that is passed to FSI via the --use flag. It seems that something about the way R initializes causes it to hang in that context. Works fine if you load later. - -### Developing +## Developing Install the requirements listed in the above section. To build and test: 1. Restore dotnet tools: ```dotnet tool restore``` -2. Run FAKE: ```dotnet fake build -t All``` +2. Run FAKE: ```dotnet fsi build.fsx``` To debug, enable logging by setting the RPROVIDER_LOG environment value to an existing text file. -### License -RProvider is covered by the BSD license. - -The library uses [RDotNet](https://github.com/rdotnet/rdotnet) which is also covered by the BSD license. +## License +RProvider is covered by the BSD 2‑Clause license. The type provider depends on [RBridge](https://github.com/AndrewIOM/fsharp-r-bridge), which is MIT-licensed. -### Maintainers +## Maintainers * [AndrewIOM](https://github.com/AndrewIOM) * [dsyme](https://github.com/dsyme) * [tpetricek](https://github.com/tpetricek) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index ad6d7323..77af8313 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,3 +1,4 @@ +* 3.0.0-alpha1 - replaced R.NET with RBridge, and updated to latest type provider SDK * 2.1.0 - new feature: ? and => operators; and locale fix for regions with comma number seperator * 2.0.3 - Include built-in FSI printer module * 2.0.2 - Breaking change: Replace "." with "_" in package names (#245) diff --git a/RProvider.Tests.sln b/RProvider.Tests.sln deleted file mode 100644 index 59a1fb75..00000000 --- a/RProvider.Tests.sln +++ /dev/null @@ -1,28 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30110.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{B91D3969-5664-4A5F-845A-4FD7268C1BE9}" - ProjectSection(SolutionItems) = preProject - paket.dependencies = paket.dependencies - paket.lock = paket.lock - EndProjectSection -EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Test.RProvider", "tests\Test.RProvider\Test.RProvider.fsproj", "{A371037F-5B03-4C6C-91D3-5DFD494E0BFB}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A371037F-5B03-4C6C-91D3-5DFD494E0BFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A371037F-5B03-4C6C-91D3-5DFD494E0BFB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A371037F-5B03-4C6C-91D3-5DFD494E0BFB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A371037F-5B03-4C6C-91D3-5DFD494E0BFB}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/RProvider.sln b/RProvider.sln index 4a1a46db..09dee9f0 100644 --- a/RProvider.sln +++ b/RProvider.sln @@ -1,123 +1,82 @@ + Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.0.31903.59 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{4F7B6E34-9782-4B13-BF92-CDE7C7F54B86}" - ProjectSection(SolutionItems) = preProject - paket.dependencies = paket.dependencies - paket.lock = paket.lock - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "project", "project", "{5FA7D1AD-DEDA-4553-81D1-6E4728386A2F}" - ProjectSection(SolutionItems) = preProject - build.fsx = build.fsx - LICENSE.md = LICENSE.md - paket.dependencies = paket.dependencies - README.md = README.md - RELEASE_NOTES.md = RELEASE_NOTES.md - nuget\RProvider.nuspec = nuget\RProvider.nuspec - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{B34F96AE-40C8-44AC-8D82-5196202C080E}" - ProjectSection(SolutionItems) = preProject - docs\_template.fsx = docs\_template.fsx - docs\_template.html = docs\_template.html - docs\_template.ipynb = docs\_template.ipynb - docs\Charts-QuickStart.fsx = docs\Charts-QuickStart.fsx - docs\devnotes.md = docs\devnotes.md - docs\diagnostics.md = docs\diagnostics.md - docs\fslab.fsx = docs\fslab.fsx - docs\howto.md = docs\howto.md - docs\index.md = docs\index.md - docs\internals.md = docs\internals.md - docs\passing-data.fsx = docs\passing-data.fsx - docs\plugins.md = docs\plugins.md - docs\reading-rdata.fsx = docs\reading-rdata.fsx - docs\requirements.fsx = docs\requirements.fsx - docs\Statistics-QuickStart.fsx = docs\Statistics-QuickStart.fsx - docs\tutorial.fsx = docs\tutorial.fsx - docs\whatwhy.md = docs\whatwhy.md - EndProjectSection -EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "RProvider", "src\RProvider\RProvider.fsproj", "{5624F098-BE3F-4C8E-B50F-1CFC9E1E0708}" -EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "RWrapperGenerator", "src\RWrapperGenerator\RWrapperGenerator.fsproj", "{66A390A5-526A-4BD1-B876-E7425B643C70}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}" EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "RProvider.DesignTime", "src\RProvider.DesignTime\RProvider.DesignTime.fsproj", "{00496B70-99EA-4ED2-AFD5-6DB4A1DB7317}" EndProject Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "RProvider.Server", "src\RProvider.Server\RProvider.Server.fsproj", "{7FF9CFA3-2516-4970-9DD8-54C7D4CA24AA}" EndProject -Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "RProvider.Runtime", "src\RProvider.Runtime\RProvider.Runtime.fsproj", "{80FD4284-C7BD-4170-8CC3-41E8548402E4}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "data", "{14413305-B3A5-43BC-A5FE-D5BE074A5FC1}" - ProjectSection(SolutionItems) = preProject - docs\data\sample.rdata = docs\data\sample.rdata - EndProjectSection +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "RProvider", "src\RProvider\RProvider.fsproj", "{AAD560D6-5670-4F94-B6B8-06E225D2C3CA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "img", "img", "{4617306A-2F00-4FFA-B834-1E7C2AC5E499}" - ProjectSection(SolutionItems) = preProject - docs\img\acf.png = docs\img\acf.png - docs\img\bmc.png = docs\img\bmc.png - docs\img\logo.png = docs\img\logo.png - docs\img\pairs.png = docs\img\pairs.png - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "misc", "misc", "{A234D3CB-4067-43A9-99D7-990B9135B4CC}" - ProjectSection(SolutionItems) = preProject - docs\misc\diagram.png = docs\misc\diagram.png - docs\misc\diagram.vsdx = docs\misc\diagram.vsdx - docs\misc\logo.pdn = docs\misc\logo.pdn - docs\misc\logo.png = docs\misc\logo.png - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "reference", "reference", "{02B2E8A3-F17A-478F-835B-69C4A937EFA6}" - ProjectSection(SolutionItems) = preProject - docs\reference\_template.html = docs\reference\_template.html - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "content", "content", "{B9C4C9A1-9583-4926-BDF0-050D01B4DC39}" - ProjectSection(SolutionItems) = preProject - docs\content\fsdocs-custom.css = docs\content\fsdocs-custom.css - EndProjectSection +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "RProvider.Abstractions", "src\RProvider.Abstractions\RProvider.Abstractions.fsproj", "{FA165D5E-D452-4565-9143-5890E66499CA}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5624F098-BE3F-4C8E-B50F-1CFC9E1E0708}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5624F098-BE3F-4C8E-B50F-1CFC9E1E0708}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5624F098-BE3F-4C8E-B50F-1CFC9E1E0708}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5624F098-BE3F-4C8E-B50F-1CFC9E1E0708}.Release|Any CPU.Build.0 = Release|Any CPU - {66A390A5-526A-4BD1-B876-E7425B643C70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {66A390A5-526A-4BD1-B876-E7425B643C70}.Debug|Any CPU.Build.0 = Debug|Any CPU - {66A390A5-526A-4BD1-B876-E7425B643C70}.Release|Any CPU.ActiveCfg = Release|Any CPU - {66A390A5-526A-4BD1-B876-E7425B643C70}.Release|Any CPU.Build.0 = Release|Any CPU {00496B70-99EA-4ED2-AFD5-6DB4A1DB7317}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {00496B70-99EA-4ED2-AFD5-6DB4A1DB7317}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00496B70-99EA-4ED2-AFD5-6DB4A1DB7317}.Debug|x64.ActiveCfg = Debug|Any CPU + {00496B70-99EA-4ED2-AFD5-6DB4A1DB7317}.Debug|x64.Build.0 = Debug|Any CPU + {00496B70-99EA-4ED2-AFD5-6DB4A1DB7317}.Debug|x86.ActiveCfg = Debug|Any CPU + {00496B70-99EA-4ED2-AFD5-6DB4A1DB7317}.Debug|x86.Build.0 = Debug|Any CPU {00496B70-99EA-4ED2-AFD5-6DB4A1DB7317}.Release|Any CPU.ActiveCfg = Release|Any CPU {00496B70-99EA-4ED2-AFD5-6DB4A1DB7317}.Release|Any CPU.Build.0 = Release|Any CPU + {00496B70-99EA-4ED2-AFD5-6DB4A1DB7317}.Release|x64.ActiveCfg = Release|Any CPU + {00496B70-99EA-4ED2-AFD5-6DB4A1DB7317}.Release|x64.Build.0 = Release|Any CPU + {00496B70-99EA-4ED2-AFD5-6DB4A1DB7317}.Release|x86.ActiveCfg = Release|Any CPU + {00496B70-99EA-4ED2-AFD5-6DB4A1DB7317}.Release|x86.Build.0 = Release|Any CPU {7FF9CFA3-2516-4970-9DD8-54C7D4CA24AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7FF9CFA3-2516-4970-9DD8-54C7D4CA24AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7FF9CFA3-2516-4970-9DD8-54C7D4CA24AA}.Debug|x64.ActiveCfg = Debug|Any CPU + {7FF9CFA3-2516-4970-9DD8-54C7D4CA24AA}.Debug|x64.Build.0 = Debug|Any CPU + {7FF9CFA3-2516-4970-9DD8-54C7D4CA24AA}.Debug|x86.ActiveCfg = Debug|Any CPU + {7FF9CFA3-2516-4970-9DD8-54C7D4CA24AA}.Debug|x86.Build.0 = Debug|Any CPU {7FF9CFA3-2516-4970-9DD8-54C7D4CA24AA}.Release|Any CPU.ActiveCfg = Release|Any CPU {7FF9CFA3-2516-4970-9DD8-54C7D4CA24AA}.Release|Any CPU.Build.0 = Release|Any CPU - {80FD4284-C7BD-4170-8CC3-41E8548402E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {80FD4284-C7BD-4170-8CC3-41E8548402E4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {80FD4284-C7BD-4170-8CC3-41E8548402E4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {80FD4284-C7BD-4170-8CC3-41E8548402E4}.Release|Any CPU.Build.0 = Release|Any CPU + {7FF9CFA3-2516-4970-9DD8-54C7D4CA24AA}.Release|x64.ActiveCfg = Release|Any CPU + {7FF9CFA3-2516-4970-9DD8-54C7D4CA24AA}.Release|x64.Build.0 = Release|Any CPU + {7FF9CFA3-2516-4970-9DD8-54C7D4CA24AA}.Release|x86.ActiveCfg = Release|Any CPU + {7FF9CFA3-2516-4970-9DD8-54C7D4CA24AA}.Release|x86.Build.0 = Release|Any CPU + {AAD560D6-5670-4F94-B6B8-06E225D2C3CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AAD560D6-5670-4F94-B6B8-06E225D2C3CA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AAD560D6-5670-4F94-B6B8-06E225D2C3CA}.Debug|x64.ActiveCfg = Debug|Any CPU + {AAD560D6-5670-4F94-B6B8-06E225D2C3CA}.Debug|x64.Build.0 = Debug|Any CPU + {AAD560D6-5670-4F94-B6B8-06E225D2C3CA}.Debug|x86.ActiveCfg = Debug|Any CPU + {AAD560D6-5670-4F94-B6B8-06E225D2C3CA}.Debug|x86.Build.0 = Debug|Any CPU + {AAD560D6-5670-4F94-B6B8-06E225D2C3CA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AAD560D6-5670-4F94-B6B8-06E225D2C3CA}.Release|Any CPU.Build.0 = Release|Any CPU + {AAD560D6-5670-4F94-B6B8-06E225D2C3CA}.Release|x64.ActiveCfg = Release|Any CPU + {AAD560D6-5670-4F94-B6B8-06E225D2C3CA}.Release|x64.Build.0 = Release|Any CPU + {AAD560D6-5670-4F94-B6B8-06E225D2C3CA}.Release|x86.ActiveCfg = Release|Any CPU + {AAD560D6-5670-4F94-B6B8-06E225D2C3CA}.Release|x86.Build.0 = Release|Any CPU + {FA165D5E-D452-4565-9143-5890E66499CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA165D5E-D452-4565-9143-5890E66499CA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA165D5E-D452-4565-9143-5890E66499CA}.Debug|x64.ActiveCfg = Debug|Any CPU + {FA165D5E-D452-4565-9143-5890E66499CA}.Debug|x64.Build.0 = Debug|Any CPU + {FA165D5E-D452-4565-9143-5890E66499CA}.Debug|x86.ActiveCfg = Debug|Any CPU + {FA165D5E-D452-4565-9143-5890E66499CA}.Debug|x86.Build.0 = Debug|Any CPU + {FA165D5E-D452-4565-9143-5890E66499CA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA165D5E-D452-4565-9143-5890E66499CA}.Release|Any CPU.Build.0 = Release|Any CPU + {FA165D5E-D452-4565-9143-5890E66499CA}.Release|x64.ActiveCfg = Release|Any CPU + {FA165D5E-D452-4565-9143-5890E66499CA}.Release|x64.Build.0 = Release|Any CPU + {FA165D5E-D452-4565-9143-5890E66499CA}.Release|x86.ActiveCfg = Release|Any CPU + {FA165D5E-D452-4565-9143-5890E66499CA}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {14413305-B3A5-43BC-A5FE-D5BE074A5FC1} = {B34F96AE-40C8-44AC-8D82-5196202C080E} - {4617306A-2F00-4FFA-B834-1E7C2AC5E499} = {B34F96AE-40C8-44AC-8D82-5196202C080E} - {A234D3CB-4067-43A9-99D7-990B9135B4CC} = {B34F96AE-40C8-44AC-8D82-5196202C080E} - {02B2E8A3-F17A-478F-835B-69C4A937EFA6} = {B34F96AE-40C8-44AC-8D82-5196202C080E} - {B9C4C9A1-9583-4926-BDF0-050D01B4DC39} = {B34F96AE-40C8-44AC-8D82-5196202C080E} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {71BE8F77-EB26-403B-A932-7A8FE0AC11B9} + {00496B70-99EA-4ED2-AFD5-6DB4A1DB7317} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} + {7FF9CFA3-2516-4970-9DD8-54C7D4CA24AA} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} + {AAD560D6-5670-4F94-B6B8-06E225D2C3CA} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} + {FA165D5E-D452-4565-9143-5890E66499CA} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} EndGlobalSection EndGlobal diff --git a/build.fsx b/build.fsx index 21937ba3..3158da16 100644 --- a/build.fsx +++ b/build.fsx @@ -2,17 +2,6 @@ // FAKE build script // -------------------------------------------------------------------------------------- -#if FAKE -#r "paket: -nuget FAKE.Core.Target -nuget FAKE.Core.ReleaseNotes -nuget FAKE.DotNet.Cli -nuget FAKE.DotNet.Fsi -nuget FAKE.DotNet.AssemblyInfoFile -nuget FAKE.Tools.Git -nuget FAKE.DotNet.Testing.XUnit2" -#load "./.fake/build.fsx/intellisense.fsx" -#else #r "nuget: FAKE.Core.Target" #r "nuget: FAKE.Core.ReleaseNotes" #r "nuget: FAKE.DotNet.Cli" @@ -20,12 +9,11 @@ nuget FAKE.DotNet.Testing.XUnit2" #r "nuget: FAKE.DotNet.AssemblyInfoFile" #r "nuget: FAKE.Tools.Git" #r "nuget: FAKE.DotNet.Testing.XUnit2" +#r "nuget: System.Reactive" +#r "nuget: MSBuild.StructuredLogger, 2.3.71" -let execContext = - Fake.Core.Context.FakeExecutionContext.Create false "build.fsx" [] - +let execContext = Fake.Core.Context.FakeExecutionContext.Create false "build.fsx" [] Fake.Core.Context.setExecutionContext (Fake.Core.Context.RuntimeContext.Fake execContext) -#endif open Fake.Core open Fake.Core.TargetOperators @@ -69,19 +57,12 @@ let repositoryUrl = "https://github.com/fslaborg/RProvider" let repositoryContentUrl = "https://raw.githubusercontent.com/fslaborg/RProvider" -let serverRuntimes = - [ "win-x64" - "osx-x64" - "osx-arm64" - "linux-x64" ] - // -------------------------------------------------------------------------------------- // The rest of the code is standard F# build script // -------------------------------------------------------------------------------------- // Read release notes & version info from RELEASE_NOTES.md System.Environment.CurrentDirectory <- __SOURCE_DIRECTORY__ -let binDir = __SOURCE_DIRECTORY__ @@ "bin" let release = System.IO.File.ReadLines "RELEASE_NOTES.md" @@ -125,18 +106,6 @@ Target.create else Trace.logf "Errors while formatting: %A" result.Errors) -Target.create - "Format" - (fun _ -> - let result = - sourceFiles - |> Seq.map (sprintf "\"%s\"") - |> String.concat " " - |> DotNet.exec id "fantomas" - - if not result.OK then - printfn "Errors while formatting all files: %A" result.Messages) - // -------------------------------------------------------------------------------------- // Clean build results & restore NuGet packages @@ -145,10 +114,10 @@ Target.create "Clean" (fun _ -> Fake.IO.Shell.cleanDirs [ "bin" - "temp" ] + "local-packages" ] - Fake.IO.Shell.cleanDirs [ "tests/Test.RProvider/bin" - "tests/Test.RProvider/obj" ]) + Fake.IO.Shell.cleanDirs [ "tests/RProvider.Tests/bin" + "tests/RProvider.Tests/obj" ]) Target.create "CleanDocs" (fun _ -> Fake.IO.Shell.cleanDirs [ ".fsdocs" ]) @@ -166,25 +135,6 @@ Target.create Configuration = DotNet.BuildConfiguration.Release }) (projectName + ".sln")) -Target.create - "MakeServerExes" - (fun _ -> - Trace.log " --- Publishing the RProvider.Server executables --- " - - serverRuntimes - |> List.iter - (fun runtime -> - Trace.logf " --- Publishing RProvider.Server for %s --- " runtime - - DotNet.publish - (fun args -> - { args with - Runtime = Some runtime - SelfContained = Some false - Configuration = DotNet.BuildConfiguration.Release - OutputPath = Some(sprintf "src/RProvider/bin/Release/net5.0/server/%s/" runtime) }) - "src/RProvider.Server")) - Target.create "BuildTests" (fun _ -> @@ -194,7 +144,7 @@ Target.create (fun args -> { args with Configuration = DotNet.BuildConfiguration.Release }) - "tests/Test.RProvider/Test.RProvider.fsproj") + "tests/RProvider.Tests/RProvider.Tests.fsproj") // -------------------------------------------------------------------------------------- // Run the unit tests using test runner & kill test runner when complete @@ -211,59 +161,68 @@ Target.create { args with Verbosity = Some Fake.DotNet.DotNet.Verbosity.Normal CustomParams = Some "-c Release" }) - "test" - "tests/Test.RProvider/Test.RProvider.fsproj" + "run" + "--project tests/RProvider.Tests/RProvider.Tests.fsproj" if result.ExitCode <> 0 then failwith "Tests failed") + // -------------------------------------------------------------------------------------- // Build a NuGet package -Target.create - "NuGet" - (fun _ -> - // Format the description to fit on a single line (remove \r\n and double-spaces) - let projectDescription = - projectDescription - .Replace("\r", "") - .Replace("\n", "") - .Replace(" ", " ") - - // Format the release notes - let releaseNotes = release.Notes |> String.concat "\n" - - let properties = - [ ("Version", release.NugetVersion) - ("Authors", authors) - ("PackageProjectUrl", packageProjectUrl) - ("PackageTags", tags) - ("RepositoryType", repositoryType) - ("RepositoryUrl", repositoryUrl) - ("PackageLicenseExpression", license) - ("PackageRequireLicenseAcceptance", "false") - ("PackageReleaseNotes", releaseNotes) - ("Summary", projectSummary) - ("PackageDescription", projectDescription) - ("PackageIcon", "logo.png") - ("PackageIconUrl", iconUrl) - ("EnableSourceLink", "true") - ("PublishRepositoryUrl", "true") - ("EmbedUntrackedSources", "true") - ("IncludeSymbols", "true") - ("IncludeSymbols", "false") - ("SymbolPackageFormat", "snupkg") - ("Copyright", copyright) ] - - DotNet.pack - (fun p -> - { p with - Configuration = DotNet.BuildConfiguration.Release - OutputPath = Some "bin" - MSBuildParams = - { p.MSBuildParams with - Properties = properties } }) - "src/RProvider/RProvider.fsproj") +let nugetTarget name isLocalTestCopy = + Target.create + name + (fun _ -> + // Format the description to fit on a single line (remove \r\n and double-spaces) + let projectDescription = + projectDescription + .Replace("\r", "") + .Replace("\n", "") + .Replace(" ", " ") + + // Format the release notes + let releaseNotes = release.Notes |> String.concat "\n" + + let properties = + [ + ("Version", if isLocalTestCopy then "0.0.1-local" else release.NugetVersion) + ("Authors", authors) + ("PackageProjectUrl", packageProjectUrl) + ("PackageTags", tags) + ("RepositoryType", repositoryType) + ("RepositoryUrl", repositoryUrl) + ("PackageLicenseExpression", license) + ("PackageRequireLicenseAcceptance", "false") + ("PackageReleaseNotes", releaseNotes) + ("Summary", projectSummary) + ("PackageDescription", projectDescription) + ("PackageIcon", "logo.png") + ("PackageIconUrl", iconUrl) + ("EnableSourceLink", "true") + ("PublishRepositoryUrl", "true") + ("EmbedUntrackedSources", "true") + ("IncludeSymbols", "true") + ("SymbolPackageFormat", "snupkg") + ("Copyright", copyright) ] + + let outPath = + if isLocalTestCopy then Some "local-packages" + else Some "bin" + + DotNet.pack + (fun p -> + { p with + Configuration = DotNet.BuildConfiguration.Release + OutputPath = outPath + MSBuildParams = + { p.MSBuildParams with + Properties = properties } }) + "src/RProvider/RProvider.fsproj") + +nugetTarget "Nuget" false +nugetTarget "NugetLocal" true //-------------------------------------------------------------------------------------- //Generate the documentation @@ -310,7 +269,7 @@ Target.create "All" ignore "Clean" ==> "AssemblyInfo" -==> "MakeServerExes" +// ==> "CheckFormat" ==> "Build" "Build" @@ -321,6 +280,7 @@ Target.create "All" ignore "Build" ==> "NuGet" ==> "All" "Build" ==> "All" -"Build" ==> "BuildTests" ==> "RunTests" ==> "All" +"Build" ==> "NugetLocal" ==> "BuildTests" ==> "RunTests" ==> "All" +"Build" ==> "RunTests" ==> "All" Target.runOrDefault "All" diff --git a/build.fsx.lock b/build.fsx.lock deleted file mode 100644 index 5d3ba0ed..00000000 --- a/build.fsx.lock +++ /dev/null @@ -1,689 +0,0 @@ -STORAGE: NONE -RESTRICTION: == netstandard2.0 -NUGET - remote: https://api.nuget.org/v3/index.json - BlackFox.VsWhere (1.1) - FSharp.Core (>= 4.2.3) - Microsoft.Win32.Registry (>= 4.7) - Fake.Core.CommandLineParsing (5.20.4) - FParsec (>= 1.1.1) - FSharp.Core (>= 4.7.2) - Fake.Core.Context (5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Environment (5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.FakeVar (5.20.4) - Fake.Core.Context (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Process (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.FakeVar (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - System.Collections.Immutable (>= 1.7.1) - FAKE.Core.ReleaseNotes (5.20.4) - Fake.Core.SemVer (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.SemVer (5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.String (5.20.4) - FSharp.Core (>= 4.7.2) - FAKE.Core.Target (5.20.4) - Fake.Core.CommandLineParsing (>= 5.20.4) - Fake.Core.Context (>= 5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.FakeVar (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - FSharp.Control.Reactive (>= 4.4.2) - FSharp.Core (>= 4.7.2) - Fake.Core.Tasks (5.20.4) - Fake.Core.Trace (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Trace (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.FakeVar (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Core.Xml (5.20.4) - Fake.Core.String (>= 5.20.4) - FSharp.Core (>= 4.7.2) - FAKE.DotNet.AssemblyInfoFile (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - FAKE.DotNet.Cli (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.DotNet.MSBuild (>= 5.20.4) - Fake.DotNet.NuGet (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Mono.Posix.NETStandard (>= 1.0) - Newtonsoft.Json (>= 12.0.3) - FAKE.DotNet.Fsi (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.DotNet.MSBuild (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FAKE.Tools.Git (>= 5.20.4) - FSharp.Compiler.Service (>= 37.0) - FSharp.Core (>= 4.7.2) - Fake.DotNet.MSBuild (5.20.4) - BlackFox.VsWhere (>= 1.1) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - MSBuild.StructuredLogger (>= 2.1.176) - Fake.DotNet.NuGet (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.SemVer (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Tasks (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.Core.Xml (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - Fake.Net.Http (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Newtonsoft.Json (>= 12.0.3) - NuGet.Protocol (>= 5.6) - FAKE.DotNet.Testing.XUnit2 (5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - Fake.Testing.Common (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.IO.FileSystem (5.20.4) - Fake.Core.String (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Net.Http (5.20.4) - Fake.Core.Trace (>= 5.20.4) - FSharp.Core (>= 4.7.2) - Fake.Testing.Common (5.20.4) - Fake.Core.Trace (>= 5.20.4) - FSharp.Core (>= 4.7.2) - FAKE.Tools.Git (5.20.4) - Fake.Core.Environment (>= 5.20.4) - Fake.Core.Process (>= 5.20.4) - Fake.Core.SemVer (>= 5.20.4) - Fake.Core.String (>= 5.20.4) - Fake.Core.Trace (>= 5.20.4) - Fake.IO.FileSystem (>= 5.20.4) - FSharp.Core (>= 4.7.2) - FParsec (1.1.1) - FSharp.Core (>= 4.3.4) - FSharp.Compiler.Service (40.0) - FSharp.Core (5.0.2) - Microsoft.Build.Framework (>= 16.9) - Microsoft.Build.Tasks.Core (>= 16.9) - Microsoft.Build.Utilities.Core (>= 16.9) - System.Buffers (>= 4.5.1) - System.Collections.Immutable (>= 5.0) - System.Diagnostics.Process (>= 4.3) - System.Diagnostics.TraceSource (>= 4.3) - System.Linq.Expressions (>= 4.3) - System.Linq.Queryable (>= 4.3) - System.Memory (>= 4.5.4) - System.Net.Requests (>= 4.3) - System.Net.Security (>= 4.3) - System.Reflection.Emit (>= 4.3) - System.Reflection.Metadata (>= 5.0) - System.Reflection.TypeExtensions (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Runtime.Loader (>= 4.3) - System.Security.Claims (>= 4.3) - System.Security.Cryptography.Algorithms (>= 4.3) - System.Security.Principal (>= 4.3) - System.Threading.Tasks.Parallel (>= 4.3) - System.Threading.Thread (>= 4.3) - System.Threading.ThreadPool (>= 4.3) - FSharp.Control.Reactive (5.0.2) - FSharp.Core (>= 4.7.2) - System.Reactive (>= 5.0) - FSharp.Core (5.0.2) - Microsoft.Build (16.11) - Microsoft.Build.Framework (16.11) - System.Security.Permissions (>= 4.7) - Microsoft.Build.Tasks.Core (16.11) - Microsoft.Build.Framework (>= 16.11) - Microsoft.Build.Utilities.Core (>= 16.11) - Microsoft.NET.StringTools (>= 1.0) - Microsoft.Win32.Registry (>= 4.3) - System.CodeDom (>= 4.4) - System.Collections.Immutable (>= 5.0) - System.Reflection.Metadata (>= 1.6) - System.Resources.Extensions (>= 4.6) - System.Security.Cryptography.Pkcs (>= 4.7) - System.Security.Cryptography.Xml (>= 4.7) - System.Security.Permissions (>= 4.7) - System.Threading.Tasks.Dataflow (>= 4.9) - Microsoft.Build.Utilities.Core (16.11) - Microsoft.Build.Framework (>= 16.11) - Microsoft.NET.StringTools (>= 1.0) - Microsoft.Win32.Registry (>= 4.3) - System.Collections.Immutable (>= 5.0) - System.Configuration.ConfigurationManager (>= 4.7) - System.Security.Permissions (>= 4.7) - System.Text.Encoding.CodePages (>= 4.0.1) - Microsoft.NET.StringTools (1.0) - System.Memory (>= 4.5.4) - System.Runtime.CompilerServices.Unsafe (>= 5.0) - Microsoft.NETCore.Platforms (5.0.2) - Microsoft.NETCore.Targets (5.0) - Microsoft.Win32.Primitives (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - Microsoft.Win32.Registry (5.0) - System.Buffers (>= 4.5.1) - System.Memory (>= 4.5.4) - System.Security.AccessControl (>= 5.0) - System.Security.Principal.Windows (>= 5.0) - Mono.Posix.NETStandard (1.0) - MSBuild.StructuredLogger (2.1.545) - Microsoft.Build (>= 16.10) - Microsoft.Build.Framework (>= 16.10) - Microsoft.Build.Tasks.Core (>= 16.10) - Microsoft.Build.Utilities.Core (>= 16.10) - Newtonsoft.Json (13.0.1) - NuGet.Common (5.11) - NuGet.Frameworks (>= 5.11) - NuGet.Configuration (5.11) - NuGet.Common (>= 5.11) - System.Security.Cryptography.ProtectedData (>= 4.4) - NuGet.Frameworks (5.11) - NuGet.Packaging (5.11) - Newtonsoft.Json (>= 9.0.1) - NuGet.Configuration (>= 5.11) - NuGet.Versioning (>= 5.11) - System.Security.Cryptography.Cng (>= 5.0) - System.Security.Cryptography.Pkcs (>= 5.0) - NuGet.Protocol (5.11) - NuGet.Packaging (>= 5.11) - NuGet.Versioning (5.11) - runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - runtime.native.System (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - runtime.native.System.Net.Http (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - runtime.native.System.Net.Security (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - runtime.native.System.Security.Cryptography.Apple (4.3.1) - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) - runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3.1) - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - System.Buffers (4.5.1) - System.CodeDom (5.0) - System.Collections (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Collections.Concurrent (4.3) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Diagnostics.Tracing (>= 4.3) - System.Globalization (>= 4.3) - System.Reflection (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Threading (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Collections.Immutable (5.0) - System.Memory (>= 4.5.4) - System.Configuration.ConfigurationManager (5.0) - System.Security.Cryptography.ProtectedData (>= 5.0) - System.Security.Permissions (>= 5.0) - System.Diagnostics.Debug (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Diagnostics.DiagnosticSource (5.0.1) - System.Memory (>= 4.5.4) - System.Runtime.CompilerServices.Unsafe (>= 5.0) - System.Diagnostics.Process (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.Win32.Primitives (>= 4.3) - Microsoft.Win32.Registry (>= 4.3) - runtime.native.System (>= 4.3) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Globalization (>= 4.3) - System.IO (>= 4.3) - System.IO.FileSystem (>= 4.3) - System.IO.FileSystem.Primitives (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Text.Encoding.Extensions (>= 4.3) - System.Threading (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Threading.Thread (>= 4.3) - System.Threading.ThreadPool (>= 4.3) - System.Diagnostics.TraceSource (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - runtime.native.System (>= 4.3) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Globalization (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Threading (>= 4.3) - System.Diagnostics.Tracing (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Formats.Asn1 (5.0) - System.Buffers (>= 4.5.1) - System.Memory (>= 4.5.4) - System.Globalization (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Globalization.Calendars (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Globalization (>= 4.3) - System.Runtime (>= 4.3) - System.Globalization.Extensions (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - System.Globalization (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.IO (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.IO.FileSystem (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.IO (>= 4.3) - System.IO.FileSystem.Primitives (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.IO.FileSystem.Primitives (4.3) - System.Runtime (>= 4.3) - System.Linq (4.3) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Linq.Expressions (4.3) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Globalization (>= 4.3) - System.IO (>= 4.3) - System.Linq (>= 4.3) - System.ObjectModel (>= 4.3) - System.Reflection (>= 4.3) - System.Reflection.Emit (>= 4.3) - System.Reflection.Emit.ILGeneration (>= 4.3) - System.Reflection.Emit.Lightweight (>= 4.3) - System.Reflection.Extensions (>= 4.3) - System.Reflection.Primitives (>= 4.3) - System.Reflection.TypeExtensions (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Threading (>= 4.3) - System.Linq.Queryable (4.3) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Linq (>= 4.3) - System.Linq.Expressions (>= 4.3) - System.Reflection (>= 4.3) - System.Reflection.Extensions (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Memory (4.5.4) - System.Buffers (>= 4.5.1) - System.Numerics.Vectors (>= 4.4) - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - System.Net.Http (4.3.4) - Microsoft.NETCore.Platforms (>= 1.1.1) - runtime.native.System (>= 4.3) - runtime.native.System.Net.Http (>= 4.3) - runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Diagnostics.DiagnosticSource (>= 4.3) - System.Diagnostics.Tracing (>= 4.3) - System.Globalization (>= 4.3) - System.Globalization.Extensions (>= 4.3) - System.IO (>= 4.3) - System.IO.FileSystem (>= 4.3) - System.Net.Primitives (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Security.Cryptography.Algorithms (>= 4.3) - System.Security.Cryptography.Encoding (>= 4.3) - System.Security.Cryptography.OpenSsl (>= 4.3) - System.Security.Cryptography.Primitives (>= 4.3) - System.Security.Cryptography.X509Certificates (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Net.Primitives (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime (>= 4.3.1) - System.Runtime.Handles (>= 4.3) - System.Net.Requests (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Diagnostics.Tracing (>= 4.3) - System.Globalization (>= 4.3) - System.IO (>= 4.3) - System.Net.Http (>= 4.3) - System.Net.Primitives (>= 4.3) - System.Net.WebHeaderCollection (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Threading (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Net.Security (4.3.2) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.Win32.Primitives (>= 4.3) - runtime.native.System (>= 4.3) - runtime.native.System.Net.Security (>= 4.3) - runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - System.Collections (>= 4.3) - System.Collections.Concurrent (>= 4.3) - System.Diagnostics.Tracing (>= 4.3) - System.Globalization (>= 4.3) - System.Globalization.Extensions (>= 4.3) - System.IO (>= 4.3) - System.Net.Primitives (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Security.Claims (>= 4.3) - System.Security.Cryptography.Algorithms (>= 4.3) - System.Security.Cryptography.Encoding (>= 4.3) - System.Security.Cryptography.OpenSsl (>= 4.3) - System.Security.Cryptography.Primitives (>= 4.3) - System.Security.Cryptography.X509Certificates (>= 4.3) - System.Security.Principal (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Threading.ThreadPool (>= 4.3) - System.Net.WebHeaderCollection (4.3) - System.Collections (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Numerics.Vectors (4.5) - System.ObjectModel (4.3) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Threading (>= 4.3) - System.Reactive (5.0) - System.Runtime.InteropServices.WindowsRuntime (>= 4.3) - System.Threading.Tasks.Extensions (>= 4.5.4) - System.Reflection (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.IO (>= 4.3) - System.Reflection.Primitives (>= 4.3) - System.Runtime (>= 4.3) - System.Reflection.Emit (4.7) - System.Reflection.Emit.ILGeneration (>= 4.7) - System.Reflection.Emit.ILGeneration (4.7) - System.Reflection.Emit.Lightweight (4.7) - System.Reflection.Emit.ILGeneration (>= 4.7) - System.Reflection.Extensions (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Reflection (>= 4.3) - System.Runtime (>= 4.3) - System.Reflection.Metadata (5.0) - System.Collections.Immutable (>= 5.0) - System.Reflection.Primitives (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Reflection.TypeExtensions (4.7) - System.Resources.Extensions (5.0) - System.Memory (>= 4.5.4) - System.Resources.ResourceManager (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Globalization (>= 4.3) - System.Reflection (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime.CompilerServices.Unsafe (5.0) - System.Runtime.Extensions (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime (>= 4.3.1) - System.Runtime.Handles (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Runtime.InteropServices (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Reflection (>= 4.3) - System.Reflection.Primitives (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Runtime.InteropServices.WindowsRuntime (4.3) - System.Runtime (>= 4.3) - System.Runtime.Loader (4.3) - System.IO (>= 4.3) - System.Reflection (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Numerics (4.3) - System.Globalization (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Security.AccessControl (5.0) - System.Security.Principal.Windows (>= 5.0) - System.Security.Claims (4.3) - System.Collections (>= 4.3) - System.Globalization (>= 4.3) - System.IO (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Security.Principal (>= 4.3) - System.Security.Cryptography.Algorithms (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1) - runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) - runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - System.Collections (>= 4.3) - System.IO (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Runtime.Numerics (>= 4.3) - System.Security.Cryptography.Encoding (>= 4.3) - System.Security.Cryptography.Primitives (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Security.Cryptography.Cng (5.0) - System.Security.Cryptography.Csp (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - System.IO (>= 4.3) - System.Reflection (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Security.Cryptography.Algorithms (>= 4.3) - System.Security.Cryptography.Encoding (>= 4.3) - System.Security.Cryptography.Primitives (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading (>= 4.3) - System.Security.Cryptography.Encoding (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) - System.Collections (>= 4.3) - System.Collections.Concurrent (>= 4.3) - System.Linq (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Security.Cryptography.Primitives (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Security.Cryptography.OpenSsl (5.0) - System.Security.Cryptography.Pkcs (5.0.1) - System.Buffers (>= 4.5.1) - System.Formats.Asn1 (>= 5.0) - System.Memory (>= 4.5.4) - System.Security.Cryptography.Cng (>= 5.0) - System.Security.Cryptography.Primitives (4.3) - System.Diagnostics.Debug (>= 4.3) - System.Globalization (>= 4.3) - System.IO (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Threading (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Security.Cryptography.ProtectedData (5.0) - System.Memory (>= 4.5.4) - System.Security.Cryptography.X509Certificates (4.3.2) - Microsoft.NETCore.Platforms (>= 1.1) - runtime.native.System (>= 4.3) - runtime.native.System.Net.Http (>= 4.3) - runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Globalization (>= 4.3) - System.Globalization.Calendars (>= 4.3) - System.IO (>= 4.3) - System.IO.FileSystem (>= 4.3) - System.IO.FileSystem.Primitives (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Runtime.Numerics (>= 4.3) - System.Security.Cryptography.Algorithms (>= 4.3) - System.Security.Cryptography.Cng (>= 4.3) - System.Security.Cryptography.Csp (>= 4.3) - System.Security.Cryptography.Encoding (>= 4.3) - System.Security.Cryptography.OpenSsl (>= 4.3) - System.Security.Cryptography.Primitives (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading (>= 4.3) - System.Security.Cryptography.Xml (5.0) - System.Memory (>= 4.5.4) - System.Security.Cryptography.Pkcs (>= 5.0) - System.Security.Permissions (>= 5.0) - System.Security.Permissions (5.0) - System.Security.AccessControl (>= 5.0) - System.Security.Principal (4.3) - System.Runtime (>= 4.3) - System.Security.Principal.Windows (5.0) - System.Text.Encoding (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Text.Encoding.CodePages (5.0) - System.Runtime.CompilerServices.Unsafe (>= 5.0) - System.Text.Encoding.Extensions (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading (4.3) - System.Runtime (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Threading.Tasks (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Threading.Tasks.Dataflow (5.0) - System.Threading.Tasks.Extensions (4.5.4) - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - System.Threading.Tasks.Parallel (4.3) - System.Collections.Concurrent (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Diagnostics.Tracing (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Threading (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Threading.Thread (4.3) - System.Runtime (>= 4.3) - System.Threading.ThreadPool (4.3) - System.Runtime (>= 4.3) - System.Runtime.Handles (>= 4.3) diff --git a/citest.fsx b/citest.fsx deleted file mode 100644 index 89d1bf92..00000000 --- a/citest.fsx +++ /dev/null @@ -1,6 +0,0 @@ -#r "nuget:RProvider" - -open RProvider -open RProvider.``base`` - -R.c (1., 2., 3) diff --git a/docs/_template.html b/docs/_template.html deleted file mode 100644 index c3499613..00000000 --- a/docs/_template.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - {{fsdocs-page-title}} - - - - - - - - - - - - - - - - {{fsdocs-watch-script}} - - - -
-
- -
-
-
-
- {{fsdocs-content}} -
-
-
- {{fsdocs-tooltips}} -
- - - - - - - - - - - \ No newline at end of file diff --git a/docs/content/fsdocs-custom.css b/docs/content/fsdocs-custom.css deleted file mode 100644 index 510a41cb..00000000 --- a/docs/content/fsdocs-custom.css +++ /dev/null @@ -1,9208 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Nunito+Sans:400,700"); -/*! bulma.io v0.9.2 | MIT License | github.com/jgthms/bulma */ -/* Bulma Utilities */ -.pagination-previous, -.pagination-next, -.pagination-link, -.pagination-ellipsis, .file-cta, -.file-name, .select select, .textarea, .input, .button { - -moz-appearance: none; - -webkit-appearance: none; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: none; - box-shadow: none; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - font-size: 1rem; - height: 2.5em; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - line-height: 1.5; - padding-bottom: calc(0.5em - 1px); - padding-left: calc(0.75em - 1px); - padding-right: calc(0.75em - 1px); - padding-top: calc(0.5em - 1px); - position: relative; - vertical-align: top; } - .pagination-previous:focus, - .pagination-next:focus, - .pagination-link:focus, - .pagination-ellipsis:focus, .file-cta:focus, - .file-name:focus, .select select:focus, .textarea:focus, .input:focus, .button:focus, .is-focused.pagination-previous, - .is-focused.pagination-next, - .is-focused.pagination-link, - .is-focused.pagination-ellipsis, .is-focused.file-cta, - .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, .is-focused.button, .pagination-previous:active, - .pagination-next:active, - .pagination-link:active, - .pagination-ellipsis:active, .file-cta:active, - .file-name:active, .select select:active, .textarea:active, .input:active, .button:active, .is-active.pagination-previous, .pagination-previous.active, - .is-active.pagination-next, - .pagination-next.active, - .is-active.pagination-link, - .pagination-link.active, - .is-active.pagination-ellipsis, - .pagination-ellipsis.active, .is-active.file-cta, .file-cta.active, - .is-active.file-name, - .file-name.active, .select select.is-active, .select select.active, .is-active.textarea, .textarea.active, .is-active.input, .input.active, .is-active.button, .button.active { - outline: none; } - [disabled].pagination-previous, - [disabled].pagination-next, - [disabled].pagination-link, - [disabled].pagination-ellipsis, [disabled].file-cta, - [disabled].file-name, .select select[disabled], [disabled].textarea, [disabled].input, [disabled].button, fieldset[disabled] .pagination-previous, - fieldset[disabled] .pagination-next, - fieldset[disabled] .pagination-link, - fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, - fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] .button { - cursor: not-allowed; } - -.is-unselectable, .tabs, .pagination-previous, -.pagination-next, -.pagination-link, -.pagination-ellipsis, .breadcrumb, .file, .button { - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::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%; - -webkit-transform: rotate(-45deg); - -ms-transform: rotate(-45deg); - transform: rotate(-45deg); - -webkit-transform-origin: center; - -ms-transform-origin: center; - transform-origin: center; - width: 0.625em; } - -.tabs:not(:last-child), .pagination:not(:last-child), .message:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), -.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { - margin-bottom: 1.5rem; } - -.modal-close, .delete { - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -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; - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 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; } - .modal-close::before, .delete::before, .modal-close::after, .delete::after { - background-color: white; - content: ""; - display: block; - left: 50%; - position: absolute; - top: 50%; - -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg); - -ms-transform: translateX(-50%) translateY(-50%) rotate(45deg); - transform: translateX(-50%) translateY(-50%) rotate(45deg); - -webkit-transform-origin: center center; - -ms-transform-origin: center center; - transform-origin: center center; } - .modal-close::before, .delete::before { - height: 2px; - width: 50%; } - .modal-close::after, .delete::after { - height: 50%; - width: 2px; } - .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { - background-color: rgba(10, 10, 10, 0.3); } - .modal-close:active, .delete:active { - background-color: rgba(10, 10, 10, 0.4); } - .is-small.modal-close, .is-small.delete { - height: 16px; - max-height: 16px; - max-width: 16px; - min-height: 16px; - min-width: 16px; - width: 16px; } - .is-medium.modal-close, .is-medium.delete { - height: 24px; - max-height: 24px; - max-width: 24px; - min-height: 24px; - min-width: 24px; - width: 24px; } - .is-large.modal-close, .is-large.delete { - height: 32px; - max-height: 32px; - max-width: 32px; - min-height: 32px; - min-width: 32px; - width: 32px; } - -.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { - -webkit-animation: spinAround 500ms infinite linear; - 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; } - -.hero-video, .is-overlay, .modal-background, .modal, .image.is-square img, -.image.is-square .has-ratio, .image.is-1by1 img, -.image.is-1by1 .has-ratio, .image.is-5by4 img, -.image.is-5by4 .has-ratio, .image.is-4by3 img, -.image.is-4by3 .has-ratio, .image.is-3by2 img, -.image.is-3by2 .has-ratio, .image.is-5by3 img, -.image.is-5by3 .has-ratio, .image.is-16by9 img, -.image.is-16by9 .has-ratio, .image.is-2by1 img, -.image.is-2by1 .has-ratio, .image.is-3by1 img, -.image.is-3by1 .has-ratio, .image.is-4by5 img, -.image.is-4by5 .has-ratio, .image.is-3by4 img, -.image.is-3by4 .has-ratio, .image.is-2by3 img, -.image.is-2by3 .has-ratio, .image.is-3by5 img, -.image.is-3by5 .has-ratio, .image.is-9by16 img, -.image.is-9by16 .has-ratio, .image.is-1by2 img, -.image.is-1by2 .has-ratio, .image.is-1by3 img, -.image.is-1by3 .has-ratio { - bottom: 0; - left: 0; - position: absolute; - right: 0; - top: 0; } - -/* Bulma Base */ -/*! minireset.css v0.0.6 | 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 { - -webkit-box-sizing: border-box; - box-sizing: border-box; } - -*, *::before, *::after { - -webkit-box-sizing: inherit; - box-sizing: inherit; } - -img, -video { - height: auto; - 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: inherit; } - -html { - background-color: white; - font-size: 16px; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - min-width: 300px; - overflow-x: hidden; - overflow-y: scroll; - text-rendering: optimizeLegibility; - -webkit-text-size-adjust: 100%; - -moz-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; - text-size-adjust: 100%; } - -article, -aside, -figure, -footer, -header, -hgroup, -section { - display: block; } - -body, -button, -input, -optgroup, -select, -textarea { - font-family: "Nunito", sans-serif; } - -code, -pre { - -moz-osx-font-smoothing: auto; - -webkit-font-smoothing: auto; - font-family: monospace; } - -body { - color: #4a4a4a; - font-size: 1em; - font-weight: 400; - line-height: 1.5; } - -a { - color: #378BBA; - cursor: pointer; - text-decoration: none; } - a strong { - color: currentColor; } - a:hover { - color: #A00975; } - -code { - background-color: whitesmoke; - color: #da1039; - font-size: 0.875em; - font-weight: normal; - padding: 0.25em 0.5em 0.25em; } - -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: #363636; - font-weight: 700; } - -fieldset { - border: none; } - -pre { - -webkit-overflow-scrolling: touch; - background-color: whitesmoke; - color: #4a4a4a; - 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: inherit; } - -table th { - color: #363636; } - -@-webkit-keyframes spinAround { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); } } - -@keyframes spinAround { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); } - to { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); } } - -/* Bulma Elements */ -.box { - background-color: white; - border-radius: 6px; - -webkit-box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - color: #4a4a4a; - display: block; - padding: 1.25rem; } - -a.box:hover, a.box:focus { - -webkit-box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px #378BBA; - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px #378BBA; } - -a.box:active { - -webkit-box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #378BBA; - box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #378BBA; } - -.button { - background-color: white; - border-color: #dbdbdb; - border-width: 1px; - color: #363636; - cursor: pointer; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - padding-bottom: calc(0.5em - 1px); - padding-left: 1em; - padding-right: 1em; - padding-top: calc(0.5em - 1px); - text-align: center; - white-space: nowrap; } - .button strong { - color: inherit; } - .button .icon, .button .icon.is-small, .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.5em - 1px); - margin-right: 0.25em; } - .button .icon:last-child:not(:first-child) { - margin-left: 0.25em; - margin-right: calc(-0.5em - 1px); } - .button .icon:first-child:last-child { - margin-left: calc(-0.5em - 1px); - margin-right: calc(-0.5em - 1px); } - .button:hover, .button.is-hovered { - border-color: #b5b5b5; - color: #A00975; } - .button:focus, .button.is-focused { - border-color: #3273dc; - color: #363636; } - .button:focus:not(:active), .button.is-focused:not(:active) { - -webkit-box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); - box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); } - .button:active, .button.is-active, .button.active { - border-color: #4a4a4a; - color: #363636; } - .button.is-text { - background-color: transparent; - border-color: transparent; - color: #4a4a4a; - 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: #363636; } - .button.is-text:active, .button.is-text.is-active, .is-text.active { - background-color: #e8e8e8; - color: #363636; } - .button.is-text[disabled], fieldset[disabled] .button.is-text { - background-color: transparent; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; } - .button.is-ghost { - background: none; - border-color: transparent; - color: #378BBA; - text-decoration: none; } - .button.is-ghost:hover, .button.is-ghost.is-hovered { - color: #378BBA; - text-decoration: underline; } - .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) { - -webkit-box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); - box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } - .button.is-white:active, .button.is-white.is-active, .is-white.active { - background-color: #f2f2f2; - border-color: transparent; - color: #0a0a0a; } - .button.is-white[disabled], fieldset[disabled] .button.is-white { - background-color: white; - border-color: transparent; - -webkit-box-shadow: none; - 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; - -webkit-box-shadow: none; - 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; - -webkit-box-shadow: none; - 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; - -webkit-box-shadow: none; - 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) { - -webkit-box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); - box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } - .button.is-black:active, .button.is-black.is-active, .is-black.active { - background-color: black; - border-color: transparent; - color: white; } - .button.is-black[disabled], fieldset[disabled] .button.is-black { - background-color: #0a0a0a; - border-color: transparent; - -webkit-box-shadow: none; - 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; - -webkit-box-shadow: none; - 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; - -webkit-box-shadow: none; - 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; - -webkit-box-shadow: none; - box-shadow: none; - color: white; } - .button.is-light { - background-color: whitesmoke; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); } - .button.is-light:hover, .button.is-light.is-hovered { - background-color: #eeeeee; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); } - .button.is-light:focus, .button.is-light.is-focused { - border-color: transparent; - color: rgba(0, 0, 0, 0.7); } - .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { - -webkit-box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); - box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } - .button.is-light:active, .button.is-light.is-active, .is-light.active { - background-color: #e8e8e8; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); } - .button.is-light[disabled], fieldset[disabled] .button.is-light { - background-color: whitesmoke; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; } - .button.is-light.is-inverted { - background-color: rgba(0, 0, 0, 0.7); - color: whitesmoke; } - .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { - background-color: rgba(0, 0, 0, 0.7); } - .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { - background-color: rgba(0, 0, 0, 0.7); - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: whitesmoke; } - .button.is-light.is-loading::after { - border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !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: rgba(0, 0, 0, 0.7); } - .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 rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } - .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { - background-color: transparent; - border-color: whitesmoke; - -webkit-box-shadow: none; - box-shadow: none; - color: whitesmoke; } - .button.is-light.is-inverted.is-outlined { - background-color: transparent; - border-color: rgba(0, 0, 0, 0.7); - color: rgba(0, 0, 0, 0.7); } - .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: rgba(0, 0, 0, 0.7); - 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: rgba(0, 0, 0, 0.7); - -webkit-box-shadow: none; - box-shadow: none; - color: rgba(0, 0, 0, 0.7); } - .button.is-dark { - background-color: #200117; - border-color: transparent; - color: #fff; } - .button.is-dark:hover, .button.is-dark.is-hovered { - background-color: #14010e; - border-color: transparent; - color: #fff; } - .button.is-dark:focus, .button.is-dark.is-focused { - border-color: transparent; - color: #fff; } - .button.is-dark:focus:not(:active), .button.is-dark.is-focused:not(:active) { - -webkit-box-shadow: 0 0 0 0.125em rgba(32, 1, 23, 0.25); - box-shadow: 0 0 0 0.125em rgba(32, 1, 23, 0.25); } - .button.is-dark:active, .button.is-dark.is-active, .is-dark.active { - background-color: #070005; - border-color: transparent; - color: #fff; } - .button.is-dark[disabled], fieldset[disabled] .button.is-dark { - background-color: #200117; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; } - .button.is-dark.is-inverted { - background-color: #fff; - color: #200117; } - .button.is-dark.is-inverted:hover, .button.is-dark.is-inverted.is-hovered { - background-color: #f2f2f2; } - .button.is-dark.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted { - background-color: #fff; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: #200117; } - .button.is-dark.is-loading::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-dark.is-outlined { - background-color: transparent; - border-color: #200117; - color: #200117; } - .button.is-dark.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .button.is-dark.is-outlined.is-focused { - background-color: #200117; - border-color: #200117; - color: #fff; } - .button.is-dark.is-outlined.is-loading::after { - border-color: transparent transparent #200117 #200117 !important; } - .button.is-dark.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-dark.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined { - background-color: transparent; - border-color: #200117; - -webkit-box-shadow: none; - box-shadow: none; - color: #200117; } - .button.is-dark.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; } - .button.is-dark.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #200117; } - .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #200117 #200117 !important; } - .button.is-dark.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - -webkit-box-shadow: none; - box-shadow: none; - color: #fff; } - .button.is-primary { - background-color: #A00975; - border-color: transparent; - color: #fff; } - .button.is-primary:hover, .button.is-primary.is-hovered { - background-color: #94086c; - border-color: transparent; - color: #fff; } - .button.is-primary:focus, .button.is-primary.is-focused { - border-color: transparent; - color: #fff; } - .button.is-primary:focus:not(:active), .button.is-primary.is-focused:not(:active) { - -webkit-box-shadow: 0 0 0 0.125em rgba(160, 9, 117, 0.25); - box-shadow: 0 0 0 0.125em rgba(160, 9, 117, 0.25); } - .button.is-primary:active, .button.is-primary.is-active, .is-primary.active { - background-color: #880863; - border-color: transparent; - color: #fff; } - .button.is-primary[disabled], fieldset[disabled] .button.is-primary { - background-color: #A00975; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; } - .button.is-primary.is-inverted { - background-color: #fff; - color: #A00975; } - .button.is-primary.is-inverted:hover, .button.is-primary.is-inverted.is-hovered { - background-color: #f2f2f2; } - .button.is-primary.is-inverted[disabled], fieldset[disabled] .button.is-primary.is-inverted { - background-color: #fff; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - color: #A00975; } - .button.is-primary.is-loading::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-primary.is-outlined { - background-color: transparent; - border-color: #A00975; - color: #A00975; } - .button.is-primary.is-outlined:hover, .button.is-primary.is-outlined.is-hovered, .button.is-primary.is-outlined:focus, .button.is-primary.is-outlined.is-focused { - background-color: #A00975; - border-color: #A00975; - color: #fff; } - .button.is-primary.is-outlined.is-loading::after { - border-color: transparent transparent #A00975 #A00975 !important; } - .button.is-primary.is-outlined.is-loading:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .button.is-primary.is-outlined.is-loading:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-primary.is-outlined[disabled], fieldset[disabled] .button.is-primary.is-outlined { - background-color: transparent; - border-color: #A00975; - -webkit-box-shadow: none; - box-shadow: none; - color: #A00975; } - .button.is-primary.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - color: #fff; } - .button.is-primary.is-inverted.is-outlined:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .button.is-primary.is-inverted.is-outlined:focus, .button.is-primary.is-inverted.is-outlined.is-focused { - background-color: #fff; - color: #A00975; } - .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after { - border-color: transparent transparent #A00975 #A00975 !important; } - .button.is-primary.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - -webkit-box-shadow: none; - box-shadow: none; - color: #fff; } - .button.is-primary.is-light { - background-color: #feecf9; - color: #f212b2; } - .button.is-primary.is-light:hover, .button.is-primary.is-light.is-hovered { - background-color: #fde0f5; - border-color: transparent; - color: #f212b2; } - .button.is-primary.is-light:active, .button.is-primary.is-light.is-active, .is-light.active { - background-color: #fdd4f1; - border-color: transparent; - color: #f212b2; } - .button.is-link { - background-color: #378BBA; - border-color: transparent; - color: #fff; } - .button.is-link:hover, .button.is-link.is-hovered { - background-color: #3484b0; - 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) { - -webkit-box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); - box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); } - .button.is-link:active, .button.is-link.is-active, .is-link.active { - background-color: #317ca6; - border-color: transparent; - color: #fff; } - .button.is-link[disabled], fieldset[disabled] .button.is-link { - background-color: #378BBA; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; } - .button.is-link.is-inverted { - background-color: #fff; - color: #378BBA; } - .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; - -webkit-box-shadow: none; - box-shadow: none; - color: #378BBA; } - .button.is-link.is-loading::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-link.is-outlined { - background-color: transparent; - border-color: #378BBA; - color: #378BBA; } - .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: #378BBA; - border-color: #378BBA; - color: #fff; } - .button.is-link.is-outlined.is-loading::after { - border-color: transparent transparent #378BBA #378BBA !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: #378BBA; - -webkit-box-shadow: none; - box-shadow: none; - color: #378BBA; } - .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: #378BBA; } - .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 #378BBA #378BBA !important; } - .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - -webkit-box-shadow: none; - box-shadow: none; - color: #fff; } - .button.is-link.is-light { - background-color: #eff6fa; - color: #317ca5; } - .button.is-link.is-light:hover, .button.is-link.is-light.is-hovered { - background-color: #e5f1f7; - border-color: transparent; - color: #317ca5; } - .button.is-link.is-light:active, .button.is-link.is-light.is-active, .is-light.active { - background-color: #dcecf5; - border-color: transparent; - color: #317ca5; } - .button.is-info { - background-color: #3298dc; - border-color: transparent; - color: #fff; } - .button.is-info:hover, .button.is-info.is-hovered { - background-color: #2793da; - 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) { - -webkit-box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); - box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); } - .button.is-info:active, .button.is-info.is-active, .is-info.active { - background-color: #238cd1; - border-color: transparent; - color: #fff; } - .button.is-info[disabled], fieldset[disabled] .button.is-info { - background-color: #3298dc; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; } - .button.is-info.is-inverted { - background-color: #fff; - color: #3298dc; } - .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; - -webkit-box-shadow: none; - box-shadow: none; - color: #3298dc; } - .button.is-info.is-loading::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-info.is-outlined { - background-color: transparent; - border-color: #3298dc; - color: #3298dc; } - .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: #3298dc; - border-color: #3298dc; - color: #fff; } - .button.is-info.is-outlined.is-loading::after { - border-color: transparent transparent #3298dc #3298dc !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: #3298dc; - -webkit-box-shadow: none; - box-shadow: none; - color: #3298dc; } - .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: #3298dc; } - .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 #3298dc #3298dc !important; } - .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - -webkit-box-shadow: none; - box-shadow: none; - color: #fff; } - .button.is-info.is-light { - background-color: #eef6fc; - color: #1d72aa; } - .button.is-info.is-light:hover, .button.is-info.is-light.is-hovered { - background-color: #e3f1fa; - border-color: transparent; - color: #1d72aa; } - .button.is-info.is-light:active, .button.is-info.is-light.is-active, .is-light.active { - background-color: #d8ebf8; - border-color: transparent; - color: #1d72aa; } - .button.is-success { - background-color: #48c774; - border-color: transparent; - color: #fff; } - .button.is-success:hover, .button.is-success.is-hovered { - background-color: #3ec46d; - 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) { - -webkit-box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); - box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); } - .button.is-success:active, .button.is-success.is-active, .is-success.active { - background-color: #3abb67; - border-color: transparent; - color: #fff; } - .button.is-success[disabled], fieldset[disabled] .button.is-success { - background-color: #48c774; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; } - .button.is-success.is-inverted { - background-color: #fff; - color: #48c774; } - .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; - -webkit-box-shadow: none; - box-shadow: none; - color: #48c774; } - .button.is-success.is-loading::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-success.is-outlined { - background-color: transparent; - border-color: #48c774; - color: #48c774; } - .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: #48c774; - border-color: #48c774; - color: #fff; } - .button.is-success.is-outlined.is-loading::after { - border-color: transparent transparent #48c774 #48c774 !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: #48c774; - -webkit-box-shadow: none; - box-shadow: none; - color: #48c774; } - .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: #48c774; } - .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 #48c774 #48c774 !important; } - .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - -webkit-box-shadow: none; - box-shadow: none; - color: #fff; } - .button.is-success.is-light { - background-color: #effaf3; - color: #257942; } - .button.is-success.is-light:hover, .button.is-success.is-light.is-hovered { - background-color: #e6f7ec; - border-color: transparent; - color: #257942; } - .button.is-success.is-light:active, .button.is-success.is-light.is-active, .is-light.active { - background-color: #dcf4e4; - border-color: transparent; - color: #257942; } - .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) { - -webkit-box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); - box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } - .button.is-warning:active, .button.is-warning.is-active, .is-warning.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; - -webkit-box-shadow: none; - 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; - -webkit-box-shadow: none; - 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; - -webkit-box-shadow: none; - 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); - -webkit-box-shadow: none; - box-shadow: none; - color: rgba(0, 0, 0, 0.7); } - .button.is-warning.is-light { - background-color: #fffbeb; - color: #947600; } - .button.is-warning.is-light:hover, .button.is-warning.is-light.is-hovered { - background-color: #fff8de; - border-color: transparent; - color: #947600; } - .button.is-warning.is-light:active, .button.is-warning.is-light.is-active, .is-light.active { - background-color: #fff6d1; - border-color: transparent; - color: #947600; } - .button.is-danger { - background-color: #f14668; - border-color: transparent; - color: #fff; } - .button.is-danger:hover, .button.is-danger.is-hovered { - background-color: #f03a5f; - 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) { - -webkit-box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); - box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); } - .button.is-danger:active, .button.is-danger.is-active, .is-danger.active { - background-color: #ef2e55; - border-color: transparent; - color: #fff; } - .button.is-danger[disabled], fieldset[disabled] .button.is-danger { - background-color: #f14668; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; } - .button.is-danger.is-inverted { - background-color: #fff; - color: #f14668; } - .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; - -webkit-box-shadow: none; - box-shadow: none; - color: #f14668; } - .button.is-danger.is-loading::after { - border-color: transparent transparent #fff #fff !important; } - .button.is-danger.is-outlined { - background-color: transparent; - border-color: #f14668; - color: #f14668; } - .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: #f14668; - border-color: #f14668; - color: #fff; } - .button.is-danger.is-outlined.is-loading::after { - border-color: transparent transparent #f14668 #f14668 !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: #f14668; - -webkit-box-shadow: none; - box-shadow: none; - color: #f14668; } - .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: #f14668; } - .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 #f14668 #f14668 !important; } - .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { - background-color: transparent; - border-color: #fff; - -webkit-box-shadow: none; - box-shadow: none; - color: #fff; } - .button.is-danger.is-light { - background-color: #feecf0; - color: #cc0f35; } - .button.is-danger.is-light:hover, .button.is-danger.is-light.is-hovered { - background-color: #fde0e6; - border-color: transparent; - color: #cc0f35; } - .button.is-danger.is-light:active, .button.is-danger.is-light.is-active, .is-light.active { - background-color: #fcd4dc; - border-color: transparent; - color: #cc0f35; } - .button.is-small { - font-size: 0.75rem; } - .button.is-small:not(.is-rounded) { - border-radius: 2px; } - .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; - -webkit-box-shadow: none; - box-shadow: none; - opacity: 0.5; } - .button.is-fullwidth { - display: -webkit-box; - display: -ms-flexbox; - 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; - -webkit-box-shadow: none; - box-shadow: none; - pointer-events: none; } - .button.is-rounded { - border-radius: 290486px; - padding-left: calc(1em + 0.25em); - padding-right: calc(1em + 0.25em); } - -.buttons { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-pack: start; - -ms-flex-pack: start; - 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) { - font-size: 0.75rem; } - .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded) { - border-radius: 2px; } - .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.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.active:hover, .buttons.has-addons .button.is-selected:hover { - z-index: 4; } - .buttons.has-addons .button.is-expanded { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; } - .buttons.is-centered { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; } - .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { - margin-left: 0.25rem; - margin-right: 0.25rem; } - .buttons.is-right { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; } - .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { - margin-left: 0.25rem; - margin-right: 0.25rem; } - -.container { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - margin: 0 auto; - position: relative; - width: auto; } - .container.is-fluid { - max-width: none !important; - padding-left: 32px; - padding-right: 32px; - width: 100%; } - @media screen and (min-width: 1024px) { - .container { - max-width: 960px; } } - @media screen and (max-width: 1215px) { - .container.is-widescreen:not(.is-max-desktop) { - max-width: 1152px; } } - @media screen and (max-width: 1407px) { - .container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen) { - max-width: 1344px; } } - @media screen and (min-width: 1216px) { - .container:not(.is-max-desktop) { - max-width: 1152px; } } - @media screen and (min-width: 1408px) { - .container:not(.is-max-desktop):not(.is-max-widescreen) { - 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: #363636; - 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: 1.25em 1.5em; - 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: #363636; } - .content table th:not([align]) { - text-align: inherit; } - .content table thead td, - .content table thead th { - border-width: 0 0 2px; - color: #363636; } - .content table tfoot td, - .content table tfoot th { - border-width: 2px 0 0; - color: #363636; } - .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 { - font-size: 0.75rem; } - -.content.is-medium { - font-size: 1.25rem; } - -.content.is-large { - font-size: 1.5rem; } - -.icon { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - height: 1.5rem; - width: 1.5rem; } - .icon.is-small { - height: 1rem; - width: 1rem; } - .icon.is-medium { - height: 2rem; - width: 2rem; } - .icon.is-large { - height: 3rem; - width: 3rem; } - -.icon-text { - -webkit-box-align: start; - -ms-flex-align: start; - align-items: flex-start; - color: inherit; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - line-height: 1.5rem; - vertical-align: top; } - .icon-text .icon { - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 0; - flex-shrink: 0; } - .icon-text .icon:not(:last-child) { - margin-right: 0.25em; } - .icon-text .icon:not(:first-child) { - margin-left: 0.25em; } - -div.icon-text { - display: -webkit-box; - display: -ms-flexbox; - display: flex; } - -.image { - display: block; - position: relative; } - .image img { - display: block; - height: auto; - width: 100%; } - .image img.is-rounded { - border-radius: 290486px; } - .image.is-fullwidth { - width: 100%; } - .image.is-square img, - .image.is-square .has-ratio, .image.is-1by1 img, - .image.is-1by1 .has-ratio, .image.is-5by4 img, - .image.is-5by4 .has-ratio, .image.is-4by3 img, - .image.is-4by3 .has-ratio, .image.is-3by2 img, - .image.is-3by2 .has-ratio, .image.is-5by3 img, - .image.is-5by3 .has-ratio, .image.is-16by9 img, - .image.is-16by9 .has-ratio, .image.is-2by1 img, - .image.is-2by1 .has-ratio, .image.is-3by1 img, - .image.is-3by1 .has-ratio, .image.is-4by5 img, - .image.is-4by5 .has-ratio, .image.is-3by4 img, - .image.is-3by4 .has-ratio, .image.is-2by3 img, - .image.is-2by3 .has-ratio, .image.is-3by5 img, - .image.is-3by5 .has-ratio, .image.is-9by16 img, - .image.is-9by16 .has-ratio, .image.is-1by2 img, - .image.is-1by2 .has-ratio, .image.is-1by3 img, - .image.is-1by3 .has-ratio { - height: 100%; - width: 100%; } - .image.is-square, .image.is-1by1 { - padding-top: 100%; } - .image.is-5by4 { - padding-top: 80%; } - .image.is-4by3 { - padding-top: 75%; } - .image.is-3by2 { - padding-top: 66.6666%; } - .image.is-5by3 { - padding-top: 60%; } - .image.is-16by9 { - padding-top: 56.25%; } - .image.is-2by1 { - padding-top: 50%; } - .image.is-3by1 { - padding-top: 33.3333%; } - .image.is-4by5 { - padding-top: 125%; } - .image.is-3by4 { - padding-top: 133.3333%; } - .image.is-2by3 { - padding-top: 150%; } - .image.is-3by5 { - padding-top: 166.6666%; } - .image.is-9by16 { - padding-top: 177.7777%; } - .image.is-1by2 { - padding-top: 200%; } - .image.is-1by3 { - padding-top: 300%; } - .image.is-16x16 { - height: 16px; - width: 16px; } - .image.is-24x24 { - height: 24px; - width: 24px; } - .image.is-32x32 { - height: 32px; - width: 32px; } - .image.is-48x48 { - height: 48px; - width: 48px; } - .image.is-64x64 { - height: 64px; - width: 64px; } - .image.is-96x96 { - height: 96px; - width: 96px; } - .image.is-128x128 { - height: 128px; - width: 128px; } - -.notification { - background-color: whitesmoke; - border-radius: 4px; - position: relative; - padding: 1.25rem 2.5rem 1.25rem 1.5rem; } - .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 { - right: 0.5rem; - position: absolute; - 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: rgba(0, 0, 0, 0.7); } - .notification.is-dark { - background-color: #200117; - color: #fff; } - .notification.is-primary { - background-color: #A00975; - color: #fff; } - .notification.is-primary.is-light { - background-color: #feecf9; - color: #f212b2; } - .notification.is-link { - background-color: #378BBA; - color: #fff; } - .notification.is-link.is-light { - background-color: #eff6fa; - color: #317ca5; } - .notification.is-info { - background-color: #3298dc; - color: #fff; } - .notification.is-info.is-light { - background-color: #eef6fc; - color: #1d72aa; } - .notification.is-success { - background-color: #48c774; - color: #fff; } - .notification.is-success.is-light { - background-color: #effaf3; - color: #257942; } - .notification.is-warning { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); } - .notification.is-warning.is-light { - background-color: #fffbeb; - color: #947600; } - .notification.is-danger { - background-color: #f14668; - color: #fff; } - .notification.is-danger.is-light { - background-color: #feecf0; - color: #cc0f35; } - -.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: #ededed; } - .progress::-webkit-progress-value { - background-color: #4a4a4a; } - .progress::-moz-progress-bar { - background-color: #4a4a4a; } - .progress::-ms-fill { - background-color: #4a4a4a; - 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: -webkit-gradient(linear, left top, right top, color-stop(30%, white), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, white 30%, #ededed 30%); - background-image: linear-gradient(to right, white 30%, #ededed 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: -webkit-gradient(linear, left top, right top, color-stop(30%, #0a0a0a), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #0a0a0a 30%, #ededed 30%); - background-image: linear-gradient(to right, #0a0a0a 30%, #ededed 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: -webkit-gradient(linear, left top, right top, color-stop(30%, whitesmoke), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, whitesmoke 30%, #ededed 30%); - background-image: linear-gradient(to right, whitesmoke 30%, #ededed 30%); } - .progress.is-dark::-webkit-progress-value { - background-color: #200117; } - .progress.is-dark::-moz-progress-bar { - background-color: #200117; } - .progress.is-dark::-ms-fill { - background-color: #200117; } - .progress.is-dark:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #200117), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #200117 30%, #ededed 30%); - background-image: linear-gradient(to right, #200117 30%, #ededed 30%); } - .progress.is-primary::-webkit-progress-value { - background-color: #A00975; } - .progress.is-primary::-moz-progress-bar { - background-color: #A00975; } - .progress.is-primary::-ms-fill { - background-color: #A00975; } - .progress.is-primary:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #A00975), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #A00975 30%, #ededed 30%); - background-image: linear-gradient(to right, #A00975 30%, #ededed 30%); } - .progress.is-link::-webkit-progress-value { - background-color: #378BBA; } - .progress.is-link::-moz-progress-bar { - background-color: #378BBA; } - .progress.is-link::-ms-fill { - background-color: #378BBA; } - .progress.is-link:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #378BBA), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #378BBA 30%, #ededed 30%); - background-image: linear-gradient(to right, #378BBA 30%, #ededed 30%); } - .progress.is-info::-webkit-progress-value { - background-color: #3298dc; } - .progress.is-info::-moz-progress-bar { - background-color: #3298dc; } - .progress.is-info::-ms-fill { - background-color: #3298dc; } - .progress.is-info:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #3298dc), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #3298dc 30%, #ededed 30%); - background-image: linear-gradient(to right, #3298dc 30%, #ededed 30%); } - .progress.is-success::-webkit-progress-value { - background-color: #48c774; } - .progress.is-success::-moz-progress-bar { - background-color: #48c774; } - .progress.is-success::-ms-fill { - background-color: #48c774; } - .progress.is-success:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #48c774), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #48c774 30%, #ededed 30%); - background-image: linear-gradient(to right, #48c774 30%, #ededed 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: -webkit-gradient(linear, left top, right top, color-stop(30%, #ffdd57), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #ffdd57 30%, #ededed 30%); - background-image: linear-gradient(to right, #ffdd57 30%, #ededed 30%); } - .progress.is-danger::-webkit-progress-value { - background-color: #f14668; } - .progress.is-danger::-moz-progress-bar { - background-color: #f14668; } - .progress.is-danger::-ms-fill { - background-color: #f14668; } - .progress.is-danger:indeterminate { - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #f14668), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #f14668 30%, #ededed 30%); - background-image: linear-gradient(to right, #f14668 30%, #ededed 30%); } - .progress:indeterminate { - -webkit-animation-duration: 1.5s; - animation-duration: 1.5s; - -webkit-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-name: moveIndeterminate; - animation-name: moveIndeterminate; - -webkit-animation-timing-function: linear; - animation-timing-function: linear; - background-color: #ededed; - background-image: -webkit-gradient(linear, left top, right top, color-stop(30%, #4a4a4a), color-stop(30%, #ededed)); - background-image: -o-linear-gradient(left, #4a4a4a 30%, #ededed 30%); - background-image: linear-gradient(to right, #4a4a4a 30%, #ededed 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:indeterminate::-ms-fill { - animation-name: none; } - .progress.is-small { - height: 0.75rem; } - .progress.is-medium { - height: 1.25rem; } - .progress.is-large { - height: 1.5rem; } - -@-webkit-keyframes moveIndeterminate { - from { - background-position: 200% 0; } - to { - background-position: -200% 0; } } - -@keyframes moveIndeterminate { - from { - background-position: 200% 0; } - to { - background-position: -200% 0; } } - -.table, table { - background-color: white; - color: #363636; } - .table td, table td, - .table th, - table th { - border: 1px solid #200117; - border-width: 0 0 1px; - padding: 0.5em 0.75em; - vertical-align: top; } - .table td.is-white, table td.is-white, - .table th.is-white, - table th.is-white { - background-color: white; - border-color: white; - color: #0a0a0a; } - .table td.is-black, table td.is-black, - .table th.is-black, - table th.is-black { - background-color: #0a0a0a; - border-color: #0a0a0a; - color: white; } - .table td.is-light, table td.is-light, - .table th.is-light, - table th.is-light { - background-color: whitesmoke; - border-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); } - .table td.is-dark, table td.is-dark, - .table th.is-dark, - table th.is-dark { - background-color: #200117; - border-color: #200117; - color: #fff; } - .table td.is-primary, table td.is-primary, - .table th.is-primary, - table th.is-primary { - background-color: #A00975; - border-color: #A00975; - color: #fff; } - .table td.is-link, table td.is-link, - .table th.is-link, - table th.is-link { - background-color: #378BBA; - border-color: #378BBA; - color: #fff; } - .table td.is-info, table td.is-info, - .table th.is-info, - table th.is-info { - background-color: #3298dc; - border-color: #3298dc; - color: #fff; } - .table td.is-success, table td.is-success, - .table th.is-success, - table th.is-success { - background-color: #48c774; - border-color: #48c774; - color: #fff; } - .table td.is-warning, table td.is-warning, - .table th.is-warning, - table th.is-warning { - background-color: #ffdd57; - border-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); } - .table td.is-danger, table td.is-danger, - .table th.is-danger, - table th.is-danger { - background-color: #f14668; - border-color: #f14668; - color: #fff; } - .table td.is-narrow, table td.is-narrow, - .table th.is-narrow, - table th.is-narrow { - white-space: nowrap; - width: 1%; } - .table td.is-selected, table td.is-selected, - .table th.is-selected, - table th.is-selected { - background-color: #A00975; - color: #fff; } - .table td.is-selected a, table td.is-selected a, - .table td.is-selected strong, - table td.is-selected strong, - .table th.is-selected a, - table th.is-selected a, - .table th.is-selected strong, - table th.is-selected strong { - color: currentColor; } - .table td.is-vcentered, table td.is-vcentered, - .table th.is-vcentered, - table th.is-vcentered { - vertical-align: middle; } - .table th, table th { - color: #A00975; } - .table th:not([align]), table th:not([align]) { - text-align: inherit; } - .table tr.is-selected, table tr.is-selected { - background-color: #A00975; - color: #fff; } - .table tr.is-selected a, table tr.is-selected a, - .table tr.is-selected strong, - table tr.is-selected strong { - color: currentColor; } - .table tr.is-selected td, table tr.is-selected td, - .table tr.is-selected th, - table tr.is-selected th { - border-color: #fff; - color: currentColor; } - .table thead, table thead { - background-color: transparent; } - .table thead td, table thead td, - .table thead th, - table thead th { - border-width: 0 0 2px; - color: #A00975; } - .table tfoot, table tfoot { - background-color: transparent; } - .table tfoot td, table tfoot td, - .table tfoot th, - table tfoot th { - border-width: 2px 0 0; - color: #363636; } - .table tbody, table tbody { - background-color: transparent; } - .table tbody tr:last-child td, table tbody tr:last-child td, - .table tbody tr:last-child th, - table tbody tr:last-child th { - border-bottom-width: 0; } - .table.is-bordered td, table.is-bordered td, - .table.is-bordered th, - table.is-bordered th { - border-width: 1px; } - .table.is-bordered tr:last-child td, table.is-bordered tr:last-child td, - .table.is-bordered tr:last-child th, - table.is-bordered tr:last-child th { - border-bottom-width: 1px; } - .table.is-fullwidth, table.is-fullwidth { - width: 100%; } - .table.is-hoverable tbody tr:not(.is-selected):hover, table.is-hoverable tbody tr:not(.is-selected):hover { - background-color: #fafafa; } - .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover, table.is-hoverable tbody tr:not(.is-selected):hover { - background-color: #fafafa; } - .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even), table.is-hoverable tbody tr:not(.is-selected):hover:nth-child(even) { - background-color: whitesmoke; } - .table.is-narrow td, table.is-narrow td, - .table.is-narrow th, - table.is-narrow th { - padding: 0.25em 0.5em; } - .table.is-striped tbody tr:not(.is-selected):nth-child(even), table 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 { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; } - .tags .tag { - margin-bottom: 0.5rem; } - .tags .tag: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) { - font-size: 1rem; } - .tags.are-large .tag:not(.is-normal):not(.is-medium) { - font-size: 1.25rem; } - .tags.is-centered { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; } - .tags.is-centered .tag { - margin-right: 0.25rem; - margin-left: 0.25rem; } - .tags.is-right { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; } - .tags.is-right .tag:not(:first-child) { - margin-left: 0.5rem; } - .tags.is-right .tag:not(:last-child) { - margin-right: 0; } - .tags.has-addons .tag { - margin-right: 0; } - .tags.has-addons .tag:not(:first-child) { - margin-left: 0; - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - .tags.has-addons .tag:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - -.tag:not(body) { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - background-color: whitesmoke; - border-radius: 4px; - color: #4a4a4a; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - font-size: 0.75rem; - height: 2em; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - line-height: 1.5; - padding-left: 0.75em; - padding-right: 0.75em; - white-space: nowrap; } - .tag:not(body) .delete { - margin-left: 0.25rem; - margin-right: -0.375rem; } - .tag:not(body).is-white { - background-color: white; - color: #0a0a0a; } - .tag:not(body).is-black { - background-color: #0a0a0a; - color: white; } - .tag:not(body).is-light { - background-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); } - .tag:not(body).is-dark { - background-color: #200117; - color: #fff; } - .tag:not(body).is-primary { - background-color: #A00975; - color: #fff; } - .tag:not(body).is-primary.is-light { - background-color: #feecf9; - color: #f212b2; } - .tag:not(body).is-link { - background-color: #378BBA; - color: #fff; } - .tag:not(body).is-link.is-light { - background-color: #eff6fa; - color: #317ca5; } - .tag:not(body).is-info { - background-color: #3298dc; - color: #fff; } - .tag:not(body).is-info.is-light { - background-color: #eef6fc; - color: #1d72aa; } - .tag:not(body).is-success { - background-color: #48c774; - color: #fff; } - .tag:not(body).is-success.is-light { - background-color: #effaf3; - color: #257942; } - .tag:not(body).is-warning { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); } - .tag:not(body).is-warning.is-light { - background-color: #fffbeb; - color: #947600; } - .tag:not(body).is-danger { - background-color: #f14668; - color: #fff; } - .tag:not(body).is-danger.is-light { - background-color: #feecf0; - color: #cc0f35; } - .tag:not(body).is-normal { - font-size: 0.75rem; } - .tag:not(body).is-medium { - font-size: 1rem; } - .tag:not(body).is-large { - font-size: 1.25rem; } - .tag: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) { - margin-left: 0.1875em; - margin-right: -0.375em; } - .tag:not(body) .icon:first-child:last-child { - margin-left: -0.375em; - margin-right: -0.375em; } - .tag:not(body).is-delete { - margin-left: 1px; - padding: 0; - position: relative; - width: 2em; } - .tag:not(body).is-delete::before, .tag:not(body).is-delete::after { - background-color: currentColor; - content: ""; - display: block; - left: 50%; - position: absolute; - top: 50%; - -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg); - -ms-transform: translateX(-50%) translateY(-50%) rotate(45deg); - transform: translateX(-50%) translateY(-50%) rotate(45deg); - -webkit-transform-origin: center center; - -ms-transform-origin: center center; - transform-origin: center center; } - .tag:not(body).is-delete::before { - height: 1px; - width: 50%; } - .tag:not(body).is-delete::after { - height: 50%; - width: 1px; } - .tag:not(body).is-delete:hover, .tag:not(body).is-delete:focus { - background-color: #e8e8e8; } - .tag:not(body).is-delete:active { - background-color: #dbdbdb; } - .tag:not(body).is-rounded { - border-radius: 290486px; } - -a.tag: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, - .subtitle .tag { - 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 { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - background-color: whitesmoke; - border-radius: 290486px; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - font-size: 1.25rem; - height: 2em; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - margin-right: 1.5rem; - min-width: 2.5em; - padding: 0.25rem 0.5rem; - text-align: center; - vertical-align: top; } - -/* Bulma Form */ -.select select, .textarea, .input { - background-color: white; - border-color: #dbdbdb; - border-radius: 4px; - color: #363636; } - .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder { - color: rgba(54, 54, 54, 0.3); } - .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder { - color: rgba(54, 54, 54, 0.3); } - .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder { - color: rgba(54, 54, 54, 0.3); } - .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder { - color: rgba(54, 54, 54, 0.3); } - .select select:hover, .textarea:hover, .input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input { - border-color: #b5b5b5; } - .select select:focus, .textarea:focus, .input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, .select select:active, .textarea:active, .input:active, .select select.is-active, .select select.active, .is-active.textarea, .textarea.active, .is-active.input, .input.active { - border-color: #378BBA; - -webkit-box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); - box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); } - .select select[disabled], [disabled].textarea, [disabled].input, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input { - background-color: whitesmoke; - border-color: whitesmoke; - -webkit-box-shadow: none; - box-shadow: none; - color: #7a7a7a; } - .select select[disabled]::-moz-placeholder, [disabled].textarea::-moz-placeholder, [disabled].input::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder { - color: rgba(122, 122, 122, 0.3); } - .select select[disabled]::-webkit-input-placeholder, [disabled].textarea::-webkit-input-placeholder, [disabled].input::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder { - color: rgba(122, 122, 122, 0.3); } - .select select[disabled]:-moz-placeholder, [disabled].textarea:-moz-placeholder, [disabled].input:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder { - color: rgba(122, 122, 122, 0.3); } - .select select[disabled]:-ms-input-placeholder, [disabled].textarea:-ms-input-placeholder, [disabled].input:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder { - color: rgba(122, 122, 122, 0.3); } - -.textarea, .input { - -webkit-box-shadow: inset 0 0.0625em 0.125em rgba(10, 10, 10, 0.05); - box-shadow: inset 0 0.0625em 0.125em rgba(10, 10, 10, 0.05); - max-width: 100%; - width: 100%; } - [readonly].textarea, [readonly].input { - -webkit-box-shadow: none; - box-shadow: none; } - .is-white.textarea, .is-white.input { - border-color: white; } - .is-white.textarea:focus, .is-white.input:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, .is-white.textarea:active, .is-white.input:active, .is-white.active, .is-white.is-active.textarea, .is-white.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); - box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } - .is-black.textarea, .is-black.input { - border-color: #0a0a0a; } - .is-black.textarea:focus, .is-black.input:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, .is-black.textarea:active, .is-black.input:active, .is-black.active, .is-black.is-active.textarea, .is-black.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); - box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } - .is-light.textarea, .is-light.input { - border-color: whitesmoke; } - .is-light.textarea:focus, .is-light.input:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, .is-light.textarea:active, .is-light.input:active, .is-light.active, .is-light.is-active.textarea, .is-light.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); - box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } - .is-dark.textarea, .is-dark.input { - border-color: #200117; } - .is-dark.textarea:focus, .is-dark.input:focus, .is-dark.is-focused.textarea, .is-dark.is-focused.input, .is-dark.textarea:active, .is-dark.input:active, .is-dark.active, .is-dark.is-active.textarea, .is-dark.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(32, 1, 23, 0.25); - box-shadow: 0 0 0 0.125em rgba(32, 1, 23, 0.25); } - .is-primary.textarea, .is-primary.input { - border-color: #A00975; } - .is-primary.textarea:focus, .is-primary.input:focus, .is-primary.is-focused.textarea, .is-primary.is-focused.input, .is-primary.textarea:active, .is-primary.input:active, .is-primary.active, .is-primary.is-active.textarea, .is-primary.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(160, 9, 117, 0.25); - box-shadow: 0 0 0 0.125em rgba(160, 9, 117, 0.25); } - .is-link.textarea, .is-link.input { - border-color: #378BBA; } - .is-link.textarea:focus, .is-link.input:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, .is-link.textarea:active, .is-link.input:active, .is-link.active, .is-link.is-active.textarea, .is-link.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); - box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); } - .is-info.textarea, .is-info.input { - border-color: #3298dc; } - .is-info.textarea:focus, .is-info.input:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, .is-info.textarea:active, .is-info.input:active, .is-info.active, .is-info.is-active.textarea, .is-info.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); - box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); } - .is-success.textarea, .is-success.input { - border-color: #48c774; } - .is-success.textarea:focus, .is-success.input:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, .is-success.textarea:active, .is-success.input:active, .is-success.active, .is-success.is-active.textarea, .is-success.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); - box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); } - .is-warning.textarea, .is-warning.input { - border-color: #ffdd57; } - .is-warning.textarea:focus, .is-warning.input:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, .is-warning.textarea:active, .is-warning.input:active, .is-warning.active, .is-warning.is-active.textarea, .is-warning.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); - box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } - .is-danger.textarea, .is-danger.input { - border-color: #f14668; } - .is-danger.textarea:focus, .is-danger.input:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, .is-danger.textarea:active, .is-danger.input:active, .is-danger.active, .is-danger.is-active.textarea, .is-danger.is-active.input { - -webkit-box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); - box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); } - .is-small.textarea, .is-small.input { - border-radius: 2px; - font-size: 0.75rem; } - .is-medium.textarea, .is-medium.input { - font-size: 1.25rem; } - .is-large.textarea, .is-large.input { - font-size: 1.5rem; } - .is-fullwidth.textarea, .is-fullwidth.input { - display: block; - width: 100%; } - .is-inline.textarea, .is-inline.input { - display: inline; - width: auto; } - -.input.is-rounded { - border-radius: 290486px; - padding-left: calc(calc(0.75em - 1px) + 0.375em); - padding-right: calc(calc(0.75em - 1px) + 0.375em); } - -.input.is-static { - background-color: transparent; - border-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; - padding-left: 0; - padding-right: 0; } - -.textarea { - display: block; - max-width: 100%; - min-width: 100%; - padding: calc(0.75em - 1px); - resize: vertical; } - .textarea:not([rows]) { - max-height: 40em; - min-height: 8em; } - .textarea[rows] { - height: initial; } - .textarea.has-fixed-size { - resize: none; } - -.radio, .checkbox { - cursor: pointer; - display: inline-block; - line-height: 1.25; - position: relative; } - .radio input, .checkbox input { - cursor: pointer; } - .radio:hover, .checkbox:hover { - color: #363636; } - [disabled].radio, [disabled].checkbox, fieldset[disabled] .radio, fieldset[disabled] .checkbox, - .radio input[disabled], - .checkbox input[disabled] { - 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.5em; } - .select:not(.is-multiple):not(.is-loading)::after { - border-color: #378BBA; - right: 1.125em; - z-index: 4; } - .select.is-rounded 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, .select.is-white select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); - 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, .select.is-black select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); - 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, .select.is-light select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); - box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } - .select.is-dark:not(:hover)::after { - border-color: #200117; } - .select.is-dark select { - border-color: #200117; } - .select.is-dark select:hover, .select.is-dark select.is-hovered { - border-color: #070005; } - .select.is-dark select:focus, .select.is-dark select.is-focused, .select.is-dark select:active, .select.is-dark select.is-active, .select.is-dark select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(32, 1, 23, 0.25); - box-shadow: 0 0 0 0.125em rgba(32, 1, 23, 0.25); } - .select.is-primary:not(:hover)::after { - border-color: #A00975; } - .select.is-primary select { - border-color: #A00975; } - .select.is-primary select:hover, .select.is-primary select.is-hovered { - border-color: #880863; } - .select.is-primary select:focus, .select.is-primary select.is-focused, .select.is-primary select:active, .select.is-primary select.is-active, .select.is-primary select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(160, 9, 117, 0.25); - box-shadow: 0 0 0 0.125em rgba(160, 9, 117, 0.25); } - .select.is-link:not(:hover)::after { - border-color: #378BBA; } - .select.is-link select { - border-color: #378BBA; } - .select.is-link select:hover, .select.is-link select.is-hovered { - border-color: #317ca6; } - .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active, .select.is-link select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); - box-shadow: 0 0 0 0.125em rgba(55, 139, 186, 0.25); } - .select.is-info:not(:hover)::after { - border-color: #3298dc; } - .select.is-info select { - border-color: #3298dc; } - .select.is-info select:hover, .select.is-info select.is-hovered { - border-color: #238cd1; } - .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active, .select.is-info select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); - box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); } - .select.is-success:not(:hover)::after { - border-color: #48c774; } - .select.is-success select { - border-color: #48c774; } - .select.is-success select:hover, .select.is-success select.is-hovered { - border-color: #3abb67; } - .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active, .select.is-success select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); - box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 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, .select.is-warning select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); - box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } - .select.is-danger:not(:hover)::after { - border-color: #f14668; } - .select.is-danger select { - border-color: #f14668; } - .select.is-danger select:hover, .select.is-danger select.is-hovered { - border-color: #ef2e55; } - .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active, .select.is-danger select.active { - -webkit-box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); - box-shadow: 0 0 0 0.125em rgba(241, 70, 104, 0.25); } - .select.is-small { - 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; - -webkit-transform: none; - -ms-transform: none; - transform: none; } - .select.is-loading.is-small: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 { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - 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; - -webkit-box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); - 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, .is-white.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; - -webkit-box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); - 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, .is-black.active .file-cta { - background-color: black; - border-color: transparent; - color: white; } - .file.is-light .file-cta { - background-color: whitesmoke; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); } - .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { - background-color: #eeeeee; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); } - .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); - box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); - color: rgba(0, 0, 0, 0.7); } - .file.is-light:active .file-cta, .file.is-light.is-active .file-cta, .is-light.active .file-cta { - background-color: #e8e8e8; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); } - .file.is-dark .file-cta { - background-color: #200117; - border-color: transparent; - color: #fff; } - .file.is-dark:hover .file-cta, .file.is-dark.is-hovered .file-cta { - background-color: #14010e; - border-color: transparent; - color: #fff; } - .file.is-dark:focus .file-cta, .file.is-dark.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(32, 1, 23, 0.25); - box-shadow: 0 0 0.5em rgba(32, 1, 23, 0.25); - color: #fff; } - .file.is-dark:active .file-cta, .file.is-dark.is-active .file-cta, .is-dark.active .file-cta { - background-color: #070005; - border-color: transparent; - color: #fff; } - .file.is-primary .file-cta { - background-color: #A00975; - border-color: transparent; - color: #fff; } - .file.is-primary:hover .file-cta, .file.is-primary.is-hovered .file-cta { - background-color: #94086c; - border-color: transparent; - color: #fff; } - .file.is-primary:focus .file-cta, .file.is-primary.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(160, 9, 117, 0.25); - box-shadow: 0 0 0.5em rgba(160, 9, 117, 0.25); - color: #fff; } - .file.is-primary:active .file-cta, .file.is-primary.is-active .file-cta, .is-primary.active .file-cta { - background-color: #880863; - border-color: transparent; - color: #fff; } - .file.is-link .file-cta { - background-color: #378BBA; - border-color: transparent; - color: #fff; } - .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { - background-color: #3484b0; - border-color: transparent; - color: #fff; } - .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(55, 139, 186, 0.25); - box-shadow: 0 0 0.5em rgba(55, 139, 186, 0.25); - color: #fff; } - .file.is-link:active .file-cta, .file.is-link.is-active .file-cta, .is-link.active .file-cta { - background-color: #317ca6; - border-color: transparent; - color: #fff; } - .file.is-info .file-cta { - background-color: #3298dc; - border-color: transparent; - color: #fff; } - .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { - background-color: #2793da; - border-color: transparent; - color: #fff; } - .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(50, 152, 220, 0.25); - box-shadow: 0 0 0.5em rgba(50, 152, 220, 0.25); - color: #fff; } - .file.is-info:active .file-cta, .file.is-info.is-active .file-cta, .is-info.active .file-cta { - background-color: #238cd1; - border-color: transparent; - color: #fff; } - .file.is-success .file-cta { - background-color: #48c774; - border-color: transparent; - color: #fff; } - .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { - background-color: #3ec46d; - border-color: transparent; - color: #fff; } - .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(72, 199, 116, 0.25); - box-shadow: 0 0 0.5em rgba(72, 199, 116, 0.25); - color: #fff; } - .file.is-success:active .file-cta, .file.is-success.is-active .file-cta, .is-success.active .file-cta { - background-color: #3abb67; - 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; - -webkit-box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); - 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, .is-warning.active .file-cta { - background-color: #ffd83d; - border-color: transparent; - color: rgba(0, 0, 0, 0.7); } - .file.is-danger .file-cta { - background-color: #f14668; - border-color: transparent; - color: #fff; } - .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { - background-color: #f03a5f; - border-color: transparent; - color: #fff; } - .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { - border-color: transparent; - -webkit-box-shadow: 0 0 0.5em rgba(241, 70, 104, 0.25); - box-shadow: 0 0 0.5em rgba(241, 70, 104, 0.25); - color: #fff; } - .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta, .is-danger.active .file-cta { - background-color: #ef2e55; - border-color: transparent; - color: #fff; } - .file.is-small { - 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 { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; } - .file.is-boxed .file-cta { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - 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 { - 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 { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; } - .file.is-fullwidth .file-label { - width: 100%; } - .file.is-fullwidth .file-name { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: none; } - .file.is-right { - -webkit-box-pack: end; - -ms-flex-pack: end; - 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; - -webkit-box-ordinal-group: 0; - -ms-flex-order: -1; - order: -1; } - -.file-label { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - cursor: pointer; - -webkit-box-pack: start; - -ms-flex-pack: start; - 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: inherit; - -o-text-overflow: ellipsis; - text-overflow: ellipsis; } - -.file-icon { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - height: 1em; - -webkit-box-pack: center; - -ms-flex-pack: center; - 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 { - 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 { - color: #200117; } - .help.is-primary { - color: #A00975; } - .help.is-link { - color: #378BBA; } - .help.is-info { - color: #3298dc; } - .help.is-success { - color: #48c774; } - .help.is-warning { - color: #ffdd57; } - .help.is-danger { - color: #f14668; } - -.field:not(:last-child) { - margin-bottom: 0.75rem; } - -.field.has-addons { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - 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) .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) .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) .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 .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 .active:not([disabled]), - .field.has-addons .control .input:not([disabled]):focus, - .field.has-addons .control .input:not([disabled]).is-focused, - .field.has-addons .control .input:not([disabled]):active, - .field.has-addons .control .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 .active:not([disabled]):hover, - .field.has-addons .control .input:not([disabled]):focus:hover, - .field.has-addons .control .input:not([disabled]).is-focused:hover, - .field.has-addons .control .input:not([disabled]):active:hover, - .field.has-addons .control .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 { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; } - .field.has-addons.has-addons-centered { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; } - .field.has-addons.has-addons-right { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; } - .field.has-addons.has-addons-fullwidth .control { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - flex-shrink: 0; } - -.field.is-grouped { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; } - .field.is-grouped > .control { - -ms-flex-negative: 0; - flex-shrink: 0; } - .field.is-grouped > .control:not(:last-child) { - margin-bottom: 0; - margin-right: 0.75rem; } - .field.is-grouped > .control.is-expanded { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; } - .field.is-grouped.is-grouped-centered { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; } - .field.is-grouped.is-grouped-right { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; } - .field.is-grouped.is-grouped-multiline { - -ms-flex-wrap: wrap; - 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: -webkit-box; - display: -ms-flexbox; - 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 { - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - flex-shrink: 0; - margin-right: 1.5rem; - text-align: right; } - .field-label.is-small { - 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: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 5; - -ms-flex-positive: 5; - flex-grow: 5; - -ms-flex-negative: 1; - flex-shrink: 1; } - .field-body .field { - margin-bottom: 0; } - .field-body > .field { - -ms-flex-negative: 1; - flex-shrink: 1; } - .field-body > .field:not(.is-narrow) { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; } - .field-body > .field:not(:last-child) { - margin-right: 0.75rem; } } - -.control { - -webkit-box-sizing: border-box; - box-sizing: border-box; - clear: both; - font-size: 1rem; - position: relative; - text-align: inherit; } - .control.has-icons-left .input:focus ~ .icon, - .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, - .control.has-icons-right .select:focus ~ .icon { - color: #4a4a4a; } - .control.has-icons-left .input.is-small ~ .icon, - .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, - .control.has-icons-right .select.is-small ~ .icon { - font-size: 0.75rem; } - .control.has-icons-left .input.is-medium ~ .icon, - .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .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 .select.is-large ~ .icon, .control.has-icons-right .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.5em; - pointer-events: none; - position: absolute; - top: 0; - width: 2.5em; - z-index: 4; } - .control.has-icons-left .input, - .control.has-icons-left .select select { - padding-left: 2.5em; } - .control.has-icons-left .icon.is-left { - left: 0; } - .control.has-icons-right .input, - .control.has-icons-right .select select { - padding-right: 2.5em; } - .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 { - font-size: 0.75rem; } - .control.is-loading.is-medium:after { - font-size: 1.25rem; } - .control.is-loading.is-large:after { - font-size: 1.5rem; } - -/* Bulma Components */ -.breadcrumb { - font-size: 1rem; - white-space: nowrap; } - .breadcrumb a { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - color: #378BBA; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - padding: 0 0.75em; } - .breadcrumb a:hover { - color: #A00975; } - .breadcrumb li { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; } - .breadcrumb li:first-child a { - padding-left: 0; } - .breadcrumb li.is-active a, .breadcrumb li.active a { - color: #363636; - cursor: default; - pointer-events: none; } - .breadcrumb li + li::before { - color: #b5b5b5; - content: "\0002f"; } - .breadcrumb ul, - .breadcrumb ol { - -webkit-box-align: start; - -ms-flex-align: start; - align-items: flex-start; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-pack: start; - -ms-flex-pack: start; - 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 { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; } - .breadcrumb.is-right ol, - .breadcrumb.is-right ul { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; } - .breadcrumb.is-small { - 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; - border-radius: 0.25rem; - -webkit-box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - color: #4a4a4a; - max-width: 100%; - position: relative; } - -.card-footer:first-child, .card-content:first-child, .card-header:first-child { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; } - -.card-footer:last-child, .card-content:last-child, .card-header:last-child { - border-bottom-left-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; } - -.card-header { - background-color: transparent; - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - -webkit-box-shadow: 0 0.125em 0.25em rgba(10, 10, 10, 0.1); - box-shadow: 0 0.125em 0.25em rgba(10, 10, 10, 0.1); - display: -webkit-box; - display: -ms-flexbox; - display: flex; } - -.card-header-title { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - color: #363636; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - font-weight: 700; - padding: 0.75rem 1rem; } - .card-header-title.is-centered { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; } - -.card-header-icon { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - cursor: pointer; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - padding: 0.75rem 1rem; } - -.card-image { - display: block; - position: relative; } - .card-image:first-child img { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; } - .card-image:last-child img { - border-bottom-left-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; } - -.card-content { - background-color: transparent; - padding: 1.5rem; } - -.card-footer { - background-color: transparent; - border-top: 1px solid #ededed; - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; } - -.card-footer-item { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - flex-shrink: 0; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - padding: 0.75rem; } - .card-footer-item:not(:last-child) { - border-right: 1px solid #ededed; } - -.card .media:not(:last-child) { - margin-bottom: 1.5rem; } - -.dropdown { - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - position: relative; - vertical-align: top; } - .dropdown.is-active .dropdown-menu, .dropdown.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; - -webkit-box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - 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: inherit; - white-space: nowrap; - width: 100%; } - a.dropdown-item:hover, - button.dropdown-item:hover { - background-color: whitesmoke; - color: #0a0a0a; } - a.dropdown-item.is-active, .dropdown-item.active, - button.dropdown-item.is-active { - background-color: #378BBA; - color: #fff; } - -.dropdown-divider { - background-color: #ededed; - border: none; - display: block; - height: 1px; - margin: 0.5rem 0; } - -.level { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; } - .level code { - border-radius: 4px; } - .level img { - display: inline-block; - vertical-align: top; } - .level.is-mobile { - display: -webkit-box; - display: -ms-flexbox; - display: flex; } - .level.is-mobile .level-left, - .level.is-mobile .level-right { - display: -webkit-box; - display: -ms-flexbox; - 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) { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; } - @media screen and (min-width: 769px), print { - .level { - display: -webkit-box; - display: -ms-flexbox; - display: flex; } - .level > .level-item:not(.is-narrow) { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; } } -.level-item { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-preferred-size: auto; - flex-basis: auto; - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 0; - flex-shrink: 0; - -webkit-box-pack: center; - -ms-flex-pack: center; - 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 { - -ms-flex-preferred-size: auto; - flex-basis: auto; - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 0; - flex-shrink: 0; } - .level-left .level-item.is-flexible, - .level-right .level-item.is-flexible { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - 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 { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: start; - -ms-flex-pack: start; - 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: -webkit-box; - display: -ms-flexbox; - display: flex; } } -.level-right { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; } - @media screen and (min-width: 769px), print { - .level-right { - display: -webkit-box; - display: -ms-flexbox; - display: flex; } } -.media { - -webkit-box-align: start; - -ms-flex-align: start; - align-items: flex-start; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - text-align: inherit; } - .media .content:not(:last-child) { - margin-bottom: 0.75rem; } - .media .media { - border-top: 1px solid rgba(219, 219, 219, 0.5); - display: -webkit-box; - display: -ms-flexbox; - 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 { - -ms-flex-preferred-size: auto; - flex-basis: auto; - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 0; - flex-shrink: 0; } - -.media-left { - margin-right: 1rem; } - -.media-right { - margin-left: 1rem; } - -.media-content { - -ms-flex-preferred-size: auto; - flex-basis: auto; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - text-align: inherit; } - -@media screen and (max-width: 768px) { - .media-content { - overflow-x: auto; } } - -.menu { - font-size: 1rem; } - .menu.is-small { - font-size: 0.75rem; } - .menu.is-medium { - font-size: 1.25rem; } - .menu.is-large { - font-size: 1.5rem; } - -.menu-list, .navbar-nav { - line-height: 1.25; } - .menu-list a, .navbar-nav a { - border-radius: 2px; - color: #4a4a4a; - display: block; - padding: 0.5em 0.75em; } - .menu-list a:hover, .navbar-nav a:hover { - background-color: whitesmoke; - color: #363636; } - .menu-list a.is-active, .menu-list a.active, .navbar-nav a.is-active, .navbar-nav a.active { - background-color: #378BBA; - color: #fff; } - .menu-list li ul, .navbar-nav li ul { - border-left: 1px solid #dbdbdb; - margin: 0.75em; - padding-left: 0.75em; } - -.menu-label, .nav-header { - color: #7a7a7a; - font-size: 0.75em; - letter-spacing: 0.1em; - text-transform: uppercase; } - .menu-label:not(:first-child), .nav-header:not(:first-child) { - margin-top: 1em; } - .menu-label:not(:last-child), .nav-header: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 { - 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; } - .message.is-black { - background-color: #fafafa; } - .message.is-black .message-header { - background-color: #0a0a0a; - color: white; } - .message.is-black .message-body { - border-color: #0a0a0a; } - .message.is-light { - background-color: #fafafa; } - .message.is-light .message-header { - background-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); } - .message.is-light .message-body { - border-color: whitesmoke; } - .message.is-dark { - background-color: #fff5fc; } - .message.is-dark .message-header { - background-color: #200117; - color: #fff; } - .message.is-dark .message-body { - border-color: #200117; } - .message.is-primary { - background-color: #feecf9; } - .message.is-primary .message-header { - background-color: #A00975; - color: #fff; } - .message.is-primary .message-body { - border-color: #A00975; - color: #f212b2; } - .message.is-link { - background-color: #eff6fa; } - .message.is-link .message-header { - background-color: #378BBA; - color: #fff; } - .message.is-link .message-body { - border-color: #378BBA; - color: #317ca5; } - .message.is-info { - background-color: #eef6fc; } - .message.is-info .message-header { - background-color: #3298dc; - color: #fff; } - .message.is-info .message-body { - border-color: #3298dc; - color: #1d72aa; } - .message.is-success { - background-color: #effaf3; } - .message.is-success .message-header { - background-color: #48c774; - color: #fff; } - .message.is-success .message-body { - border-color: #48c774; - color: #257942; } - .message.is-warning { - background-color: #fffbeb; } - .message.is-warning .message-header { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); } - .message.is-warning .message-body { - border-color: #ffdd57; - color: #947600; } - .message.is-danger { - background-color: #feecf0; } - .message.is-danger .message-header { - background-color: #f14668; - color: #fff; } - .message.is-danger .message-body { - border-color: #f14668; - color: #cc0f35; } - -.message-header { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - background-color: #4a4a4a; - border-radius: 4px 4px 0 0; - color: #fff; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - font-weight: 700; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - line-height: 1.25; - padding: 0.75em 1em; - position: relative; } - .message-header .delete { - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 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: #4a4a4a; - padding: 1.25em 1.5em; } - .message-body code, - .message-body pre { - background-color: white; } - .message-body pre code { - background-color: transparent; } - -.modal { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: none; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - overflow: hidden; - position: fixed; - z-index: 40; } - .modal.is-active, .modal.active { - display: -webkit-box; - display: -ms-flexbox; - 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) { - .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: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - max-height: calc(100vh - 40px); - overflow: hidden; - -ms-overflow-y: visible; } - -.modal-card-head, -.modal-card-foot { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - background-color: whitesmoke; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-negative: 0; - flex-shrink: 0; - -webkit-box-pack: start; - -ms-flex-pack: start; - 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: #363636; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - 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; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 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-item.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, - .navbar.is-white .navbar-brand .navbar-link.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: 1024px) { - .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-item.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-start .navbar-link.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-item.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, - .navbar.is-white .navbar-end .navbar-link.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, - .navbar.is-white .has-dropdown.active .navbar-link { - background-color: #f2f2f2; - color: #0a0a0a; } - .navbar.is-white .navbar-dropdown a.navbar-item.is-active, .navbar.is-white .navbar-dropdown .navbar-item.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-item.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, - .navbar.is-black .navbar-brand .navbar-link.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: 1024px) { - .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-item.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-start .navbar-link.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-item.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, - .navbar.is-black .navbar-end .navbar-link.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, - .navbar.is-black .has-dropdown.active .navbar-link { - background-color: black; - color: white; } - .navbar.is-black .navbar-dropdown a.navbar-item.is-active, .navbar.is-black .navbar-dropdown .navbar-item.active { - background-color: #0a0a0a; - color: white; } } - .navbar.is-light { - background-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); } - .navbar.is-light .navbar-brand > .navbar-item, - .navbar.is-light .navbar-brand .navbar-link { - color: rgba(0, 0, 0, 0.7); } - .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-item.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, - .navbar.is-light .navbar-brand .navbar-link.active { - background-color: #e8e8e8; - color: rgba(0, 0, 0, 0.7); } - .navbar.is-light .navbar-brand .navbar-link::after { - border-color: rgba(0, 0, 0, 0.7); } - .navbar.is-light .navbar-burger { - color: rgba(0, 0, 0, 0.7); } - @media screen and (min-width: 1024px) { - .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: rgba(0, 0, 0, 0.7); } - .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-item.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-start .navbar-link.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-item.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, - .navbar.is-light .navbar-end .navbar-link.active { - background-color: #e8e8e8; - color: rgba(0, 0, 0, 0.7); } - .navbar.is-light .navbar-start .navbar-link::after, - .navbar.is-light .navbar-end .navbar-link::after { - border-color: rgba(0, 0, 0, 0.7); } - .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, - .navbar.is-light .has-dropdown.active .navbar-link { - background-color: #e8e8e8; - color: rgba(0, 0, 0, 0.7); } - .navbar.is-light .navbar-dropdown a.navbar-item.is-active, .navbar.is-light .navbar-dropdown .navbar-item.active { - background-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); } } - .navbar.is-dark { - background-color: #200117; - color: #fff; } - .navbar.is-dark .navbar-brand > .navbar-item, - .navbar.is-dark .navbar-brand .navbar-link { - color: #fff; } - .navbar.is-dark .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .navbar.is-dark .navbar-brand > .navbar-item.active, - .navbar.is-dark .navbar-brand .navbar-link:focus, - .navbar.is-dark .navbar-brand .navbar-link:hover, - .navbar.is-dark .navbar-brand .navbar-link.is-active, - .navbar.is-dark .navbar-brand .navbar-link.active { - background-color: #070005; - color: #fff; } - .navbar.is-dark .navbar-brand .navbar-link::after { - border-color: #fff; } - .navbar.is-dark .navbar-burger { - color: #fff; } - @media screen and (min-width: 1024px) { - .navbar.is-dark .navbar-start > .navbar-item, - .navbar.is-dark .navbar-start .navbar-link, - .navbar.is-dark .navbar-end > .navbar-item, - .navbar.is-dark .navbar-end .navbar-link { - color: #fff; } - .navbar.is-dark .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .navbar.is-dark .navbar-start > .navbar-item.active, - .navbar.is-dark .navbar-start .navbar-link:focus, - .navbar.is-dark .navbar-start .navbar-link:hover, - .navbar.is-dark .navbar-start .navbar-link.is-active, - .navbar.is-dark .navbar-start .navbar-link.active, - .navbar.is-dark .navbar-end > a.navbar-item:focus, - .navbar.is-dark .navbar-end > a.navbar-item:hover, - .navbar.is-dark .navbar-end > a.navbar-item.is-active, - .navbar.is-dark .navbar-end > .navbar-item.active, - .navbar.is-dark .navbar-end .navbar-link:focus, - .navbar.is-dark .navbar-end .navbar-link:hover, - .navbar.is-dark .navbar-end .navbar-link.is-active, - .navbar.is-dark .navbar-end .navbar-link.active { - background-color: #070005; - color: #fff; } - .navbar.is-dark .navbar-start .navbar-link::after, - .navbar.is-dark .navbar-end .navbar-link::after { - border-color: #fff; } - .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, - .navbar.is-dark .has-dropdown.active .navbar-link { - background-color: #070005; - color: #fff; } - .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .navbar.is-dark .navbar-dropdown .navbar-item.active { - background-color: #200117; - color: #fff; } } - .navbar.is-primary { - background-color: #A00975; - color: #fff; } - .navbar.is-primary .navbar-brand > .navbar-item, - .navbar.is-primary .navbar-brand .navbar-link { - color: #fff; } - .navbar.is-primary .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .navbar.is-primary .navbar-brand > .navbar-item.active, - .navbar.is-primary .navbar-brand .navbar-link:focus, - .navbar.is-primary .navbar-brand .navbar-link:hover, - .navbar.is-primary .navbar-brand .navbar-link.is-active, - .navbar.is-primary .navbar-brand .navbar-link.active { - background-color: #880863; - color: #fff; } - .navbar.is-primary .navbar-brand .navbar-link::after { - border-color: #fff; } - .navbar.is-primary .navbar-burger { - color: #fff; } - @media screen and (min-width: 1024px) { - .navbar.is-primary .navbar-start > .navbar-item, - .navbar.is-primary .navbar-start .navbar-link, - .navbar.is-primary .navbar-end > .navbar-item, - .navbar.is-primary .navbar-end .navbar-link { - color: #fff; } - .navbar.is-primary .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .navbar.is-primary .navbar-start > .navbar-item.active, - .navbar.is-primary .navbar-start .navbar-link:focus, - .navbar.is-primary .navbar-start .navbar-link:hover, - .navbar.is-primary .navbar-start .navbar-link.is-active, - .navbar.is-primary .navbar-start .navbar-link.active, - .navbar.is-primary .navbar-end > a.navbar-item:focus, - .navbar.is-primary .navbar-end > a.navbar-item:hover, - .navbar.is-primary .navbar-end > a.navbar-item.is-active, - .navbar.is-primary .navbar-end > .navbar-item.active, - .navbar.is-primary .navbar-end .navbar-link:focus, - .navbar.is-primary .navbar-end .navbar-link:hover, - .navbar.is-primary .navbar-end .navbar-link.is-active, - .navbar.is-primary .navbar-end .navbar-link.active { - background-color: #880863; - color: #fff; } - .navbar.is-primary .navbar-start .navbar-link::after, - .navbar.is-primary .navbar-end .navbar-link::after { - border-color: #fff; } - .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, - .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, - .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, - .navbar.is-primary .has-dropdown.active .navbar-link { - background-color: #880863; - color: #fff; } - .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .navbar.is-primary .navbar-dropdown .navbar-item.active { - background-color: #A00975; - color: #fff; } } - .navbar.is-link { - background-color: #378BBA; - 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-item.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, - .navbar.is-link .navbar-brand .navbar-link.active { - background-color: #317ca6; - 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: 1024px) { - .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-item.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-start .navbar-link.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-item.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, - .navbar.is-link .navbar-end .navbar-link.active { - background-color: #317ca6; - 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, - .navbar.is-link .has-dropdown.active .navbar-link { - background-color: #317ca6; - color: #fff; } - .navbar.is-link .navbar-dropdown a.navbar-item.is-active, .navbar.is-link .navbar-dropdown .navbar-item.active { - background-color: #378BBA; - color: #fff; } } - .navbar.is-info { - background-color: #3298dc; - 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-item.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, - .navbar.is-info .navbar-brand .navbar-link.active { - background-color: #238cd1; - 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: 1024px) { - .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-item.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-start .navbar-link.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-item.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, - .navbar.is-info .navbar-end .navbar-link.active { - background-color: #238cd1; - 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, - .navbar.is-info .has-dropdown.active .navbar-link { - background-color: #238cd1; - color: #fff; } - .navbar.is-info .navbar-dropdown a.navbar-item.is-active, .navbar.is-info .navbar-dropdown .navbar-item.active { - background-color: #3298dc; - color: #fff; } } - .navbar.is-success { - background-color: #48c774; - 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-item.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, - .navbar.is-success .navbar-brand .navbar-link.active { - background-color: #3abb67; - 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: 1024px) { - .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-item.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-start .navbar-link.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-item.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, - .navbar.is-success .navbar-end .navbar-link.active { - background-color: #3abb67; - 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, - .navbar.is-success .has-dropdown.active .navbar-link { - background-color: #3abb67; - color: #fff; } - .navbar.is-success .navbar-dropdown a.navbar-item.is-active, .navbar.is-success .navbar-dropdown .navbar-item.active { - background-color: #48c774; - 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-item.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, - .navbar.is-warning .navbar-brand .navbar-link.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: 1024px) { - .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-item.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-start .navbar-link.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-item.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, - .navbar.is-warning .navbar-end .navbar-link.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, - .navbar.is-warning .has-dropdown.active .navbar-link { - background-color: #ffd83d; - color: rgba(0, 0, 0, 0.7); } - .navbar.is-warning .navbar-dropdown a.navbar-item.is-active, .navbar.is-warning .navbar-dropdown .navbar-item.active { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); } } - .navbar.is-danger { - background-color: #f14668; - 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-item.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, - .navbar.is-danger .navbar-brand .navbar-link.active { - background-color: #ef2e55; - 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: 1024px) { - .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-item.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-start .navbar-link.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-item.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, - .navbar.is-danger .navbar-end .navbar-link.active { - background-color: #ef2e55; - 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, - .navbar.is-danger .has-dropdown.active .navbar-link { - background-color: #ef2e55; - color: #fff; } - .navbar.is-danger .navbar-dropdown a.navbar-item.is-active, .navbar.is-danger .navbar-dropdown .navbar-item.active { - background-color: #f14668; - color: #fff; } } - .navbar > .container { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - min-height: 3.25rem; - width: 100%; } - .navbar.has-shadow { - -webkit-box-shadow: 0 2px 0 0 whitesmoke; - 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 { - -webkit-box-shadow: 0 -2px 0 0 whitesmoke; - 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 { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-negative: 0; - 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; - -webkit-transform-origin: center; - -ms-transform-origin: center; - transform-origin: center; - -webkit-transition-duration: 86ms; - -o-transition-duration: 86ms; - transition-duration: 86ms; - -webkit-transition-property: background-color, opacity, -webkit-transform; - transition-property: background-color, opacity, -webkit-transform; - -o-transition-property: background-color, opacity, transform; - transition-property: background-color, opacity, transform; - transition-property: background-color, opacity, transform, -webkit-transform; - -webkit-transition-timing-function: ease-out; - -o-transition-timing-function: ease-out; - 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), .navbar-burger.active span:nth-child(1) { - -webkit-transform: translateY(5px) rotate(45deg); - -ms-transform: translateY(5px) rotate(45deg); - transform: translateY(5px) rotate(45deg); } - .navbar-burger.is-active span:nth-child(2), .navbar-burger.active span:nth-child(2) { - opacity: 0; } - .navbar-burger.is-active span:nth-child(3), .navbar-burger.active span:nth-child(3) { - -webkit-transform: translateY(-5px) rotate(-45deg); - -ms-transform: translateY(-5px) rotate(-45deg); - 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-item.active, - .navbar-link:focus, - .navbar-link:focus-within, - .navbar-link:hover, - .navbar-link.is-active, - .navbar-link.active { - background-color: #fafafa; - color: #378BBA; } - -.navbar-item { - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 0; - flex-shrink: 0; } - .navbar-item img { - max-height: 1.75rem; } - .navbar-item.has-dropdown { - padding: 0; } - .navbar-item.is-expanded { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 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: #378BBA; } - .navbar-item.is-tab.is-active, .is-tab.active { - background-color: transparent; - border-bottom-color: #378BBA; - border-bottom-style: solid; - border-bottom-width: 3px; - color: #378BBA; - padding-bottom: calc(0.5rem - 3px); } - -.navbar-content { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; } - -.navbar-link:not(.is-arrowless) { - padding-right: 2.5em; } - .navbar-link:not(.is-arrowless)::after { - border-color: #378BBA; - 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: 1023px) { - .navbar > .container { - display: block; } - .navbar-brand .navbar-item, - .navbar-tabs .navbar-item { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; } - .navbar-link::after { - display: none; } - .navbar-menu { - background-color: white; - -webkit-box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); - box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); - padding: 0.5rem 0; } - .navbar-menu.is-active, .navbar-menu.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 { - -webkit-box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); - 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: 1024px) { - .navbar, - .navbar-menu, - .navbar-start, - .navbar-end { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; } - .navbar { - min-height: 3.25rem; } - .navbar.is-spaced { - padding: 1rem 2rem; } - .navbar.is-spaced .navbar-start, - .navbar.is-spaced .navbar-end { - -webkit-box-align: center; - -ms-flex-align: center; - 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-item.active, - .navbar.is-transparent .navbar-link:focus, - .navbar.is-transparent .navbar-link:hover, - .navbar.is-transparent .navbar-link.is-active, - .navbar.is-transparent .navbar-link.active { - background-color: transparent !important; } - .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .has-dropdown.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, .navbar.is-transparent .navbar-dropdown .navbar-item.active { - background-color: whitesmoke; - color: #378BBA; } - .navbar-burger { - display: none; } - .navbar-item, - .navbar-link { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; } - .navbar-item.has-dropdown { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; } - .navbar-item.has-dropdown-up .navbar-link::after { - -webkit-transform: rotate(135deg) translate(0.25em, -0.25em); - -ms-transform: rotate(135deg) translate(0.25em, -0.25em); - 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%; - -webkit-box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); - box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); - top: auto; } - .navbar-item.is-active .navbar-dropdown, .navbar-item.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.is-spaced .navbar-item.active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar-item.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; - -webkit-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0); } - .navbar-menu { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - flex-shrink: 0; } - .navbar-start { - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - margin-right: auto; } - .navbar-end { - -webkit-box-pack: end; - -ms-flex-pack: 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; - -webkit-box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); - 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, .navbar-dropdown .navbar-item.active { - background-color: whitesmoke; - color: #378BBA; } - .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { - border-radius: 6px; - border-top: none; - -webkit-box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); - 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)); - -webkit-transform: translateY(-5px); - -ms-transform: translateY(-5px); - transform: translateY(-5px); - -webkit-transition-duration: 86ms; - -o-transition-duration: 86ms; - transition-duration: 86ms; - -webkit-transition-property: opacity, -webkit-transform; - transition-property: opacity, -webkit-transform; - -o-transition-property: opacity, transform; - transition-property: opacity, transform; - transition-property: opacity, transform, -webkit-transform; } - .navbar-dropdown.is-right { - left: auto; - right: 0; } - .navbar-divider { - display: block; } - .navbar > .container .navbar-brand, - .container > .navbar .navbar-brand { - margin-left: -0.75rem; } - .navbar > .container .navbar-menu, - .container > .navbar .navbar-menu { - margin-right: -0.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 { - -webkit-box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); - 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-item.active, - .navbar-link.is-active, - .navbar-link.active { - color: #0a0a0a; } - a.navbar-item.is-active:not(:focus):not(:hover), .navbar-item.active:not(:focus):not(:hover), - .navbar-link.is-active:not(:focus):not(:hover), - .navbar-link.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, .has-dropdown.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 { - font-size: 0.75rem; } - .pagination.is-medium { - font-size: 1.25rem; } - .pagination.is-large { - font-size: 1.5rem; } - .pagination.is-rounded .pagination-previous, - .pagination.is-rounded .pagination-next { - padding-left: 1em; - padding-right: 1em; - border-radius: 290486px; } - .pagination.is-rounded .pagination-link { - border-radius: 290486px; } - -.pagination, -.pagination-list { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - text-align: center; } - -.pagination-previous, -.pagination-next, -.pagination-link, -.pagination-ellipsis { - font-size: 1em; - -webkit-box-pack: center; - -ms-flex-pack: center; - 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.5em; } - .pagination-previous:hover, - .pagination-next:hover, - .pagination-link:hover { - border-color: #b5b5b5; - color: #A00975; } - .pagination-previous:focus, - .pagination-next:focus, - .pagination-link:focus { - border-color: #3273dc; } - .pagination-previous:active, - .pagination-next:active, - .pagination-link:active { - -webkit-box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); - 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; - -webkit-box-shadow: none; - 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: #378BBA; - border-color: #378BBA; - color: #fff; } - -.pagination-ellipsis { - color: #b5b5b5; - pointer-events: none; } - -.pagination-list { - -ms-flex-wrap: wrap; - flex-wrap: wrap; } - .pagination-list li { - list-style: none; } - -@media screen and (max-width: 768px) { - .pagination { - -ms-flex-wrap: wrap; - flex-wrap: wrap; } - .pagination-previous, - .pagination-next { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; } - .pagination-list li { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; } } - -@media screen and (min-width: 769px), print { - .pagination-list { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - -webkit-box-ordinal-group: 2; - -ms-flex-order: 1; - order: 1; } - .pagination-previous { - -webkit-box-ordinal-group: 3; - -ms-flex-order: 2; - order: 2; } - .pagination-next { - -webkit-box-ordinal-group: 4; - -ms-flex-order: 3; - order: 3; } - .pagination { - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; } - .pagination.is-centered .pagination-previous { - -webkit-box-ordinal-group: 2; - -ms-flex-order: 1; - order: 1; } - .pagination.is-centered .pagination-list { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-ordinal-group: 3; - -ms-flex-order: 2; - order: 2; } - .pagination.is-centered .pagination-next { - -webkit-box-ordinal-group: 4; - -ms-flex-order: 3; - order: 3; } - .pagination.is-right .pagination-previous { - -webkit-box-ordinal-group: 2; - -ms-flex-order: 1; - order: 1; } - .pagination.is-right .pagination-next { - -webkit-box-ordinal-group: 3; - -ms-flex-order: 2; - order: 2; } - .pagination.is-right .pagination-list { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - -webkit-box-ordinal-group: 4; - -ms-flex-order: 3; - order: 3; } } - -.panel { - border-radius: 6px; - -webkit-box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02); - font-size: 1rem; } - .panel:not(:last-child) { - margin-bottom: 1.5rem; } - .panel.is-white .panel-heading { - background-color: white; - color: #0a0a0a; } - .panel.is-white .panel-tabs a.is-active, .panel.is-white .panel-tabs a.active { - border-bottom-color: white; } - .panel.is-white .panel-block.is-active .panel-icon, .panel.is-white .panel-block.active .panel-icon { - color: white; } - .panel.is-black .panel-heading { - background-color: #0a0a0a; - color: white; } - .panel.is-black .panel-tabs a.is-active, .panel.is-black .panel-tabs a.active { - border-bottom-color: #0a0a0a; } - .panel.is-black .panel-block.is-active .panel-icon, .panel.is-black .panel-block.active .panel-icon { - color: #0a0a0a; } - .panel.is-light .panel-heading { - background-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); } - .panel.is-light .panel-tabs a.is-active, .panel.is-light .panel-tabs a.active { - border-bottom-color: whitesmoke; } - .panel.is-light .panel-block.is-active .panel-icon, .panel.is-light .panel-block.active .panel-icon { - color: whitesmoke; } - .panel.is-dark .panel-heading { - background-color: #200117; - color: #fff; } - .panel.is-dark .panel-tabs a.is-active, .panel.is-dark .panel-tabs a.active { - border-bottom-color: #200117; } - .panel.is-dark .panel-block.is-active .panel-icon, .panel.is-dark .panel-block.active .panel-icon { - color: #200117; } - .panel.is-primary .panel-heading { - background-color: #A00975; - color: #fff; } - .panel.is-primary .panel-tabs a.is-active, .panel.is-primary .panel-tabs a.active { - border-bottom-color: #A00975; } - .panel.is-primary .panel-block.is-active .panel-icon, .panel.is-primary .panel-block.active .panel-icon { - color: #A00975; } - .panel.is-link .panel-heading { - background-color: #378BBA; - color: #fff; } - .panel.is-link .panel-tabs a.is-active, .panel.is-link .panel-tabs a.active { - border-bottom-color: #378BBA; } - .panel.is-link .panel-block.is-active .panel-icon, .panel.is-link .panel-block.active .panel-icon { - color: #378BBA; } - .panel.is-info .panel-heading { - background-color: #3298dc; - color: #fff; } - .panel.is-info .panel-tabs a.is-active, .panel.is-info .panel-tabs a.active { - border-bottom-color: #3298dc; } - .panel.is-info .panel-block.is-active .panel-icon, .panel.is-info .panel-block.active .panel-icon { - color: #3298dc; } - .panel.is-success .panel-heading { - background-color: #48c774; - color: #fff; } - .panel.is-success .panel-tabs a.is-active, .panel.is-success .panel-tabs a.active { - border-bottom-color: #48c774; } - .panel.is-success .panel-block.is-active .panel-icon, .panel.is-success .panel-block.active .panel-icon { - color: #48c774; } - .panel.is-warning .panel-heading { - background-color: #ffdd57; - color: rgba(0, 0, 0, 0.7); } - .panel.is-warning .panel-tabs a.is-active, .panel.is-warning .panel-tabs a.active { - border-bottom-color: #ffdd57; } - .panel.is-warning .panel-block.is-active .panel-icon, .panel.is-warning .panel-block.active .panel-icon { - color: #ffdd57; } - .panel.is-danger .panel-heading { - background-color: #f14668; - color: #fff; } - .panel.is-danger .panel-tabs a.is-active, .panel.is-danger .panel-tabs a.active { - border-bottom-color: #f14668; } - .panel.is-danger .panel-block.is-active .panel-icon, .panel.is-danger .panel-block.active .panel-icon { - color: #f14668; } - -.panel-tabs:not(:last-child), -.panel-block:not(:last-child) { - border-bottom: 1px solid #ededed; } - -.panel-heading { - background-color: #ededed; - border-radius: 6px 6px 0 0; - color: #363636; - font-size: 1.25em; - font-weight: 700; - line-height: 1.25; - padding: 0.75em 1em; } - -.panel-tabs { - -webkit-box-align: end; - -ms-flex-align: end; - align-items: flex-end; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - font-size: 0.875em; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; } - .panel-tabs a { - border-bottom: 1px solid #dbdbdb; - margin-bottom: -1px; - padding: 0.5em; } - .panel-tabs a.is-active, .panel-tabs a.active { - border-bottom-color: #4a4a4a; - color: #363636; } - -.panel-list a { - color: #4a4a4a; } - .panel-list a:hover { - color: #378BBA; } - -.panel-block { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - color: #363636; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - padding: 0.5em 0.75em; } - .panel-block input[type="checkbox"] { - margin-right: 0.75em; } - .panel-block > .control { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - width: 100%; } - .panel-block.is-wrapped { - -ms-flex-wrap: wrap; - flex-wrap: wrap; } - .panel-block.is-active, .panel-block.active { - border-left-color: #378BBA; - color: #363636; } - .panel-block.is-active .panel-icon, .panel-block.active .panel-icon { - color: #378BBA; } - .panel-block:last-child { - border-bottom-left-radius: 6px; - border-bottom-right-radius: 6px; } - -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; - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - font-size: 1rem; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; - overflow: hidden; - overflow-x: auto; - white-space: nowrap; } - .tabs a { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - border-bottom-color: #dbdbdb; - border-bottom-style: solid; - border-bottom-width: 1px; - color: #4a4a4a; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - margin-bottom: -1px; - padding: 0.5em 1em; - vertical-align: top; } - .tabs a:hover { - border-bottom-color: #363636; - color: #363636; } - .tabs li { - display: block; } - .tabs li.is-active a, .tabs li.active a { - border-bottom-color: #378BBA; - color: #378BBA; } - .tabs ul { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - border-bottom-color: #dbdbdb; - border-bottom-style: solid; - border-bottom-width: 1px; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - flex-shrink: 0; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; } - .tabs ul.is-left { - padding-right: 0.75em; } - .tabs ul.is-center { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - padding-left: 0.75em; - padding-right: 0.75em; } - .tabs ul.is-right { - -webkit-box-pack: end; - -ms-flex-pack: end; - 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 { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; } - .tabs.is-right ul { - -webkit-box-pack: end; - -ms-flex-pack: end; - 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, .tabs.is-boxed li.active a { - background-color: white; - border-color: #dbdbdb; - border-bottom-color: transparent !important; } - .tabs.is-fullwidth li { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - 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-top-left-radius: 4px; - border-bottom-left-radius: 4px; } - .tabs.is-toggle li:last-child a { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; } - .tabs.is-toggle li.is-active a, .tabs.is-toggle li.active a { - background-color: #378BBA; - border-color: #378BBA; - 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 { - font-size: 0.75rem; } - .tabs.is-medium { - font-size: 1.25rem; } - .tabs.is-large { - font-size: 1.5rem; } - -/* Bulma Grid */ -.column { - display: block; - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - padding: 0.75rem; } - .columns.is-mobile > .column.is-narrow { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: unset; } - .columns.is-mobile > .column.is-full { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; } - .columns.is-mobile > .column.is-three-quarters { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; } - .columns.is-mobile > .column.is-two-thirds { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.6666%; } - .columns.is-mobile > .column.is-half { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; } - .columns.is-mobile > .column.is-one-third { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.3333%; } - .columns.is-mobile > .column.is-one-quarter { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; } - .columns.is-mobile > .column.is-one-fifth { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 20%; } - .columns.is-mobile > .column.is-two-fifths { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 40%; } - .columns.is-mobile > .column.is-three-fifths { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 60%; } - .columns.is-mobile > .column.is-four-fifths { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 0%; } - .columns.is-mobile > .column.is-offset-0 { - margin-left: 0%; } - .columns.is-mobile > .column.is-1 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 8.33333%; } - .columns.is-mobile > .column.is-offset-1 { - margin-left: 8.33333%; } - .columns.is-mobile > .column.is-2 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 16.66667%; } - .columns.is-mobile > .column.is-offset-2 { - margin-left: 16.66667%; } - .columns.is-mobile > .column.is-3 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; } - .columns.is-mobile > .column.is-offset-3 { - margin-left: 25%; } - .columns.is-mobile > .column.is-4 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.33333%; } - .columns.is-mobile > .column.is-offset-4 { - margin-left: 33.33333%; } - .columns.is-mobile > .column.is-5 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 41.66667%; } - .columns.is-mobile > .column.is-offset-5 { - margin-left: 41.66667%; } - .columns.is-mobile > .column.is-6 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; } - .columns.is-mobile > .column.is-offset-6 { - margin-left: 50%; } - .columns.is-mobile > .column.is-7 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 58.33333%; } - .columns.is-mobile > .column.is-offset-7 { - margin-left: 58.33333%; } - .columns.is-mobile > .column.is-8 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.66667%; } - .columns.is-mobile > .column.is-offset-8 { - margin-left: 66.66667%; } - .columns.is-mobile > .column.is-9 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; } - .columns.is-mobile > .column.is-offset-9 { - margin-left: 75%; } - .columns.is-mobile > .column.is-10 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 83.33333%; } - .columns.is-mobile > .column.is-offset-10 { - margin-left: 83.33333%; } - .columns.is-mobile > .column.is-11 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 91.66667%; } - .columns.is-mobile > .column.is-offset-11 { - margin-left: 91.66667%; } - .columns.is-mobile > .column.is-12 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; } - .columns.is-mobile > .column.is-offset-12 { - margin-left: 100%; } - @media screen and (max-width: 768px) { - .column.is-narrow-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: unset; } - .column.is-full-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; } - .column.is-three-quarters-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; } - .column.is-two-thirds-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.6666%; } - .column.is-half-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; } - .column.is-one-third-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.3333%; } - .column.is-one-quarter-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; } - .column.is-one-fifth-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 20%; } - .column.is-two-fifths-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 40%; } - .column.is-three-fifths-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 60%; } - .column.is-four-fifths-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 0%; } - .column.is-offset-0-mobile { - margin-left: 0%; } - .column.is-1-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 8.33333%; } - .column.is-offset-1-mobile { - margin-left: 8.33333%; } - .column.is-2-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 16.66667%; } - .column.is-offset-2-mobile { - margin-left: 16.66667%; } - .column.is-3-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; } - .column.is-offset-3-mobile { - margin-left: 25%; } - .column.is-4-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.33333%; } - .column.is-offset-4-mobile { - margin-left: 33.33333%; } - .column.is-5-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 41.66667%; } - .column.is-offset-5-mobile { - margin-left: 41.66667%; } - .column.is-6-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; } - .column.is-offset-6-mobile { - margin-left: 50%; } - .column.is-7-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 58.33333%; } - .column.is-offset-7-mobile { - margin-left: 58.33333%; } - .column.is-8-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.66667%; } - .column.is-offset-8-mobile { - margin-left: 66.66667%; } - .column.is-9-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; } - .column.is-offset-9-mobile { - margin-left: 75%; } - .column.is-10-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 83.33333%; } - .column.is-offset-10-mobile { - margin-left: 83.33333%; } - .column.is-11-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 91.66667%; } - .column.is-offset-11-mobile { - margin-left: 91.66667%; } - .column.is-12-mobile { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: unset; } - .column.is-full, .column.is-full-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; } - .column.is-three-quarters, .column.is-three-quarters-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; } - .column.is-two-thirds, .column.is-two-thirds-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.6666%; } - .column.is-half, .column.is-half-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; } - .column.is-one-third, .column.is-one-third-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.3333%; } - .column.is-one-quarter, .column.is-one-quarter-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; } - .column.is-one-fifth, .column.is-one-fifth-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 20%; } - .column.is-two-fifths, .column.is-two-fifths-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 40%; } - .column.is-three-fifths, .column.is-three-fifths-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 60%; } - .column.is-four-fifths, .column.is-four-fifths-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 0%; } - .column.is-offset-0, .column.is-offset-0-tablet { - margin-left: 0%; } - .column.is-1, .column.is-1-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; } - .column.is-offset-3, .column.is-offset-3-tablet { - margin-left: 25%; } - .column.is-4, .column.is-4-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; } - .column.is-offset-6, .column.is-offset-6-tablet { - margin-left: 50%; } - .column.is-7, .column.is-7-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; } - .column.is-offset-9, .column.is-offset-9-tablet { - margin-left: 75%; } - .column.is-10, .column.is-10-tablet { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; } - .column.is-offset-12, .column.is-offset-12-tablet { - margin-left: 100%; } } - @media screen and (max-width: 1023px) { - .column.is-narrow-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: unset; } - .column.is-full-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; } - .column.is-three-quarters-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; } - .column.is-two-thirds-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.6666%; } - .column.is-half-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; } - .column.is-one-third-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.3333%; } - .column.is-one-quarter-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; } - .column.is-one-fifth-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 20%; } - .column.is-two-fifths-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 40%; } - .column.is-three-fifths-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 60%; } - .column.is-four-fifths-touch { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 0%; } - .column.is-offset-0-touch { - margin-left: 0%; } - .column.is-1-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 8.33333%; } - .column.is-offset-1-touch { - margin-left: 8.33333%; } - .column.is-2-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 16.66667%; } - .column.is-offset-2-touch { - margin-left: 16.66667%; } - .column.is-3-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; } - .column.is-offset-3-touch { - margin-left: 25%; } - .column.is-4-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.33333%; } - .column.is-offset-4-touch { - margin-left: 33.33333%; } - .column.is-5-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 41.66667%; } - .column.is-offset-5-touch { - margin-left: 41.66667%; } - .column.is-6-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; } - .column.is-offset-6-touch { - margin-left: 50%; } - .column.is-7-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 58.33333%; } - .column.is-offset-7-touch { - margin-left: 58.33333%; } - .column.is-8-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.66667%; } - .column.is-offset-8-touch { - margin-left: 66.66667%; } - .column.is-9-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; } - .column.is-offset-9-touch { - margin-left: 75%; } - .column.is-10-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 83.33333%; } - .column.is-offset-10-touch { - margin-left: 83.33333%; } - .column.is-11-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 91.66667%; } - .column.is-offset-11-touch { - margin-left: 91.66667%; } - .column.is-12-touch { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; } - .column.is-offset-12-touch { - margin-left: 100%; } } - @media screen and (min-width: 1024px) { - .column.is-narrow-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: unset; } - .column.is-full-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; } - .column.is-three-quarters-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; } - .column.is-two-thirds-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.6666%; } - .column.is-half-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; } - .column.is-one-third-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.3333%; } - .column.is-one-quarter-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; } - .column.is-one-fifth-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 20%; } - .column.is-two-fifths-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 40%; } - .column.is-three-fifths-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 60%; } - .column.is-four-fifths-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 0%; } - .column.is-offset-0-desktop { - margin-left: 0%; } - .column.is-1-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 8.33333%; } - .column.is-offset-1-desktop { - margin-left: 8.33333%; } - .column.is-2-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 16.66667%; } - .column.is-offset-2-desktop { - margin-left: 16.66667%; } - .column.is-3-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; } - .column.is-offset-3-desktop { - margin-left: 25%; } - .column.is-4-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.33333%; } - .column.is-offset-4-desktop { - margin-left: 33.33333%; } - .column.is-5-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 41.66667%; } - .column.is-offset-5-desktop { - margin-left: 41.66667%; } - .column.is-6-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; } - .column.is-offset-6-desktop { - margin-left: 50%; } - .column.is-7-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 58.33333%; } - .column.is-offset-7-desktop { - margin-left: 58.33333%; } - .column.is-8-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.66667%; } - .column.is-offset-8-desktop { - margin-left: 66.66667%; } - .column.is-9-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; } - .column.is-offset-9-desktop { - margin-left: 75%; } - .column.is-10-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 83.33333%; } - .column.is-offset-10-desktop { - margin-left: 83.33333%; } - .column.is-11-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 91.66667%; } - .column.is-offset-11-desktop { - margin-left: 91.66667%; } - .column.is-12-desktop { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; } - .column.is-offset-12-desktop { - margin-left: 100%; } } - @media screen and (min-width: 1216px) { - .column.is-narrow-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: unset; } - .column.is-full-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; } - .column.is-three-quarters-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; } - .column.is-two-thirds-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.6666%; } - .column.is-half-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; } - .column.is-one-third-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.3333%; } - .column.is-one-quarter-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; } - .column.is-one-fifth-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 20%; } - .column.is-two-fifths-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 40%; } - .column.is-three-fifths-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 60%; } - .column.is-four-fifths-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 0%; } - .column.is-offset-0-widescreen { - margin-left: 0%; } - .column.is-1-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 8.33333%; } - .column.is-offset-1-widescreen { - margin-left: 8.33333%; } - .column.is-2-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 16.66667%; } - .column.is-offset-2-widescreen { - margin-left: 16.66667%; } - .column.is-3-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; } - .column.is-offset-3-widescreen { - margin-left: 25%; } - .column.is-4-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.33333%; } - .column.is-offset-4-widescreen { - margin-left: 33.33333%; } - .column.is-5-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 41.66667%; } - .column.is-offset-5-widescreen { - margin-left: 41.66667%; } - .column.is-6-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; } - .column.is-offset-6-widescreen { - margin-left: 50%; } - .column.is-7-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 58.33333%; } - .column.is-offset-7-widescreen { - margin-left: 58.33333%; } - .column.is-8-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.66667%; } - .column.is-offset-8-widescreen { - margin-left: 66.66667%; } - .column.is-9-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; } - .column.is-offset-9-widescreen { - margin-left: 75%; } - .column.is-10-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 83.33333%; } - .column.is-offset-10-widescreen { - margin-left: 83.33333%; } - .column.is-11-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 91.66667%; } - .column.is-offset-11-widescreen { - margin-left: 91.66667%; } - .column.is-12-widescreen { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; } - .column.is-offset-12-widescreen { - margin-left: 100%; } } - @media screen and (min-width: 1408px) { - .column.is-narrow-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: unset; } - .column.is-full-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; } - .column.is-three-quarters-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; } - .column.is-two-thirds-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.6666%; } - .column.is-half-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; } - .column.is-one-third-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.3333%; } - .column.is-one-quarter-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; } - .column.is-one-fifth-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 20%; } - .column.is-two-fifths-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 40%; } - .column.is-three-fifths-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 60%; } - .column.is-four-fifths-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 0%; } - .column.is-offset-0-fullhd { - margin-left: 0%; } - .column.is-1-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 8.33333%; } - .column.is-offset-1-fullhd { - margin-left: 8.33333%; } - .column.is-2-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 16.66667%; } - .column.is-offset-2-fullhd { - margin-left: 16.66667%; } - .column.is-3-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; } - .column.is-offset-3-fullhd { - margin-left: 25%; } - .column.is-4-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.33333%; } - .column.is-offset-4-fullhd { - margin-left: 33.33333%; } - .column.is-5-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 41.66667%; } - .column.is-offset-5-fullhd { - margin-left: 41.66667%; } - .column.is-6-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; } - .column.is-offset-6-fullhd { - margin-left: 50%; } - .column.is-7-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 58.33333%; } - .column.is-offset-7-fullhd { - margin-left: 58.33333%; } - .column.is-8-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.66667%; } - .column.is-offset-8-fullhd { - margin-left: 66.66667%; } - .column.is-9-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; } - .column.is-offset-9-fullhd { - margin-left: 75%; } - .column.is-10-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 83.33333%; } - .column.is-offset-10-fullhd { - margin-left: 83.33333%; } - .column.is-11-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 91.66667%; } - .column.is-offset-11-fullhd { - margin-left: 91.66667%; } - .column.is-12-fullhd { - -webkit-box-flex: 0; - -ms-flex: none; - 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 { - -webkit-box-pack: center; - -ms-flex-pack: center; - 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: -webkit-box; - display: -ms-flexbox; - display: flex; } - .columns.is-multiline { - -ms-flex-wrap: wrap; - flex-wrap: wrap; } - .columns.is-vcentered { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; } - @media screen and (min-width: 769px), print { - .columns:not(.is-desktop) { - display: -webkit-box; - display: -ms-flexbox; - display: flex; } } - @media screen and (min-width: 1024px) { - .columns.is-desktop { - display: -webkit-box; - display: -ms-flexbox; - 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: 1023px) { - .columns.is-variable.is-0-tablet-only { - --columnGap: 0rem; } } - @media screen and (max-width: 1023px) { - .columns.is-variable.is-0-touch { - --columnGap: 0rem; } } - @media screen and (min-width: 1024px) { - .columns.is-variable.is-0-desktop { - --columnGap: 0rem; } } - @media screen and (min-width: 1024px) 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: 1023px) { - .columns.is-variable.is-1-tablet-only { - --columnGap: 0.25rem; } } - @media screen and (max-width: 1023px) { - .columns.is-variable.is-1-touch { - --columnGap: 0.25rem; } } - @media screen and (min-width: 1024px) { - .columns.is-variable.is-1-desktop { - --columnGap: 0.25rem; } } - @media screen and (min-width: 1024px) 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: 1023px) { - .columns.is-variable.is-2-tablet-only { - --columnGap: 0.5rem; } } - @media screen and (max-width: 1023px) { - .columns.is-variable.is-2-touch { - --columnGap: 0.5rem; } } - @media screen and (min-width: 1024px) { - .columns.is-variable.is-2-desktop { - --columnGap: 0.5rem; } } - @media screen and (min-width: 1024px) 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: 1023px) { - .columns.is-variable.is-3-tablet-only { - --columnGap: 0.75rem; } } - @media screen and (max-width: 1023px) { - .columns.is-variable.is-3-touch { - --columnGap: 0.75rem; } } - @media screen and (min-width: 1024px) { - .columns.is-variable.is-3-desktop { - --columnGap: 0.75rem; } } - @media screen and (min-width: 1024px) 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: 1023px) { - .columns.is-variable.is-4-tablet-only { - --columnGap: 1rem; } } - @media screen and (max-width: 1023px) { - .columns.is-variable.is-4-touch { - --columnGap: 1rem; } } - @media screen and (min-width: 1024px) { - .columns.is-variable.is-4-desktop { - --columnGap: 1rem; } } - @media screen and (min-width: 1024px) 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: 1023px) { - .columns.is-variable.is-5-tablet-only { - --columnGap: 1.25rem; } } - @media screen and (max-width: 1023px) { - .columns.is-variable.is-5-touch { - --columnGap: 1.25rem; } } - @media screen and (min-width: 1024px) { - .columns.is-variable.is-5-desktop { - --columnGap: 1.25rem; } } - @media screen and (min-width: 1024px) 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: 1023px) { - .columns.is-variable.is-6-tablet-only { - --columnGap: 1.5rem; } } - @media screen and (max-width: 1023px) { - .columns.is-variable.is-6-touch { - --columnGap: 1.5rem; } } - @media screen and (min-width: 1024px) { - .columns.is-variable.is-6-desktop { - --columnGap: 1.5rem; } } - @media screen and (min-width: 1024px) 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: 1023px) { - .columns.is-variable.is-7-tablet-only { - --columnGap: 1.75rem; } } - @media screen and (max-width: 1023px) { - .columns.is-variable.is-7-touch { - --columnGap: 1.75rem; } } - @media screen and (min-width: 1024px) { - .columns.is-variable.is-7-desktop { - --columnGap: 1.75rem; } } - @media screen and (min-width: 1024px) 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: 1023px) { - .columns.is-variable.is-8-tablet-only { - --columnGap: 2rem; } } - @media screen and (max-width: 1023px) { - .columns.is-variable.is-8-touch { - --columnGap: 2rem; } } - @media screen and (min-width: 1024px) { - .columns.is-variable.is-8-desktop { - --columnGap: 2rem; } } - @media screen and (min-width: 1024px) 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 { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: block; - -ms-flex-preferred-size: 0; - flex-basis: 0; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 1; - flex-shrink: 1; - min-height: -webkit-min-content; - min-height: -moz-min-content; - 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 { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - 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: -webkit-box; - display: -ms-flexbox; - display: flex; } - .tile.is-1 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 8.33333%; } - .tile.is-2 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 16.66667%; } - .tile.is-3 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 25%; } - .tile.is-4 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 33.33333%; } - .tile.is-5 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 41.66667%; } - .tile.is-6 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 50%; } - .tile.is-7 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 58.33333%; } - .tile.is-8 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 66.66667%; } - .tile.is-9 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 75%; } - .tile.is-10 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 83.33333%; } - .tile.is-11 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 91.66667%; } - .tile.is-12 { - -webkit-box-flex: 0; - -ms-flex: none; - flex: none; - width: 100%; } } -/* Bulma Helpers */ -.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: #200117 !important; } - -a.has-text-dark:hover, a.has-text-dark:focus { - color: black !important; } - -.has-background-dark { - background-color: #200117 !important; } - -.has-text-primary { - color: #A00975 !important; } - -a.has-text-primary:hover, a.has-text-primary:focus { - color: #700652 !important; } - -.has-background-primary { - background-color: #A00975 !important; } - -.has-text-primary-light { - color: #feecf9 !important; } - -a.has-text-primary-light:hover, a.has-text-primary-light:focus { - color: #fbbbe9 !important; } - -.has-background-primary-light { - background-color: #feecf9 !important; } - -.has-text-primary-dark { - color: #f212b2 !important; } - -a.has-text-primary-dark:hover, a.has-text-primary-dark:focus { - color: #f443c2 !important; } - -.has-background-primary-dark { - background-color: #f212b2 !important; } - -.has-text-link { - color: #378BBA !important; } - -a.has-text-link:hover, a.has-text-link:focus { - color: #2b6e93 !important; } - -.has-background-link { - background-color: #378BBA !important; } - -.has-text-link-light { - color: #eff6fa !important; } - -a.has-text-link-light:hover, a.has-text-link-light:focus { - color: #c8e1ef !important; } - -.has-background-link-light { - background-color: #eff6fa !important; } - -.has-text-link-dark { - color: #317ca5 !important; } - -a.has-text-link-dark:hover, a.has-text-link-dark:focus { - color: #4297c7 !important; } - -.has-background-link-dark { - background-color: #317ca5 !important; } - -.has-text-info { - color: #3298dc !important; } - -a.has-text-info:hover, a.has-text-info:focus { - color: #207dbc !important; } - -.has-background-info { - background-color: #3298dc !important; } - -.has-text-info-light { - color: #eef6fc !important; } - -a.has-text-info-light:hover, a.has-text-info-light:focus { - color: #c2e0f5 !important; } - -.has-background-info-light { - background-color: #eef6fc !important; } - -.has-text-info-dark { - color: #1d72aa !important; } - -a.has-text-info-dark:hover, a.has-text-info-dark:focus { - color: #248fd6 !important; } - -.has-background-info-dark { - background-color: #1d72aa !important; } - -.has-text-success { - color: #48c774 !important; } - -a.has-text-success:hover, a.has-text-success:focus { - color: #34a85c !important; } - -.has-background-success { - background-color: #48c774 !important; } - -.has-text-success-light { - color: #effaf3 !important; } - -a.has-text-success-light:hover, a.has-text-success-light:focus { - color: #c8eed6 !important; } - -.has-background-success-light { - background-color: #effaf3 !important; } - -.has-text-success-dark { - color: #257942 !important; } - -a.has-text-success-dark:hover, a.has-text-success-dark:focus { - color: #31a058 !important; } - -.has-background-success-dark { - background-color: #257942 !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-warning-light { - color: #fffbeb !important; } - -a.has-text-warning-light:hover, a.has-text-warning-light:focus { - color: #fff1b8 !important; } - -.has-background-warning-light { - background-color: #fffbeb !important; } - -.has-text-warning-dark { - color: #947600 !important; } - -a.has-text-warning-dark:hover, a.has-text-warning-dark:focus { - color: #c79f00 !important; } - -.has-background-warning-dark { - background-color: #947600 !important; } - -.has-text-danger { - color: #f14668 !important; } - -a.has-text-danger:hover, a.has-text-danger:focus { - color: #ee1742 !important; } - -.has-background-danger { - background-color: #f14668 !important; } - -.has-text-danger-light { - color: #feecf0 !important; } - -a.has-text-danger-light:hover, a.has-text-danger-light:focus { - color: #fabdc9 !important; } - -.has-background-danger-light { - background-color: #feecf0 !important; } - -.has-text-danger-dark { - color: #cc0f35 !important; } - -a.has-text-danger-dark:hover, a.has-text-danger-dark:focus { - color: #ee2049 !important; } - -.has-background-danger-dark { - background-color: #cc0f35 !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; } - -.is-flex-direction-row { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: row !important; - flex-direction: row !important; } - -.is-flex-direction-row-reverse { - -webkit-box-orient: horizontal !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: row-reverse !important; - flex-direction: row-reverse !important; } - -.is-flex-direction-column { - -webkit-box-orient: vertical !important; - -webkit-box-direction: normal !important; - -ms-flex-direction: column !important; - flex-direction: column !important; } - -.is-flex-direction-column-reverse { - -webkit-box-orient: vertical !important; - -webkit-box-direction: reverse !important; - -ms-flex-direction: column-reverse !important; - flex-direction: column-reverse !important; } - -.is-flex-wrap-nowrap { - -ms-flex-wrap: nowrap !important; - flex-wrap: nowrap !important; } - -.is-flex-wrap-wrap { - -ms-flex-wrap: wrap !important; - flex-wrap: wrap !important; } - -.is-flex-wrap-wrap-reverse { - -ms-flex-wrap: wrap-reverse !important; - flex-wrap: wrap-reverse !important; } - -.is-justify-content-flex-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: flex-start !important; } - -.is-justify-content-flex-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: flex-end !important; } - -.is-justify-content-center { - -webkit-box-pack: center !important; - -ms-flex-pack: center !important; - justify-content: center !important; } - -.is-justify-content-space-between { - -webkit-box-pack: justify !important; - -ms-flex-pack: justify !important; - justify-content: space-between !important; } - -.is-justify-content-space-around { - -ms-flex-pack: distribute !important; - justify-content: space-around !important; } - -.is-justify-content-space-evenly { - -webkit-box-pack: space-evenly !important; - -ms-flex-pack: space-evenly !important; - justify-content: space-evenly !important; } - -.is-justify-content-start { - -webkit-box-pack: start !important; - -ms-flex-pack: start !important; - justify-content: start !important; } - -.is-justify-content-end { - -webkit-box-pack: end !important; - -ms-flex-pack: end !important; - justify-content: end !important; } - -.is-justify-content-left { - -webkit-box-pack: left !important; - -ms-flex-pack: left !important; - justify-content: left !important; } - -.is-justify-content-right { - -webkit-box-pack: right !important; - -ms-flex-pack: right !important; - justify-content: right !important; } - -.is-align-content-flex-start { - -ms-flex-line-pack: start !important; - align-content: flex-start !important; } - -.is-align-content-flex-end { - -ms-flex-line-pack: end !important; - align-content: flex-end !important; } - -.is-align-content-center { - -ms-flex-line-pack: center !important; - align-content: center !important; } - -.is-align-content-space-between { - -ms-flex-line-pack: justify !important; - align-content: space-between !important; } - -.is-align-content-space-around { - -ms-flex-line-pack: distribute !important; - align-content: space-around !important; } - -.is-align-content-space-evenly { - -ms-flex-line-pack: space-evenly !important; - align-content: space-evenly !important; } - -.is-align-content-stretch { - -ms-flex-line-pack: stretch !important; - align-content: stretch !important; } - -.is-align-content-start { - -ms-flex-line-pack: start !important; - align-content: start !important; } - -.is-align-content-end { - -ms-flex-line-pack: end !important; - align-content: end !important; } - -.is-align-content-baseline { - -ms-flex-line-pack: baseline !important; - align-content: baseline !important; } - -.is-align-items-stretch { - -webkit-box-align: stretch !important; - -ms-flex-align: stretch !important; - align-items: stretch !important; } - -.is-align-items-flex-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: flex-start !important; } - -.is-align-items-flex-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: flex-end !important; } - -.is-align-items-center { - -webkit-box-align: center !important; - -ms-flex-align: center !important; - align-items: center !important; } - -.is-align-items-baseline { - -webkit-box-align: baseline !important; - -ms-flex-align: baseline !important; - align-items: baseline !important; } - -.is-align-items-start { - -webkit-box-align: start !important; - -ms-flex-align: start !important; - align-items: start !important; } - -.is-align-items-end { - -webkit-box-align: end !important; - -ms-flex-align: end !important; - align-items: end !important; } - -.is-align-items-self-start { - -webkit-box-align: self-start !important; - -ms-flex-align: self-start !important; - align-items: self-start !important; } - -.is-align-items-self-end { - -webkit-box-align: self-end !important; - -ms-flex-align: self-end !important; - align-items: self-end !important; } - -.is-align-self-auto { - -ms-flex-item-align: auto !important; - align-self: auto !important; } - -.is-align-self-flex-start { - -ms-flex-item-align: start !important; - align-self: flex-start !important; } - -.is-align-self-flex-end { - -ms-flex-item-align: end !important; - align-self: flex-end !important; } - -.is-align-self-center { - -ms-flex-item-align: center !important; - align-self: center !important; } - -.is-align-self-baseline { - -ms-flex-item-align: baseline !important; - align-self: baseline !important; } - -.is-align-self-stretch { - -ms-flex-item-align: stretch !important; - align-self: stretch !important; } - -.is-flex-grow-0 { - -webkit-box-flex: 0 !important; - -ms-flex-positive: 0 !important; - flex-grow: 0 !important; } - -.is-flex-grow-1 { - -webkit-box-flex: 1 !important; - -ms-flex-positive: 1 !important; - flex-grow: 1 !important; } - -.is-flex-grow-2 { - -webkit-box-flex: 2 !important; - -ms-flex-positive: 2 !important; - flex-grow: 2 !important; } - -.is-flex-grow-3 { - -webkit-box-flex: 3 !important; - -ms-flex-positive: 3 !important; - flex-grow: 3 !important; } - -.is-flex-grow-4 { - -webkit-box-flex: 4 !important; - -ms-flex-positive: 4 !important; - flex-grow: 4 !important; } - -.is-flex-grow-5 { - -webkit-box-flex: 5 !important; - -ms-flex-positive: 5 !important; - flex-grow: 5 !important; } - -.is-flex-shrink-0 { - -ms-flex-negative: 0 !important; - flex-shrink: 0 !important; } - -.is-flex-shrink-1 { - -ms-flex-negative: 1 !important; - flex-shrink: 1 !important; } - -.is-flex-shrink-2 { - -ms-flex-negative: 2 !important; - flex-shrink: 2 !important; } - -.is-flex-shrink-3 { - -ms-flex-negative: 3 !important; - flex-shrink: 3 !important; } - -.is-flex-shrink-4 { - -ms-flex-negative: 4 !important; - flex-shrink: 4 !important; } - -.is-flex-shrink-5 { - -ms-flex-negative: 5 !important; - flex-shrink: 5 !important; } - -.is-clearfix::after { - clear: both; - content: " "; - display: table; } - -.is-pulled-left { - float: left !important; } - -.is-pulled-right { - float: right !important; } - -.is-radiusless { - border-radius: 0 !important; } - -.is-shadowless { - -webkit-box-shadow: none !important; - box-shadow: none !important; } - -.is-clickable { - cursor: pointer !important; - pointer-events: all !important; } - -.is-clipped { - overflow: hidden !important; } - -.is-relative { - position: relative !important; } - -.is-marginless { - margin: 0 !important; } - -.is-paddingless { - padding: 0 !important; } - -.m-0 { - margin: 0 !important; } - -.mt-0 { - margin-top: 0 !important; } - -.mr-0 { - margin-right: 0 !important; } - -.mb-0 { - margin-bottom: 0 !important; } - -.ml-0 { - margin-left: 0 !important; } - -.mx-0 { - margin-left: 0 !important; - margin-right: 0 !important; } - -.my-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; } - -.m-1 { - margin: 0.25rem !important; } - -.mt-1 { - margin-top: 0.25rem !important; } - -.mr-1 { - margin-right: 0.25rem !important; } - -.mb-1 { - margin-bottom: 0.25rem !important; } - -.ml-1 { - margin-left: 0.25rem !important; } - -.mx-1 { - margin-left: 0.25rem !important; - margin-right: 0.25rem !important; } - -.my-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; } - -.m-2 { - margin: 0.5rem !important; } - -.mt-2 { - margin-top: 0.5rem !important; } - -.mr-2 { - margin-right: 0.5rem !important; } - -.mb-2 { - margin-bottom: 0.5rem !important; } - -.ml-2 { - margin-left: 0.5rem !important; } - -.mx-2 { - margin-left: 0.5rem !important; - margin-right: 0.5rem !important; } - -.my-2, #fsdocs-content p { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; } - -.m-3 { - margin: 0.75rem !important; } - -.mt-3 { - margin-top: 0.75rem !important; } - -.mr-3 { - margin-right: 0.75rem !important; } - -.mb-3 { - margin-bottom: 0.75rem !important; } - -.ml-3 { - margin-left: 0.75rem !important; } - -.mx-3 { - margin-left: 0.75rem !important; - margin-right: 0.75rem !important; } - -.my-3 { - margin-top: 0.75rem !important; - margin-bottom: 0.75rem !important; } - -.m-4 { - margin: 1rem !important; } - -.mt-4 { - margin-top: 1rem !important; } - -.mr-4 { - margin-right: 1rem !important; } - -.mb-4 { - margin-bottom: 1rem !important; } - -.ml-4 { - margin-left: 1rem !important; } - -.mx-4 { - margin-left: 1rem !important; - margin-right: 1rem !important; } - -.my-4 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; } - -.m-5 { - margin: 1.5rem !important; } - -.mt-5 { - margin-top: 1.5rem !important; } - -.mr-5 { - margin-right: 1.5rem !important; } - -.mb-5 { - margin-bottom: 1.5rem !important; } - -.ml-5 { - margin-left: 1.5rem !important; } - -.mx-5 { - margin-left: 1.5rem !important; - margin-right: 1.5rem !important; } - -.my-5 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; } - -.m-6 { - margin: 3rem !important; } - -.mt-6 { - margin-top: 3rem !important; } - -.mr-6 { - margin-right: 3rem !important; } - -.mb-6 { - margin-bottom: 3rem !important; } - -.ml-6 { - margin-left: 3rem !important; } - -.mx-6 { - margin-left: 3rem !important; - margin-right: 3rem !important; } - -.my-6 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; } - -.p-0 { - padding: 0 !important; } - -.pt-0 { - padding-top: 0 !important; } - -.pr-0 { - padding-right: 0 !important; } - -.pb-0 { - padding-bottom: 0 !important; } - -.pl-0 { - padding-left: 0 !important; } - -.px-0 { - padding-left: 0 !important; - padding-right: 0 !important; } - -.py-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; } - -.p-1 { - padding: 0.25rem !important; } - -.pt-1 { - padding-top: 0.25rem !important; } - -.pr-1 { - padding-right: 0.25rem !important; } - -.pb-1 { - padding-bottom: 0.25rem !important; } - -.pl-1 { - padding-left: 0.25rem !important; } - -.px-1 { - padding-left: 0.25rem !important; - padding-right: 0.25rem !important; } - -.py-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; } - -.p-2 { - padding: 0.5rem !important; } - -.pt-2 { - padding-top: 0.5rem !important; } - -.pr-2 { - padding-right: 0.5rem !important; } - -.pb-2 { - padding-bottom: 0.5rem !important; } - -.pl-2 { - padding-left: 0.5rem !important; } - -.px-2 { - padding-left: 0.5rem !important; - padding-right: 0.5rem !important; } - -.py-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; } - -.p-3 { - padding: 0.75rem !important; } - -.pt-3 { - padding-top: 0.75rem !important; } - -.pr-3 { - padding-right: 0.75rem !important; } - -.pb-3 { - padding-bottom: 0.75rem !important; } - -.pl-3 { - padding-left: 0.75rem !important; } - -.px-3 { - padding-left: 0.75rem !important; - padding-right: 0.75rem !important; } - -.py-3 { - padding-top: 0.75rem !important; - padding-bottom: 0.75rem !important; } - -.p-4, #fsdocs-content blockquote { - padding: 1rem !important; } - -.pt-4 { - padding-top: 1rem !important; } - -.pr-4 { - padding-right: 1rem !important; } - -.pb-4 { - padding-bottom: 1rem !important; } - -.pl-4 { - padding-left: 1rem !important; } - -.px-4 { - padding-left: 1rem !important; - padding-right: 1rem !important; } - -.py-4 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; } - -.p-5 { - padding: 1.5rem !important; } - -.pt-5 { - padding-top: 1.5rem !important; } - -.pr-5 { - padding-right: 1.5rem !important; } - -.pb-5 { - padding-bottom: 1.5rem !important; } - -.pl-5 { - padding-left: 1.5rem !important; } - -.px-5 { - padding-left: 1.5rem !important; - padding-right: 1.5rem !important; } - -.py-5 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; } - -.p-6 { - padding: 3rem !important; } - -.pt-6 { - padding-top: 3rem !important; } - -.pr-6 { - padding-right: 3rem !important; } - -.pb-6 { - padding-bottom: 3rem !important; } - -.pl-6 { - padding-left: 3rem !important; } - -.px-6 { - padding-left: 3rem !important; - padding-right: 3rem !important; } - -.py-6 { - padding-top: 3rem !important; - padding-bottom: 3rem !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 { - 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: 1023px) { - .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: 1024px) { - .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: 1023px) { - .has-text-centered-tablet-only { - text-align: center !important; } } - -@media screen and (max-width: 1023px) { - .has-text-centered-touch { - text-align: center !important; } } - -@media screen and (min-width: 1024px) { - .has-text-centered-desktop { - text-align: center !important; } } - -@media screen and (min-width: 1024px) 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: 1023px) { - .has-text-justified-tablet-only { - text-align: justify !important; } } - -@media screen and (max-width: 1023px) { - .has-text-justified-touch { - text-align: justify !important; } } - -@media screen and (min-width: 1024px) { - .has-text-justified-desktop { - text-align: justify !important; } } - -@media screen and (min-width: 1024px) 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: 1023px) { - .has-text-left-tablet-only { - text-align: left !important; } } - -@media screen and (max-width: 1023px) { - .has-text-left-touch { - text-align: left !important; } } - -@media screen and (min-width: 1024px) { - .has-text-left-desktop { - text-align: left !important; } } - -@media screen and (min-width: 1024px) 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: 1023px) { - .has-text-right-tablet-only { - text-align: right !important; } } - -@media screen and (max-width: 1023px) { - .has-text-right-touch { - text-align: right !important; } } - -@media screen and (min-width: 1024px) { - .has-text-right-desktop { - text-align: right !important; } } - -@media screen and (min-width: 1024px) 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-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: "Nunito", sans-serif !important; } - -.is-family-secondary { - font-family: "Nunito", sans-serif !important; } - -.is-family-sans-serif { - font-family: "Nunito", sans-serif !important; } - -.is-family-monospace { - font-family: monospace !important; } - -.is-family-code { - font-family: 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: 1023px) { - .is-block-tablet-only { - display: block !important; } } - -@media screen and (max-width: 1023px) { - .is-block-touch { - display: block !important; } } - -@media screen and (min-width: 1024px) { - .is-block-desktop { - display: block !important; } } - -@media screen and (min-width: 1024px) 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: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; } - -@media screen and (max-width: 768px) { - .is-flex-mobile { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; } } - -@media screen and (min-width: 769px), print { - .is-flex-tablet { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; } } - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .is-flex-tablet-only { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; } } - -@media screen and (max-width: 1023px) { - .is-flex-touch { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; } } - -@media screen and (min-width: 1024px) { - .is-flex-desktop { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; } } - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .is-flex-desktop-only { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; } } - -@media screen and (min-width: 1216px) { - .is-flex-widescreen { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-flex-widescreen-only { - display: -webkit-box !important; - display: -ms-flexbox !important; - display: flex !important; } } - -@media screen and (min-width: 1408px) { - .is-flex-fullhd { - display: -webkit-box !important; - display: -ms-flexbox !important; - 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: 1023px) { - .is-inline-tablet-only { - display: inline !important; } } - -@media screen and (max-width: 1023px) { - .is-inline-touch { - display: inline !important; } } - -@media screen and (min-width: 1024px) { - .is-inline-desktop { - display: inline !important; } } - -@media screen and (min-width: 1024px) 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: 1023px) { - .is-inline-block-tablet-only { - display: inline-block !important; } } - -@media screen and (max-width: 1023px) { - .is-inline-block-touch { - display: inline-block !important; } } - -@media screen and (min-width: 1024px) { - .is-inline-block-desktop { - display: inline-block !important; } } - -@media screen and (min-width: 1024px) 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: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; } - -@media screen and (max-width: 768px) { - .is-inline-flex-mobile { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; } } - -@media screen and (min-width: 769px), print { - .is-inline-flex-tablet { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; } } - -@media screen and (min-width: 769px) and (max-width: 1023px) { - .is-inline-flex-tablet-only { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; } } - -@media screen and (max-width: 1023px) { - .is-inline-flex-touch { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; } } - -@media screen and (min-width: 1024px) { - .is-inline-flex-desktop { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; } } - -@media screen and (min-width: 1024px) and (max-width: 1215px) { - .is-inline-flex-desktop-only { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; } } - -@media screen and (min-width: 1216px) { - .is-inline-flex-widescreen { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; } } - -@media screen and (min-width: 1216px) and (max-width: 1407px) { - .is-inline-flex-widescreen-only { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - display: inline-flex !important; } } - -@media screen and (min-width: 1408px) { - .is-inline-flex-fullhd { - display: -webkit-inline-box !important; - display: -ms-inline-flexbox !important; - 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: 1023px) { - .is-hidden-tablet-only { - display: none !important; } } - -@media screen and (max-width: 1023px) { - .is-hidden-touch { - display: none !important; } } - -@media screen and (min-width: 1024px) { - .is-hidden-desktop { - display: none !important; } } - -@media screen and (min-width: 1024px) 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: 1023px) { - .is-invisible-tablet-only { - visibility: hidden !important; } } - -@media screen and (max-width: 1023px) { - .is-invisible-touch { - visibility: hidden !important; } } - -@media screen and (min-width: 1024px) { - .is-invisible-desktop { - visibility: hidden !important; } } - -@media screen and (min-width: 1024px) 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; } } - -/* Bulma Layout */ -.hero { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-pack: justify; - -ms-flex-pack: justify; - 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: 1023px) { - .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-item.active, - .hero.is-white .navbar-link:hover, - .hero.is-white .navbar-link.is-active, - .hero.is-white .navbar-link.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, .hero.is-white .tabs li.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.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.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: -o-linear-gradient(309deg, #e8e3e4 0%, white 71%, white 100%); - background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } - @media screen and (max-width: 768px) { - .hero.is-white.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, #e8e3e4 0%, white 71%, white 100%); - background-image: linear-gradient(141deg, #e8e3e4 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: 1023px) { - .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-item.active, - .hero.is-black .navbar-link:hover, - .hero.is-black .navbar-link.is-active, - .hero.is-black .navbar-link.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, .hero.is-black .tabs li.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.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.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: -o-linear-gradient(309deg, black 0%, #0a0a0a 71%, #181616 100%); - 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: -o-linear-gradient(309deg, black 0%, #0a0a0a 71%, #181616 100%); - background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } - .hero.is-light { - background-color: whitesmoke; - color: rgba(0, 0, 0, 0.7); } - .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: rgba(0, 0, 0, 0.7); } - .hero.is-light .subtitle { - color: rgba(0, 0, 0, 0.9); } - .hero.is-light .subtitle a:not(.button), - .hero.is-light .subtitle strong { - color: rgba(0, 0, 0, 0.7); } - @media screen and (max-width: 1023px) { - .hero.is-light .navbar-menu { - background-color: whitesmoke; } } - .hero.is-light .navbar-item, - .hero.is-light .navbar-link { - color: rgba(0, 0, 0, 0.7); } - .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, .hero.is-light .navbar-item.active, - .hero.is-light .navbar-link:hover, - .hero.is-light .navbar-link.is-active, - .hero.is-light .navbar-link.active { - background-color: #e8e8e8; - color: rgba(0, 0, 0, 0.7); } - .hero.is-light .tabs a { - color: rgba(0, 0, 0, 0.7); - opacity: 0.9; } - .hero.is-light .tabs a:hover { - opacity: 1; } - .hero.is-light .tabs li.is-active a, .hero.is-light .tabs li.active a { - opacity: 1; } - .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { - color: rgba(0, 0, 0, 0.7); } - .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.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.active a, .hero.is-light .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: whitesmoke; } - .hero.is-light.is-bold { - background-image: -o-linear-gradient(309deg, #dfd8d9 0%, whitesmoke 71%, white 100%); - 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: -o-linear-gradient(309deg, #dfd8d9 0%, whitesmoke 71%, white 100%); - background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } - .hero.is-dark { - background-color: #200117; - color: #fff; } - .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-dark strong { - color: inherit; } - .hero.is-dark .title { - color: #fff; } - .hero.is-dark .subtitle { - color: rgba(255, 255, 255, 0.9); } - .hero.is-dark .subtitle a:not(.button), - .hero.is-dark .subtitle strong { - color: #fff; } - @media screen and (max-width: 1023px) { - .hero.is-dark .navbar-menu { - background-color: #200117; } } - .hero.is-dark .navbar-item, - .hero.is-dark .navbar-link { - color: rgba(255, 255, 255, 0.7); } - .hero.is-dark a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .hero.is-dark .navbar-item.active, - .hero.is-dark .navbar-link:hover, - .hero.is-dark .navbar-link.is-active, - .hero.is-dark .navbar-link.active { - background-color: #070005; - color: #fff; } - .hero.is-dark .tabs a { - color: #fff; - opacity: 0.9; } - .hero.is-dark .tabs a:hover { - opacity: 1; } - .hero.is-dark .tabs li.is-active a, .hero.is-dark .tabs li.active a { - opacity: 1; } - .hero.is-dark .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a { - color: #fff; } - .hero.is-dark .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - .hero.is-dark .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #200117; } - .hero.is-dark.is-bold { - background-image: -o-linear-gradient(309deg, black 0%, #200117 71%, #3a0020 100%); - background-image: linear-gradient(141deg, black 0%, #200117 71%, #3a0020 100%); } - @media screen and (max-width: 768px) { - .hero.is-dark.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, black 0%, #200117 71%, #3a0020 100%); - background-image: linear-gradient(141deg, black 0%, #200117 71%, #3a0020 100%); } } - .hero.is-primary { - background-color: #A00975; - color: #fff; } - .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), - .hero.is-primary strong { - color: inherit; } - .hero.is-primary .title { - color: #fff; } - .hero.is-primary .subtitle { - color: rgba(255, 255, 255, 0.9); } - .hero.is-primary .subtitle a:not(.button), - .hero.is-primary .subtitle strong { - color: #fff; } - @media screen and (max-width: 1023px) { - .hero.is-primary .navbar-menu { - background-color: #A00975; } } - .hero.is-primary .navbar-item, - .hero.is-primary .navbar-link { - color: rgba(255, 255, 255, 0.7); } - .hero.is-primary a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .hero.is-primary .navbar-item.active, - .hero.is-primary .navbar-link:hover, - .hero.is-primary .navbar-link.is-active, - .hero.is-primary .navbar-link.active { - background-color: #880863; - color: #fff; } - .hero.is-primary .tabs a { - color: #fff; - opacity: 0.9; } - .hero.is-primary .tabs a:hover { - opacity: 1; } - .hero.is-primary .tabs li.is-active a, .hero.is-primary .tabs li.active a { - opacity: 1; } - .hero.is-primary .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a { - color: #fff; } - .hero.is-primary .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover { - background-color: rgba(10, 10, 10, 0.1); } - .hero.is-primary .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #A00975; } - .hero.is-primary.is-bold { - background-image: -o-linear-gradient(309deg, #760068 0%, #A00975 71%, #bd056a 100%); - background-image: linear-gradient(141deg, #760068 0%, #A00975 71%, #bd056a 100%); } - @media screen and (max-width: 768px) { - .hero.is-primary.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, #760068 0%, #A00975 71%, #bd056a 100%); - background-image: linear-gradient(141deg, #760068 0%, #A00975 71%, #bd056a 100%); } } - .hero.is-link { - background-color: #378BBA; - 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: 1023px) { - .hero.is-link .navbar-menu { - background-color: #378BBA; } } - .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-item.active, - .hero.is-link .navbar-link:hover, - .hero.is-link .navbar-link.is-active, - .hero.is-link .navbar-link.active { - background-color: #317ca6; - 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, .hero.is-link .tabs li.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.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.active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #378BBA; } - .hero.is-link.is-bold { - background-image: -o-linear-gradient(309deg, #22859c 0%, #378BBA 71%, #3d82ce 100%); - background-image: linear-gradient(141deg, #22859c 0%, #378BBA 71%, #3d82ce 100%); } - @media screen and (max-width: 768px) { - .hero.is-link.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, #22859c 0%, #378BBA 71%, #3d82ce 100%); - background-image: linear-gradient(141deg, #22859c 0%, #378BBA 71%, #3d82ce 100%); } } - .hero.is-info { - background-color: #3298dc; - 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: 1023px) { - .hero.is-info .navbar-menu { - background-color: #3298dc; } } - .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-item.active, - .hero.is-info .navbar-link:hover, - .hero.is-info .navbar-link.is-active, - .hero.is-info .navbar-link.active { - background-color: #238cd1; - 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, .hero.is-info .tabs li.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.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.active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #3298dc; } - .hero.is-info.is-bold { - background-image: -o-linear-gradient(309deg, #159dc6 0%, #3298dc 71%, #4389e5 100%); - background-image: linear-gradient(141deg, #159dc6 0%, #3298dc 71%, #4389e5 100%); } - @media screen and (max-width: 768px) { - .hero.is-info.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, #159dc6 0%, #3298dc 71%, #4389e5 100%); - background-image: linear-gradient(141deg, #159dc6 0%, #3298dc 71%, #4389e5 100%); } } - .hero.is-success { - background-color: #48c774; - 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: 1023px) { - .hero.is-success .navbar-menu { - background-color: #48c774; } } - .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-item.active, - .hero.is-success .navbar-link:hover, - .hero.is-success .navbar-link.is-active, - .hero.is-success .navbar-link.active { - background-color: #3abb67; - 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, .hero.is-success .tabs li.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.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.active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #48c774; } - .hero.is-success.is-bold { - background-image: -o-linear-gradient(309deg, #29b342 0%, #48c774 71%, #56d296 100%); - background-image: linear-gradient(141deg, #29b342 0%, #48c774 71%, #56d296 100%); } - @media screen and (max-width: 768px) { - .hero.is-success.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, #29b342 0%, #48c774 71%, #56d296 100%); - background-image: linear-gradient(141deg, #29b342 0%, #48c774 71%, #56d296 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: 1023px) { - .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-item.active, - .hero.is-warning .navbar-link:hover, - .hero.is-warning .navbar-link.is-active, - .hero.is-warning .navbar-link.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, .hero.is-warning .tabs li.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.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.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: -o-linear-gradient(309deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); - 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: -o-linear-gradient(309deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); - background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } } - .hero.is-danger { - background-color: #f14668; - 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: 1023px) { - .hero.is-danger .navbar-menu { - background-color: #f14668; } } - .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-item.active, - .hero.is-danger .navbar-link:hover, - .hero.is-danger .navbar-link.is-active, - .hero.is-danger .navbar-link.active { - background-color: #ef2e55; - 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, .hero.is-danger .tabs li.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.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.active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { - background-color: #fff; - border-color: #fff; - color: #f14668; } - .hero.is-danger.is-bold { - background-image: -o-linear-gradient(309deg, #fa0a62 0%, #f14668 71%, #f7595f 100%); - background-image: linear-gradient(141deg, #fa0a62 0%, #f14668 71%, #f7595f 100%); } - @media screen and (max-width: 768px) { - .hero.is-danger.is-bold .navbar-menu { - background-image: -o-linear-gradient(309deg, #fa0a62 0%, #f14668 71%, #f7595f 100%); - background-image: linear-gradient(141deg, #fa0a62 0%, #f14668 71%, #f7595f 100%); } } - .hero.is-small .hero-body { - padding: 1.5rem; } - @media screen and (min-width: 769px), print { - .hero.is-medium .hero-body { - padding: 9rem 1.5rem; } } - @media screen and (min-width: 769px), print { - .hero.is-large .hero-body { - padding: 18rem 1.5rem; } } - .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; } - .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 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%; - -webkit-transform: translate3d(-50%, -50%, 0); - 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: -webkit-box; - display: -ms-flexbox; - display: flex; } - .hero-buttons .button:not(:last-child) { - margin-bottom: 0.75rem; } } - @media screen and (min-width: 769px), print { - .hero-buttons { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; } - .hero-buttons .button:not(:last-child) { - margin-right: 1.5rem; } } -.hero-head, -.hero-foot { - -webkit-box-flex: 0; - -ms-flex-positive: 0; - flex-grow: 0; - -ms-flex-negative: 0; - flex-shrink: 0; } - -.hero-body { - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -ms-flex-negative: 0; - flex-shrink: 0; - padding: 3rem 1.5rem; } - -.section { - padding: 3rem 1.5rem; } - @media screen and (min-width: 1024px) { - .section.is-medium { - padding: 9rem 1.5rem; } - .section.is-large { - padding: 18rem 1.5rem; } } -.footer { - background-color: #fafafa; - padding: 3rem 1.5rem 6rem; } - -#fsdocs-searchbox { - margin: 0 auto; } - -@media screen and (min-width: 768px) { - #fsdocs-menu { - border-right: 1px solid #200117; - position: sticky; - display: inline-block; - vertical-align: top; - height: 100vh; - top: 0; - bottom: 0; - overflow-y: auto; - background-color: whitesmoke; } } - -@media screen and (max-width: 768px) { - #fsdocs-menu { - background-color: #ededed; } - #fsdocs-menu #fsdocs-menu { - border: none; } } - -.nav-header { - border-bottom: 1px dashed #A00975; - list-style: none; - color: #A00975; } - -#fsdocs-content h1 a, #fsdocs-content h1 a:hover, #fsdocs-content h1 a:focus, -#fsdocs-content h2 a, #fsdocs-content h2 a:hover, #fsdocs-content h2 a:focus, -#fsdocs-content h3 a, #fsdocs-content h3 a:hover, #fsdocs-content h3 a:focus, -#fsdocs-content h4 a, #fsdocs-content h4 a:hover, #fsdocs-content h4 a:focus, -#fsdocs-content h5 a, #fsdocs-content h5 a:hover, #fsdocs-content h5 a:focus, -#fsdocs-content h6 a, #fsdocs-content h6 a:hover, #fsdocs-content h6 a:focus { - color: #A00975; } - -#fsdocs-content h1 a { - border-bottom: 8px solid #200117; } - -#fsdocs-content h2 a { - border-bottom: 5px solid #200117; } - -#fsdocs-content h3 a, -#fsdocs-content h4 a { - border-bottom: 2px solid #200117; } - -#fsdocs-content h5 a, -#fsdocs-content h6 a { - border-bottom: 1px solid #200117; } - -#fsdocs-content li { - margin: initial; } - -strong { - border-bottom: 2px solid #A00975; } - -em { - color: #A00975; } - -#fsdocs-content ul { - -webkit-padding-start: 40px; - padding-inline-start: 40px; - list-style-type: disc; } - -#fsdocs-content ol { - -webkit-padding-start: 40px; - padding-inline-start: 40px; - list-style-type: decimal; } - -#fsdocs-content blockquote { - display: block; - -webkit-margin-before: 1em; - margin-block-start: 1em; - -webkit-margin-after: 1em; - margin-block-end: 1em; - -webkit-margin-start: 40px; - margin-inline-start: 40px; - -webkit-margin-end: 40px; - margin-inline-end: 40px; - background-color: whitesmoke; - border-left: 4px solid #A00975; } - -#fsdocs-content table.pre, #fsdocs-content pre.fssnip, #fsdocs-content pre { - background-color: #200117 !important; - color: #fafafa !important; - overflow-x: auto; - display: block; - font-weight: initial; } - -#fsdocs-content pre.fssnip code { - font: 0.85rem 'Roboto Mono', monospace; - font-weight: initial; } - -#fsdocs-menu::-webkit-scrollbar { - width: 1px; } - -#fsdocs-menu::-webkit-scrollbar-thumb { - border-radius: 5px; - background-color: #200117; } - -#fsdocs-content table.pre::-webkit-scrollbar-track, -#fsdocs-content pre.fssnip ::-webkit-scrollbar-track, -#fsdocs-content pre ::-webkit-scrollbar-track { - box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); - -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); - border-radius: 5px; - background-color: #200117; } - -#fsdocs-content table.pre::-webkit-scrollbar, -#fsdocs-content pre.fssnip ::-webkit-scrollbar, -#fsdocs-content pre ::-webkit-scrollbar { - height: 8px; - background-color: #200117; - border-radius: 5px; } - -#fsdocs-content table.pre::-webkit-scrollbar-thumb, -#fsdocs-content pre.fssnip ::-webkit-scrollbar-thumb, -#fsdocs-content pre ::-webkit-scrollbar-thumb { - border-radius: 5px; - box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); - -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3); - background-color: #A00975; } - -/*-------------------------------------------------------------------------- - Formatting for F# code snippets -/*--------------------------------------------------------------------------*/ -.fsdocs-param-name, -.fsdocs-return-name, -.fsdocs-param { - font-weight: 900; - font-size: 0.85rem; - font-family: 'Roboto Mono', monospace; } - -/* strings --- and stlyes for other string related formats */ -#fsdocs-content span.s { - color: #d59a1b; } - -/* printf formatters */ -#fsdocs-content span.pf { - color: #A00975; } - -/* escaped chars */ -#fsdocs-content span.e { - color: #d59a1b; } - -/* identifiers --- and styles for more specific identifier types */ -#fsdocs-content span.id { - color: #fafafa; } - -/* module */ -#fsdocs-content span.m { - color: #44d57f; } - -/* reference type */ -#fsdocs-content span.rt { - color: #44d57f; } - -/* value type */ -#fsdocs-content span.vt { - color: #44d57f; } - -/* interface */ -#fsdocs-content span.if { - color: #44d57f; } - -/* type argument */ -#fsdocs-content span.ta { - color: #44d57f; } - -/* disposable */ -#fsdocs-content span.d { - color: #c6ffdd; } - -/* property */ -#fsdocs-content span.prop { - color: #fafafa; } - -/* punctuation */ -#fsdocs-content span.p { - color: #fafafa; } - -#fsdocs-content span.pn { - color: #fafafa; } - -#fsdocs-content span.f { - color: #fafafa; } - -#fsdocs-content span.fn { - color: #d2c572; } - -/* active pattern */ -#fsdocs-content span.pat { - color: #438AFE; } - -/* union case */ -#fsdocs-content span.u { - color: #44d57f; } - -/* enumeration */ -#fsdocs-content span.e { - color: #44d57f; } - -/* keywords */ -#fsdocs-content span.k { - color: #F99BDE; } - -/* comment */ -#fsdocs-content span.c { - color: #6A9955; } - -#fsdocs-content span.o { - color: #D12F67; } - -/* numbers */ -#fsdocs-content span.n { - color: #c6ffdd; } - -/* line number */ -#fsdocs-content span.l { - color: #fafafa; } - -/* mutable var or ref cell */ -#fsdocs-content span.v { - color: #d2c572; - font-weight: bold; } - -/* inactive code */ -#fsdocs-content span.inactive { - color: #808080; } - -/* preprocessor */ -#fsdocs-content span.prep { - color: #ff9b9b; } - -/* fsi output */ -#fsdocs-content span.fsi { - color: #fafafa; } - -/* tool tip */ -div.fsdocs-tip { - background: #475b5f; - border-radius: 4px; - font: 11pt 'Droid Sans', arial, sans-serif; - padding: 6px 8px 6px 8px; - display: none; - color: #d1d1d1; - pointer-events: none; } - -div.fsdocs-tip code { - color: #d1d1d1; - font: 11pt 'Droid Sans', arial, sans-serif; } - -div.fsdocs-tip em { - color: #6A9955; } - -/*# sourceMappingURL=C:\Users\schne\source\repos\fslaborg\docs-template\Content\docs\content\fsdocs-custom.css.map */ \ No newline at end of file diff --git a/docs/devnotes.md b/docs/devnotes.md index 047b0409..efa5e186 100644 --- a/docs/devnotes.md +++ b/docs/devnotes.md @@ -1,67 +1,43 @@ --- -category: Developer -categoryindex: 2 -index: 3 +category: Advanced +categoryindex: 8 +index: 1 --- Developer notes =============== -There are two things that make the R type provider tricky: - - * When you use R provider via NuGet and the F# compiler references the - R provider, it attempts to load it from the location where NuGet puts - it. This is typically `packages/RProvider.1.0.8/lib`. This directory - does *not* contain `RDotNet.dll` (which is installed in `packages/R.NET.1.3.5/lib/net40`) - and so the loading could fail. - - To avoid this, we need to make sure that the assembly that is loaded by - the F# compiler (and Visual Studio) does not trigger loading of R.NET - immediately - that way, we can setup `AssemblyResolve` event handler - and load R.NET assembly from another directory. - - * Connecting to R is not entirely stable and so we do not want to crash the - F# compiler (or Visual Studio) when something goes wrong with R. For this - reason, we run the type discovery in a separate process and communicate - with it via .NET remoting. +Binding to R's native C API is not entirely stable and so we do not want to crash the +F# compiler (or Visual Studio / Ionide / FSAC) when something goes wrong with R. For this +reason, we run the type discovery in a separate process and communicate +with it via .NET pipes. Project structure ----------------- -To solve the two issues outlined above, the project structure looks like this: +To account for the single-threaded nature of R, we use the following structure.
-Things to keep in mind ----------------------- +The individual assemblies are as follows: -Here is what you need to know about individual assemblies in the solution: + * `RProvider.Abstractions`. Contains user-facing root erasable types that + are referenced by both the design-time and runtime parts of the type provider. - * `RProvider.Runtime.dll` - this is the assembly that contains most of the - interesting runtime functionality (such as initialization of R, interop + * `RProvider.dll` - this is runtime assembly. Contains runtime + functionality (such as initialization of R, interop with R and converters that convert values between F# and R). It also contains - helpers (logging, etc.). - - This assembly references R.NET in its public assemblies and so when it - is loaded, .NET needs to be able to load R.NET (i.e. the `AssemblyResolve` - event handler needs to be set up). - - * `RProvider.dll` - this is the assembly that the user of R provider will - reference. It does not contain any useful code - it only contains - `TypeProviderAssembly` attribute pointing to the assembly with the actual - type provider code. - - Note that we cannot put the functionality from `RProvider.Runtime.dll` - here, because the code needs to be referenced by the other two assemblies - (that are compiled before the type provider can be loaded). + helpers (logging, etc.). This is the assembly that the user of R provider will + reference. It contains the `TypeProviderAssembly` attribute pointing to + the assembly with the actual type provider code. * `RProvider.DesignTime.dll` - this is where the type provider code lives. - This sets up `AssemblyResolve` event handler and then it generates types - (by calling the `RProvider.Server.exe` to do the type discovery). + This generates types by calling the `RProvider.Server` executable to do the type discovery. - * `RProvider.Server.exe` - this is started as a stand-alone process that + * `RProvider.Server` - this is started as a stand-alone process that performs type and package discovery in R. It is called by the DesignTime component and restarted automatically. This also needs to setup the - `AssemblyResolve` event handler. \ No newline at end of file + `AssemblyResolve` event handler. It is compiled as platform- + and architecture-specific executables, so an exe on windows for example. \ No newline at end of file diff --git a/docs/diagnostics.md b/docs/diagnostics.md index a1520003..8c454b2e 100644 --- a/docs/diagnostics.md +++ b/docs/diagnostics.md @@ -1,60 +1,68 @@ --- -category: Developer -categoryindex: 2 -index: 3 +category: Advanced +categoryindex: 8 +index: 2 --- Diagnostics and debugging ========================= -The R type provider has an extensive logging to help developers diagnose -potential issues. If you encounter any issues with the R type provider, this -page gives you all the information you need to create a log file with detailed -trace of what is going one. This may give you some hints on what is wrong & a -detailed report that you can send when [submitting an -issue](https://github.com/fslaborg/RProvider/issues). +The R type provider uses a common logging system across all of its components. +The design-time, runtime, and server instances all log to a common log file. -**TL;DR** The logging is enabled by setting an environment variable -`RPROVIDER_LOG` to a file name where the log should be saved. The file does -not have to exist, but the folder where it is located has to. **You should use -an absolute (full) path, as otherwise the server will create a seperate log in the -nuget package directory.** +The logfile is disabled by default. It is enabled by setting the environment +variable `RPROVIDER_LOG` to `true` (/ `on` / `1`). -Enabling logging on Windows +If RProvider is not working correctly, the log file may give you some hints on what is wrong and provide details +that you can send when [submitting an issue](https://github.com/fslaborg/RProvider/issues). + +Log location +--------------------------- + +The rprovider.log file will be created and appended +to depending on the OS it is run on. On macOS, the log will also display in the Console app that is an included macOS utility. + +* macOS: ~/Library/Logs/\RProvider/rprovider.log +* Windows: %LOCALAPPDATA%\RProvider\rprovider.log +* Linux: ~/.local/state/RProvider/rprovider.log + + +To enable logging --------------------------- -On Windows, you can set environment variables by going to system properties -(this varies depending on the OS version, but generally right click on -"My Computer" and select a link or button saying something like "Change settings"). +Logging is controlled by a single environment variable: + +```bash +RPROVIDER_LOG=true +``` + +### Windows -This should open a new dialog, where you can go to "Advanced", and click on the -"Environment Variables" button. Here, you can add the variable as either per-user -or per-system and save it. For example, create a folder `C:\Temp` and set -`RPROVIDER_LOG` to `C:\Temp\rlog.txt`. After you restart Visual Studio, the -R provider will start logging. +To set on Windows: +1. Open System Properties → Advanced → Environment Variables +2. Under User variables, click New… +3. Add: -Enabling logging on Mac/Linux ------------------------------ +``` +Name: RPROVIDER_LOG +Value: true +``` +4. Restart Visual Studio / Code / your IDE so that it picks up the new environment variable. -If you're using Xamarin Studio on Mac, then the easiest option is to set the -variable from Terminal and then start Xamarin Studio from terminal. Note that -if you set the environment variable from terminal, but launch Xamarin Studio -from Dock or in some other way, it will not see the variable! +### macOS -The following should do the trick (assuming the folder `/Users/tomasp/Temp` exists): +On macOS, apps do not inherit Terminal environment variables. You must therefore set the environment variable and launch your IDE from the same terminal session. For example: - [lang=text] - export RPROVIDER_LOG=/Users/tomasp/Temp/rlog.txt - open -n /Applications/Xamarin\ Studio.app/ +```bash +export RPROVIDER_LOG=true +open -n /Applications/Visual\ Studio\ Code.app +``` -This will set the variable and start a new instance of Xamarin Studio in the current -context. Once it appears, reporduce the operation that causes the error, close -Xamarin Studio and look at the log file. +### Linux -Enabling logging in a custom build ----------------------------------- +Similar to macOS, to set temporarily and launch VS Code: -If you're building R provider from source, you can also enable logging by changing -the `loggingEnabled` constant in the source code (and change `logFile` if you want -to override the default location). See the [right place for this on -GitHub](https://github.com/fslaborg/RProvider/blob/master/src/RProvider/Logging.fs#L13). +```bash +export RPROVIDER_LOG=true +code . +``` diff --git a/docs/expressions.fsx b/docs/expressions.fsx index 7f65559c..dd19bf2b 100644 --- a/docs/expressions.fsx +++ b/docs/expressions.fsx @@ -1,19 +1,15 @@ (** --- -category: Documentation -categoryindex: 1 -index: 4 +title: R Expressions +category: Core Concepts +categoryindex: 3 +index: 1 --- *) (*** condition: prepare ***) #nowarn "211" -#r "../src/RProvider/bin/Release/net5.0/DynamicInterop.dll" -#r "../src/RProvider/bin/Release/net5.0/RDotNet.dll" -#r "../src/RProvider/bin/Release/net5.0/RDotNet.FSharp.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.Runtime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.DesignTime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.dll" +#r "nuget: RProvider, 0.0.1-local" (*** condition: fsx ***) #if FSX #r "nuget: RProvider,{{package-version}}" @@ -27,7 +23,7 @@ index: 4 Working with R expressions =============== -RProvider represents R objects and values through a `SymbolicExpression` type (derived from R.NET). RProvider includes a `SymbolicExpression` module that allows you to work with R expressions in a more idiomatic way using forward pipes (`|>`). First, open RProvider, its custom operators and any packages you need: +RProvider represents R objects and values through an `RExpr` type. RProvider includes an `RExpr` module that allows you to work with R expressions in a more idiomatic way using forward pipes (`|>`). First, open RProvider, its custom operators and any packages you need: *) open RProvider @@ -44,22 +40,21 @@ open RProvider.stats For this example, let's set up an S4 class and object from scratch: *) -let x = R.rnorm(100) -x.Engine.Evaluate("setClass('testclass', representation(foo='character', bar='integer'))") -let s4 = x.Engine.Evaluate("new('testclass', foo='s4', bar=1:4)") +R.eval "setClass('testclass', representation(foo='character', bar='integer'))" +let s4 = R.eval "new('testclass', foo='s4', bar=1:4)" (** You can find out if there are slots using the `slots` and `trySlots` functions: *) -s4 |> SymbolicExpression.slots -s4 |> SymbolicExpression.trySlots -R.mtcars |> SymbolicExpression.trySlots +s4 |> RExpr.slots +s4 |> RExpr.trySlots +R.mtcars |> RExpr.trySlots (** You can access slot values similarly with the `slot` and `trySlot` functions: *) -s4 |> SymbolicExpression.slot "foo" -s4 |> SymbolicExpression.trySlot "foo" -s4 |> SymbolicExpression.trySlot "doesntexist" +s4 |> RExpr.slot "foo" +s4 |> RExpr.trySlot "foo" +s4 |> RExpr.trySlot "doesntexist" diff --git a/docs/fslab.fsx b/docs/fslab.fsx deleted file mode 100644 index 5cff13fa..00000000 --- a/docs/fslab.fsx +++ /dev/null @@ -1,70 +0,0 @@ -(** ---- -category: Documentation -categoryindex: 1 -index: 6 ---- -*) - -(*** condition: prepare ***) -#nowarn "211" -#r "../src/RProvider/bin/Release/net5.0/RDotNet.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.Runtime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.DesignTime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.dll" -(*** condition: fsx ***) -#if FSX -#r "nuget: RProvider,{{package-version}}" -#endif // FSX -(*** condition: ipynb ***) -#if IPYNB -#r "nuget: RProvider,{{package-version}}" -#endif // IPYNB - -(** -Working with the FsLab ecosystem -=============================== - -The R type provider is interoperable with other packages in -FsLab through its plugin architecture. Some examples are shown -below. If you would like to see better interoperability between -R and other FsLab packages, submit an issue to their repository -for the creation of an RProvider plugin. - -### Deedle - data frame manipulation - -Deedle provides types for F# data frame and time series manipulation. -To use with RProvider, first install the Deedle.RPlugin package from -nuget; once this is installed, you do not need to reference it in your -script files. -*) - -#r "nuget:Deedle.RPlugin" - -(** -In a new F# script file, first open Deedle and RProvider: - - [lang=fsharp] - #r "nuget:RProvider" -*) - -#r "nuget:Deedle" - -open RProvider -open RProvider.``base`` -open RProvider.datasets -open Deedle - -(** -The Deedle R plugin should be loaded by the R type provider automatically. -You can now convert back and forth between R data frames and Deedle frames -by using type annotations: -*) - -let mtcars : Frame = R.mtcars.GetValue() - -// Pass Deedle data to R and print the R output -R.as_data_frame(mtcars) - -// Pass Deedle data to R and get column means -R.colMeans(mtcars) \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 5c928868..ebc85876 100644 --- a/docs/index.md +++ b/docs/index.md @@ -45,7 +45,7 @@ from its GUI, [RStudio](http://www.rstudio.com/), or command line interactive en ## Using the R Type Provider -RProvider is distributed as a nuget package. After [setting up the pre-requisites (installing .NET 5+, R and setting the R_HOME environment variable](requirements.html), you can use as follows: +RProvider is distributed as a nuget package. After [setting up the pre-requisites (installing .NET 10+, R 4.5+ and setting the R_HOME environment variable](requirements.html), you can use as follows: In an F# script: ```fsharp @@ -62,9 +62,7 @@ dotnet add package RProvider Contributing and copyright -------------------------- -The project has been originally developed by [BlueMountain Capital](https://www.bluemountaincapital.com/) and contributors. - -For compilation of the source, you will need F# 5.0 or later. For runtime you'll need .NET 5. +The project was originally developed by [BlueMountain Capital](https://www.bluemountaincapital.com/). The project is hosted on [GitHub][gh] where you can [report issues][issues], fork the project and submit pull requests. diff --git a/docs/requirements.fsx b/docs/installation.fsx similarity index 91% rename from docs/requirements.fsx rename to docs/installation.fsx index 1919887f..8540dd31 100644 --- a/docs/requirements.fsx +++ b/docs/installation.fsx @@ -1,17 +1,15 @@ (** --- -category: Documentation -categoryindex: 1 +title: Installing +category: Getting Started +categoryindex: 2 index: 1 --- *) (*** condition: prepare ***) #nowarn "211" -#r "../src/RProvider/bin/Release/net5.0/RDotNet.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.Runtime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.DesignTime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.dll" +#r "nuget: RProvider, 0.0.1-local" (*** condition: fsx ***) #if FSX #r "nuget: RProvider,{{package-version}}" @@ -22,7 +20,7 @@ index: 1 #endif // IPYNB (** -Requirements: Getting Started +Installing RProvider ================================= The R type provider can be used on macOS, Windows, and Linux (for supported OS versions, @@ -111,7 +109,7 @@ R.x11() // Calculate sin using the R 'sin' function // (converting results to 'float') and plot it [ for x in 0.0 .. 0.1 .. 3.14 -> - R.sin(x).GetValue() ] + R.sin(x).FromR() ] |> R.plot // Plot the data from the standard 'Nile' data set diff --git a/docs/internals.md b/docs/internals.md index 2f71b686..9d29a58f 100644 --- a/docs/internals.md +++ b/docs/internals.md @@ -1,21 +1,21 @@ --- -category: Developer -categoryindex: 2 +category: Advanced +categoryindex: 8 index: 3 --- # How does it work? ## How do we call into R? -The RProvider loads the R.DLL (which contains the core of R) into the calling process, via [RDotNet](http://rdotnet.codeplex.com/). This will happen in several places: +The RProvider binds to the native R C API within the calling process (using [RBridge](https://github.com/AndrewIOM/fsharp-r-bridge/)). This happens in several places: * In the IDE, to provide IntelliSense for packages/functions/parameters. * In the F# compiler, to generate code that calls the R functionality you are calling. * In your resulting binary, to execute the generated code. * In F# Interactive, to do all of the above interactively. -## How does RDotNet help? -RDotNet allows R functionality to be called from .NET, and exposes an object model for representing R values (based on the type RDotNet.SymbolExpression). Using RDotNet, one executes R code by passing strings of R code into an Evaluate method. From the RProvider, we introspect on available R packages and functions and expose them as members of provided types. You can then call them just like regular .NET functions, with IntelliSense and compile-time checking. RDotNet.SymbolicExpression provides a nice OO model of the R native SEXP type, so we simply expose results using that type. To make it more friendly from F#, we extend it with some extension members and active patterns. +## How does RProvider rely on RBridge? +RBridge allows R functionality to be called from .NET, and exposes a type that represents R values (RBridge.SymbolicExpression). R code may be executed by passing the code as a string into an eval method. From the RProvider, we introspect on available R packages and functions and expose them as members of provided types. You can then call them just like regular .NET functions, with IntelliSense and compile-time checking. RBridge handles raw R interop and basic structural elements of R types. RProvider adds a semantic layer on top of this that provides a richer representation of R expression types and operations. ## How do we expose R packages? RProvider determines the set of installed packages in your R installation and exposes them as namespaces under the root RProvider namespace. This allows you to 'open' the namespaces you want to use as if they were regular .NET namespaces. diff --git a/docs/nuget.config b/docs/nuget.config new file mode 100644 index 00000000..487511c7 --- /dev/null +++ b/docs/nuget.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/docs/operators.fsx b/docs/operators.fsx index 2416b619..05f32b2b 100644 --- a/docs/operators.fsx +++ b/docs/operators.fsx @@ -1,19 +1,14 @@ (** --- -category: Documentation -categoryindex: 1 -index: 4 +category: Core Concepts +categoryindex: 3 +index: 3 --- *) (*** condition: prepare ***) #nowarn "211" -#r "../src/RProvider/bin/Release/net5.0/DynamicInterop.dll" -#r "../src/RProvider/bin/Release/net5.0/RDotNet.dll" -#r "../src/RProvider/bin/Release/net5.0/RDotNet.FSharp.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.Runtime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.DesignTime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.dll" +#r "nuget: RProvider, 0.0.1-local" (*** condition: fsx ***) #if FSX #r "nuget: RProvider,{{package-version}}" @@ -55,9 +50,8 @@ R.mtcars?mpg ### S4 object: access a slot *) -let x = R.rnorm(100) -x.Engine.Evaluate("setClass('testclass', representation(foo='character', bar='integer'))") +R.eval "setClass('testclass', representation(foo='character', bar='integer'))" -let test = x.Engine.Evaluate("new('testclass', foo='s4', bar=1:4)") +let test = R.eval "new('testclass', foo='s4', bar=1:4)" test?foo diff --git a/docs/howto.md b/docs/packages.md similarity index 96% rename from docs/howto.md rename to docs/packages.md index df9a3db8..4833fe05 100644 --- a/docs/howto.md +++ b/docs/packages.md @@ -1,7 +1,8 @@ --- -category: Documentation -categoryindex: 1 -index: 3 +title: Using R Packages +category: Guides +categoryindex: 4 +index: 2 --- # How to diff --git a/docs/passing-data.fsx b/docs/passing-data.fsx index a15dbc6f..f120007d 100644 --- a/docs/passing-data.fsx +++ b/docs/passing-data.fsx @@ -1,18 +1,14 @@ (** --- -category: Documentation -categoryindex: 1 -index: 3 +category: Core Concepts +categoryindex: 3 +index: 2 --- *) (*** condition: prepare ***) #nowarn "211" -#r "../src/RProvider/bin/Release/net5.0/RDotNet.dll" -#r "../src/RProvider/bin/Release/net5.0/RDotNet.FSharp.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.Runtime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.DesignTime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.dll" +#r "nuget: RProvider, 0.0.1-local" (*** condition: fsx ***) #if FSX #r "nuget: RProvider,{{package-version}}" @@ -23,13 +19,12 @@ index: 3 #endif // IPYNB -open RDotNet open RProvider (** # Passing Data Between F# and R -## Passing Parameters +## F# to R: passing data to functions ### Parameter Passing Conventions @@ -62,7 +57,7 @@ Since all arguments to functions are of type obj, it is not necessarily obvious dataframeCall R.data_frame, passing column vectors in a dictionary -**NB**: For any input, you can also pass a SymbolicExpression instance you received as the result of calling another R function. Doing so it a very efficient way of passing data from one function to the next, since there is no marshalling between .NET and R types in that case. +**NB**: For any input, you can also pass an RExpr instance you received as the result of calling another R function. Doing so it a very efficient way of passing data from one function to the next, since there is no marshalling between .NET and R types in that case. ### Creating and passing an R function R has some high-level functions (e.g. sapply) that require a function parameter. Although F# has first-class support of functional programming and provides better functionality and syntax for apply-like operations, which often makes it sub-optimal to call apply-like high-level functions in R, the need for parallel computing in R, which is not yet directly supported by F# parallelism to R functions, requires users to pass a function as parameter. Here is an example way to create and pass an R function: @@ -72,13 +67,27 @@ let nums = R.sapply(R.c(1,2,3),fun1) (** The same usage also applies to parallel apply functions in parallel package. -## Accessing results +## Accessing and using results -Functions exposed by the RProvider return an instance of `RDotNet.SymbolicExpression`. This keeps all return data inside R data structures, so does not impose any data marshalling overhead. If you want to pass the value in as an argument to another R function, you can simply do so. +Functions exposed by the RProvider return the erased type `RExpr`. This keeps all return data inside R data structures, so does not impose any data marshalling overhead. If you want to pass the value in as an argument to another R function, you can simply do so. -In order to access the result in .NET code, you have three routes: +RProvider supports two ways of accessing results: +1. Semantic wrappers. +2. Conversion into .NET values. -### Convert the data into a specified .NET type via GetValue() +### Typed access into key R types + +The provider includes typed access into R values using a set of semantic type wrappers. + +If there are no supported conversions, you can access the data through the RDotNet object model. RDotNet exposes properties, members and extension members (available only if you open the RDotNet namespace) that allow you to access the underlying data directly. So, for example: +*) + +let res = R.sum([|1;2;3;4|]) +let resInt = res.TryAsVector.Value.AsReal() + +(** + +### Convert the data into a specified .NET type via FromR() RProvider adds a generic `GetValue<'T>` extension method to `SymbolicExpression`. This supports conversions from certain R values to specific .NET types. Here are the currently supported conversions: @@ -98,7 +107,7 @@ RProvider adds a generic `GetValue<'T>` extension method to `SymbolicExpression` Custom conversions can be supported through [plugins](plugins.html). -### Convert the data into the default .NET type the .Value property +### Convert the data into the default .NET type via .FromR() We also expose an extension property called Value that performs a _default_ conversion of a SymbolicExpresion to a .NET type. These are the current conversions: @@ -111,29 +120,4 @@ We also expose an extension property called Value that performs a _default_ conv numericdouble[] -Again, custom conversions can be supported through [plugins](plugins.html). - -### Explicitly access the data in the SymbolicExpression - -If there are no supported conversions, you can access the data through the RDotNet object model. RDotNet exposes properties, members and extension members (available only if you open the RDotNet namespace) that allow you to access the underlying data directly. So, for example: -*) - -let res = R.sum([|1;2;3;4|]) -if res.Type = RDotNet.Internals.SymbolicExpressionType.IntegerVector then res.AsInteger().[0] -else failwithf "Expecting a Numeric but got a %A" res.Type - -(** -To make this easier, we have defined some active patterns, under the RProvider.Helpers namespace, which is auto-opened when you open the RProvider namespace. These combine the type tests and conversion. An equivalent example: -*) - -match R.sum([|1;2;3;4|]) with -| IntegerVector(iv) -> iv.[0] -| _ -> failwithf "Expecting a Numeric but got a %A" res.Type - -(** -## What if I commonly need an argument or result conversion that RProvider does not support? - -If you believe the argument conversion is universally appropriate and should be available to everybody, please fork the repo and submit a pull request. - -RProvider also supports custom conversions to/from your own data types using [plugins](plugins.html). -*) +*) \ No newline at end of file diff --git a/docs/plugins.md b/docs/plugins.md deleted file mode 100644 index e7e4eb1d..00000000 --- a/docs/plugins.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -category: Developer -categoryindex: 2 -index: 3 ---- - -# Plugins - -RProvider supports plugins to support custom functionality. It uses [MEF](http://msdn.microsoft.com/en-us/library/dd460648.aspx) to load plugins that export certain contracts. See below for examples. - -Before implementing a plugin you should consider whether your conversion is universally applicable and should be added to the core conversion logic in the provider. If so, please log as an issue, and ideally fork the repo and submit a pull request. - -## Supporting an implicit parameter conversion for a datatype - -## Supporting an explicit result conversion for a datatype - -## Supporting a default result conversion \ No newline at end of file diff --git a/docs/quickstart-charts.fsx b/docs/quickstart-charts.fsx index 58195e11..888a2645 100644 --- a/docs/quickstart-charts.fsx +++ b/docs/quickstart-charts.fsx @@ -1,18 +1,15 @@ (** --- -category: Documentation -categoryindex: 1 +title: Quickstart: Graphics +category: Getting Started +categoryindex: 2 index: 3 --- *) (*** condition: prepare ***) #nowarn "211" -#r "../src/RProvider/bin/Release/net5.0/DynamicInterop.dll" -#r "../src/RProvider/bin/Release/net5.0/RDotNet.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.Runtime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.DesignTime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.dll" +#r "nuget: RProvider, 0.0.1-local" (*** condition: fsx ***) #if FSX #r "nuget: RProvider,{{package-version}}" diff --git a/docs/quickstart-statistics.fsx b/docs/quickstart-statistics.fsx index 6060ffa5..58029d3a 100644 --- a/docs/quickstart-statistics.fsx +++ b/docs/quickstart-statistics.fsx @@ -1,20 +1,15 @@ (** --- -category: Documentation -categoryindex: 1 -index: 3 +title: Quickstart: Stats +category: Getting Started +categoryindex: 2 +index: 2 --- *) (*** condition: prepare ***) #nowarn "211" -#r "../src/RProvider/bin/Release/net5.0/DynamicInterop.dll" -#r "../src/RProvider/bin/Release/net5.0/RDotNet.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.Runtime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.DesignTime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.dll" -#r "RProvider.dll" -#r "RProvider.DesignTime.dll" +#r "nuget: RProvider, 0.0.1-local" (*** condition: fsx ***) #if FSX #r "nuget: RProvider,{{package-version}}" @@ -44,10 +39,6 @@ Assuming you installed the R Type Provider in your project from NuGet, you can reference the required libraries and packages this way: *) -#I "../packages/RProvider.1.0.11" -#load "RProvider.fsx" - -open RDotNet open RProvider open RProvider.Operators @@ -117,8 +108,8 @@ For instance, let's retrieve the coefficients and residuals, which are both R vectors containg floats: *) -let coefficients = result.AsList().["coefficients"].AsNumeric() -let residuals = result.AsList().["residuals"].AsNumeric() +let coefficients = result?coefficients.AsVector().AsReal() +let residuals = result?residuals.AsVector().AsReal() (** We can also produce summary statistics about our model, @@ -127,8 +118,8 @@ indicates a very poor fit, and close to 1 a good fit. See [R docs for the details on Summary](http://stat.ethz.ch/R-manual/R-patched/library/stats/html/summary.lm.html). *) -let summary = R.summary(result) -summary.AsList().["r.squared"].AsNumeric() +let summary = R.summary result +summary?``r.squared``.AsScalar() (** Finally, we can directly pass results, which is a R expression, diff --git a/docs/reading-rdata.fsx b/docs/reading-rdata.fsx index 5f7c2b9b..48dc0034 100644 --- a/docs/reading-rdata.fsx +++ b/docs/reading-rdata.fsx @@ -1,17 +1,14 @@ (** --- -category: Documentation -categoryindex: 1 -index: 5 +category: Guides +categoryindex: 4 +index: 1 --- *) (*** condition: prepare ***) #nowarn "211" -#r "../src/RProvider/bin/Release/net5.0/RDotNet.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.Runtime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.DesignTime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.dll" +#r "nuget: RProvider, 0.0.1-local" (*** condition: fsx ***) #if FSX #r "nuget: RProvider,{{package-version}}" @@ -51,7 +48,7 @@ saved values as static members: *) open RProvider -type Sample = RData<"data/sample.rdata"> +type Sample = RData<"data/sample.rdata", ResolutionFolder = __SOURCE_DIRECTORY__> let sample = Sample() // Easily access saved values @@ -78,10 +75,6 @@ let means = let data = Sample(sprintf "data/sample_%d.rdata" i) data.volcanoMean.[0] ] (** -Note that the default conversions available depend on the plugins that are currently -available. For example, when you install the enrie [FsLab](http://www.fslab.org) package -with the [Deedle](https://fslab.org/Deedle/) library, the `RData` -provider will automatically expose data frames as Deedle `Frame` values. Passing data from F# to R ------------------------- @@ -92,10 +85,10 @@ option is to call the `R.assign` function to define named values in the R enviro and then use `R.save` to save the environment to a file: *) // Calculate sum of square differences -let avg = sample.volcanoList |> Array.average +let avg = sample.volcanoList |> Array.choose id |> Array.average let sqrs = sample.volcanoList - |> Array.map (fun v -> pown (v - avg) 2) + |> Array.map (fun v -> pown (v.Value - avg) 2) // Save the squares to an RData file R.assign("volcanoDiffs", sqrs) diff --git a/docs/reference/_template.html b/docs/reference/_template.html deleted file mode 100644 index 528d5688..00000000 --- a/docs/reference/_template.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - {{fsdocs-page-title}} - - - - - - - - - - - - - - - - {{fsdocs-watch-script}} - - - -
-
- -
-
-
-
- {{fsdocs-content}} -
-
-
- {{fsdocs-tooltips}} -
- - - - - - - - - - - \ No newline at end of file diff --git a/docs/semantic-types.fsx b/docs/semantic-types.fsx new file mode 100644 index 00000000..f38691c0 --- /dev/null +++ b/docs/semantic-types.fsx @@ -0,0 +1,58 @@ +(** +--- +title: R Semantic Types +category: Guides +categoryindex: 4 +index: 1 +--- +*) + +(*** condition: prepare ***) +#nowarn "211" +#r "nuget: RProvider, 0.0.1-local" +(*** condition: fsx ***) +#if FSX +#r "nuget: RProvider,{{package-version}}" +#endif // FSX +(*** condition: ipynb ***) +#if IPYNB +#r "nuget: RProvider,{{package-version}}" +#endif // IPYNB + +(** +Operators +=============== + +RProvider includes the `RProvider.Operators` module, which contains custom operators that can make working with R easier. Make sure to open it alongside your packages: +*) + +open RProvider +open RProvider.Operators + +open RProvider.``base`` +open RProvider.datasets +open RProvider.stats + +(** +# Accessing members / slots + +You can use the dynamic (`?`) operator to access: + +* Slots in S4 objects +* Members of list types + +### List: accessing named columns in a dataframe. + +*) + +R.mtcars?mpg + +(** +### S4 object: access a slot +*) + +R.eval "setClass('testclass', representation(foo='character', bar='integer'))" + +let test = R.eval "new('testclass', foo='s4', bar=1:4)" + +test?foo diff --git a/docs/tutorial.fsx b/docs/tutorial.fsx index 867d6b4b..586102eb 100644 --- a/docs/tutorial.fsx +++ b/docs/tutorial.fsx @@ -1,17 +1,14 @@ (** --- -category: Documentation +category: Overview categoryindex: 1 -index: 1 +index: 2 --- *) (*** condition: prepare ***) #nowarn "211" -#r "../src/RProvider/bin/Release/net5.0/RDotNet.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.Runtime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.DesignTime.dll" -#r "../src/RProvider/bin/Release/net5.0/RProvider.dll" +#r "nuget: RProvider, 0.0.1-local" (*** condition: fsx ***) #if FSX #r "nuget: RProvider,{{package-version}}" diff --git a/docs/whatwhy.md b/docs/whatwhy.md index db5d0c52..4313e7a8 100644 --- a/docs/whatwhy.md +++ b/docs/whatwhy.md @@ -1,7 +1,7 @@ --- -category: Documentation +category: Overview categoryindex: 1 -index: 3 +index: 1 --- # Whats and Whys diff --git a/paket.dependencies b/paket.dependencies index 8c37d99b..7ac736ef 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -1,24 +1,18 @@ version 5.257.0 source https://www.nuget.org/api/v2 -frameworks: netstandard2.0, net5.0 +frameworks: auto-detect storage: none -nuget FSharp.Data -nuget FSharp.Formatting -nuget FsCheck 2.16.3 -nuget FsCheck.Xunit 2.16.3 -nuget xunit 2.4.1 -nuget xunit.runner.visualstudio 2.4.3 -nuget FSharp.Core 4.6.2 -nuget Microsoft.NET.Test.Sdk 16.11.0 -nuget ILRepack.MSBuild.Task 2.0.13 -nuget PipeMethodCalls 3.0.4 +nuget FSharp.Core 8.0.403 +nuget FSharp.TypeProviders.SDK 8.5.0 -nuget Newtonsoft.Json 13.0.1 -nuget R.NET 1.9.0 -nuget R.NET.FSharp 1.9.0 -nuget System.ComponentModel.Composition 5.0.0 -nuget System.Reflection.MetadataLoadContext 5.0.0 +nuget RBridge.Extensions 1.2.1 -github fsprojects/FSharp.TypeProviders.SDK:f4aca36af04aa84b16ec04df6f6bf55ac2f17a73 src/ProvidedTypes.fsi -github fsprojects/FSharp.TypeProviders.SDK:f4aca36af04aa84b16ec04df6f6bf55ac2f17a73 src/ProvidedTypes.fs +group Test + + source https://www.nuget.org/api/v2 + frameworks: auto-detect + storage: none + + nuget Expecto + nuget Expecto.FsCheck diff --git a/paket.lock b/paket.lock index efe80028..a6c8f0c7 100644 --- a/paket.lock +++ b/paket.lock @@ -1,199 +1,28 @@ STORAGE: NONE -RESTRICTION: || (== net5.0) (== netstandard2.0) +RESTRICTION: || (== net10.0) (== netstandard2.0) NUGET remote: https://www.nuget.org/api/v2 - DynamicInterop (0.9.1) - FsCheck (2.16.3) + FSharp.Core (8.0.403) + FSharp.TypeProviders.SDK (8.5) + FSharp.Core (>= 4.7.2) + RBridge (1.2.1) - restriction: || (== net10.0) (&& (== netstandard2.0) (>= net8.0)) + FSharp.Core (>= 8.0.100) - restriction: || (== net10.0) (&& (== netstandard2.0) (>= net8.0)) + RBridge.Extensions (1.2.1) + FSharp.Core (>= 8.0.100) - restriction: || (== net10.0) (&& (== netstandard2.0) (>= net8.0)) + RBridge (>= 1.2.1) - restriction: || (== net10.0) (&& (== netstandard2.0) (>= net8.0)) + +GROUP Test +STORAGE: NONE +RESTRICTION: || (== net10.0) (== netstandard2.0) +NUGET + remote: https://www.nuget.org/api/v2 + Expecto (10.2.3) + FSharp.Core (>= 7.0.200) - restriction: || (== net10.0) (&& (== netstandard2.0) (>= net6.0)) + Mono.Cecil (>= 0.11.4 < 1.0) - restriction: || (== net10.0) (&& (== netstandard2.0) (>= net6.0)) + Expecto.FsCheck (10.2.3) + Expecto (>= 10.2.3) - restriction: || (== net10.0) (&& (== netstandard2.0) (>= net6.0)) + FsCheck (>= 2.16.5 < 3.0) - restriction: || (== net10.0) (&& (== netstandard2.0) (>= net6.0)) + FsCheck (2.16.6) - restriction: || (== net10.0) (&& (== netstandard2.0) (>= net6.0)) FSharp.Core (>= 4.2.3) - FsCheck.Xunit (2.16.3) - FsCheck (2.16.3) - xunit.extensibility.execution (>= 2.2 < 3.0) - FSharp.Compiler.Service (37.0) - FSharp.Core (>= 4.6.2) - Microsoft.Build.Framework (>= 16.6) - Microsoft.Build.Tasks.Core (>= 16.6) - Microsoft.Build.Utilities.Core (>= 16.6) - System.Buffers (>= 4.5) - System.Collections.Immutable (>= 1.5) - System.Memory (>= 4.5.3) - System.Reflection.Emit (>= 4.3) - System.Reflection.Metadata (>= 1.6) - System.Reflection.TypeExtensions (>= 4.3) - System.Runtime.Loader (>= 4.0) - FSharp.Core (4.6.2) - FSharp.Data (3.3.3) - FSharp.Core (>= 4.3.4) - FSharp.Formatting (7.2.9) - FSharp.Compiler.Service (>= 36.0.3) - ILRepack.MSBuild.Task (2.0.13) - Microsoft.Build.Framework (>= 15.9.20) - Microsoft.Build.Utilities.Core (>= 15.9.20) - Microsoft.Build.Framework (16.11) - System.Security.Permissions (>= 4.7) - Microsoft.Build.Tasks.Core (16.11) - Microsoft.Build.Framework (>= 16.11) - Microsoft.Build.Utilities.Core (>= 16.11) - Microsoft.NET.StringTools (>= 1.0) - Microsoft.Win32.Registry (>= 4.3) - System.CodeDom (>= 4.4) - System.Collections.Immutable (>= 5.0) - System.Reflection.Metadata (>= 1.6) - System.Resources.Extensions (>= 4.6) - System.Security.Cryptography.Pkcs (>= 4.7) - System.Security.Cryptography.Xml (>= 4.7) - System.Security.Permissions (>= 4.7) - System.Threading.Tasks.Dataflow (>= 4.9) - Microsoft.Build.Utilities.Core (16.11) - Microsoft.Build.Framework (>= 16.11) - Microsoft.NET.StringTools (>= 1.0) - Microsoft.Win32.Registry (>= 4.3) - System.Collections.Immutable (>= 5.0) - System.Configuration.ConfigurationManager (>= 4.7) - System.Security.Permissions (>= 4.7) - System.Text.Encoding.CodePages (>= 4.0.1) - Microsoft.CodeCoverage (16.11) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net45)) (&& (== netstandard2.0) (>= netcoreapp1.0)) - Microsoft.CSharp (4.7) - Microsoft.NET.StringTools (1.0) - System.Memory (>= 4.5.4) - System.Runtime.CompilerServices.Unsafe (>= 5.0) - Microsoft.NET.Test.Sdk (16.11) - Microsoft.CodeCoverage (>= 16.11) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net45)) (&& (== netstandard2.0) (>= netcoreapp1.0)) - Microsoft.TestPlatform.TestHost (>= 16.11) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp1.0)) - Microsoft.NETCore.Platforms (5.0.3) - Microsoft.NETCore.Targets (5.0) - Microsoft.TestPlatform.ObjectModel (16.11) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp1.0)) - NuGet.Frameworks (>= 5.0) - System.Reflection.Metadata (>= 1.6) - Microsoft.TestPlatform.TestHost (16.11) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp1.0)) - Microsoft.TestPlatform.ObjectModel (>= 16.11) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp1.0)) (&& (== netstandard2.0) (>= uap10.0)) - Newtonsoft.Json (>= 9.0.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp1.0)) (&& (== netstandard2.0) (>= uap10.0)) - Microsoft.Win32.Registry (5.0) - System.Buffers (>= 4.5.1) - restriction: || (&& (== net5.0) (>= monoandroid) (< netstandard1.3)) (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) - System.Security.AccessControl (>= 5.0) - System.Security.Principal.Windows (>= 5.0) - Microsoft.Win32.SystemEvents (5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) - Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) - NETStandard.Library (2.0.3) - Microsoft.NETCore.Platforms (>= 1.1) - Newtonsoft.Json (13.0.1) - NuGet.Frameworks (5.11) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp1.0)) (&& (== netstandard2.0) (>= netcoreapp2.1)) - PipeMethodCalls (3.0.4) - R.NET (1.9) - DynamicInterop (>= 0.9.1) - Microsoft.CSharp (>= 4.5) - Microsoft.Win32.Registry (>= 4.5) - R.NET.FSharp (1.9) - DynamicInterop (>= 0.9.1) - FSharp.Core (>= 4.6.2) - R.NET (>= 1.9) - System.Buffers (4.5.1) - System.CodeDom (5.0) - System.Collections.Immutable (5.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) - System.ComponentModel.Composition (5.0) - System.Configuration.ConfigurationManager (5.0) - System.Security.Cryptography.ProtectedData (>= 5.0) - System.Security.Permissions (>= 5.0) - System.Drawing.Common (5.0.2) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) - Microsoft.Win32.SystemEvents (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) (&& (== netstandard2.0) (>= netcoreapp3.0)) - System.Formats.Asn1 (5.0) - System.Buffers (>= 4.5.1) - restriction: || (&& (== net5.0) (>= monoandroid) (< netstandard2.0)) (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) - System.IO (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Memory (4.5.4) - System.Buffers (>= 4.5.1) - restriction: || (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (< netstandard1.1)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.0) - System.Numerics.Vectors (>= 4.4) - restriction: || (&& (== net5.0) (< netcoreapp2.0)) (== netstandard2.0) - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (< netstandard1.1)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (>= uap10.1)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.0) - System.Numerics.Vectors (4.5) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (== netstandard2.0) - System.Reflection (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.IO (>= 4.3) - System.Reflection.Primitives (>= 4.3) - System.Runtime (>= 4.3) - System.Reflection.Emit (4.7) - System.Reflection.Emit.ILGeneration (>= 4.7) - restriction: || (&& (== net5.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net5.0) (< netstandard1.1)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) - System.Reflection.Emit.ILGeneration (4.7) - restriction: || (&& (== net5.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net5.0) (< netstandard1.1)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) - System.Reflection.Metadata (5.0) - System.Collections.Immutable (>= 5.0) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netstandard1.1)) (&& (== net5.0) (< netstandard2.0)) (== netstandard2.0) - System.Reflection.MetadataLoadContext (5.0) - System.Collections.Immutable (>= 5.0) - restriction: || (&& (== net5.0) (>= monoandroid) (< netstandard2.0)) (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (< netcoreapp3.0)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.1)) (== netstandard2.0) - System.Reflection.Metadata (>= 5.0) - restriction: || (&& (== net5.0) (>= monoandroid) (< netstandard2.0)) (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (< netcoreapp3.0)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.0) - System.Reflection.Primitives (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Reflection.TypeExtensions (4.7) - System.Resources.Extensions (5.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.1)) (== netstandard2.0) - System.Runtime (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime.CompilerServices.Unsafe (5.0) - System.Runtime.Loader (4.3) - System.IO (>= 4.3) - System.Reflection (>= 4.3) - System.Runtime (>= 4.3) - System.Security.AccessControl (5.0) - Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) - System.Security.Principal.Windows (>= 5.0) - System.Security.Cryptography.Cng (5.0) - System.Formats.Asn1 (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) - System.Security.Cryptography.Pkcs (5.0.1) - System.Buffers (>= 4.5.1) - restriction: || (&& (== net5.0) (< netcoreapp2.0) (< netstandard2.1)) (== netstandard2.0) - System.Formats.Asn1 (>= 5.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net5.0) (< netcoreapp2.1) (< netstandard2.1)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) - System.Security.Cryptography.Cng (>= 5.0) - System.Security.Cryptography.ProtectedData (5.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (< netcoreapp2.1)) (== netstandard2.0) - System.Security.Cryptography.Xml (5.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (< netcoreapp2.1)) (== netstandard2.0) - System.Security.Cryptography.Pkcs (>= 5.0) - System.Security.Permissions (>= 5.0) - System.Security.Permissions (5.0) - System.Security.AccessControl (>= 5.0) - System.Windows.Extensions (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) - System.Security.Principal.Windows (5.0) - System.Text.Encoding (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Text.Encoding.CodePages (5.0) - Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) (&& (== netstandard2.0) (>= netcoreapp2.0)) - System.Runtime.CompilerServices.Unsafe (>= 5.0) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (== netstandard2.0) - System.Threading.Tasks (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Threading.Tasks.Dataflow (5.0) - System.Windows.Extensions (5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) - System.Drawing.Common (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) - xunit (2.4.1) - xunit.analyzers (>= 0.10) - xunit.assert (2.4.1) - xunit.core (2.4.1) - xunit.abstractions (2.0.3) - xunit.analyzers (0.10) - xunit.assert (2.4.1) - NETStandard.Library (>= 1.6.1) - xunit.core (2.4.1) - xunit.extensibility.core (2.4.1) - xunit.extensibility.execution (2.4.1) - xunit.extensibility.core (2.4.1) - NETStandard.Library (>= 1.6.1) - xunit.abstractions (>= 2.0.3) - xunit.extensibility.execution (2.4.1) - NETStandard.Library (>= 1.6.1) - xunit.extensibility.core (2.4.1) - xunit.runner.visualstudio (2.4.3) -GITHUB - remote: fsprojects/FSharp.TypeProviders.SDK - src/ProvidedTypes.fs (f4aca36af04aa84b16ec04df6f6bf55ac2f17a73) - src/ProvidedTypes.fsi (f4aca36af04aa84b16ec04df6f6bf55ac2f17a73) \ No newline at end of file + FSharp.Core (8.0.403) + Mono.Cecil (0.11.6) - restriction: || (== net10.0) (&& (== netstandard2.0) (>= net6.0)) diff --git a/samples/deedle.fsx b/samples/deedle.fsx deleted file mode 100644 index 82e7e230..00000000 --- a/samples/deedle.fsx +++ /dev/null @@ -1,30 +0,0 @@ -#i "nuget:https://www.nuget.org/api/v2" -#i @"nuget:/Volumes/Server HD/GitHub Projects/RProvider/bin" -#r "nuget:RProvider,2.0.2" -#r "nuget:Deedle,2.5.0" -//#r "nuget:Deedle.RProvider.Plugin,2.5.0" - -(* This sample shows a plugin for RProvider, which converts - R values into .NET types. Here, the Deedle RProvider plugin - (from the `Deedle.RProvider.Plugin` package) automatically - converts an R data frame into a Deedle frame by adding a - type signature in both directions. *) - -open RProvider -open RProvider.``base`` -open RProvider.datasets -open Deedle - -do fsi.AddPrinter(fun (synexpr:RDotNet.SymbolicExpression) -> synexpr.Print()) - -// Get mtcars as an untyped object -R.mtcars.Value - -// Get mtcars as a typed Deedle frame -let mtcars : Frame = R.mtcars.GetValue() - -// Pass Deedle data to R and print the R output -R.as_data_frame(mtcars) - -// Pass Deedle data to R and get column means -R.colMeans(mtcars) \ No newline at end of file diff --git a/samples/stocks.fsx b/samples/stocks.fsx index 512b4f43..53af6bb0 100644 --- a/samples/stocks.fsx +++ b/samples/stocks.fsx @@ -1,10 +1,5 @@ -#I "../src/RProvider/bin/Release/net5.0/" -#r "RDotNet.dll" -#r "RProvider.DesignTime.dll" -#r "RProvider.Runtime.dll" -#r "RProvider.dll" +#r "nuget: RProvider, 0.0.1-local" -open RDotNet open RProvider open RProvider.graphics open RProvider.stats @@ -44,7 +39,7 @@ let msft = getStockPrices "MSFT" 255 |> R.log |> R.diff let a = R.acf(msft) //lets see if the msft returns are stationary/non-unit root -let adf = R.adf_test(msft) +let adf = R .adf_test(msft) //lets look at some pair plots let tickers = [ "MSFT"; "AAPL"; "X"; "VXX"; "SPX"; "GLD" ] diff --git a/src/Common/AssemblyInfo.fs b/src/Common/AssemblyInfo.fs index e437c21c..dc66e456 100644 --- a/src/Common/AssemblyInfo.fs +++ b/src/Common/AssemblyInfo.fs @@ -6,7 +6,7 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () diff --git a/src/Common/IRInteropServer.fs b/src/Common/IRInteropServer.fs index 69493454..b2770f79 100644 --- a/src/Common/IRInteropServer.fs +++ b/src/Common/IRInteropServer.fs @@ -1,4 +1,4 @@ -namespace RProvider.Internal +namespace RProvider.Common /// Interface that is used for communication between the R provider server /// (RProvider.Server.exe) which communicates with R and the client that runs @@ -30,4 +30,179 @@ type IRInteropServer = /// with an F# type that it can be converted to (this is done by getting the type /// of `symExpr.Value` using currently installed convertors). If the type is not /// available, this returns `null`. - abstract member GetRDataSymbols: string -> (string * System.Type) [] + abstract member GetRDataSymbols: string -> (string * option) [] + +module InteropServer = + + open System.IO + + type ServerRequest = + | InitializationErrorMessage + | GetPackages + | LoadPackage of string + | GetBindings of string + | GetFunctionDescriptions of string + | GetPackageDescription of string + | GetRDataSymbols of string + + type ServerResponse = + | InitializationErrorMessageResult of string + | Packages of string[] + | UnitResult + | Bindings of (string * string)[] + | FunctionDescriptions of (string * string)[] + | PackageDescription of string + | RDataSymbols of (string * option)[] + | ServerError of string + + module Request = + + let write (w: BinaryWriter) (req: ServerRequest) = + match req with + | InitializationErrorMessage -> + w.Write "InitializationErrorMessage" + + | GetPackages -> + w.Write "GetPackages" + + | LoadPackage pkg -> + w.Write "LoadPackage" + w.Write pkg + + | GetBindings pkg -> + w.Write "GetBindings" + w.Write pkg + + | GetFunctionDescriptions pkg -> + w.Write "GetFunctionDescriptions" + w.Write pkg + + | GetPackageDescription pkg -> + w.Write "GetPackageDescription" + w.Write pkg + + | GetRDataSymbols path -> + w.Write "GetRDataSymbols" + w.Write path + + let read (r: BinaryReader) : ServerRequest = + match r.ReadString() with + | "InitializationErrorMessage" -> InitializationErrorMessage + | "GetPackages" -> GetPackages + | "LoadPackage" -> LoadPackage (r.ReadString()) + | "GetBindings" -> GetBindings (r.ReadString()) + | "GetFunctionDescriptions" -> GetFunctionDescriptions (r.ReadString()) + | "GetPackageDescription" -> GetPackageDescription (r.ReadString()) + | "GetRDataSymbols" -> GetRDataSymbols (r.ReadString()) + | other -> failwithf "Unknown ServerRequest case: %s" other + + module Response = + + let write (w: BinaryWriter) (resp: ServerResponse) = + match resp with + + | InitializationErrorMessageResult s -> + w.Write "InitializationErrorMessageResult" + w.Write s + + | Packages pkgs -> + w.Write "Packages" + w.Write pkgs.Length + for p in pkgs do + w.Write p + + | UnitResult -> + w.Write "UnitResult" + + | Bindings arr -> + w.Write "Bindings" + w.Write arr.Length + for (a, b) in arr do + w.Write a + w.Write b + + | FunctionDescriptions arr -> + w.Write "FunctionDescriptions" + w.Write arr.Length + for (a, b) in arr do + w.Write a + w.Write b + + | PackageDescription d -> + w.Write "PackageDescription" + w.Write d + + | RDataSymbols syms -> + w.Write "RDataSymbols" + w.Write syms.Length + for (name, typOpt) in syms do + w.Write name + match typOpt with + | Some typ -> + w.Write true + w.Write typ.AssemblyQualifiedName + | None -> + w.Write false + + | ServerError msg -> + w.Write "ServerError" + w.Write msg + + + let read (r: BinaryReader) : ServerResponse = + match r.ReadString() with + + | "InitializationErrorMessageResult" -> + InitializationErrorMessageResult (r.ReadString()) + + | "Packages" -> + let n = r.ReadInt32() + let arr = Array.init n (fun _ -> r.ReadString()) + Packages arr + + | "UnitResult" -> + UnitResult + + | "Bindings" -> + let n = r.ReadInt32() + let arr = + Array.init n (fun _ -> + let a = r.ReadString() + let b = r.ReadString() + a, b) + Bindings arr + + | "FunctionDescriptions" -> + let n = r.ReadInt32() + let arr = + Array.init n (fun _ -> + let a = r.ReadString() + let b = r.ReadString() + a, b) + FunctionDescriptions arr + + | "PackageDescription" -> + PackageDescription (r.ReadString()) + + | "RDataSymbols" -> + let n = r.ReadInt32() + let arr = + Array.init n (fun _ -> + let name = r.ReadString() + let hasType = r.ReadBoolean() + let typOpt = + if hasType then + let aqn = r.ReadString() + let t = System.Type.GetType(aqn, throwOnError = false) + Some t + else + None + name, typOpt) + RDataSymbols arr + + | "ServerError" -> + ServerError (r.ReadString()) + + | other -> + failwithf "Unknown ServerResponse case: %s" other + diff --git a/src/Common/LogFile.fs b/src/Common/LogFile.fs new file mode 100644 index 00000000..ca7204ea --- /dev/null +++ b/src/Common/LogFile.fs @@ -0,0 +1,87 @@ +namespace RProvider.Common + +open System +open System.IO +open System.Diagnostics + +module LogFile = + + let internal logEnvVar = "RPROVIDER_LOG" + + /// The logging is enabled by setting a log file in the RPROVIDER_LOG environment variable. + /// Set this constant to 'true' and logs will be + /// saved in the default location (see below). + let private loggingEnabled = + match Environment.GetEnvironmentVariable logEnvVar with + | null -> false + | v when v.Equals("true", StringComparison.OrdinalIgnoreCase) -> true + | v when v = "1" -> true + | v when v.Equals("on", StringComparison.OrdinalIgnoreCase) -> true + | _ -> false + + let private isWindows = + Environment.OSVersion.Platform = PlatformID.Win32NT + + let private isMacOS = + Environment.OSVersion.Platform = PlatformID.MacOSX || + (Environment.OSVersion.Platform = PlatformID.Unix && Directory.Exists "/Library/Logs") + + let private isLinux = + Environment.OSVersion.Platform = PlatformID.Unix && not isMacOS + + /// Resolve the correct platform-specific log directory. + let private getLogDirectory () = + if isWindows then + let baseDir = Environment.GetFolderPath Environment.SpecialFolder.LocalApplicationData + Path.Combine(baseDir, "RProvider") + elif isMacOS then + let home = Environment.GetFolderPath Environment.SpecialFolder.UserProfile + Path.Combine(home, "Library", "Logs", "RProvider") + elif isLinux then + let xdg = Environment.GetEnvironmentVariable "XDG_STATE_HOME" + let baseDir = + if String.IsNullOrWhiteSpace xdg then + let home = Environment.GetFolderPath Environment.SpecialFolder.UserProfile + Path.Combine(home, ".local", "state") + else xdg + Path.Combine(baseDir, "RProvider") + else failwith "Unsupported platform" + + /// Log file - if the RPROVIDER_LOGF variable is set, a logfile named + /// RProvider/rprovider.log is created in the OS's default log location. + /// Windows: %LOCALAPPDATA%\ + /// macOS: ~/Library/Logs/ + /// linux: ~/.local/state/ + let private logFile = + try + if loggingEnabled then + let logFolder = getLogDirectory () + if not (Directory.Exists logFolder) then Directory.CreateDirectory logFolder |> ignore + Path.Combine(logFolder, "rprovider.log") |> Some + else None + with + | _ -> (*silently ignoring logging errors*) None + + /// Append string to a log file + let private writeString str = + try + match logFile with + | Some lf -> + // This serializes all writes to the log file (from multiple processes) + use fs = new FileStream(lf, FileMode.Append, FileAccess.Write, FileShare.Write, 4096, FileOptions.None) + use writer = new StreamWriter(fs) + writer.AutoFlush <- true + + let pid = Process.GetCurrentProcess().Id + let tid = System.Threading.Thread.CurrentThread.ManagedThreadId + let apid = System.AppDomain.CurrentDomain.Id + writer.WriteLine(sprintf "[%s] [Pid:%d, Tid:%d, Apid:%d] %s" (DateTime.Now.ToString("G")) pid tid apid str) + | None -> () + with + | _ -> (*silently ignoring logging errors*) () + + /// Log formatted string to a log file + let logf fmt = + let f = if loggingEnabled then writeString else ignore + Printf.kprintf f fmt + diff --git a/src/Common/Serialisation.fs b/src/Common/Serialisation.fs new file mode 100644 index 00000000..829d2aab --- /dev/null +++ b/src/Common/Serialisation.fs @@ -0,0 +1,38 @@ +namespace RProvider.Common + +/// Serialisation of R values and functions to and from strings, +/// for use in communication between the type provider and the server. +module Serialisation = + + type RParameter = string + type HasVarArgs = bool + + type RValue = + | Function of RParameter list * HasVarArgs + | Value + + /// Turn an `RValue` (which captures type information of a value or function) + /// into a serialized string that can be spliced in a quotation + let serializeRValue = + function + | RValue.Value -> "" + | RValue.Function (pars, hasVar) -> + let prefix = if hasVar then "1" else "0" + prefix + if List.isEmpty pars then "" else ";" + (String.concat ";" pars) + + /// Given a string produced by `serializeRValue`, reconstruct the original RValue object + let deserializeRValue serialized = + if isNull serialized then + invalidArg "serialized" "Unexpected null string" + elif serialized = "" then + RValue.Value + else + let hasVar = + match serialized.[0] with + | '1' -> true + | '0' -> false + | _ -> invalidArg "serialized" "Should start with a flag" + + let args = if serialized.Length = 1 then [] else List.ofSeq (serialized.Substring(2).Split(';')) + RValue.Function(args, hasVar) + diff --git a/src/RProvider.Abstractions/RData.fs b/src/RProvider.Abstractions/RData.fs new file mode 100644 index 00000000..3ed236e0 --- /dev/null +++ b/src/RProvider.Abstractions/RData.fs @@ -0,0 +1,13 @@ +namespace RProvider.Abstractions + +/// An R data file or store. +type RData = RData of RExpr + +/// Helpers to bridge between RExpr and the runtime. +module RData = + + /// Unwrap an RData to its underlying object. + let unwrap (RData o) = o + + /// Wrap an object back into RData. + let wrap (o: RExpr) = RData o diff --git a/src/RProvider.Abstractions/RExpr.fs b/src/RProvider.Abstractions/RExpr.fs new file mode 100644 index 00000000..1f60f687 --- /dev/null +++ b/src/RProvider.Abstractions/RExpr.fs @@ -0,0 +1,18 @@ +namespace RProvider.Abstractions + +/// An raw R expression represented by a pointer. +type RSymbolicExpr = { ptr: nativeint } + +/// An expression (function, value etc.) in R. +/// It is the root erased type of R expressions within +/// RProvider. +type RExpr = RExpr of RSymbolicExpr + +/// Helpers to bridge between RExpr and the runtime. +module RExpr = + + /// Unwrap an RExpr to its underlying object. + let unwrap (RExpr o) = o + + /// Wrap an object back into RExpr. + let wrap (o: RSymbolicExpr) = RExpr o diff --git a/src/RProvider.Abstractions/RProvider.Abstractions.fsproj b/src/RProvider.Abstractions/RProvider.Abstractions.fsproj new file mode 100644 index 00000000..14b8c5b1 --- /dev/null +++ b/src/RProvider.Abstractions/RProvider.Abstractions.fsproj @@ -0,0 +1,13 @@ + + + + netstandard2.0 + en + true + + + + + + + \ No newline at end of file diff --git a/src/RProvider.Abstractions/paket.references b/src/RProvider.Abstractions/paket.references new file mode 100644 index 00000000..640cf914 --- /dev/null +++ b/src/RProvider.Abstractions/paket.references @@ -0,0 +1 @@ +FSharp.Core \ No newline at end of file diff --git a/src/RProvider.DesignTime/IRInteropRuntime.fs b/src/RProvider.DesignTime/IRInteropRuntime.fs new file mode 100644 index 00000000..9701cbf5 --- /dev/null +++ b/src/RProvider.DesignTime/IRInteropRuntime.fs @@ -0,0 +1,43 @@ +namespace RProvider.Runtime + +open System +open RProvider.Abstractions + +/// A stub layer of runtime functions for use in +/// design-time quotations. +type IRInteropRuntime = + + /// Call an R function by name with named and varargs. + static member callFuncByName + (env: RExpr) + (package: string) + (name: string) + (namedArgs: (string * obj)[]) + (varArgs: obj[]) + : RExpr = + raise (NotImplementedException "Design-time stub") + + static member call + (env: RExpr) + (package: string) + (name: string) + (serialized: string) + (namedArgs: (string * obj)[]) + (varArgs: obj[]) + : RExpr = + raise (NotImplementedException "Design-time stub") + + static member getValue (package: string) (name: string) : RExpr = + raise (NotImplementedException "Design-time stub") + + static member globalEnvironment () : RExpr = + raise (NotImplementedException "Design-time stub") + + static member loadRDataFile (fileName: string) : RData = + raise (NotImplementedException()) + + static member getRDataSymbol (env: RData) (name: string) : RExpr = + raise (NotImplementedException "Design-time stub") + + static member getRDataSymbolTyped<'T> (env: RData) (name: string) : 'T = + raise (NotImplementedException "Design-time stub") diff --git a/src/RProvider.DesignTime/RData.fs b/src/RProvider.DesignTime/RData.fs index 5d93f36b..03c86e8b 100644 --- a/src/RProvider.DesignTime/RData.fs +++ b/src/RProvider.DesignTime/RData.fs @@ -1,13 +1,15 @@ -namespace RProvider +namespace RProvider.DesignTime open System.IO open System.Reflection open ProviderImplementation.ProvidedTypes open Microsoft.FSharp.Core.CompilerServices + open RProvider -open RProvider.Internal -open Microsoft.FSharp.Quotations -open PipeMethodCalls +open RProvider.Common +open RProvider.Runtime +open RProvider.Abstractions +open RProvider.Common.InteropServer [] type public RDataProvider(cfg: TypeProviderConfig) as this = @@ -22,85 +24,103 @@ type public RDataProvider(cfg: TypeProviderConfig) as this = | [ v ] -> v | _ -> failwith "Expected one argument." + let resolve resolutionFolder path = + if Path.IsPathRooted path then path + elif not (System.String.IsNullOrWhiteSpace resolutionFolder) then + Path.Combine(resolutionFolder, path) + else + Path.Combine(cfg.ResolutionFolder, path) + /// Given a file name, generate static type inherited from REnv let generateTypes asm typeName (args: obj []) = - Logging.logf "Generating type for %s" typeName + LogFile.logf "Generating type for %s" typeName // Load the environment and generate the type let fileName = args.[0] :?> string + let resolutionDir = args.[1] :?> string - let longFileName = - if Path.IsPathRooted(fileName) then fileName else Path.Combine(cfg.ResolutionFolder, fileName) - - let resTy = ProvidedTypeDefinition(asm, "RProvider", typeName, Some typeof) - let isHosted = cfg.IsHostedExecution - let defaultResolutionFolder = cfg.ResolutionFolder + let longFileName = resolve resolutionDir fileName + if not <| File.Exists longFileName then + let msg = + sprintf "RProvider: The RData file '%s' does not exist. \ + Resolved path: '%s'. \ + Set ResolutionFolder = __SOURCE_DIRECTORY__ if using a relative path." + fileName longFileName + raise (FileNotFoundException msg) - // Provide default ctor and ctor taking another file as an argument - let createREnvExpr (fileName: Expr) = - <@@ let longFileName = - if Path.IsPathRooted(%fileName) then %fileName - elif isHosted then Path.Combine(defaultResolutionFolder, %fileName) - else Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, %fileName) + let longFileNameAbs = Path.GetFullPath longFileName - REnv(longFileName) @@> + let resTy = ProvidedTypeDefinition(asm, "RProvider", typeName, Some typeof) - let ctor = ProvidedConstructor(parameters = [], invokeCode = fun _ -> createREnvExpr <@ fileName @>) + let ctor = ProvidedConstructor(parameters = [], invokeCode = fun _ -> <@@ IRInteropRuntime.loadRDataFile longFileNameAbs @@> ) resTy.AddMember(ctor) let ctor = ProvidedConstructor( parameters = [ ProvidedParameter("fileName", typeof) ], - invokeCode = fun (Singleton fn) -> createREnvExpr (Expr.Cast fn) + invokeCode = fun (Singleton fn) -> <@@ IRInteropRuntime.loadRDataFile (%%fn : string) @@> ) resTy.AddMember(ctor) // For each key in the environment, provide a property.. - for name, typ in - RInteropClient.getServer().InvokeAsync(fun s -> s.GetRDataSymbols(longFileName)) - |> Async.AwaitTask - |> Async.RunSynchronously do - Logging.logf "Adding member %s" name + let response : (string * option)[] = RInteropClient.server.Value.Call (ServerRequest.GetRDataSymbols longFileNameAbs) + LogFile.logf "Got response from server: %A" response + for name, typ in response do + LogFile.logf "Adding member %s" name match typ with - | null -> + | None -> // Generate property of type 'SymbolicExpression' ProvidedProperty( name, - typeof, - getterCode = fun (Singleton self) -> <@@ ((%%self): REnv).Get(name) @@> + typeof, + getterCode = fun (Singleton self) -> <@@ IRInteropRuntime.getRDataSymbol ((%%self : RData)) name @@> ) |> resTy.AddMember - | typ -> + | Some typ -> // If there is a default convertor for the type, then generate // property of the statically known type (e.g. Frame) // (otherwise, `Value` will throw) + let miGetTyped = + typeof.GetMethod "getRDataSymbolTyped" + |> fun mi -> mi.MakeGenericMethod [| typ |] + ProvidedProperty( name, typ, - getterCode = fun (Singleton self) -> Expr.Coerce(<@@ ((%%self): REnv).Get(name).Value @@>, typ) + getterCode = fun (Singleton self) -> + Quotations.Expr.Call( + miGetTyped, + [ Quotations.Expr.Coerce(self, typeof) + Quotations.Expr.Value(name) ] + ) ) |> resTy.AddMember - Logging.logf "Finished generating types for %s" longFileName + LogFile.logf "Finished generating types for %s" longFileNameAbs resTy // Register the main (parameterized) type with F# compiler // Provide tye 'RProvider.RData' type - let asm = - // let coreAssembly = typeof.Assembly -// let resolver = PathAssemblyResolver([ cfg.RuntimeAssembly; coreAssembly.Location ]) -// use mlc = new MetadataLoadContext(resolver, coreAssemblyName = coreAssembly.GetName().Name) -// mlc.LoadFromAssemblyPath cfg.RuntimeAssembly - Assembly.LoadFrom cfg.RuntimeAssembly + let asm = Assembly.LoadFrom cfg.RuntimeAssembly let rdata = ProvidedTypeDefinition(asm, "RProvider", "RData", Some(typeof)) - let parameter = ProvidedStaticParameter("FileName", typeof) + let parameters = [ + ProvidedStaticParameter("FileName", typeof) + ProvidedStaticParameter("ResolutionFolder", typeof, "") + ] + + let helpText = + """Typed representation of an .rdata file. + Location of an .rdata file from which to infer structure. + If using a relative path, the folder from which to resolve the relative path.""" + + do rdata.AddXmlDoc helpText do - rdata.DefineStaticParameters([ parameter ], generateTypes asm) - Logging.logf "Defined static Parameters %O" parameter + rdata.DefineStaticParameters(parameters, generateTypes asm) + LogFile.logf "Defined static Parameters %O" parameters do this.AddNamespace("RProvider", [ rdata ]) - Logging.logf "RData added namespace %s" rdata.FullName + LogFile.logf "RData added namespace %s" rdata.FullName diff --git a/src/RProvider.DesignTime/RInteropClient.fs b/src/RProvider.DesignTime/RInteropClient.fs index f4e66697..75d81db7 100644 --- a/src/RProvider.DesignTime/RInteropClient.fs +++ b/src/RProvider.DesignTime/RInteropClient.fs @@ -1,163 +1,183 @@ -module internal RProvider.RInteropClient +namespace RProvider.DesignTime open System +open System.IO open System.IO.Pipes open System.Reflection -open System.IO open System.Diagnostics open System.Threading -open RProvider.Internal -open PipeMethodCalls -open RProvider.Runtime.Serialisation open System.Runtime.InteropServices - -[] -let Server = "RProvider.Server" - -/// Thrown when we want to show the specified string as a friendly error message to the user -exception RInitializationException of string - -let waitUntilFileDeleted file timeout = - let dt = DateTime.Now - - while File.Exists(file) && (DateTime.Now - dt).TotalMilliseconds < timeout do - Thread.Sleep(10) - - not (File.Exists(file)) - -/// Creates a new channel name in the format: RInteropServer__