LoreSoft.Blazor.Controls 12.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package LoreSoft.Blazor.Controls --version 12.1.0
                    
NuGet\Install-Package LoreSoft.Blazor.Controls -Version 12.1.0
                    
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="LoreSoft.Blazor.Controls" Version="12.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LoreSoft.Blazor.Controls" Version="12.1.0" />
                    
Directory.Packages.props
<PackageReference Include="LoreSoft.Blazor.Controls" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LoreSoft.Blazor.Controls --version 12.1.0
                    
#r "nuget: LoreSoft.Blazor.Controls, 12.1.0"
                    
#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.
#:package LoreSoft.Blazor.Controls@12.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LoreSoft.Blazor.Controls&version=12.1.0
                    
Install as a Cake Addin
#tool nuget:?package=LoreSoft.Blazor.Controls&version=12.1.0
                    
Install as a Cake Tool

LoreSoft Blazor Controls

A comprehensive collection of high-quality Blazor components designed to enhance your web applications with rich user interface elements. This library provides everything from data visualization components to form controls, loading indicators, and utility components.

Overview

The LoreSoft Blazor Controls project contains a collection of production-ready Blazor user controls that are easy to use, highly customizable, and built with performance in mind. Whether you need data grids, form inputs, loading indicators, or notification systems, this library has you covered.

Installing

The LoreSoft.Blazor.Controls library is available on nuget.org via package name LoreSoft.Blazor.Controls.

To install LoreSoft.Blazor.Controls, run the following command in the Package Manager Console

Install-Package LoreSoft.Blazor.Controls

Setup

To use, you need to include the following CSS and JS files in your index.html (Blazor WebAssembly) or _Host.cshtml (Blazor Server).

In the head tag add the following CSS.

<link rel="stylesheet" href="_content/LoreSoft.Blazor.Controls/BlazorControls.css" />

Components

This library provides a comprehensive set of Blazor components organized into the following categories:

Data Components

DataGrid

A powerful data grid component for displaying tabular data with advanced features:

  • Column sorting (single and multi-column)
  • Filtering and searching
  • Row selection and grouping
  • Detail views and expandable rows
  • CSV export functionality
  • Customizable column templates
  • Built-in pagination support
DataList

A flexible list component for displaying data items using custom templates:

  • Query-based filtering
  • Field-based sorting
  • CSV export capabilities
  • Customizable row templates
  • Simple and lightweight alternative to DataGrid

Form Components

DateTimePicker

A comprehensive date and time input component supporting multiple data types:

  • Supports DateTime, DateTimeOffset, DateOnly, TimeOnly, and TimeSpan
  • Multiple picker modes (date, time, datetime)
  • Built-in validation support
  • Keyboard navigation
  • Customizable format strings
InputImage

An image upload component with preview functionality:

  • File upload with drag-and-drop support
  • Image preview with automatic resizing
  • Data URL conversion
  • File size validation
  • Configurable maximum file size
ToggleSwitch

A modern toggle switch component for boolean values:

  • Smooth animations
  • Two-way data binding
  • Form validation support
  • Customizable styling
  • Supports both bool and bool? types
Typeahead

An advanced autocomplete/search component with rich features:

  • Asynchronous search functionality
  • Debounced search input
  • Single and multi-select modes
  • Customizable templates for results and selections
  • Minimum character length configuration
  • Built-in form validation support

UI Components

BusyButton

A button component that shows loading state during operations:

  • Automatic disable during busy state
  • Customizable busy indicator
  • Built-in loading text
  • Smooth state transitions
Conditional

A utility component for conditional rendering:

  • Simple boolean-based content switching
  • Separate templates for true/false states
  • Clean alternative to @if statements in templates
LoadingBlock

A loading overlay component for indicating progress:

  • Overlay or replacement loading modes
  • Customizable loading template
  • Smooth fade transitions
  • Flexible positioning
ProgressBar

An animated progress bar with service-based state management:

  • Smooth animations with customizable duration
  • Service-based progress updates
  • Auto-hide on completion
  • Multiple progress operations support
Skeleton

A skeleton placeholder component for loading states:

  • Multiple shape types (text, rectangle, circle)
  • Customizable dimensions
  • Smooth loading animations
  • Responsive design support

Notification Components

Toaster

A comprehensive toast notification system:

  • Multiple notification levels (Info, Success, Warning, Error)
  • Configurable positioning
  • Auto-dismiss with custom timeouts
  • Custom templates and styling
  • Queue management for multiple toasts

Query Components

QueryBuilder

A visual query builder for complex filtering:

  • Dynamic field configuration
  • Nested group support
  • Multiple operators per field type
  • Real-time query updates
  • Export to various query formats

Utility Components

Gravatar

A component for displaying Gravatar images:

  • Automatic MD5 hash generation
  • Fallback image support
  • Multiple Gravatar modes
  • Configurable ratings and sizes
LazyValue

A component for asynchronously loading and displaying values:

  • Key-based value loading
  • Custom loading templates
  • Error handling support
  • Caching capabilities
LocalTime

A component for displaying dates and times in the user's local timezone:

  • Automatic timezone conversion
  • Supports DateTime and DateTimeOffset
  • Customizable display formats
  • Semantic HTML time elements
Repeater

A simple repeater component for rendering collections:

  • Custom item templates
  • Empty state templates
  • Clean alternative to @foreach loops
  • Strongly typed item context

Examples

Typeahead Component

The Typeahead component provides powerful search and selection capabilities:

Basic Example

State selection dropdown. Bind to Value property for single selection mode.

<Typeahead SearchMethod="@SearchState"
           Items="Data.StateList"
           @bind-Value="@SelectedState"
           Placeholder="State">
    <SelectedTemplate Context="state">
        @state.Name
    </SelectedTemplate>
    <ResultTemplate Context="state">
        @state.Name
    </ResultTemplate>
</Typeahead>
@code {
    public StateLocation SelectedState { get; set; }

    public Task<IEnumerable<StateLocation>> SearchState(string searchText)
    {
        var result = Data.StateList
            .Where(x => x.Name.ToLower().Contains(searchText.ToLower()))
            .ToList();

        return Task.FromResult<IEnumerable<StateLocation>>(result);
    }
}

Multiselect Example

When you want to be able to select multiple results. Bind to the Values property. The target property must be type IList<T>.

<Typeahead SearchMethod="@SearchPeople"
           Items="Data.PersonList"
           @bind-Values="@SelectedPeople"
           Placeholder="Owners">
    <SelectedTemplate Context="person">
        @person.FullName
    </SelectedTemplate>
    <ResultTemplate Context="person">
        @person.FullName
    </ResultTemplate>
</Typeahead>
@code {
    public IList<Person> SelectedPeople;

    public Task<IEnumerable<Person>> SearchPeople(string searchText)
    {
        var result = Data.PersonList
            .Where(x => x.FullName.ToLower().Contains(searchText.ToLower()))
            .ToList();

        return Task.FromResult<IEnumerable<Person>>(result);
    }
 }

Use Octokit to search for a GitHub repository.

<Typeahead SearchMethod="@SearchGithub"
           @bind-Value="@SelectedRepository"
           Placeholder="Repository"
           MinimumLength="3">
    <SelectedTemplate Context="repo">
        @repo.FullName
    </SelectedTemplate>
    <ResultTemplate Context="repo">
        <div class="github-repository clearfix">
            <div class="github-avatar"><img src="@repo.Owner.AvatarUrl"></div>
            <div class="github-meta">
                <div class="github-title">@repo.FullName</div>
                <div class="github-description">@repo.Description</div>
                <div class="github-statistics">
                    <div class="github-forks"><i class="fa fa-flash"></i> @repo.ForksCount Forks</div>
                    <div class="github-stargazers"><i class="fa fa-star"></i> @repo.StargazersCount Stars</div>
                    <div class="github-watchers"><i class="fa fa-eye"></i> @repo.SubscribersCount Watchers</div>
                </div>
            </div>
        </div>
    </ResultTemplate>
</Typeahead>
@inject IGitHubClient GitHubClient;

@code {
    public Repository SelectedRepository { get; set; }

    public async Task<IEnumerable<Repository>> SearchGithub(string searchText)
    {
        var request = new SearchRepositoriesRequest(searchText);
        var result = await GitHubClient.Search.SearchRepo(request);

        return result.Items;
    }
}
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.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.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
12.1.2 0 10/6/2025
12.1.1 38 10/5/2025
12.1.0 59 10/3/2025
12.0.1 98 10/3/2025
12.0.0 99 10/3/2025
12.0.0-beta.2 101 10/3/2025
12.0.0-beta.1 105 10/2/2025
11.6.1 301 9/19/2025
11.6.0 289 9/18/2025
11.5.1 242 9/5/2025
11.5.0 332 8/28/2025
11.4.1 223 7/30/2025
11.4.0 126 7/29/2025
11.3.7 127 7/29/2025
11.3.6 132 7/28/2025
11.3.5 193 7/26/2025
11.3.4 395 7/21/2025
11.3.3 173 7/5/2025
11.3.2 176 7/3/2025
11.3.1 207 7/2/2025
11.3.0 171 7/2/2025
11.2.0 173 7/1/2025
11.1.0 632 5/8/2025
11.0.0 489 4/7/2025
10.2.4 255 3/27/2025
10.2.3 188 3/26/2025
10.2.2 526 3/24/2025
10.2.1 512 3/24/2025
10.2.0 1,343 3/17/2025
10.1.1 1,573 11/18/2024
10.1.0 139 11/18/2024
10.0.0 208 11/13/2024
9.9.0 369 10/27/2024
9.8.8 1,670 8/28/2024
9.8.7 224 8/20/2024
9.8.6 360 8/19/2024
9.8.5 170 8/19/2024
9.8.4 172 8/18/2024
9.8.3 183 8/18/2024
9.8.2 195 8/18/2024
9.8.1 181 8/16/2024
9.8.0 182 8/16/2024
9.7.9 165 8/15/2024
9.7.8 218 8/14/2024
9.7.7 190 8/13/2024
9.7.6 125 8/2/2024
9.7.5 135 8/1/2024
9.7.4 236 7/30/2024
9.7.3 1,067 6/10/2024
9.7.2 197 6/1/2024
9.7.1 169 6/1/2024
9.7.0 164 5/31/2024
9.6.1 188 5/25/2024
9.6.0 174 5/25/2024
9.5.0 372 4/26/2024
9.4.1 3,045 4/12/2024
9.4.0 171 4/12/2024
9.3.0 170 4/12/2024
9.2.0 747 3/2/2024
9.1.0 623 1/14/2024
9.0.2 1,123 12/4/2023
9.0.1 214 12/4/2023
9.0.0 185 12/4/2023
8.0.0 6,489 12/28/2022
7.0.0 11,913 11/10/2021
6.7.0 4,582 10/23/2021
6.6.3 464 10/21/2021
6.6.2 1,571 7/28/2021
6.6.1 1,165 5/15/2021
6.6.0 534 5/15/2021
6.5.0.156 1,110 4/9/2021
6.2.0.139 1,318 3/24/2021
6.1.0.137 529 3/24/2021
6.0.0.128 651 3/14/2021
5.0.0.116 620 2/25/2021
4.1.0.114 7,113 2/15/2021
4.0.0.84 10,917 11/16/2020
3.5.0.27 12,117 6/4/2020
3.0.0.61 5,826 1/24/2020
3.0.0.52 1,012 1/2/2020
3.0.0.51 642 1/2/2020
3.0.0.49 632 1/2/2020
2.1.0.40 773 12/20/2019
2.1.0.39 847 12/18/2019
2.1.0.38 3,501 12/5/2019
2.1.0.29 1,310 10/3/2019
2.0.0.28 667 9/23/2019
2.0.0.27 445 9/19/2019
2.0.0.21 423 9/17/2019
2.0.0.20 440 9/6/2019
2.0.0.14 468 8/23/2019
2.0.0.13 434 8/19/2019
2.0.0.9 437 8/16/2019
1.0.0.8 457 8/14/2019
1.0.0.6 433 8/7/2019
1.0.0.5 441 8/7/2019
1.0.0.4 465 8/6/2019