Soenneker.Lepton.Suite
4.0.12
Prefix Reserved
dotnet add package Soenneker.Lepton.Suite --version 4.0.12
NuGet\Install-Package Soenneker.Lepton.Suite -Version 4.0.12
<PackageReference Include="Soenneker.Lepton.Suite" Version="4.0.12" />
<PackageVersion Include="Soenneker.Lepton.Suite" Version="4.0.12" />
<PackageReference Include="Soenneker.Lepton.Suite" />
paket add Soenneker.Lepton.Suite --version 4.0.12
#r "nuget: Soenneker.Lepton.Suite, 4.0.12"
#:package Soenneker.Lepton.Suite@4.0.12
#addin nuget:?package=Soenneker.Lepton.Suite&version=4.0.12
#tool nuget:?package=Soenneker.Lepton.Suite&version=4.0.12
Soenneker.Lepton.Suite
Small, composable Blazor component base classes for libraries that need clean defaults without buying into a UI framework.
Lepton gives component authors a consistent foundation for child content, element attributes, IDs, async disposal, and cancellation. It is not a component library. It is the base layer you build component libraries on.
Why Lepton
- Pick exactly the component capabilities you need.
- Keep
class,style, and unmatched attributes consistent across components. - Get disposal and cancellation patterns without rewriting them in every base class.
- Type against matching interfaces when you need capability-based APIs.
Install
dotnet add package Soenneker.Lepton.Suite
Pick A Base
| Need | Use |
|---|---|
| Plain Blazor base | LeptonComponent |
| Child content | LeptonContent |
| Element attributes | LeptonElement |
| Child content + element attributes | LeptonContentElement |
| Id + child content + element attributes | LeptonIdentifiableContentElement |
| Async disposal | LeptonDisposable |
| Disposable content | LeptonDisposableContent |
| Disposable content element | LeptonDisposableContentElement |
| Disposable identifiable content element | LeptonDisposableIdentifiableContentElement |
| Disposal-bound cancellation | LeptonCancellable |
| Cancellable content element | LeptonCancellableContentElement |
| Cancellable identifiable content element | LeptonCancellableIdentifiableContentElement |
Every public base has a matching interface in Soenneker.Lepton.Suite.Abstract.
Product Spotlight
Consistent Element Attributes
Element bases expose Class, Style, and AdditionalAttributes, then build render-ready attributes for you.
public sealed class Card : LeptonContentElement
{
protected override void BuildRenderTree(RenderTreeBuilder builder)
{
builder.OpenElement(0, "section");
builder.AddMultipleAttributes(1, BuildAttributes("data-slot", "card"));
builder.AddContent(2, ChildContent);
builder.CloseElement();
}
}
<Card Class="card" style="padding: 1rem" data-state="open">
Content
</Card>
class and style values are merged instead of clobbered.
Disposal Without Boilerplate
Disposable bases expose ThrowIfDisposed() and track disposal state.
public abstract class ModuleBackedComponent : LeptonDisposable
{
private IAsyncDisposable? _module;
public override async ValueTask DisposeAsync()
{
if (_module is not null)
await _module.DisposeAsync();
await base.DisposeAsync();
}
}
Cancellation That Follows Component Lifetime
Cancellable bases cancel their token during DisposeAsync().
public abstract class LoadingComponent : LeptonCancellable
{
protected Task Load()
{
ThrowIfDisposed();
return Task.Delay(TimeSpan.FromSeconds(1), CancellationToken);
}
}
Design
Cancellable types are an add-on over disposable shapes:
LeptonDisposableContentElement
-> LeptonCancellableContentElement
LeptonDisposableIdentifiableContentElement
-> LeptonCancellableIdentifiableContentElement
So if you choose a cancellable element, you still get the disposable element behavior underneath it.
Notes
AdditionalAttributesis the unmatched-attribute parameter for element bases.- Identifiable element bases add
idwhenIdis set. - Cancellable bases expose a protected
CancellationToken. - Base classes are abstract and intended for component-library authors.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- Microsoft.AspNetCore.Components (>= 10.0.8)
- Soenneker.Atomics.Resources (>= 4.0.24)
- Soenneker.Atomics.ValueBools (>= 4.0.26)
- Soenneker.Extensions.String (>= 4.0.675)
NuGet packages (20)
Showing the top 5 NuGet packages that depend on Soenneker.Lepton.Suite:
| Package | Downloads |
|---|---|
|
Soenneker.Blazor.TomSelect
A Blazor interop library for the select user control library, Tom Select |
|
|
Soenneker.Blazor.FilePond
A Blazor interop library for the file upload library FilePond |
|
|
Soenneker.Blazor.Masonry
A lightweight, responsive Blazor component for Masonry (the cascading grid layout library) — perfect for image grids, cards, and dynamic content. |
|
|
Soenneker.Blazor.Turnstile
A Blazor interop library for Cloudflare Turnstile |
|
|
Soenneker.Blazor.DataTables
A Blazor interop library for DataTables |
GitHub repositories
This package is not used by any popular GitHub repositories.