GuiBlast 1.0.14
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package GuiBlast --version 1.0.14
NuGet\Install-Package GuiBlast -Version 1.0.14
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="GuiBlast" Version="1.0.14" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="GuiBlast" Version="1.0.14" />
<PackageReference Include="GuiBlast" />
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 GuiBlast --version 1.0.14
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: GuiBlast, 1.0.14"
#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 GuiBlast@1.0.14
#: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=GuiBlast&version=1.0.14
#tool nuget:?package=GuiBlast&version=1.0.14
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
GuiBlast
GuiBlast provides simple, cross-platform modal prompts and dynamic forms using Avalonia. It works out-of-the-box in .NET console apps, LINQPad, and PowerShell scripts — no window management required.
✨ Features
- 🔹 Minimal blocking & async APIs (
Input
,Confirm
,Message
) - 🔹 JSON-driven dynamic forms with validation & visibility rules
- 🔹 Light/Dark theme switching via
Theme.Set
- 🔹 Runs Avalonia on a hidden UI thread → safe for console and scripting environments
📦 Installation
dotnet add package GuiBlast
Or install from NuGet Gallery.
🚀 Quick Example
using GuiBlast.Forms.Rendering;
using GuiBlast.Forms.Result;
namespace GuiBlast.TryOut;
class Program
{
static void Main()
{
// Step 1: Prompt for name
var userName = Prompts.Input("Your Name", "Please enter your name:");
// Step 2: Load form JSON spec
var json = File.ReadAllText("form.json");
// Step 3: Pre-fill the form with the name
var overrides = new Dictionary<string, object?>
{
["name"] = userName
};
// Step 4: Show form
var result = DynamicForm.ShowJsonAsync(json, overrides).Result;
// Step 5: Print outcome
Console.WriteLine($"Submitted: {result.Submitted}");
Console.WriteLine("---- TEXT ----");
Console.WriteLine(result.ToText());
Console.WriteLine("---- JSON ----");
Console.WriteLine(result.ToJson(indented: true));
Console.WriteLine("---- DIRECT TO WRITER ----");
result.WriteText();
}
}
📋 JSON Form Specification
GuiBlast forms are defined declaratively in JSON:
{
"title": "Peer",
"data": {
"name": "Alice",
"role": "User",
"enabled": true,
"quota": 5,
"tags": ["a", "c"]
},
"fields": [
{ "key": "name", "type": "text", "label": "Name", "required": true },
{
"key": "role",
"type": "select",
"label": "Role",
"options": [
{ "value": "User", "label": "User" },
{ "value": "Admin", "label": "Admin" },
{ "value": "Guest", "label": "Guest" }
]
},
{ "key": "enabled", "type": "switch", "label": "Enabled" },
{ "key": "quota", "type": "number", "label": "Quota (GB)", "min": 0, "max": 100 },
{
"key": "tags",
"type": "multiselect",
"label": "Tags",
"options": [
{ "value": "a", "label": "a" },
{ "value": "b", "label": "b" },
{ "value": "c", "label": "c" }
]
},
{ "key": "when", "type": "datetime", "label": "When" }
],
"visibility": [
{ "field": "role", "eq": "Admin", "show": ["quota"] },
{ "field": "role", "neq": "Admin", "hide": ["quota"] }
],
"actions": [
{ "id": "save", "label": "Save", "submit": true },
{ "id": "cancel", "label": "Cancel", "dismiss": true }
]
}
🔧 Supported Field Types
text
,number
,switch
select
,multiselect
datetime
Validation & conditional visibility can be expressed directly in JSON.
📜 License
Product | Versions 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 was computed. 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.
-
net8.0
- Avalonia (>= 11.3.4)
- Avalonia.Desktop (>= 11.3.4)
- Avalonia.Fonts.Inter (>= 11.3.4)
- Avalonia.Headless (>= 11.3.4)
- Avalonia.Headless.XUnit (>= 11.3.4)
- Avalonia.Themes.Fluent (>= 11.3.4)
- xunit.assert (>= 2.9.2)
- xunit.core (>= 2.9.2)
- xunit.extensibility.core (>= 2.9.2)
- xunit.extensibility.execution (>= 2.9.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.