NimbleBlazor 19.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package NimbleBlazor --version 19.0.1                
NuGet\Install-Package NimbleBlazor -Version 19.0.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NimbleBlazor" Version="19.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add NimbleBlazor --version 19.0.1                
#r "nuget: NimbleBlazor, 19.0.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install NimbleBlazor as a Cake Addin
#addin nuget:?package=NimbleBlazor&version=19.0.1

// Install NimbleBlazor as a Cake Tool
#tool nuget:?package=NimbleBlazor&version=19.0.1                

Nimble Blazor

Nimble Nuget Version

Getting Started

Prerequisites

  1. IDE:
    • Windows with Visual Studio: For Blazor development on Windows, the suggested IDE is:
      • Visual Studio 2022 (Enterprise, if available): Choose the "ASP.NET and Web Development" Workload in the installer
      • Ensure Visual Studio is completely up to date (v17.11.2+): In Visual Studio click "Help" then "Check for Updates"
    • Mac with Visual Studio Code: Install Visual Studio Code and open it. Open the Extensions pane ("Preferences" >> "Extensions"), and search for / install the ms-dotnettools.csharp extension.
  2. .NET SDK: See the main contributing doc for the required version.

Creating a new Blazor project

The built-in Blazor template projects are good starting points. Starting with .NET 8, there's a unified Blazor Web App project type, which supports multiple render modes (see the Blazor render modes documentation for more information). Also see the "Supported Render Modes" section below.

Visual Studio: Choose "New" >> "Project", and pick "Blazor Web App". Choose the appropriate settings for Interactive Render Mode and Interactivity Location, based on your project's needs. VS Code: Create a new folder, then open it in VS Code. Choose "View" >> "Terminal", and type dotnet new blazor and press Enter, to create a new Blazor Web App. Open the Command Palette ("View" >> "Command Palette" or Ctrl-Shift-P), enter ".NET Generate Assets for Build and Debug" and press Enter.

Additional Resources: Microsoft tutorial: Build a web app with Blazor; dotnet new documentation

Reference NimbleBlazor in a Blazor project

  1. Add a PackageReference to the NimbleBlazor NuGet package:
    • Using the published NimbleBlazor NuGet package (recommended)
      • Visual Studio: "Project" >> "Manage NuGet Packages", pick "nuget.org" in the "Package Source" dropdown, and ensure "Include prerelease" is checked. Search for "NimbleBlazor", select it and click the "Install" button.
      • VS Code: Run the command dotnet add package NimbleBlazor --source https://api.nuget.org/v3/index.json --prerelease in the Terminal window.
    • For Nimble developers, with a locally built NimbleBlazor NuGet (built from the Nimble repo):
      • Run npm run build, and then npm run pack -w @ni/nimble-blazor from the root of the Nimble repo
      • Visual Studio: "Project" >> "Manage NuGet Packages". Click the gear/Settings button. Add a new Package Source ("NimbleBlazor") as [NimbleRepoDirectory]\packages\blazor-workspace\dist and commit/ close Settings. Pick "NimbleBlazor" in the "Package Source" dropdown, and ensure "Include prerelease" is checked. Search for "NimbleBlazor", select it and click the "Install" button.
      • VS Code: Run the command dotnet add package NimbleBlazor --source [NimbleRepoDirectory]\packages\blazor-workspace\dist in the Terminal window.
  2. Add required references to Blazor code
    • Open _Imports.razor, and add a new line at the bottom: @using NimbleBlazor
    • Open the HTML page (generally App.razor for Blazor Web Apps, or wwwroot/index.html for Blazor WebAssembly / Hybrid)
      At the bottom of the <head> section (right before </head>), add
      <link href="_content/NimbleBlazor/nimble-tokens/css/fonts.css" rel="stylesheet" />
      
      At the bottom of the <body> section (right before </body>), add
      <script src="_content/NimbleBlazor/nimble-components/all-components-bundle.min.js"></script>
      

Additional Resources: dotnet add package documentation

Use Nimble Blazor components

For a simple modification to the Blazor template project: open Index.razor and add the following code at the bottom, to add a Nimble text field that updates when a Nimble button is clicked:

<NimbleTextField Value="@ButtonClickStatus"></NimbleTextField>
<NimbleButton Appearance="ButtonAppearance.Outline" @onclick="OnButtonClicked">Click Me</NimbleButton>
@code {
    protected string ButtonClickStatus { get; set; } = string.Empty;
    private int _buttonClickCount = 0;

    private void OnButtonClicked(MouseEventArgs args)
    {
        _buttonClickCount++;
        ButtonClickStatus = $"Button Clicked {_buttonClickCount} times";
    }
}

To test out your changes, do "Debug" >> "Start without Debugging" in Visual Studio, or dotnet watch run in the VS Code Terminal.

More complete examples can be found in the Demo.Client/Server example projects.

NimbleTable usage

The NimbleTable requires that its data be set via the SetDataAsync method. The appropriate place to call this method is either in the OnAfterRenderAsync override of the hosting component or after that method has been called for the first time.

As the NimbleTable is generic a client must supply its generic type in the markup using the TData property syntax. The following code represents a typical usage of the NimbleTable:

<NimbleTable TData="MyRecordType" @ref="_table">
@code {
    private NimbleTable<MyRecordType>? _table;
    private IEnumerable<MyRecordType> TableData { get; set; } = Enumerable.Empty<MyRecordType>();
    ...
    public override async Task OnAfterRenderAsync(bool firstRender)
    {
        await base.OnAfterRenderAsync(firstRender);
        await _table.SetDataAsync(TableData); // populate TableData before here
    }

    public class MyRecordType
    {
        ...
    }
}

For more information regarding the Blazor component lifecycle mechanisms (such as OnAfterRenderAsync), please consult the Microsoft Blazor docs.

Supported Render Modes

Nimble supports all of the Blazor render modes:

  • Interactive server-side rendering (interactive SSR) using Blazor Server: RenderMode.InteractiveServer
  • Interactive WebAssembly: Client-side rendering (CSR) using Blazor WebAssembly: RenderMode.InteractiveWebAssembly
  • Interactive Auto: Interactive SSR initially, then CSR on subsequent visits after the Blazor bundle is downloaded: RenderMode.InteractiveAuto
  • Static server-side rendering (static SSR): Default, when no render mode is specified
    • ⚠️Warning: This render mode is not recommended for most use cases with Nimble. As the page is just rendered once server-side and then no state is maintained, you're unable to use event handlers or call methods on components. This also means that for components like the Nimble Table / Wafer Map, setting data can't be done via the component methods (because they'll have no effect if called).
Prerendering

Blazor with .NET 8 uses prerendering by default for interactive render modes. With it enabled, components are initially rendered server-side without event handlers connected, which could cause unexpected behavior (no effect when users interact with controls immediately after page load).

See the Blazor prerendering docs for information on how to opt out of prerendering.

Theming and Design Tokens

To use Nimble's theme-aware design tokens in a Blazor app, you should have a <NimbleThemeProvider> element as an ancestor to all of the Nimble components you use. The app's default layout (MainLayout.razor in the examples) is a good place to put the theme provider (as the root content of the page).

Using Nimble Design Tokens (CSS/SCSS)

Blazor doesn't have built-in support for using/ building SCSS files, however Nimble's design tokens can be used as CSS variables (var(--ni-nimble-...)) in Blazor apps without any additional work.
For a full list of supported variable names, see the Nimble Storybook, "Tokens" >> "Theme-aware tokens".

Experimental: Manually including Nimble Tokens SCSS files
There are currently extra manual steps required to use the Nimble design tokens as SCSS in Blazor projects (which results in better IntelliSense and compile-time checking for the Nimble tokens and variables):

  1. Copy the Nimble tokens SCSS files into your Blazor project: Include tokens.scss and tokens-internal.scss from the nimble-components in your Blazor project directory. The simplest way to get these files is via unpkg.com (latest versions: tokens.scss, tokens-internal.scss)
  2. In tokens.scss, add a file extension to the @import statement at the top ('./tokens-internal''./tokens-internal.scss')
  3. Add a NuGet package reference to a SASS/SCSS compiler to your Blazor project. Both LibSassBuilder and DartSassBuilder (latest/prerelease) have been tested with Blazor projects and work with no additional configuration required.
  4. Add new SCSS files for your Razor components (e.g. MyComponent.razor.scss), and @import 'tokens.scss' in it (updating the import relative path as needed).
  5. Use the $ni-nimble-... variables in your Blazor application SCSS.

The SCSS compilation happens before the rest of Blazor's compilation, so this approach works fine with Blazor CSS isolation.
Note: This approach requires periodically updating the Nimble tokens SCSS files manually (whenever the Nimble Blazor NuGet version is updated).

Localization (Optional)

Most user-visible strings displayed by Nimble components are provided by the client application and are expected to be localized by the application if necessary. However, some strings are built into Nimble components and are provided only in English.

To provide localized strings in a localized Blazor app:

  1. Add the label providers as children of your <NimbleThemeProvider>:
    • <NimbleLabelProviderCore>: Used for labels for all components besides the table
    • <NimbleLabelProviderTable>: Used for labels for the table (and table sub-components / column types)
  2. For each Nimble-provided label shown in the Label Provider Storybook documentation:
    • Add a new entry for the label in a resource file (.resx). You can either add to an existing resx file, or create a new one just for the Nimble strings. The resource value should be the Nimble-provided English default string shown in Storybook.
    • Follow standard Blazor localization patterns to localize the strings, and load the localized versions at runtime in your application.
    • Provide Nimble the localized strings with the label provider APIs. For example, to provide the popupDismiss label on NimbleLabelProviderCore, if you load your string resources with a .NET IStringLocalizer instance, your label provider may look like the following:
      <NimbleLabelProviderCore PopupDismiss="@LabelStringLocalizer["popupDismiss"]"></NimbleLabelProviderCore>
      

Using Nimble Blazor in a Blazor Hybrid app

Requirement: Microsoft.AspNetCore.Components.WebView v8.0.4+

This updated WebView package include a fix so that the JavaScript initialization code that Nimble/Spright Blazor uses gets loaded correctly. Note that if using the Microsoft.AspNetCore.Components.WebView.Wpf package, it only specifies a dependency of Microsoft.AspNetCore.Components.WebView v8.0+, so you may to add need an explicit dependency on Microsoft.AspNetCore.Components.WebView to ensure a recent enough version is included. The Demo.Hybrid project in the Blazor solution illustrates this setup.

Contributing

Follow the instructions in CONTRIBUTING.md to modify this library.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
19.1.4 43 11/22/2024
19.1.3 71 11/19/2024
19.1.2 64 11/18/2024
19.1.1 73 11/14/2024
19.1.0 71 11/14/2024
19.0.1 83 11/5/2024
19.0.0 86 11/1/2024
18.4.4 89 10/29/2024
18.4.3 73 10/29/2024
18.4.2 73 10/28/2024
18.4.1 93 10/24/2024
18.4.0 81 10/24/2024
18.3.4 64 10/23/2024
18.3.3 65 10/23/2024
18.3.2 104 10/18/2024
18.3.1 79 10/16/2024
18.3.0 78 10/16/2024
18.2.11 91 10/14/2024
18.2.10 89 10/9/2024
18.2.9 97 9/26/2024
18.2.8 83 9/26/2024
18.2.7 79 9/26/2024
18.2.6 89 9/25/2024
18.2.5 97 9/18/2024
18.2.4 109 9/11/2024
18.2.3 100 9/11/2024
18.2.2 105 9/11/2024
18.2.1 115 9/10/2024
18.2.0 127 9/5/2024
18.1.1 106 9/5/2024
18.1.0 99 9/5/2024
18.0.5 99 9/4/2024
18.0.4 98 9/3/2024
18.0.3 101 9/3/2024
18.0.2 93 9/3/2024
18.0.1 103 8/28/2024
18.0.0 112 8/23/2024
17.6.4 121 8/21/2024
17.6.3 114 8/20/2024
17.6.2 154 8/16/2024
17.6.1 93 8/1/2024
17.6.0 109 7/23/2024
17.5.0 280 7/17/2024
17.4.3 108 7/3/2024
17.4.2 181 6/13/2024
17.4.1 96 6/7/2024
17.4.0 104 6/6/2024
17.3.1 113 6/1/2024
17.3.0 111 5/21/2024
17.2.0 112 5/10/2024
17.1.0 112 5/10/2024
17.0.1 111 5/9/2024
17.0.0 122 5/6/2024
16.1.1 75 5/2/2024
16.1.0 69 5/2/2024
16.0.10 74 5/1/2024
16.0.9 71 5/1/2024
16.0.8 71 5/1/2024
16.0.7 78 5/1/2024
16.0.6 97 4/30/2024
16.0.5 84 4/30/2024
16.0.4 114 4/26/2024
16.0.3 99 4/26/2024
16.0.2 90 4/26/2024
16.0.1 110 4/24/2024
16.0.0 121 4/22/2024
15.0.2 112 4/19/2024
15.0.1 105 4/18/2024
15.0.0 102 4/17/2024
14.7.14 99 4/15/2024
14.7.13 112 4/15/2024
14.7.12 113 4/10/2024
14.7.11 92 4/10/2024
14.7.10 97 4/10/2024
14.7.9 111 4/10/2024
14.7.8 108 4/9/2024
14.7.7 104 4/8/2024
14.7.6 109 4/4/2024
14.7.5 93 4/4/2024
14.7.4 107 4/4/2024
14.7.3 116 4/2/2024
14.7.2 110 4/2/2024
14.7.1 87 4/2/2024
14.7.0 132 3/29/2024
14.6.0 117 3/28/2024
14.5.9 108 3/28/2024
14.5.8 111 3/27/2024
14.5.7 123 3/27/2024
14.5.6 124 3/27/2024
14.5.5 107 3/27/2024
14.5.4 110 3/26/2024
14.5.3 128 3/25/2024
14.5.2 117 3/21/2024
14.5.1 135 3/20/2024
14.5.0 126 3/18/2024
14.4.1 124 3/14/2024
14.4.0 117 3/13/2024
14.3.20 125 3/12/2024
14.3.19 120 3/12/2024
14.3.18 137 3/7/2024
14.3.17 130 3/6/2024
14.3.16 114 3/5/2024
14.3.15 116 3/5/2024
14.3.14 120 3/4/2024
14.3.13 127 3/1/2024
14.3.12 94 2/29/2024
14.3.11 101 2/28/2024
14.3.10 90 2/28/2024
14.3.9 111 2/28/2024
14.3.8 112 2/27/2024
14.3.7 99 2/26/2024
14.3.6 105 2/23/2024
14.3.5 119 2/23/2024
14.3.4 107 2/23/2024
14.3.3 98 2/23/2024
14.3.2 124 2/22/2024
14.3.1 113 2/22/2024
14.2.5 119 2/21/2024
14.2.4 120 2/21/2024
14.2.3 137 2/21/2024
14.2.2 120 2/20/2024
14.2.1 106 2/19/2024
14.2.0 120 2/19/2024
14.1.7 111 2/19/2024
14.1.6 170 2/16/2024
14.1.5 111 2/15/2024
14.1.4 114 2/14/2024
14.1.3 111 2/13/2024
14.1.2 121 2/13/2024
14.1.1 112 2/12/2024
14.1.0 129 2/9/2024
14.0.2 125 2/8/2024
14.0.1 112 2/7/2024
14.0.0 135 2/7/2024
13.2.3 106 2/6/2024
13.2.2 120 2/2/2024
13.2.1 103 1/31/2024
13.2.0 106 1/29/2024
13.1.5 98 1/27/2024
13.1.4 106 1/25/2024
13.1.3 109 1/24/2024
13.1.2 96 1/24/2024
13.1.1 104 1/23/2024
13.1.0 99 1/23/2024
13.0.1 121 1/22/2024
13.0.0 107 1/22/2024
12.7.14 122 1/19/2024
12.7.13 107 1/18/2024
12.7.12 109 1/17/2024
12.7.11 101 1/17/2024
12.7.10 114 1/16/2024
12.7.9 117 1/16/2024
12.7.8 141 1/10/2024
12.7.7 146 1/8/2024
12.7.6 130 1/5/2024
12.7.5 121 1/5/2024
12.7.4 148 1/4/2024
12.7.3 120 1/4/2024
12.7.2 172 12/15/2023
12.7.1 117 12/13/2023
12.7.0 117 12/13/2023
12.6.2 117 12/11/2023
12.6.1 121 12/11/2023
12.6.0 133 12/7/2023
12.5.20 121 12/7/2023
12.5.19 110 12/5/2023
12.5.18 120 11/28/2023
12.5.17 115 11/27/2023
12.5.16 115 11/23/2023
12.5.15 97 11/21/2023
12.5.14 111 11/21/2023
12.5.13 116 11/17/2023
12.5.12 111 11/17/2023
12.5.11 113 11/15/2023
12.5.10 126 11/13/2023
12.5.9 110 11/11/2023
12.5.8 112 11/8/2023
12.5.7 128 11/6/2023
12.5.6 99 11/3/2023
12.5.5 118 11/2/2023
12.5.4 110 11/2/2023
12.5.3 121 11/1/2023
12.5.2 109 11/1/2023
12.5.1 118 11/1/2023
12.5.0 129 10/26/2023
12.4.1 120 10/26/2023
12.4.0 125 10/23/2023
12.3.16 137 10/19/2023
12.3.15 126 10/19/2023
12.3.14 140 10/18/2023
12.3.13 133 10/16/2023
12.3.12 142 10/4/2023
12.3.11 128 10/3/2023
12.3.10 122 9/28/2023
12.3.9 120 9/28/2023
12.3.8 126 9/26/2023
12.3.7 126 9/22/2023
12.3.6 114 9/22/2023
12.3.5 126 9/21/2023
12.3.4 126 9/20/2023
12.3.3 120 9/20/2023
12.3.2 114 9/20/2023
12.3.1 109 9/20/2023
12.3.0 118 9/19/2023
12.2.2 106 9/19/2023
12.2.1 126 9/15/2023
12.2.0 121 9/15/2023
12.1.43 131 9/15/2023
12.1.42 113 9/15/2023
12.1.41 137 9/14/2023
12.1.40 118 9/14/2023
12.1.39 122 9/14/2023
12.1.38 141 9/13/2023
12.1.37 114 9/13/2023
12.1.36 133 9/13/2023
12.1.35 130 9/13/2023
12.1.34 114 9/13/2023
12.1.33 118 9/12/2023
12.1.32 132 9/8/2023
12.1.31 132 9/7/2023
12.1.30 133 9/6/2023
12.1.29 126 9/6/2023
12.1.28 126 9/6/2023
12.1.27 141 9/6/2023
12.1.26 120 9/1/2023
12.1.25 151 9/1/2023
12.1.24 136 9/1/2023
12.1.23 133 9/1/2023
12.1.22 135 8/31/2023
12.1.21 139 8/31/2023
12.1.20 131 8/31/2023
12.1.19 143 8/30/2023
12.1.18 153 8/29/2023
12.1.17 160 8/28/2023
12.1.16 141 8/24/2023
12.1.15 130 8/22/2023
12.1.14 129 8/21/2023
12.1.13 122 8/21/2023
12.1.12 130 8/18/2023
12.1.11 122 8/17/2023
12.1.10 146 8/17/2023
12.1.9 154 8/15/2023
12.1.8 147 8/15/2023
12.1.7 135 8/14/2023
12.1.6 149 8/12/2023
12.1.5 152 8/11/2023
12.1.4 146 8/11/2023
12.1.3 138 8/10/2023
12.1.2 153 8/7/2023
12.1.1 5,455 8/3/2023
12.1.0 173 8/3/2023
12.0.6 147 8/2/2023
12.0.5 352 8/2/2023
12.0.4 144 8/1/2023
12.0.3 140 8/1/2023
12.0.2 141 8/1/2023
12.0.1 144 7/31/2023
12.0.0 151 7/26/2023
11.11.2 156 7/25/2023
11.11.1 156 7/25/2023
11.11.0 159 7/24/2023
11.10.7 160 7/24/2023
11.10.6 154 7/24/2023
11.10.5 149 7/21/2023
11.10.4 150 7/20/2023
11.10.3 146 7/20/2023
11.10.2 151 7/19/2023
11.10.1 162 7/18/2023
11.10.0 150 7/18/2023
11.9.20 161 7/17/2023
11.9.19 147 7/17/2023
11.9.18 142 7/17/2023
11.9.17 143 7/14/2023
11.9.16 144 7/14/2023
11.9.15 155 7/13/2023
11.9.14 150 7/13/2023
11.9.13 141 6/30/2023
11.9.12 145 6/28/2023
11.9.11 138 6/28/2023
11.9.10 137 6/27/2023
11.9.9 128 6/20/2023
11.9.8 141 6/16/2023
11.9.7 138 6/13/2023
11.9.6 141 6/12/2023
11.9.5 135 6/12/2023
11.9.4 148 6/6/2023
11.9.3 146 6/2/2023
11.9.2 139 6/1/2023
11.9.1 150 5/23/2023
11.9.0 154 5/23/2023
11.8.30 148 5/22/2023
11.8.29 149 5/17/2023
11.8.28 144 5/15/2023
11.8.27 151 5/12/2023
11.8.26 163 5/12/2023
11.8.25 159 5/11/2023
11.8.24 158 5/8/2023
11.8.23 159 5/8/2023
11.8.22 171 5/5/2023
11.8.21 171 5/5/2023
11.8.20 171 5/5/2023
11.8.19 182 5/2/2023
11.8.18 197 5/1/2023
11.8.17 181 4/28/2023
11.8.16 180 4/26/2023
11.8.15 187 4/25/2023
11.8.14 493 4/25/2023
11.8.13 186 4/21/2023
11.8.12 226 4/19/2023
11.8.11 211 4/18/2023
11.8.10 206 4/14/2023
11.8.9 198 4/11/2023
11.8.8 230 4/11/2023
11.8.7 215 4/10/2023
11.8.6 203 4/10/2023
11.8.5 194 4/7/2023
11.8.4 218 4/6/2023
11.8.3 213 4/6/2023
11.8.2 210 4/6/2023
11.8.1 189 4/5/2023
11.8.0 209 4/5/2023
11.7.1 219 4/5/2023
11.7.0 217 4/4/2023
11.6.2 222 4/4/2023
11.6.1 220 4/3/2023
11.6.0 212 4/3/2023
11.5.1 1,207 4/3/2023
11.5.0 233 4/1/2023
11.4.1 264 3/28/2023
11.4.0 237 3/22/2023
11.3.6 233 3/16/2023
11.3.5 226 3/15/2023
11.3.4 235 3/14/2023
11.3.3 246 3/10/2023
11.3.2 257 3/10/2023
11.3.1 251 3/10/2023
11.3.0 260 3/9/2023
11.2.7 680 3/2/2023
11.2.6 265 3/2/2023
11.2.5 266 3/1/2023
11.2.4 244 3/1/2023
11.2.3 250 3/1/2023
11.2.2 288 2/28/2023
11.2.1 287 2/21/2023
11.2.0 268 2/20/2023
11.1.16 277 2/20/2023
11.1.15 280 2/17/2023
11.1.14 259 2/17/2023
11.1.13 278 2/15/2023
11.1.12 279 2/14/2023
11.1.11 279 2/14/2023
11.1.10 284 2/14/2023
11.1.9 272 2/14/2023
11.1.8 275 2/14/2023
11.1.7 272 2/13/2023
11.1.6 282 2/10/2023
11.1.5 275 2/10/2023
11.1.4 263 2/10/2023
11.1.3 279 2/9/2023
11.1.2 277 2/9/2023
11.1.1 277 2/7/2023
11.1.0 279 2/6/2023
11.0.3 326 1/30/2023
11.0.2 317 1/27/2023
11.0.1 304 1/27/2023
11.0.0 298 1/26/2023
10.1.0 331 1/26/2023
10.0.11 335 1/25/2023
10.0.10 324 1/24/2023
10.0.9 325 1/20/2023
10.0.8 702 1/20/2023
10.0.7 333 1/19/2023
10.0.6 342 1/18/2023
10.0.5 330 1/18/2023
10.0.4 352 1/18/2023
10.0.3 337 1/18/2023
10.0.2 357 1/14/2023
10.0.1 347 1/13/2023
10.0.0 343 1/12/2023
9.4.4 331 1/11/2023
9.4.3 324 1/11/2023
9.4.2 352 1/9/2023
9.4.1 366 1/5/2023
9.4.0 358 1/5/2023
9.3.0 335 1/4/2023
9.2.0 343 1/4/2023
9.1.23 343 12/17/2022
9.1.22 341 12/16/2022
9.1.21 332 12/16/2022
9.1.20 328 12/16/2022
9.1.19 338 12/16/2022
9.1.18 333 12/13/2022
9.1.17 324 12/13/2022
9.1.16 307 12/12/2022
9.1.15 330 12/12/2022
9.1.14 352 12/9/2022
9.1.13 342 12/9/2022
9.1.12 350 12/7/2022
9.1.11 342 12/6/2022
9.1.10 349 12/6/2022
9.1.9 329 12/5/2022
9.1.8 375 11/29/2022
9.1.7 350 11/23/2022
9.1.6 334 11/22/2022
9.1.5 370 11/14/2022
9.1.4 378 11/14/2022
9.1.3 399 11/11/2022
9.1.2 398 11/11/2022
9.1.1 398 11/10/2022
9.1.0 456 10/25/2022
9.0.1 415 10/18/2022
9.0.0 418 10/18/2022
8.0.0 443 10/7/2022
7.0.0 426 10/6/2022
6.0.2 438 10/4/2022
6.0.1 421 10/3/2022
6.0.0 477 9/29/2022
5.8.0 462 9/29/2022
5.7.1 480 9/29/2022
5.7.0 485 9/15/2022
5.6.4 473 9/12/2022
5.6.3 449 9/12/2022
5.6.2 457 9/6/2022
5.6.1 445 9/2/2022
5.6.0 468 8/30/2022
5.5.6 471 8/30/2022
5.5.5 457 8/26/2022
5.5.4 467 8/24/2022
5.5.3 482 8/15/2022
5.5.2 474 8/12/2022
5.5.1 477 8/11/2022
5.5.0 485 8/11/2022
5.4.0 473 8/10/2022
5.3.7 471 8/10/2022
5.3.6 466 8/10/2022
5.3.5 475 8/9/2022
5.3.4 475 8/9/2022
5.3.3 483 8/9/2022
5.3.2 490 8/9/2022
5.3.1 467 8/9/2022
5.3.0 1,146 8/1/2022
5.2.6 488 8/1/2022
5.2.5 502 7/28/2022
5.2.4 484 7/28/2022
5.2.3 515 7/27/2022
5.2.2 498 7/27/2022
5.2.1 493 7/25/2022
5.2.0 507 7/22/2022
5.1.7 493 7/20/2022
5.1.6 501 7/18/2022
5.1.5 481 7/18/2022
5.1.4 512 7/15/2022
5.1.3 506 6/27/2022
5.1.2 509 6/24/2022
5.1.1 507 6/23/2022
5.1.0 532 6/20/2022
5.0.4 497 6/20/2022
5.0.3 495 6/16/2022
5.0.2 503 6/15/2022
5.0.1 485 6/13/2022
5.0.0 487 6/7/2022
4.0.0 513 6/2/2022
3.1.3 506 5/31/2022
3.1.2 510 5/27/2022
3.1.1 531 5/23/2022
3.0.1 546 5/19/2022
1.0.0-alpha.3 286 6/22/2021
1.0.0-alpha.2 229 4/1/2021
1.0.0-alpha.1 219 3/31/2021
1.0.0-alpha.0 244 3/31/2021