diff --git a/packages-demos/HtmlAgilityPack/Apps/HtmlAgilityPack.cs b/packages-demos/HtmlAgilityPack/Apps/HtmlAgilityPack.cs
index 42b016a1..158dd7a8 100644
--- a/packages-demos/HtmlAgilityPack/Apps/HtmlAgilityPack.cs
+++ b/packages-demos/HtmlAgilityPack/Apps/HtmlAgilityPack.cs
@@ -263,7 +263,7 @@ public class HtmlAgilityPackApp : ViewBase
| Text.Muted("HTML parser extracts website data: title, images, structure, links, and social media info")
| urlState.ToSearchInput().WithLabel("Enter Site URL:")
| dataTypesSelect.ToSelectInput(dataTypeOptions)
- .Variant(SelectInputs.Toggle)
+ .Variant(SelectInputVariants.Toggle)
.WithLabel("Select data to extract:")
| new Button("Parse Site HTML", eventHandler).Loading(parsingState.Value)
| (errorState.Value.Length > 0 ? Text.Block(errorState.Value) : null)
diff --git a/packages-demos/HtmlAgilityPack/HtmlAgilityPackExample.csproj b/packages-demos/HtmlAgilityPack/HtmlAgilityPackExample.csproj
index d1e04b1f..c69b533f 100644
--- a/packages-demos/HtmlAgilityPack/HtmlAgilityPackExample.csproj
+++ b/packages-demos/HtmlAgilityPack/HtmlAgilityPackExample.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/packages-demos/aspose-barcode/Apps/BarcodeApp.cs b/packages-demos/aspose-barcode/Apps/BarcodeApp.cs
index 56bc90c7..a5380b0a 100644
--- a/packages-demos/aspose-barcode/Apps/BarcodeApp.cs
+++ b/packages-demos/aspose-barcode/Apps/BarcodeApp.cs
@@ -68,7 +68,7 @@ private static byte[] GeneratePngBytes(string text, SymbologyEncodeType encodeTy
| typeDropDown
| sizeDropDown
| new Button("Preview").Primary().Icon(Icons.Eye)
- .HandleClick(() =>
+ .OnClick(() =>
{
if (string.IsNullOrWhiteSpace(text.Value))
{
diff --git a/packages-demos/aspose-barcode/AsposeBarCodeExample.csproj b/packages-demos/aspose-barcode/AsposeBarCodeExample.csproj
index ee59f84c..dae9bf47 100644
--- a/packages-demos/aspose-barcode/AsposeBarCodeExample.csproj
+++ b/packages-demos/aspose-barcode/AsposeBarCodeExample.csproj
@@ -16,7 +16,7 @@
-
+
diff --git a/packages-demos/aspose-ocr/Apps/ImageToTextApp.cs b/packages-demos/aspose-ocr/Apps/ImageToTextApp.cs
index 62df8fd3..f31166e3 100644
--- a/packages-demos/aspose-ocr/Apps/ImageToTextApp.cs
+++ b/packages-demos/aspose-ocr/Apps/ImageToTextApp.cs
@@ -23,7 +23,7 @@ public class ImageToTextApp : ViewBase
| (error.Value != null ? new Callout(error.Value, variant: CalloutVariant.Error) : null)
| uploadedFile.ToFileInput(upload).Placeholder("Upload Image")
| new Button("Recognize").Primary().Icon(Icons.Eye)
- .HandleClick(() =>
+ .OnClick(() =>
{
if (error.Value == null && uploadedFile.Value != null)
{
diff --git a/packages-demos/aspose-ocr/AsposeOcrExample.csproj b/packages-demos/aspose-ocr/AsposeOcrExample.csproj
index eaabd901..c7e84465 100644
--- a/packages-demos/aspose-ocr/AsposeOcrExample.csproj
+++ b/packages-demos/aspose-ocr/AsposeOcrExample.csproj
@@ -18,7 +18,7 @@
-
+
diff --git a/packages-demos/aspose-words/Apps/TextGeneratorApp.cs b/packages-demos/aspose-words/Apps/TextGeneratorApp.cs
index b8558f39..63ff50bf 100644
--- a/packages-demos/aspose-words/Apps/TextGeneratorApp.cs
+++ b/packages-demos/aspose-words/Apps/TextGeneratorApp.cs
@@ -36,7 +36,7 @@ public class TextGeneratorApp : ViewBase
Layout.Vertical().Gap(3).Padding(2)
| Text.H2("Text to DOCX")
| Text.Block("Enter your text below and generate a Word document instantly.")
- | inputText.ToTextAreaInput(placeholder: "Type your text here...").Height(Size.Units(35))
+ | inputText.ToTextareaInput(placeholder: "Type your text here...").Height(Size.Units(35))
| new Spacer()
| (generatedDoc.Value == null && !isGenerating.Value
? new Button("Generate Document", _ =>
diff --git a/packages-demos/aspose-words/AsposeWordsExample.csproj b/packages-demos/aspose-words/AsposeWordsExample.csproj
index 4e303cc0..e32bf143 100644
--- a/packages-demos/aspose-words/AsposeWordsExample.csproj
+++ b/packages-demos/aspose-words/AsposeWordsExample.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/packages-demos/barcodelib/Apps/BarcodeLibApp.cs b/packages-demos/barcodelib/Apps/BarcodeLibApp.cs
index e1d8dd46..217e36c9 100644
--- a/packages-demos/barcodelib/Apps/BarcodeLibApp.cs
+++ b/packages-demos/barcodelib/Apps/BarcodeLibApp.cs
@@ -54,9 +54,9 @@ private static readonly (string Label, Type Type)[] Symbologies =
| typeDropDown
| new Button(includeLabel.Value ? "Label: ON" : "Label: OFF")
.Primary()
- .HandleClick(() => includeLabel.Value = !includeLabel.Value)
+ .OnClick(() => includeLabel.Value = !includeLabel.Value)
| new Button("Preview").Primary().Icon(Icons.Eye)
- .HandleClick(() =>
+ .OnClick(() =>
{
if (string.IsNullOrWhiteSpace(text.Value))
{
diff --git a/packages-demos/barcodelib/BarcodelibExample.csproj b/packages-demos/barcodelib/BarcodelibExample.csproj
index dd206d32..b716c6dc 100644
--- a/packages-demos/barcodelib/BarcodelibExample.csproj
+++ b/packages-demos/barcodelib/BarcodelibExample.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/packages-demos/closedxml/Apps/WorkbooksEditorApp.cs b/packages-demos/closedxml/Apps/WorkbooksEditorApp.cs
index debece9c..d7326939 100644
--- a/packages-demos/closedxml/Apps/WorkbooksEditorApp.cs
+++ b/packages-demos/closedxml/Apps/WorkbooksEditorApp.cs
@@ -151,7 +151,7 @@ public class WorksheetEditor(DataTable table, string fileName, IBladeService bla
Layout.Vertical().Gap(2)
| Layout.Horizontal().Gap(2)
| columnName.ToTextInput(placeholder: "Column name")
- | selectedType.ToSelectInput(columnTypes.ToOptions()).Variant(SelectInputs.Select)
+ | selectedType.ToSelectInput(columnTypes.ToOptions()).Variant(SelectInputVariants.Select)
| addColumnButton
).Title($"Add New Column");
diff --git a/packages-demos/closedxml/ClosedXmlExample.csproj b/packages-demos/closedxml/ClosedXmlExample.csproj
index d6fbb26c..76434b9b 100644
--- a/packages-demos/closedxml/ClosedXmlExample.csproj
+++ b/packages-demos/closedxml/ClosedXmlExample.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/packages-demos/cronos/Apps/CronosApp.cs b/packages-demos/cronos/Apps/CronosApp.cs
index 12f3fed0..59d77e69 100644
--- a/packages-demos/cronos/Apps/CronosApp.cs
+++ b/packages-demos/cronos/Apps/CronosApp.cs
@@ -123,7 +123,7 @@ string GetDescription(CronScheduleType scheduleType)
.WithLabel("Predefined Examples"),
includeSeconds
- .ToBoolInput(variant: BoolInputs.Checkbox)
+ .ToBoolInput(variant: BoolInputVariants.Checkbox)
.Label("Include seconds"),
new Button("Try parse", onClick: TryParseCron)
diff --git a/packages-demos/cronos/CronosExample.csproj b/packages-demos/cronos/CronosExample.csproj
index 3848506a..55b0bd4a 100644
--- a/packages-demos/cronos/CronosExample.csproj
+++ b/packages-demos/cronos/CronosExample.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/packages-demos/csvhelper/Apps/CsvHelperApp.cs b/packages-demos/csvhelper/Apps/CsvHelperApp.cs
index 652a45a9..030a1731 100644
--- a/packages-demos/csvhelper/Apps/CsvHelperApp.cs
+++ b/packages-demos/csvhelper/Apps/CsvHelperApp.cs
@@ -142,7 +142,7 @@ public class ProductModel
.Icon(Icons.Plus)
.Primary()
.Width(Size.Full())
- .HandleClick(_ => isDialogOpen.Set(true))
+ .OnClick(_ => isDialogOpen.Set(true))
| product.ToForm()
.Remove(m => m.Id)
diff --git a/packages-demos/csvhelper/CsvHelperExample.csproj b/packages-demos/csvhelper/CsvHelperExample.csproj
index b42b89a3..f56f42cb 100644
--- a/packages-demos/csvhelper/CsvHelperExample.csproj
+++ b/packages-demos/csvhelper/CsvHelperExample.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/packages-demos/diffplex/Apps/DiffPlexApp.cs b/packages-demos/diffplex/Apps/DiffPlexApp.cs
index 3f3402a3..bbc5acac 100644
--- a/packages-demos/diffplex/Apps/DiffPlexApp.cs
+++ b/packages-demos/diffplex/Apps/DiffPlexApp.cs
@@ -45,8 +45,8 @@ void compareDiff()
// Comparison controls
var controls =
Layout.Horizontal().Gap(3)
- | ignoreWhitespace.ToBoolInput(variant: BoolInputs.Checkbox).Label("Ignore Whitespace")
- | ignoreCase.ToBoolInput(variant: BoolInputs.Checkbox).Label("Ignore Case")
+ | ignoreWhitespace.ToBoolInput(variant: BoolInputVariants.Checkbox).Label("Ignore Whitespace")
+ | ignoreCase.ToBoolInput(variant: BoolInputVariants.Checkbox).Label("Ignore Case")
| new Button("Compare Texts", onClick: compareDiff).Primary().Icon(Icons.GitCompare)
| new Button("Clear", onClick: () => diffResult.Value = null).Variant(ButtonVariant.Secondary).Icon(Icons.X);
diff --git a/packages-demos/diffplex/DiffPlexExample.csproj b/packages-demos/diffplex/DiffPlexExample.csproj
index ec8f8ce6..6ac795c0 100644
--- a/packages-demos/diffplex/DiffPlexExample.csproj
+++ b/packages-demos/diffplex/DiffPlexExample.csproj
@@ -18,7 +18,7 @@
-
+
diff --git a/packages-demos/enums-net/Apps/EnumsNetDemoApp.cs b/packages-demos/enums-net/Apps/EnumsNetDemoApp.cs
index 02a54176..9950cd23 100644
--- a/packages-demos/enums-net/Apps/EnumsNetDemoApp.cs
+++ b/packages-demos/enums-net/Apps/EnumsNetDemoApp.cs
@@ -406,7 +406,7 @@ void RunFlagOperation(string operationName)
| new Card(
Layout.Vertical().Gap(2)
| selectedDemo.ToSelectInput(new[] { "Enumeration", "StringFormatting", "FlagOperations", "Parsing" }.ToOptions())
- .Variant(SelectInputs.Toggle)
+ .Variant(SelectInputVariants.Toggle)
| validationResult.Value)
);
diff --git a/packages-demos/enums-net/EnumsNetExample.csproj b/packages-demos/enums-net/EnumsNetExample.csproj
index 2adc8ce6..c7109aba 100644
--- a/packages-demos/enums-net/EnumsNetExample.csproj
+++ b/packages-demos/enums-net/EnumsNetExample.csproj
@@ -18,7 +18,7 @@
-
+
diff --git a/packages-demos/epplus/Apps/EPPlusApp.cs b/packages-demos/epplus/Apps/EPPlusApp.cs
index d98b08e5..6bce997f 100644
--- a/packages-demos/epplus/Apps/EPPlusApp.cs
+++ b/packages-demos/epplus/Apps/EPPlusApp.cs
@@ -59,23 +59,23 @@ private static void EnsureExcelFileExists(string filePath)
? new Button("Delete All Records")
.Destructive()
.Icon(Icons.Trash)
- .HandleClick(_ => HandleDeleteAsync(booksState, filePath, client))
+ .OnClick(_ => HandleDeleteAsync(booksState, filePath, client))
: new Button("Delete All Records")
.Secondary()
.Icon(Icons.Trash)
- .HandleClick(_ => HandleDeleteAsync(booksState, filePath, client))
+ .OnClick(_ => HandleDeleteAsync(booksState, filePath, client))
.Disabled();
var generateBtn = hasBooks
? new Button("Generate Excel")
.Secondary()
.Icon(Icons.FileText)
- .HandleClick(_ => ExcelManipulation.WriteExcel(booksState))
+ .OnClick(_ => ExcelManipulation.WriteExcel(booksState))
.Disabled()
: new Button("Generate Excel")
.Primary()
.Icon(Icons.FileText)
- .HandleClick(_ => ExcelManipulation.WriteExcel(booksState));
+ .OnClick(_ => ExcelManipulation.WriteExcel(booksState));
var book = UseState(() => new Book());
var formBuilder = book.ToForm().Remove(x => x.ID)
@@ -112,7 +112,7 @@ private static void EnsureExcelFileExists(string filePath)
| new Button("Add Book")
.Primary()
.Icon(Icons.Plus)
- .HandleClick(async _ => await HandleSubmitAsync(booksState, client, book, onSubmit))
+ .OnClick(async _ => await HandleSubmitAsync(booksState, client, book, onSubmit))
.Loading(loading)
.Disabled(loading)
| validationView
diff --git a/packages-demos/epplus/EPPlusExample.csproj b/packages-demos/epplus/EPPlusExample.csproj
index 0e49547b..98499460 100644
--- a/packages-demos/epplus/EPPlusExample.csproj
+++ b/packages-demos/epplus/EPPlusExample.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/packages-demos/fastmember/Apps/FastMemberApp.cs b/packages-demos/fastmember/Apps/FastMemberApp.cs
index afff8681..bd901b54 100644
--- a/packages-demos/fastmember/Apps/FastMemberApp.cs
+++ b/packages-demos/fastmember/Apps/FastMemberApp.cs
@@ -314,7 +314,7 @@ private static object BuildBenchmarkTab(Action showBenchmark,
| Text.H3("Performance Benchmark")
| Text.Muted("Compare FastMember performance with standard .NET Reflection API, Dynamic C#, and PropertyDescriptor")
| new Button(benchmarkResultState.Value == null ? "Run Benchmark" : "Run Benchmark Again")
- .HandleClick(_ => showBenchmark(runBenchmark())).Icon(Icons.Zap).Primary());
+ .OnClick(_ => showBenchmark(runBenchmark())).Icon(Icons.Zap).Primary());
if (benchmarkResultState.Value == null)
return buttonCard;
diff --git a/packages-demos/fastmember/FastMemberExample.csproj b/packages-demos/fastmember/FastMemberExample.csproj
index 8f87de85..9580ed27 100644
--- a/packages-demos/fastmember/FastMemberExample.csproj
+++ b/packages-demos/fastmember/FastMemberExample.csproj
@@ -16,7 +16,7 @@
-
+
diff --git a/packages-demos/fluentdatetime/Apps/FluentDateTimeApp.cs b/packages-demos/fluentdatetime/Apps/FluentDateTimeApp.cs
index d5a1faeb..aaebb93e 100644
--- a/packages-demos/fluentdatetime/Apps/FluentDateTimeApp.cs
+++ b/packages-demos/fluentdatetime/Apps/FluentDateTimeApp.cs
@@ -22,21 +22,21 @@ public class FluentDateTimeApp : ViewBase
| Layout.Vertical()
| Text.Label("Base Date & Time")
| baseDateTime.ToDateTimeInput()
- .Variant(DateTimeInputs.DateTime)
+ .Variant(DateTimeInputVariants.DateTime)
| Text.Label("Operation")
- | operation.ToSelectInput(Operations).Variant(SelectInputs.Select)
+ | operation.ToSelectInput(Operations).Variant(SelectInputVariants.Select)
| Text.Label("Time Unit")
- | unit.ToSelectInput(TimeUnits).Variant(SelectInputs.Select)
+ | unit.ToSelectInput(TimeUnits).Variant(SelectInputVariants.Select)
| Text.Label("Amount")
| new NumberInput(amount)
.Min(1)
.Max(9999)
| (Layout.Horizontal().Gap(4)
| new Button("Calculate")
- .HandleClick(() => showResult.Set(true))
+ .OnClick(() => showResult.Set(true))
| new Button("Clear")
.Secondary()
- .HandleClick(() => {
+ .OnClick(() => {
showResult.Set(false);
operation.Set("Add");
unit.Set("Days");
diff --git a/packages-demos/fluentdatetime/FluentDateTimeExample.csproj b/packages-demos/fluentdatetime/FluentDateTimeExample.csproj
index 0a8baa56..4989b017 100644
--- a/packages-demos/fluentdatetime/FluentDateTimeExample.csproj
+++ b/packages-demos/fluentdatetime/FluentDateTimeExample.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/packages-demos/fuzzysharp/Apps/FuzzySharpApp.cs b/packages-demos/fuzzysharp/Apps/FuzzySharpApp.cs
index b88e7dec..5d0b363e 100644
--- a/packages-demos/fuzzysharp/Apps/FuzzySharpApp.cs
+++ b/packages-demos/fuzzysharp/Apps/FuzzySharpApp.cs
@@ -61,7 +61,7 @@ public class FuzzySharpApp : ViewBase
| Text.Muted("Intelligent search with typo tolerance")
| new TextInput(searchTerm)
.Placeholder("Try: 'aple', 'bana', 'berry'...")
- .Variant(TextInputs.Search)
+ .Variant(TextInputVariants.Search)
| new Spacer()
| Text.Block("This demo uses the FuzzySharp NuGet package for intelligent text matching.")
| Text.Markdown("Built with [Ivy Framework](https://github.com/Ivy-Interactive/Ivy-Framework) and [FuzzySharp](https://github.com/JakeBayer/FuzzySharp)")
diff --git a/packages-demos/fuzzysharp/FuzzySharpExample.csproj b/packages-demos/fuzzysharp/FuzzySharpExample.csproj
index 578c7a6d..ac4c2c41 100644
--- a/packages-demos/fuzzysharp/FuzzySharpExample.csproj
+++ b/packages-demos/fuzzysharp/FuzzySharpExample.csproj
@@ -16,7 +16,7 @@
-
+
diff --git a/packages-demos/magick-net-q16-anycpu/Apps/MagickNetApp.cs b/packages-demos/magick-net-q16-anycpu/Apps/MagickNetApp.cs
index c26de442..756ee5c0 100644
--- a/packages-demos/magick-net-q16-anycpu/Apps/MagickNetApp.cs
+++ b/packages-demos/magick-net-q16-anycpu/Apps/MagickNetApp.cs
@@ -248,7 +248,7 @@ public class MagickNetApp : ViewBase
| new NumberInput(widthState)
| Text.Block("Height:")
| new NumberInput(heightState))
- | maintainAspectRatio.ToBoolInput(variant: BoolInputs.Checkbox).Label("Maintain aspect ratio")
+ | maintainAspectRatio.ToBoolInput(variant: BoolInputVariants.Checkbox).Label("Maintain aspect ratio")
: selectedEffect.Value == "blur"
? Layout.Horizontal().Gap(4)
| Text.Block("Blur Radius:")
@@ -279,8 +279,8 @@ public class MagickNetApp : ViewBase
| new NumberInput(rotation).Min(-360).Max(360).Step(1)
: selectedEffect.Value == "flip"
? Layout.Vertical().Gap(2)
- | flipHorizontal.ToBoolInput(variant: BoolInputs.Checkbox).Label("Flip horizontally")
- | flipVertical.ToBoolInput(variant: BoolInputs.Checkbox).Label("Flip vertically")
+ | flipHorizontal.ToBoolInput(variant: BoolInputVariants.Checkbox).Label("Flip horizontally")
+ | flipVertical.ToBoolInput(variant: BoolInputVariants.Checkbox).Label("Flip vertically")
: Text.Block("No additional parameters needed for this effect."))
// Output format
| Text.H4("Output Format")
diff --git a/packages-demos/magick-net-q16-anycpu/MagickNetQ16AnyCpuExample.csproj b/packages-demos/magick-net-q16-anycpu/MagickNetQ16AnyCpuExample.csproj
index feaf2152..09a1f158 100644
--- a/packages-demos/magick-net-q16-anycpu/MagickNetQ16AnyCpuExample.csproj
+++ b/packages-demos/magick-net-q16-anycpu/MagickNetQ16AnyCpuExample.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -15,8 +15,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/packages-demos/mapster/Apps/MapsterApp.cs b/packages-demos/mapster/Apps/MapsterApp.cs
index 235324e5..212c02f1 100644
--- a/packages-demos/mapster/Apps/MapsterApp.cs
+++ b/packages-demos/mapster/Apps/MapsterApp.cs
@@ -1,4 +1,4 @@
-namespace MapsterExample
+namespace MapsterExample
{
[App(icon: Icons.PersonStanding, title: "Mapster")]
public class MapsterApp : ViewBase
@@ -41,43 +41,39 @@ public class MapsterApp : ViewBase
// Person -> PersonDto
var toDtoButton = new Button("Person -> PersonDto")
- {
- OnClick = async (evt) =>
+ .OnClick(async _ =>
{
try
{
var person = JsonSerializer.Deserialize(personJsonState.Value);
var dto = person.Adapt();
- dtoJsonState.Value = ToPrettyJson(dto);
+ dtoJsonState.Set(ToPrettyJson(dto));
}
catch (Exception ex)
{
- dtoJsonState.Value = $"{{ \"error\": \"{ex.Message}\" }}";
+ dtoJsonState.Set($"{{ \"error\": \"{ex.Message}\" }}");
}
await ValueTask.CompletedTask;
- }
- };
+ });
// PersonDto -> Person
var toPersonButton = new Button("PersonDto -> Person")
- {
- OnClick = async (evt) =>
+ .OnClick(async _ =>
{
try
{
var dto = JsonSerializer.Deserialize(dtoJsonState.Value);
var person = dto.Adapt();
- personJsonState.Value = ToPrettyJson(person);
+ personJsonState.Set(ToPrettyJson(person));
}
catch (Exception ex)
{
- personJsonState.Value = $"{{ \"error\": \"{ex.Message}\" }}";
+ personJsonState.Set($"{{ \"error\": \"{ex.Message}\" }}");
}
await ValueTask.CompletedTask;
- }
- };
+ });
return Layout.Vertical()
| new Card(
diff --git a/packages-demos/mapster/MapsterExample.csproj b/packages-demos/mapster/MapsterExample.csproj
index 0dd2c611..534ed80f 100644
--- a/packages-demos/mapster/MapsterExample.csproj
+++ b/packages-demos/mapster/MapsterExample.csproj
@@ -17,7 +17,7 @@
-
+
diff --git a/packages-demos/microsoft-semantickernel/Apps/MicrosoftSemanticKernelApp.cs b/packages-demos/microsoft-semantickernel/Apps/MicrosoftSemanticKernelApp.cs
index 9387c262..53254a07 100644
--- a/packages-demos/microsoft-semantickernel/Apps/MicrosoftSemanticKernelApp.cs
+++ b/packages-demos/microsoft-semantickernel/Apps/MicrosoftSemanticKernelApp.cs
@@ -69,8 +69,8 @@ public class MicrosoftSemanticKernelApp : ViewBase
Layout.Vertical()
| Text.H3("Input Text")
| Text.Muted("Enter or paste your text here. The AI will extract action items from it.")
- | notesFromMeeting.ToTextAreaInput().Height(Size.Units(80))
- | new Button("Update tasks").HandleClick(_ => triggerRefresh.Set(triggerRefresh.Value + 1))
+ | notesFromMeeting.ToTextareaInput().Height(Size.Units(80))
+ | new Button("Update tasks").OnClick(_ => triggerRefresh.Set(triggerRefresh.Value + 1))
| new Spacer()
| Text.Block("This demo uses the Microsoft.SemanticKernel for intelligent text matching.")
| Text.Markdown("Built with [Ivy Framework](https://github.com/Ivy-Interactive/Ivy-Framework) and [Microsoft.SemanticKernel](https://github.com/microsoft/semantic-kernel)")
diff --git a/packages-demos/microsoft-semantickernel/MicrosoftSemanticKernelExample.csproj b/packages-demos/microsoft-semantickernel/MicrosoftSemanticKernelExample.csproj
index ed0fe959..42df7cad 100644
--- a/packages-demos/microsoft-semantickernel/MicrosoftSemanticKernelExample.csproj
+++ b/packages-demos/microsoft-semantickernel/MicrosoftSemanticKernelExample.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -18,8 +18,8 @@
-
-
+
+
diff --git a/packages-demos/miniexcel/Apps/MiniExcelApp.cs b/packages-demos/miniexcel/Apps/MiniExcelApp.cs
index dcb8bb93..0bb061c2 100644
--- a/packages-demos/miniexcel/Apps/MiniExcelApp.cs
+++ b/packages-demos/miniexcel/Apps/MiniExcelApp.cs
@@ -148,7 +148,7 @@ void RefreshStudentData()
| new Button("Delete")
.Icon(Icons.Trash)
.Destructive()
- .HandleClick(onDelete)
+ .OnClick(onDelete)
)
| alertView;
}
diff --git a/packages-demos/miniexcel/MiniExcelExample.csproj b/packages-demos/miniexcel/MiniExcelExample.csproj
index 2e893e72..8a80a41b 100644
--- a/packages-demos/miniexcel/MiniExcelExample.csproj
+++ b/packages-demos/miniexcel/MiniExcelExample.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/packages-demos/naudio/Apps/NAudioApp.cs b/packages-demos/naudio/Apps/NAudioApp.cs
index e9e5bcff..9b195071 100644
--- a/packages-demos/naudio/Apps/NAudioApp.cs
+++ b/packages-demos/naudio/Apps/NAudioApp.cs
@@ -112,13 +112,13 @@ public class NAudioApp : ViewBase
| Text.Label("Wave Type")
| waveType.ToSelectInput(typeof(SignalGeneratorType).ToOptions())
| Text.Label("Frequency (Hz)")
- | new NumberInput(freq).Min(50).Max(1000).Variant(NumberInputs.Slider)
+ | new NumberInput(freq).Min(50).Max(1000).Variant(NumberInputVariants.Slider)
| Text.Label("Duration (seconds)")
- | new NumberInput(dur).Min(0.1).Max(600).Step(0.1).Variant(NumberInputs.Slider)
+ | new NumberInput(dur).Min(0.1).Max(600).Step(0.1).Variant(NumberInputVariants.Slider)
| Text.Label("Volume")
- | new NumberInput(vol).Min(0).Max(1).Step(0.01).Variant(NumberInputs.Slider)
+ | new NumberInput(vol).Min(0).Max(1).Step(0.01).Variant(NumberInputVariants.Slider)
| (genError.Value != null ? new Callout(genError.Value, variant: CalloutVariant.Error) : null)
- | new Button("Generate").Primary().Icon(Icons.Play).HandleClick(_ =>
+ | new Button("Generate").Primary().Icon(Icons.Play).OnClick(_ =>
{
try
{
@@ -156,11 +156,11 @@ public class NAudioApp : ViewBase
? new Callout("Upload a file first", variant: CalloutVariant.Warning)
: Text.Muted($"Uploaded file ready ({uploadBytes.Value.Length / 1024} KB)"))
| Text.Label("Generated Sound Volume")
- | new NumberInput(mixGenVol).Min(0).Max(1).Step(0.01).Variant(NumberInputs.Slider)
+ | new NumberInput(mixGenVol).Min(0).Max(1).Step(0.01).Variant(NumberInputVariants.Slider)
| Text.Label("Uploaded File Volume")
- | new NumberInput(mixUploadVol).Min(0).Max(1).Step(0.01).Variant(NumberInputs.Slider)
+ | new NumberInput(mixUploadVol).Min(0).Max(1).Step(0.01).Variant(NumberInputVariants.Slider)
| (mixError.Value != null ? new Callout(mixError.Value, variant: CalloutVariant.Error) : null)
- | new Button("Mix").Primary().Icon(Icons.Layers).HandleClick(_ =>
+ | new Button("Mix").Primary().Icon(Icons.Layers).OnClick(_ =>
{
if (genBytes.Value == null || uploadBytes.Value == null)
{ mixError.Set("Both generated sound and uploaded file are required"); return; }
diff --git a/packages-demos/naudio/NAudioExample.csproj b/packages-demos/naudio/NAudioExample.csproj
index 17c5073f..23e612ab 100644
--- a/packages-demos/naudio/NAudioExample.csproj
+++ b/packages-demos/naudio/NAudioExample.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/packages-demos/newtonsoft-json/Apps/NewtonsoftJsonApp.cs b/packages-demos/newtonsoft-json/Apps/NewtonsoftJsonApp.cs
index 165062f4..b15aac67 100644
--- a/packages-demos/newtonsoft-json/Apps/NewtonsoftJsonApp.cs
+++ b/packages-demos/newtonsoft-json/Apps/NewtonsoftJsonApp.cs
@@ -115,7 +115,7 @@ void DeserializeData()
Layout.Vertical()
| Text.H4("Source JSON")
| Text.Muted("Edit sample JSON (add roles, tweak fields) then click Deserialize to load it here.")
- | rawData.ToCodeInput(variant: CodeInputs.Default, language: Languages.Json).Height(Size.Fit())
+ | rawData.ToCodeInput(variant: CodeInputVariants.Default, language: Languages.Json).Height(Size.Fit())
.Disabled(!isSerialized.Value)
| new Button("Deserialize", _ => HandleButtonClick())
.Disabled(!isSerialized.Value)
@@ -154,7 +154,7 @@ void DeserializeData()
| Text.Label("Date created")
| date.ToDateInput().Disabled(isSerialized.Value)
| Text.Label("Roles")
- | roles.ToSelectInput(availableRoles.Value.ToOptions()).Variant(SelectInputs.Toggle).Disabled(isSerialized.Value)
+ | roles.ToSelectInput(availableRoles.Value.ToOptions()).Variant(SelectInputVariants.Toggle).Disabled(isSerialized.Value)
| new Button("Serialize", _ => HandleButtonClick())
.Disabled(isSerialized.Value)
.Icon(Icons.ArrowLeft, Align.Left)
diff --git a/packages-demos/newtonsoft-json/NewtonsoftJsonExample.csproj b/packages-demos/newtonsoft-json/NewtonsoftJsonExample.csproj
index 091b0415..e2471de8 100644
--- a/packages-demos/newtonsoft-json/NewtonsoftJsonExample.csproj
+++ b/packages-demos/newtonsoft-json/NewtonsoftJsonExample.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/packages-demos/nodatime/Apps/NodaTimeApp.cs b/packages-demos/nodatime/Apps/NodaTimeApp.cs
index c1f17848..de321f04 100644
--- a/packages-demos/nodatime/Apps/NodaTimeApp.cs
+++ b/packages-demos/nodatime/Apps/NodaTimeApp.cs
@@ -72,7 +72,7 @@ void UpdateTime(string tzId)
// Ivy SearchSelect
var tzSelect = tzState
.ToSelectInput(tzOptions)
- .Variant(SelectInputs.Select)
+ .Variant(SelectInputVariants.Select)
.Placeholder("Search timezone...")
.WithLabel("Timezone");
diff --git a/packages-demos/nodatime/NodaTimeExample.csproj b/packages-demos/nodatime/NodaTimeExample.csproj
index f4b56548..fb3f9e07 100644
--- a/packages-demos/nodatime/NodaTimeExample.csproj
+++ b/packages-demos/nodatime/NodaTimeExample.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/packages-demos/qrcoder/Apps/ProfileApp.cs b/packages-demos/qrcoder/Apps/ProfileApp.cs
index 3fda56db..beb1f893 100644
--- a/packages-demos/qrcoder/Apps/ProfileApp.cs
+++ b/packages-demos/qrcoder/Apps/ProfileApp.cs
@@ -70,7 +70,7 @@ async void HandleSubmit()
| Text.Block("Fill in your information to create a shareable profile")
| formView
| Layout.Horizontal()
- | new Button("Create Profile").HandleClick(new Action(HandleSubmit))
+ | new Button("Create Profile").OnClick(new Action(HandleSubmit))
.Loading(loading).Disabled(loading)
| validationView
| Text.Block("This demo uses QRCoder library to generate vCard QR codes for contact sharing.")
diff --git a/packages-demos/qrcoder/QrCoderExample.csproj b/packages-demos/qrcoder/QrCoderExample.csproj
index 49184ef7..d8082d95 100644
--- a/packages-demos/qrcoder/QrCoderExample.csproj
+++ b/packages-demos/qrcoder/QrCoderExample.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/packages-demos/restsharp/Apps/RestsharpApp.cs b/packages-demos/restsharp/Apps/RestsharpApp.cs
index d7ae0041..4835fe36 100644
--- a/packages-demos/restsharp/Apps/RestsharpApp.cs
+++ b/packages-demos/restsharp/Apps/RestsharpApp.cs
@@ -134,7 +134,7 @@ private static string BuildUrlWithResourceId(string? resourceId) =>
.ToArray()
),
new TextInput(url, placeholder: "URL")
- .Variant(TextInputs.Url)
+ .Variant(TextInputVariants.Url)
};
if (RequiresResourceId(method.Value))
diff --git a/packages-demos/restsharp/RestSharpExample.csproj b/packages-demos/restsharp/RestSharpExample.csproj
index 08a58a90..56186654 100644
--- a/packages-demos/restsharp/RestSharpExample.csproj
+++ b/packages-demos/restsharp/RestSharpExample.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/packages-demos/scriban/Apps/ScribanApp.cs b/packages-demos/scriban/Apps/ScribanApp.cs
index 8ebe200e..6a4f53f5 100644
--- a/packages-demos/scriban/Apps/ScribanApp.cs
+++ b/packages-demos/scriban/Apps/ScribanApp.cs
@@ -74,13 +74,13 @@ string GenerateOutput(string modelJson, string templateText, out string errorMsg
var modelEditor = modelState.ToCodeInput().Language(Languages.Json).Height(Size.Fit());
var templateEditor = templateState.ToCodeInput().Language(Languages.Markdown).Height(Size.Fit());
var outputViewer = string.IsNullOrEmpty(outputState.Value)
- ? outputState.ToTextAreaInput("Output will appear here after generation...").Disabled().Height(Size.Units(50))
- : outputState.ToTextAreaInput().Height(Size.Units(50));
+ ? outputState.ToTextareaInput("Output will appear here after generation...").Disabled().Height(Size.Units(50))
+ : outputState.ToTextareaInput().Height(Size.Units(50));
var generateBtn = new Button("Generate")
.Primary()
- .HandleClick(_ =>
+ .OnClick(_ =>
{
string error;
var output = GenerateOutput(modelState.Value, templateState.Value, out error);
diff --git a/packages-demos/scriban/ScribanExample.csproj b/packages-demos/scriban/ScribanExample.csproj
index 11d18bd7..4b3c7839 100644
--- a/packages-demos/scriban/ScribanExample.csproj
+++ b/packages-demos/scriban/ScribanExample.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/packages-demos/sharpyaml/Apps/SharpYamlApp.cs b/packages-demos/sharpyaml/Apps/SharpYamlApp.cs
index d50229e6..d911f3df 100644
--- a/packages-demos/sharpyaml/Apps/SharpYamlApp.cs
+++ b/packages-demos/sharpyaml/Apps/SharpYamlApp.cs
@@ -104,7 +104,7 @@ string GenerateOutput(string modelJson, out string errorMsg)
var convertBtn = new Button("Convert")
.Primary()
- .HandleClick(_ =>
+ .OnClick(_ =>
{
string error;
var output = GenerateOutput(modelState.Value, out error);
diff --git a/packages-demos/sharpyaml/SharpYamlExample.csproj b/packages-demos/sharpyaml/SharpYamlExample.csproj
index 1c43ff6f..0275af4b 100644
--- a/packages-demos/sharpyaml/SharpYamlExample.csproj
+++ b/packages-demos/sharpyaml/SharpYamlExample.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/packages-demos/shopifysharp/Apps/ShopifySharpApp.cs b/packages-demos/shopifysharp/Apps/ShopifySharpApp.cs
index b66659ae..1cc83e10 100644
--- a/packages-demos/shopifysharp/Apps/ShopifySharpApp.cs
+++ b/packages-demos/shopifysharp/Apps/ShopifySharpApp.cs
@@ -206,7 +206,7 @@ object productCard(Product p)
| Text.Label("Sort direction")
| sortDirection.ToSelectInput(new[] { "ASC", "DESC" }.ToOptions()).Placeholder("Sort direction").Disabled(searchControlsDisabled)
| Text.Label("Filter query")
- | queryFilter.ToTextInput().Placeholder("Filter query (e.g. tag:'summer')").Variant(TextInputs.Search).Disabled(searchControlsDisabled)
+ | queryFilter.ToTextInput().Placeholder("Filter query (e.g. tag:'summer')").Variant(TextInputVariants.Search).Disabled(searchControlsDisabled)
| new Button("Get Products", onClick: async _ => await LoadProducts()).Disabled(isLoading.Value).Width(Size.Full())
| Text.Block("This demo uses ShopifySharp library to fetch the full product catalog from your Shopify store.")
| Text.Markdown("Built with [Ivy Framework](https://github.com/Ivy-Interactive/Ivy-Framework) and [ShopifySharp](https://github.com/nozzlegear/ShopifySharp)")
diff --git a/packages-demos/shopifysharp/ShopifySharpExample.csproj b/packages-demos/shopifysharp/ShopifySharpExample.csproj
index ed4e8f0a..3f7a5cad 100644
--- a/packages-demos/shopifysharp/ShopifySharpExample.csproj
+++ b/packages-demos/shopifysharp/ShopifySharpExample.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/packages-demos/smartformat-net/Apps/SmartFormatNetApp.cs b/packages-demos/smartformat-net/Apps/SmartFormatNetApp.cs
index 58b9f40e..a05c6e3a 100644
--- a/packages-demos/smartformat-net/Apps/SmartFormatNetApp.cs
+++ b/packages-demos/smartformat-net/Apps/SmartFormatNetApp.cs
@@ -67,7 +67,7 @@ void FormatString()
| Text.Label("Examples")
| selectedExampleIndex
.ToSelectInput(exampleOptions)
- .Variant(SelectInputs.Toggle)
+ .Variant(SelectInputVariants.Toggle)
| Text.Label("Template")
| templateInput
@@ -83,8 +83,8 @@ void FormatString()
.ShowCopyButton()
.Height(Size.Fit())
- | new Button("Format String").HandleClick(new Action(FormatString))
- .HandleClick(new Action(FormatString))
+ | new Button("Format String")
+ .OnClick(new Action(FormatString))
.Disabled(string.IsNullOrWhiteSpace(templateInput.Value) || string.IsNullOrWhiteSpace(jsonInput.Value))
.Width(Size.Full())
diff --git a/packages-demos/smartformat-net/SmartFormatNetExample.csproj b/packages-demos/smartformat-net/SmartFormatNetExample.csproj
index eb259247..26b4438c 100644
--- a/packages-demos/smartformat-net/SmartFormatNetExample.csproj
+++ b/packages-demos/smartformat-net/SmartFormatNetExample.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/packages-demos/timezonenames/Apps/TImeZoneConverterApp.cs b/packages-demos/timezonenames/Apps/TImeZoneConverterApp.cs
index 29888f53..b4bc69bc 100644
--- a/packages-demos/timezonenames/Apps/TImeZoneConverterApp.cs
+++ b/packages-demos/timezonenames/Apps/TImeZoneConverterApp.cs
@@ -139,21 +139,21 @@ object BuildSearchContent()
{
"IANA" => Layout.Vertical().Gap(4)
| ianaSearchTerm.ToTextInput(ianaZoneState.Value)
- .Variant(TextInputs.Search)
+ .Variant(TextInputVariants.Search)
.WithField()
.Label("Search IANA Time Zones")
| Layout.Vertical(new List(ianaListItems.ToArray())).Height(Size.Units(70)),
"Windows" => Layout.Vertical().Gap(4)
| windowsSearchTerm.ToTextInput(windowsZoneState.Value)
- .Variant(TextInputs.Search)
+ .Variant(TextInputVariants.Search)
.WithField()
.Label("Search Windows Time Zones")
| Layout.Vertical(new List(windowsListItems.ToArray())).Height(Size.Units(70)),
"Rails" => Layout.Vertical().Gap(4)
| railsSearchTerm.ToTextInput(railsZoneState.Value)
- .Variant(TextInputs.Search)
+ .Variant(TextInputVariants.Search)
.WithField()
.Label("Search Rails Time Zones")
| Layout.Vertical(new List(railsListItems.ToArray())).Height(Size.Units(70)),
diff --git a/packages-demos/timezonenames/TimeZoneConverterExample.csproj b/packages-demos/timezonenames/TimeZoneConverterExample.csproj
index 1ac38fa0..1c02d02c 100644
--- a/packages-demos/timezonenames/TimeZoneConverterExample.csproj
+++ b/packages-demos/timezonenames/TimeZoneConverterExample.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/packages-demos/yamldotnet/Apps/DeserializationApp.cs b/packages-demos/yamldotnet/Apps/DeserializationApp.cs
index eb6c9bb2..c9332e72 100644
--- a/packages-demos/yamldotnet/Apps/DeserializationApp.cs
+++ b/packages-demos/yamldotnet/Apps/DeserializationApp.cs
@@ -47,7 +47,7 @@ public class DeserializationApp : ViewBase
// Convert Button
| new Button("Deserialize to Person")
- .HandleClick(() => DeserializeToPerson(yamlInput.Value, personOutput, errorMessage, resultOutput))
+ .OnClick(() => DeserializeToPerson(yamlInput.Value, personOutput, errorMessage, resultOutput))
)
| Text.Block("This demo uses YamlDotNet library to deserialize YAML into Person objects.")
diff --git a/packages-demos/yamldotnet/Apps/SerializationApp.cs b/packages-demos/yamldotnet/Apps/SerializationApp.cs
index 1b91bcf3..b12e0dea 100644
--- a/packages-demos/yamldotnet/Apps/SerializationApp.cs
+++ b/packages-demos/yamldotnet/Apps/SerializationApp.cs
@@ -52,7 +52,7 @@ public class SerializationApp : ViewBase
// Convert Button
| new Button("Convert to YAML")
- .HandleClick(() => ConvertToYaml(personCode.Value, yamlOutput, errorMessage, resultOutput))
+ .OnClick(() => ConvertToYaml(personCode.Value, yamlOutput, errorMessage, resultOutput))
)
| Text.Block("This demo uses YamlDotNet library to serialize Person objects to YAML format.")
diff --git a/packages-demos/yamldotnet/YamlDotNetExample.csproj b/packages-demos/yamldotnet/YamlDotNetExample.csproj
index 0bab34ef..c453a748 100644
--- a/packages-demos/yamldotnet/YamlDotNetExample.csproj
+++ b/packages-demos/yamldotnet/YamlDotNetExample.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/project-demos/auth-github-test/Apps/TestAuthApp.cs b/project-demos/auth-github-test/Apps/TestAuthApp.cs
index 4d3bdb39..ab065cdc 100644
--- a/project-demos/auth-github-test/Apps/TestAuthApp.cs
+++ b/project-demos/auth-github-test/Apps/TestAuthApp.cs
@@ -94,7 +94,7 @@ private object BuildRepositoriesButton(List? repos, IState isS
: $"Repositories ({count})";
return new Button(buttonText, variant: ButtonVariant.Outline)
- .HandleClick(_ => isSheetOpen.Set(true))
+ .OnClick(_ => isSheetOpen.Set(true))
.Disabled(count == 0)
.Width(Size.Full());
}
@@ -125,7 +125,7 @@ private object BuildRepositoriesButton(List? repos, IState isS
| details;
return new Card(content)
- .HandleClick(_ => client.OpenUrl(repo.HtmlUrl));
+ .OnClick(_ => client.OpenUrl(repo.HtmlUrl));
});
var content = Layout.Vertical().Gap(3)
diff --git a/project-demos/auth-github-test/Auth.GitHub.Test.csproj b/project-demos/auth-github-test/Auth.GitHub.Test.csproj
index f8d8cb61..7d2a8179 100644
--- a/project-demos/auth-github-test/Auth.GitHub.Test.csproj
+++ b/project-demos/auth-github-test/Auth.GitHub.Test.csproj
@@ -19,7 +19,7 @@
-
+
diff --git a/project-demos/autodealer-crm/Apps/Views/CallRecordsApp.CallRecordDetailsBlade.cs b/project-demos/autodealer-crm/Apps/Views/CallRecordsApp.CallRecordDetailsBlade.cs
index a0b21bcb..f6bce1a0 100644
--- a/project-demos/autodealer-crm/Apps/Views/CallRecordsApp.CallRecordDetailsBlade.cs
+++ b/project-demos/autodealer-crm/Apps/Views/CallRecordsApp.CallRecordDetailsBlade.cs
@@ -66,7 +66,7 @@ public class CallRecordDetailsBlade(int callRecordId) : ViewBase
Sentiment = callRecordValue.Sentiment ?? "N/A"
}
.ToDetails()
- .MultiLine(e => e.RecordingUrl)
+ .Multiline(e => e.RecordingUrl)
.RemoveEmpty()
.Builder(e => e.Id, e => e.CopyToClipboard()),
footer: Layout.Horizontal().Gap(2).Align(Align.Right)
diff --git a/project-demos/autodealer-crm/Apps/Views/CustomersApp.CustomerLeadsCreateDialog.cs b/project-demos/autodealer-crm/Apps/Views/CustomersApp.CustomerLeadsCreateDialog.cs
index fae28a4e..0f576fea 100644
--- a/project-demos/autodealer-crm/Apps/Views/CustomersApp.CustomerLeadsCreateDialog.cs
+++ b/project-demos/autodealer-crm/Apps/Views/CustomersApp.CustomerLeadsCreateDialog.cs
@@ -25,7 +25,7 @@ private record LeadCreateRequest
return lead
.ToForm()
- .Builder(e => e.Notes, e => e.ToTextAreaInput())
+ .Builder(e => e.Notes, e => e.ToTextareaInput())
.Builder(e => e.SourceChannelId, e => e.ToAsyncSelectInput(QuerySourceChannels, LookupSourceChannel, placeholder: "Select Source Channel"))
.Builder(e => e.LeadIntentId, e => e.ToAsyncSelectInput(QueryLeadIntents, LookupLeadIntent, placeholder: "Select Lead Intent"))
.Builder(e => e.LeadStageId, e => e.ToAsyncSelectInput(QueryLeadStages, LookupLeadStage, placeholder: "Select Lead Stage"))
diff --git a/project-demos/autodealer-crm/Apps/Views/CustomersApp.CustomerMessagesEditSheet.cs b/project-demos/autodealer-crm/Apps/Views/CustomersApp.CustomerMessagesEditSheet.cs
index 9bd33a8e..f4958293 100644
--- a/project-demos/autodealer-crm/Apps/Views/CustomersApp.CustomerMessagesEditSheet.cs
+++ b/project-demos/autodealer-crm/Apps/Views/CustomersApp.CustomerMessagesEditSheet.cs
@@ -18,7 +18,7 @@ public class CustomerMessagesEditSheet(IState isOpen, RefreshToken refresh
return message
.ToForm()
- .Builder(e => e.Content, e => e.ToTextAreaInput())
+ .Builder(e => e.Content, e => e.ToTextareaInput())
.Builder(e => e.MessageChannelId, e => e.ToAsyncSelectInput(QueryMessageChannels, LookupMessageChannel, placeholder: "Select Message Channel"))
.Builder(e => e.MessageDirectionId, e => e.ToAsyncSelectInput(QueryMessageDirections, LookupMessageDirection, placeholder: "Select Message Direction"))
.Remove(e => e.Id, e => e.CreatedAt, e => e.UpdatedAt)
diff --git a/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadCreateDialog.cs b/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadCreateDialog.cs
index 320b47c9..6f7ad382 100644
--- a/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadCreateDialog.cs
+++ b/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadCreateDialog.cs
@@ -42,7 +42,7 @@ private record LeadCreateRequest
.Builder(e => e.LeadStageId, e => e.ToAsyncSelectInput(QueryLeadStages, LookupLeadStage, placeholder: "Select Lead Stage"))
.Builder(e => e.ManagerId, e => e.ToAsyncSelectInput(QueryManagers, LookupManager, placeholder: "Select Manager"))
.Builder(e => e.Priority, e => e.ToNumberInput())
- .Builder(e => e.Notes, e => e.ToTextAreaInput())
+ .Builder(e => e.Notes, e => e.ToTextareaInput())
.ToDialog(isOpen, title: "Create Lead", submitTitle: "Create");
}
diff --git a/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadEditSheet.cs b/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadEditSheet.cs
index abdcf4ff..d56469f8 100644
--- a/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadEditSheet.cs
+++ b/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadEditSheet.cs
@@ -24,7 +24,7 @@ public class LeadEditSheet(IState isOpen, RefreshToken refreshToken, int l
.Builder(e => e.LeadIntentId, e => e.ToAsyncSelectInput(QueryLeadIntents, LookupLeadIntent, placeholder: "Select Lead Intent"))
.Builder(e => e.LeadStageId, e => e.ToAsyncSelectInput(QueryLeadStages, LookupLeadStage, placeholder: "Select Lead Stage"))
.Builder(e => e.Priority, e => e.ToNumberInput())
- .Builder(e => e.Notes, e => e.ToTextAreaInput())
+ .Builder(e => e.Notes, e => e.ToTextareaInput())
.Remove(e => e.Id, e => e.CreatedAt, e => e.UpdatedAt)
.ToSheet(isOpen, "Edit Lead");
}
diff --git a/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadMessagesCreateDialog.cs b/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadMessagesCreateDialog.cs
index 4da033c0..8dc5f7cb 100644
--- a/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadMessagesCreateDialog.cs
+++ b/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadMessagesCreateDialog.cs
@@ -42,7 +42,7 @@ private record MessageCreateRequest
.Builder(e => e.MessageDirectionId, e => e.ToAsyncSelectInput(QueryMessageDirections, LookupMessageDirection, placeholder: "Select Message Direction"))
.Builder(e => e.MessageTypeId, e => e.ToAsyncSelectInput(QueryMessageTypes, LookupMessageType, placeholder: "Select Message Type"))
.Builder(e => e.MediaId, e => e.ToAsyncSelectInput(QueryMedia, LookupMedia, placeholder: "Select Media"))
- .Builder(e => e.Content, e => e.ToTextAreaInput())
+ .Builder(e => e.Content, e => e.ToTextareaInput())
.Builder(e => e.SentAt, e => e.ToDateTimeInput())
.ToDialog(isOpen, title: "Create Message", submitTitle: "Create");
}
diff --git a/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadMessagesEditSheet.cs b/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadMessagesEditSheet.cs
index b0e69d6a..b70cf55b 100644
--- a/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadMessagesEditSheet.cs
+++ b/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadMessagesEditSheet.cs
@@ -18,7 +18,7 @@ public class LeadMessagesEditSheet(IState isOpen, RefreshToken refreshToke
return message
.ToForm()
- .Builder(e => e.Content, e => e.ToTextAreaInput())
+ .Builder(e => e.Content, e => e.ToTextareaInput())
.Builder(e => e.MessageChannelId, e => e.ToAsyncSelectInput(QueryMessageChannels, LookupMessageChannel, placeholder: "Select Message Channel"))
.Builder(e => e.MessageDirectionId, e => e.ToAsyncSelectInput(QueryMessageDirections, LookupMessageDirection, placeholder: "Select Message Direction"))
.Builder(e => e.MessageTypeId, e => e.ToAsyncSelectInput(QueryMessageTypes, LookupMessageType, placeholder: "Select Message Type"))
diff --git a/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadTasksEditSheet.cs b/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadTasksEditSheet.cs
index f9d9614e..a40a20fd 100644
--- a/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadTasksEditSheet.cs
+++ b/project-demos/autodealer-crm/Apps/Views/LeadsApp.LeadTasksEditSheet.cs
@@ -19,7 +19,7 @@ public class LeadTasksEditSheet(IState isOpen, RefreshToken refreshToken,
return task
.ToForm()
.Builder(e => e.Title, e => e.ToTextInput())
- .Builder(e => e.Description, e => e.ToTextAreaInput())
+ .Builder(e => e.Description, e => e.ToTextareaInput())
.Builder(e => e.DueDate, e => e.ToDateInput())
.Builder(e => e.Completed, e => e.ToNumberInput())
.Builder(e => e.ManagerId, e => e.ToAsyncSelectInput(QueryManagers, LookupManager, placeholder: "Select Manager"))
diff --git a/project-demos/autodealer-crm/Apps/Views/MediaApp.MediumMessagesCreateDialog.cs b/project-demos/autodealer-crm/Apps/Views/MediaApp.MediumMessagesCreateDialog.cs
index 215a092e..7b5e3009 100644
--- a/project-demos/autodealer-crm/Apps/Views/MediaApp.MediumMessagesCreateDialog.cs
+++ b/project-demos/autodealer-crm/Apps/Views/MediaApp.MediumMessagesCreateDialog.cs
@@ -37,7 +37,7 @@ private record MessageCreateRequest
return message
.ToForm()
- .Builder(e => e.Content, e => e.ToTextAreaInput())
+ .Builder(e => e.Content, e => e.ToTextareaInput())
.Builder(e => e.CustomerId, e => e.ToNumberInput())
.Builder(e => e.LeadId, e => e.ToNumberInput())
.Builder(e => e.MessageChannelId, e => e.ToNumberInput())
diff --git a/project-demos/autodealer-crm/Apps/Views/MediaApp.MediumMessagesEditSheet.cs b/project-demos/autodealer-crm/Apps/Views/MediaApp.MediumMessagesEditSheet.cs
index 1c7c82d9..f0d4bf08 100644
--- a/project-demos/autodealer-crm/Apps/Views/MediaApp.MediumMessagesEditSheet.cs
+++ b/project-demos/autodealer-crm/Apps/Views/MediaApp.MediumMessagesEditSheet.cs
@@ -18,7 +18,7 @@ public class MediumMessagesEditSheet(IState isOpen, RefreshToken refreshTo
return message
.ToForm()
- .Builder(e => e.Content, e => e.ToTextAreaInput())
+ .Builder(e => e.Content, e => e.ToTextareaInput())
.Builder(e => e.MessageChannelId, e => e.ToAsyncSelectInput(QueryMessageChannels, LookupMessageChannel, placeholder: "Select Message Channel"))
.Builder(e => e.MessageDirectionId, e => e.ToAsyncSelectInput(QueryMessageDirections, LookupMessageDirection, placeholder: "Select Message Direction"))
.Builder(e => e.MessageTypeId, e => e.ToAsyncSelectInput(QueryMessageTypes, LookupMessageType, placeholder: "Select Message Type"))
diff --git a/project-demos/autodealer-crm/Apps/Views/MessagesApp.MessageCreateDialog.cs b/project-demos/autodealer-crm/Apps/Views/MessagesApp.MessageCreateDialog.cs
index 1f614594..58122236 100644
--- a/project-demos/autodealer-crm/Apps/Views/MessagesApp.MessageCreateDialog.cs
+++ b/project-demos/autodealer-crm/Apps/Views/MessagesApp.MessageCreateDialog.cs
@@ -38,7 +38,7 @@ private record MessageCreateRequest
.Builder(e => e.MessageChannelId, e => e.ToNumberInput())
.Builder(e => e.MessageDirectionId, e => e.ToNumberInput())
.Builder(e => e.MessageTypeId, e => e.ToNumberInput())
- .Builder(e => e.Content, e => e.ToTextAreaInput())
+ .Builder(e => e.Content, e => e.ToTextareaInput())
.Builder(e => e.SentAt, e => e.ToDateTimeInput())
.ToDialog(isOpen, title: "Create Message", submitTitle: "Create");
}
diff --git a/project-demos/autodealer-crm/Apps/Views/MessagesApp.MessageDetailsBlade.cs b/project-demos/autodealer-crm/Apps/Views/MessagesApp.MessageDetailsBlade.cs
index 5b9863b9..dff1f3e3 100644
--- a/project-demos/autodealer-crm/Apps/Views/MessagesApp.MessageDetailsBlade.cs
+++ b/project-demos/autodealer-crm/Apps/Views/MessagesApp.MessageDetailsBlade.cs
@@ -68,7 +68,7 @@ public class MessageDetailsBlade(int messageId) : ViewBase
SentAt = messageValue.SentAt
}
.ToDetails()
- .MultiLine(e => e.Content)
+ .Multiline(e => e.Content)
.RemoveEmpty()
.Builder(e => e.Id, e => e.CopyToClipboard()),
footer: Layout.Horizontal().Gap(2).Align(Align.Right)
diff --git a/project-demos/autodealer-crm/Apps/Views/MessagesApp.MessageEditSheet.cs b/project-demos/autodealer-crm/Apps/Views/MessagesApp.MessageEditSheet.cs
index 843ce89b..4b6006da 100644
--- a/project-demos/autodealer-crm/Apps/Views/MessagesApp.MessageEditSheet.cs
+++ b/project-demos/autodealer-crm/Apps/Views/MessagesApp.MessageEditSheet.cs
@@ -18,7 +18,7 @@ public class MessageEditSheet(IState isOpen, RefreshToken refreshToken, in
return message
.ToForm()
- .Builder(e => e.Content, e => e.ToTextAreaInput())
+ .Builder(e => e.Content, e => e.ToTextareaInput())
.Builder(e => e.SentAt, e => e.ToDateTimeInput())
.Builder(e => e.CustomerId, e => e.ToAsyncSelectInput(QueryCustomers, LookupCustomer, placeholder: "Select Customer"))
.Builder(e => e.LeadId, e => e.ToAsyncSelectInput(QueryLeads, LookupLead, placeholder: "Select Lead"))
diff --git a/project-demos/autodealer-crm/Apps/Views/TasksApp.TaskCreateDialog.cs b/project-demos/autodealer-crm/Apps/Views/TasksApp.TaskCreateDialog.cs
index 30d7bf46..6cbe5d32 100644
--- a/project-demos/autodealer-crm/Apps/Views/TasksApp.TaskCreateDialog.cs
+++ b/project-demos/autodealer-crm/Apps/Views/TasksApp.TaskCreateDialog.cs
@@ -39,7 +39,7 @@ private record TaskCreateRequest
.Builder(e => e.LeadId, e => e.ToAsyncSelectInput(QueryLeads, LookupLead, placeholder: "Select Lead"))
.Builder(e => e.ManagerId, e => e.ToAsyncSelectInput(QueryManagers, LookupManager, placeholder: "Select Manager"))
.Builder(e => e.Title, e => e.ToTextInput())
- .Builder(e => e.Description, e => e.ToTextAreaInput())
+ .Builder(e => e.Description, e => e.ToTextareaInput())
.Builder(e => e.DueDate, e => e.ToDateTimeInput())
.Builder(e => e.Completed, e => e.ToFeedbackInput())
.ToDialog(isOpen, title: "Create Task", submitTitle: "Create");
diff --git a/project-demos/autodealer-crm/Apps/Views/TasksApp.TaskDetailsBlade.cs b/project-demos/autodealer-crm/Apps/Views/TasksApp.TaskDetailsBlade.cs
index 05d59c04..a395685d 100644
--- a/project-demos/autodealer-crm/Apps/Views/TasksApp.TaskDetailsBlade.cs
+++ b/project-demos/autodealer-crm/Apps/Views/TasksApp.TaskDetailsBlade.cs
@@ -61,7 +61,7 @@ public class TaskDetailsBlade(int taskId) : ViewBase
Completed = taskValue.Completed == true ? "Yes" : "No"
}
.ToDetails()
- .MultiLine(e => e.Description)
+ .Multiline(e => e.Description)
.RemoveEmpty(),
footer: Layout.Horizontal().Gap(2).Align(Align.Right)
| dropDown
diff --git a/project-demos/autodealer-crm/Apps/Views/TasksApp.TaskEditSheet.cs b/project-demos/autodealer-crm/Apps/Views/TasksApp.TaskEditSheet.cs
index b7512689..5461fef1 100644
--- a/project-demos/autodealer-crm/Apps/Views/TasksApp.TaskEditSheet.cs
+++ b/project-demos/autodealer-crm/Apps/Views/TasksApp.TaskEditSheet.cs
@@ -19,7 +19,7 @@ public class TaskEditSheet(IState isOpen, RefreshToken refreshToken, int t
return task
.ToForm()
.Builder(e => e.Title, e => e.ToTextInput())
- .Builder(e => e.Description, e => e.ToTextAreaInput())
+ .Builder(e => e.Description, e => e.ToTextareaInput())
.Builder(e => e.DueDate, e => e.ToDateInput())
.Builder(e => e.Completed, e => e.ToSwitchInput())
.Builder(e => e.LeadId, e => e.ToAsyncSelectInput(QueryLeads, LookupLead, placeholder: "Select Lead"))
diff --git a/project-demos/autodealer-crm/Apps/Views/UsersApp.UserLeadsCreateDialog.cs b/project-demos/autodealer-crm/Apps/Views/UsersApp.UserLeadsCreateDialog.cs
index 25683d76..b9b7eafb 100644
--- a/project-demos/autodealer-crm/Apps/Views/UsersApp.UserLeadsCreateDialog.cs
+++ b/project-demos/autodealer-crm/Apps/Views/UsersApp.UserLeadsCreateDialog.cs
@@ -39,7 +39,7 @@ private record LeadCreateRequest
.Builder(e => e.LeadIntentId, e => e.ToAsyncSelectInput(QueryLeadIntents, LookupLeadIntent, placeholder: "Select Lead Intent"))
.Builder(e => e.LeadStageId, e => e.ToAsyncSelectInput(QueryLeadStages, LookupLeadStage, placeholder: "Select Lead Stage"))
.Builder(e => e.Priority, e => e.ToNumberInput())
- .Builder(e => e.Notes, e => e.ToTextAreaInput())
+ .Builder(e => e.Notes, e => e.ToTextareaInput())
.ToDialog(isOpen, title: "Create Lead", submitTitle: "Create");
}
diff --git a/project-demos/autodealer-crm/Apps/Views/UsersApp.UserLeadsEditSheet.cs b/project-demos/autodealer-crm/Apps/Views/UsersApp.UserLeadsEditSheet.cs
index 15477b77..e135fadc 100644
--- a/project-demos/autodealer-crm/Apps/Views/UsersApp.UserLeadsEditSheet.cs
+++ b/project-demos/autodealer-crm/Apps/Views/UsersApp.UserLeadsEditSheet.cs
@@ -18,7 +18,7 @@ public class UserLeadsEditSheet(IState isOpen, RefreshToken refreshToken,
return lead
.ToForm()
- .Builder(e => e.Notes, e => e.ToTextAreaInput())
+ .Builder(e => e.Notes, e => e.ToTextareaInput())
.Builder(e => e.Priority, e => e.ToNumberInput())
.Builder(e => e.CustomerId, e => e.ToAsyncSelectInput(QueryCustomers, LookupCustomer, placeholder: "Select Customer"))
.Builder(e => e.ManagerId, e => e.ToAsyncSelectInput(QueryManagers, LookupManager, placeholder: "Select Manager"))
diff --git a/project-demos/autodealer-crm/Apps/Views/UsersApp.UserMessagesCreateDialog.cs b/project-demos/autodealer-crm/Apps/Views/UsersApp.UserMessagesCreateDialog.cs
index 58fd9c54..e0dc788c 100644
--- a/project-demos/autodealer-crm/Apps/Views/UsersApp.UserMessagesCreateDialog.cs
+++ b/project-demos/autodealer-crm/Apps/Views/UsersApp.UserMessagesCreateDialog.cs
@@ -41,7 +41,7 @@ private record MessageCreateRequest
.Builder(e => e.MessageChannelId, e => e.ToAsyncSelectInput(QueryMessageChannels, LookupMessageChannel, placeholder: "Select Channel"))
.Builder(e => e.MessageDirectionId, e => e.ToAsyncSelectInput(QueryMessageDirections, LookupMessageDirection, placeholder: "Select Direction"))
.Builder(e => e.MessageTypeId, e => e.ToAsyncSelectInput(QueryMessageTypes, LookupMessageType, placeholder: "Select Type"))
- .Builder(e => e.Content, e => e.ToTextAreaInput())
+ .Builder(e => e.Content, e => e.ToTextareaInput())
.Builder(e => e.MediaId, e => e.ToAsyncSelectInput(QueryMedia, LookupMedia, placeholder: "Select Media"))
.Builder(e => e.SentAt, e => e.ToDateTimeInput())
.ToDialog(isOpen, title: "Create Message", submitTitle: "Create");
diff --git a/project-demos/autodealer-crm/Apps/Views/UsersApp.UserMessagesEditSheet.cs b/project-demos/autodealer-crm/Apps/Views/UsersApp.UserMessagesEditSheet.cs
index 05b37131..69b7dac6 100644
--- a/project-demos/autodealer-crm/Apps/Views/UsersApp.UserMessagesEditSheet.cs
+++ b/project-demos/autodealer-crm/Apps/Views/UsersApp.UserMessagesEditSheet.cs
@@ -18,7 +18,7 @@ public class UserMessagesEditSheet(IState isOpen, RefreshToken refreshToke
return message
.ToForm()
- .Builder(e => e.Content, e => e.ToTextAreaInput())
+ .Builder(e => e.Content, e => e.ToTextareaInput())
.Builder(e => e.SentAt, e => e.ToDateTimeInput())
.Builder(e => e.MessageChannelId, e => e.ToAsyncSelectInput(QueryMessageChannels, LookupMessageChannel, placeholder: "Select Message Channel"))
.Builder(e => e.MessageDirectionId, e => e.ToAsyncSelectInput(QueryMessageDirections, LookupMessageDirection, placeholder: "Select Message Direction"))
diff --git a/project-demos/autodealer-crm/Apps/Views/UsersApp.UserTasksCreateDialog.cs b/project-demos/autodealer-crm/Apps/Views/UsersApp.UserTasksCreateDialog.cs
index 5aff4dcf..c0023a8b 100644
--- a/project-demos/autodealer-crm/Apps/Views/UsersApp.UserTasksCreateDialog.cs
+++ b/project-demos/autodealer-crm/Apps/Views/UsersApp.UserTasksCreateDialog.cs
@@ -31,7 +31,7 @@ private record TaskCreateRequest
return taskState
.ToForm()
.Builder(e => e.Title, e => e.ToTextInput())
- .Builder(e => e.Description, e => e.ToTextAreaInput())
+ .Builder(e => e.Description, e => e.ToTextareaInput())
.Builder(e => e.DueDate, e => e.ToDateInput())
.Builder(e => e.Completed, e => e.ToFeedbackInput())
.ToDialog(isOpen, title: "Create Task", submitTitle: "Create");
diff --git a/project-demos/autodealer-crm/Apps/Views/UsersApp.UserTasksEditSheet.cs b/project-demos/autodealer-crm/Apps/Views/UsersApp.UserTasksEditSheet.cs
index e59c0556..fbb7fb5b 100644
--- a/project-demos/autodealer-crm/Apps/Views/UsersApp.UserTasksEditSheet.cs
+++ b/project-demos/autodealer-crm/Apps/Views/UsersApp.UserTasksEditSheet.cs
@@ -19,7 +19,7 @@ public class UserTasksEditSheet(IState isOpen, RefreshToken refreshToken,
return task
.ToForm()
.Builder(e => e.Title, e => e.ToTextInput())
- .Builder(e => e.Description, e => e.ToTextAreaInput())
+ .Builder(e => e.Description, e => e.ToTextareaInput())
.Builder(e => e.DueDate, e => e.ToDateInput())
.Builder(e => e.Completed, e => e.ToNumberInput())
.Builder(e => e.LeadId, e => e.ToAsyncSelectInput(QueryLeads, LookupLead, placeholder: "Select Lead"))
diff --git a/project-demos/autodealer-crm/AutodealerCrm.csproj b/project-demos/autodealer-crm/AutodealerCrm.csproj
index e5bc591a..dac9f7a2 100644
--- a/project-demos/autodealer-crm/AutodealerCrm.csproj
+++ b/project-demos/autodealer-crm/AutodealerCrm.csproj
@@ -13,7 +13,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/project-demos/course-template/CourseTemplate.csproj b/project-demos/course-template/CourseTemplate.csproj
index cc8f2382..e29c9c54 100644
--- a/project-demos/course-template/CourseTemplate.csproj
+++ b/project-demos/course-template/CourseTemplate.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/project-demos/course-template/Helpers/Generator/Program.cs b/project-demos/course-template/Helpers/Generator/Program.cs
index 5225b348..4db83958 100644
--- a/project-demos/course-template/Helpers/Generator/Program.cs
+++ b/project-demos/course-template/Helpers/Generator/Program.cs
@@ -173,7 +173,7 @@ static async Task ConvertMarkdownAsync(string name, string relativePath, string
if (document.Any(e => e is not YamlFrontMatterBlock))
{
codeBuilder.AppendTab(2).AppendLine("var appDescriptor = this.UseService();");
- codeBuilder.AppendTab(2).AppendLine("var onLinkClick = this.UseLinks();");
+ codeBuilder.AppendTab(2).AppendLine("var OnLinkClick = this.UseLinks();");
codeBuilder.AppendTab(2).AppendLine("var article = new Article().ShowToc(true).ShowFooter(true)");
// Simplified markdown handling - just render everything as markdown
@@ -190,7 +190,7 @@ static async Task ConvertMarkdownAsync(string name, string relativePath, string
var content = contentBuilder.ToString().Trim();
if (!string.IsNullOrEmpty(content))
{
- AppendAsMultiLineString(3, content, codeBuilder, "| new Markdown(", ").HandleLinkClick(onLinkClick)");
+ AppendAsMultiLineString(3, content, codeBuilder, "| new Markdown(", ").OnLinkClick(OnLinkClick)");
}
codeBuilder.AppendTab(3).AppendLine(";");
diff --git a/project-demos/course-template/Regenerate.ps1 b/project-demos/course-template/Regenerate.ps1
index e74361c5..7aba1e70 100644
--- a/project-demos/course-template/Regenerate.ps1
+++ b/project-demos/course-template/Regenerate.ps1
@@ -1,3 +1,3 @@
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Definition
Remove-Item -Path "${scriptDir}\Generated" -Recurse -Force -ErrorAction SilentlyContinue
-dotnet run --project "${scriptDir}\Helpers\Generator\Generator.csproj" -- convert "${scriptDir}\Modules\*.md" "${scriptDir}\Generated" "${scriptDir}\course-template.csproj"
\ No newline at end of file
+dotnet run --project "${scriptDir}\Helpers\Generator\Generator.csproj" -- convert "${scriptDir}\Modules\*.md" "${scriptDir}\Generated" "${scriptDir}\CourseTemplate.csproj"
\ No newline at end of file
diff --git a/project-demos/course-template/Regenerate.sh b/project-demos/course-template/Regenerate.sh
index 12c76fd5..964daf48 100644
--- a/project-demos/course-template/Regenerate.sh
+++ b/project-demos/course-template/Regenerate.sh
@@ -7,4 +7,4 @@ scriptDir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
rm -rf "${scriptDir}/Generated"
# Run the dotnet command to regenerate files
-dotnet run --project "${scriptDir}/Helpers/Generator/Generator.csproj" -- convert "${scriptDir}/Modules/*.md" "${scriptDir}/Generated" "${scriptDir}/course-template.csproj"
\ No newline at end of file
+dotnet run --project "${scriptDir}/Helpers/Generator/Generator.csproj" -- convert "${scriptDir}/Modules/*.md" "${scriptDir}/Generated" "${scriptDir}/CourseTemplate.csproj"
\ No newline at end of file
diff --git a/project-demos/crm-vc/Apps/Views/StartupsApp.StartupDealsEditSheet.cs b/project-demos/crm-vc/Apps/Views/StartupsApp.StartupDealsEditSheet.cs
index 1162bbba..b5491e1f 100644
--- a/project-demos/crm-vc/Apps/Views/StartupsApp.StartupDealsEditSheet.cs
+++ b/project-demos/crm-vc/Apps/Views/StartupsApp.StartupDealsEditSheet.cs
@@ -27,7 +27,7 @@ public class StartupDealsEditSheet(IState isOpen, RefreshToken refreshToke
return deal
.ToForm()
.Builder(e => e.Amount, e => e.ToMoneyInput().Currency("USD"))
- .Builder(e => e.Round, e => e.ToTextAreaInput())
+ .Builder(e => e.Round, e => e.ToTextareaInput())
.Builder(e => e.DealDate, e => e.ToDateInput())
.Remove(e => e.Id, e => e.CreatedAt, e => e.UpdatedAt, e => e.StartupId)
.ToSheet(isOpen, "Edit Deal");
diff --git a/project-demos/crm-vc/Apps/Views/StartupsApp.StartupDetailsBlade.cs b/project-demos/crm-vc/Apps/Views/StartupsApp.StartupDetailsBlade.cs
index a6af1e91..f1a0adc9 100644
--- a/project-demos/crm-vc/Apps/Views/StartupsApp.StartupDetailsBlade.cs
+++ b/project-demos/crm-vc/Apps/Views/StartupsApp.StartupDetailsBlade.cs
@@ -55,7 +55,7 @@ void OnDelete()
FoundedAt = startupValue.FoundedAt?.ToString("yyyy-MM-dd")
}.ToDetails()
.RemoveEmpty()
- .MultiLine(e => e.Description)
+ .Multiline(e => e.Description)
.Builder(e => e.Id, e => e.CopyToClipboard()),
footer: Layout.Horizontal().Width(Size.Full()).Gap(1).Align(Align.Right)
| dropDown
diff --git a/project-demos/crm-vc/Apps/Views/StartupsApp.StartupEditSheet.cs b/project-demos/crm-vc/Apps/Views/StartupsApp.StartupEditSheet.cs
index ce248a0a..8cfe366d 100644
--- a/project-demos/crm-vc/Apps/Views/StartupsApp.StartupEditSheet.cs
+++ b/project-demos/crm-vc/Apps/Views/StartupsApp.StartupEditSheet.cs
@@ -26,7 +26,7 @@ public class StartupEditSheet(IState isOpen, RefreshToken refreshToken, in
return startup
.ToForm()
- .Builder(e => e.Description, e => e.ToTextAreaInput())
+ .Builder(e => e.Description, e => e.ToTextareaInput())
.Builder(e => e.FoundedAt, e => e.ToDateInput())
.Remove(e => e.Id, e => e.CreatedAt, e => e.UpdatedAt)
.ToSheet(isOpen, "Edit Startup");
diff --git a/project-demos/crm-vc/Vc.csproj b/project-demos/crm-vc/Vc.csproj
index 90679f15..3bfeb130 100644
--- a/project-demos/crm-vc/Vc.csproj
+++ b/project-demos/crm-vc/Vc.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/project-demos/github-wrapped/Apps/GitHubWrappedApp.cs b/project-demos/github-wrapped/Apps/GitHubWrappedApp.cs
index 3009d9ba..18aae657 100644
--- a/project-demos/github-wrapped/Apps/GitHubWrappedApp.cs
+++ b/project-demos/github-wrapped/Apps/GitHubWrappedApp.cs
@@ -69,7 +69,7 @@ public class GitHubWrappedApp : ViewBase
.Icon(Icons.ChevronLeft)
.Variant(ButtonVariant.Outline)
.Disabled(selectedIndex.Value == 0)
- .HandleClick(() =>
+ .OnClick(() =>
{
selectedIndex.Set(Math.Max(0, selectedIndex.Value - 1));
}))
@@ -78,7 +78,7 @@ public class GitHubWrappedApp : ViewBase
? BuildShareButton(stats.Value)
: new Button(selectedIndex.Value == 0 ? "Start the recap" : "Show me more")
.Icon(Icons.ChevronRight, Align.Right)
- .HandleClick(() =>
+ .OnClick(() =>
{
selectedIndex.Set(Math.Min(stepperItems.Length - 1, selectedIndex.Value + 1));
})))),
diff --git a/project-demos/github-wrapped/Apps/Views/RepositoriesSlide.cs b/project-demos/github-wrapped/Apps/Views/RepositoriesSlide.cs
index 3bf6d0f8..345c88c3 100644
--- a/project-demos/github-wrapped/Apps/Views/RepositoriesSlide.cs
+++ b/project-demos/github-wrapped/Apps/Views/RepositoriesSlide.cs
@@ -160,7 +160,7 @@ private object BuildRepoList(IClientProvider client, int maxCommits)
| Text.Block($"{repo.CommitCount} commits").Muted())
.Title($"{repo.Name}")
.Icon(Icons.Folder)
- .HandleClick(_ => client.OpenUrl(repo.HtmlUrl));
+ .OnClick(_ => client.OpenUrl(repo.HtmlUrl));
});
// Arrange cards: first row with 2 cards, second row with 3 cards
diff --git a/project-demos/github-wrapped/GitHubWrapped.csproj b/project-demos/github-wrapped/GitHubWrapped.csproj
index f80a02c2..58fc0083 100644
--- a/project-demos/github-wrapped/GitHubWrapped.csproj
+++ b/project-demos/github-wrapped/GitHubWrapped.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/project-demos/llm-tornado-ollama/Apps/AgentChatBlade.cs b/project-demos/llm-tornado-ollama/Apps/AgentChatBlade.cs
index a1825e95..5bc461d1 100644
--- a/project-demos/llm-tornado-ollama/Apps/AgentChatBlade.cs
+++ b/project-demos/llm-tornado-ollama/Apps/AgentChatBlade.cs
@@ -161,7 +161,7 @@ private string GetOperationSymbol(string operation)
var instructionsDialog = _instructionsForm.ToForm()
- .Builder(m => m.Instructions, m => m.ToTextAreaInput(placeholder: "Enter instructions for the agent...")
+ .Builder(m => m.Instructions, m => m.ToTextareaInput(placeholder: "Enter instructions for the agent...")
.Height(Size.Units(100)))
.Label(m => m.Instructions, "Agent Instructions")
.ToDialog(_showSettings,
diff --git a/project-demos/llm-tornado-ollama/Apps/LlmTornadoApp.cs b/project-demos/llm-tornado-ollama/Apps/LlmTornadoApp.cs
index f3777819..583efe51 100644
--- a/project-demos/llm-tornado-ollama/Apps/LlmTornadoApp.cs
+++ b/project-demos/llm-tornado-ollama/Apps/LlmTornadoApp.cs
@@ -126,7 +126,7 @@ async Task LoadModels()
| new Button("Try It")
.Variant(ButtonVariant.Primary)
.Disabled(selectedModel.Value == null)
- .HandleClick(_ => blades.Push(this, new SimpleChatBlade(ollamaUrl.Value, selectedModel.Value ?? "llama3.2:1b"), "Simple Chat")))
+ .OnClick(_ => blades.Push(this, new SimpleChatBlade(ollamaUrl.Value, selectedModel.Value ?? "llama3.2:1b"), "Simple Chat")))
)
| new Card(
Layout.Horizontal().Gap(3)
@@ -138,7 +138,7 @@ async Task LoadModels()
| new Button("Try It")
.Variant(ButtonVariant.Primary)
.Disabled(selectedModel.Value == null)
- .HandleClick(_ => blades.Push(this, new AgentChatBlade(ollamaUrl.Value, selectedModel.Value ?? "llama3.2:1b"), "Agent Chat")))
+ .OnClick(_ => blades.Push(this, new AgentChatBlade(ollamaUrl.Value, selectedModel.Value ?? "llama3.2:1b"), "Agent Chat")))
);
return new Fragment()
diff --git a/project-demos/llm-tornado-ollama/LlmTornadoExample.csproj b/project-demos/llm-tornado-ollama/LlmTornadoExample.csproj
index d236a9d1..ec9d29ac 100644
--- a/project-demos/llm-tornado-ollama/LlmTornadoExample.csproj
+++ b/project-demos/llm-tornado-ollama/LlmTornadoExample.csproj
@@ -16,7 +16,7 @@
-
+
diff --git a/project-demos/llm-tornado-openai/Apps/AgentChatBlade.cs b/project-demos/llm-tornado-openai/Apps/AgentChatBlade.cs
index 175551c8..f0ae1004 100644
--- a/project-demos/llm-tornado-openai/Apps/AgentChatBlade.cs
+++ b/project-demos/llm-tornado-openai/Apps/AgentChatBlade.cs
@@ -161,7 +161,7 @@ private string GetOperationSymbol(string operation)
var instructionsDialog = _instructionsForm.ToForm()
- .Builder(m => m.Instructions, m => m.ToTextAreaInput(placeholder: "Enter instructions for the agent...")
+ .Builder(m => m.Instructions, m => m.ToTextareaInput(placeholder: "Enter instructions for the agent...")
.Height(Size.Units(100)))
.Label(m => m.Instructions, "Agent Instructions")
.ToDialog(_showSettings,
diff --git a/project-demos/llm-tornado-openai/Apps/LlmTornadoApp.cs b/project-demos/llm-tornado-openai/Apps/LlmTornadoApp.cs
index 78f996e5..b1c19e62 100644
--- a/project-demos/llm-tornado-openai/Apps/LlmTornadoApp.cs
+++ b/project-demos/llm-tornado-openai/Apps/LlmTornadoApp.cs
@@ -32,7 +32,7 @@ public class MainMenuBlade : ViewBase
| new Button("Try It")
.Variant(ButtonVariant.Primary)
.Disabled(string.IsNullOrWhiteSpace(selectedModel.Value) || string.IsNullOrWhiteSpace(openAiApiKey.Value))
- .HandleClick(_ => blades.Push(this, new SimpleChatBlade(openAiApiKey.Value, selectedModel.Value), "Simple Chat")))
+ .OnClick(_ => blades.Push(this, new SimpleChatBlade(openAiApiKey.Value, selectedModel.Value), "Simple Chat")))
)
| new Card(
Layout.Horizontal().Gap(3)
@@ -44,7 +44,7 @@ public class MainMenuBlade : ViewBase
| new Button("Try It")
.Variant(ButtonVariant.Primary)
.Disabled(string.IsNullOrWhiteSpace(selectedModel.Value) || string.IsNullOrWhiteSpace(openAiApiKey.Value))
- .HandleClick(_ => blades.Push(this, new AgentChatBlade(openAiApiKey.Value, selectedModel.Value), "Agent Chat")))
+ .OnClick(_ => blades.Push(this, new AgentChatBlade(openAiApiKey.Value, selectedModel.Value), "Agent Chat")))
);
return new Fragment()
diff --git a/project-demos/llm-tornado-openai/LlmTornadoExample.csproj b/project-demos/llm-tornado-openai/LlmTornadoExample.csproj
index 7a4ced8b..6f17e2cf 100644
--- a/project-demos/llm-tornado-openai/LlmTornadoExample.csproj
+++ b/project-demos/llm-tornado-openai/LlmTornadoExample.csproj
@@ -16,7 +16,7 @@
-
+
diff --git a/project-demos/microsoft-agent-framework/MicrosoftAgentFramework.csproj b/project-demos/microsoft-agent-framework/MicrosoftAgentFramework.csproj
index 74181cbe..5d094aac 100644
--- a/project-demos/microsoft-agent-framework/MicrosoftAgentFramework.csproj
+++ b/project-demos/microsoft-agent-framework/MicrosoftAgentFramework.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/project-demos/microsoft-agent-framework/Views/AgentChatView.cs b/project-demos/microsoft-agent-framework/Views/AgentChatView.cs
index e95f2769..e456b7d6 100644
--- a/project-demos/microsoft-agent-framework/Views/AgentChatView.cs
+++ b/project-demos/microsoft-agent-framework/Views/AgentChatView.cs
@@ -259,7 +259,7 @@ QueryResult
-
+
diff --git a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyContactsBlade.cs b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyContactsBlade.cs
index d00674c8..6e0804f1 100644
--- a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyContactsBlade.cs
+++ b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyContactsBlade.cs
@@ -65,7 +65,7 @@ private record ContactTableRecord(int Id, string FirstName, string LastName, str
MenuItem.Default(Icons.Pencil, "edit").Tag("edit"),
MenuItem.Default(Icons.Trash2, "delete").Tag("delete")
)
- .HandleRowAction(e =>
+ .OnRowAction(e =>
{
var args = e.Value;
var tag = args.Tag?.ToString();
diff --git a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyContactsCreateDialog.cs b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyContactsCreateDialog.cs
index 7c064b1f..0abd87a6 100644
--- a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyContactsCreateDialog.cs
+++ b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyContactsCreateDialog.cs
@@ -24,7 +24,7 @@ private record ContactCreateRequest
return contact
.ToForm()
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToDialog(isOpen, title: "Create Contact", submitTitle: "Create");
async Task OnSubmit(ContactCreateRequest request)
diff --git a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyContactsEditSheet.cs b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyContactsEditSheet.cs
index ed5b7a18..c6cb59d8 100644
--- a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyContactsEditSheet.cs
+++ b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyContactsEditSheet.cs
@@ -27,7 +27,7 @@ public class CompanyContactsEditSheet(IState isOpen, RefreshToken refreshT
.Builder(e => e.Email, e => e.ToEmailInput())
.Builder(e => e.Phone, e => e.ToTelInput())
.Remove(e => e.Id, e => e.CreatedAt, e => e.UpdatedAt)
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToSheet(isOpen, "Edit Contact");
async Task OnSubmit(Contact? request)
diff --git a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyCreateDialog.cs b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyCreateDialog.cs
index b4dfb554..0ff40b9a 100644
--- a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyCreateDialog.cs
+++ b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyCreateDialog.cs
@@ -22,10 +22,10 @@ private record CompanyCreateRequest
return company
.ToForm()
.Builder(e => e.Name, e => e.ToTextInput())
- .Builder(e => e.Address, e => e.ToTextAreaInput())
+ .Builder(e => e.Address, e => e.ToTextareaInput())
.Builder(e => e.Phone, e => e.ToTelInput())
.Builder(e => e.Website, e => e.ToUrlInput())
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToDialog(isOpen, title: "Create Company", submitTitle: "Create");
async Task OnSubmit(CompanyCreateRequest request)
diff --git a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyDealsBlade.cs b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyDealsBlade.cs
index 2a214f0f..118a0015 100644
--- a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyDealsBlade.cs
+++ b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyDealsBlade.cs
@@ -76,7 +76,7 @@ private record DealTableRecord(int Id, string Contact, string Stage, string Amou
MenuItem.Default(Icons.Pencil, "edit").Tag("edit"),
MenuItem.Default(Icons.Trash2, "delete").Tag("delete")
)
- .HandleRowAction(e =>
+ .OnRowAction(e =>
{
var args = e.Value;
var tag = args.Tag?.ToString();
diff --git a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyDealsCreateDialog.cs b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyDealsCreateDialog.cs
index 3f9f3364..26981c08 100644
--- a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyDealsCreateDialog.cs
+++ b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyDealsCreateDialog.cs
@@ -32,7 +32,7 @@ private record DealCreateRequest
.Builder(e => e.LeadId, e => e.ToAsyncSelectInput(UseLeadSearchForCompany, UseLeadLookup, placeholder: "Select Lead"))
.Builder(e => e.Amount, e => e.ToMoneyInput().Currency("USD"))
.Builder(e => e.CloseDate, e => e.ToDateInput())
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToDialog(isOpen, title: "Create Deal", submitTitle: "Create");
async Task OnSubmit(DealCreateRequest request)
diff --git a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyDealsEditSheet.cs b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyDealsEditSheet.cs
index e0252a16..ffa08811 100644
--- a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyDealsEditSheet.cs
+++ b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyDealsEditSheet.cs
@@ -28,7 +28,7 @@ public class CompanyDealsEditSheet(IState isOpen, RefreshToken refreshToke
.Builder(e => e.ContactId, e => e.ToAsyncSelectInput(UseContactSearch, UseContactLookup, placeholder: "Select Contact"))
.Builder(e => e.LeadId, e => e.ToAsyncSelectInput(UseLeadSearch, UseLeadLookup, placeholder: "Select Lead"))
.Remove(e => e.Id, e => e.CreatedAt, e => e.UpdatedAt)
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToSheet(isOpen, "Edit Deal");
async Task OnSubmit(Deal? request)
diff --git a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyEditSheet.cs b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyEditSheet.cs
index aba5a84b..a35b864e 100644
--- a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyEditSheet.cs
+++ b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyEditSheet.cs
@@ -23,12 +23,12 @@ public class CompanyEditSheet(IState isOpen, RefreshToken refreshToken, in
return companyQuery.Value
.ToForm()
.Builder(e => e.Name, e => e.ToTextInput())
- .Builder(e => e.Address, e => e.ToTextAreaInput())
+ .Builder(e => e.Address, e => e.ToTextareaInput())
.Builder(e => e.Phone, e => e.ToTelInput())
.Builder(e => e.Website, e => e.ToUrlInput())
.Place(e => e.Name, e => e.Address, e => e.Phone, e => e.Website)
.Remove(e => e.Id, e => e.CreatedAt, e => e.UpdatedAt)
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToSheet(isOpen, "Edit Company");
async Task OnSubmit(Company? request)
diff --git a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyLeadsBlade.cs b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyLeadsBlade.cs
index ce6e09c9..b8d72c2c 100644
--- a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyLeadsBlade.cs
+++ b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyLeadsBlade.cs
@@ -71,7 +71,7 @@ private record LeadTableRecord(int Id, string Status, string Source, string Crea
MenuItem.Default(Icons.Pencil, "edit").Tag("edit"),
MenuItem.Default(Icons.Trash2, "delete").Tag("delete")
)
- .HandleRowAction(e =>
+ .OnRowAction(e =>
{
var args = e.Value;
var tag = args.Tag?.ToString();
diff --git a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyLeadsCreateDialog.cs b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyLeadsCreateDialog.cs
index c75dc491..a5370997 100644
--- a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyLeadsCreateDialog.cs
+++ b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyLeadsCreateDialog.cs
@@ -18,7 +18,7 @@ private record LeadCreateRequest
return lead
.ToForm()
.Builder(e => e.StatusId, e => e.ToAsyncSelectInput(UseLeadStatusSearch, UseLeadStatusLookup, placeholder: "Select Status"))
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToDialog(isOpen, title: "Create Lead", submitTitle: "Create");
async Task OnSubmit(LeadCreateRequest request)
diff --git a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyLeadsEditSheet.cs b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyLeadsEditSheet.cs
index 95312d8c..83a289a4 100644
--- a/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyLeadsEditSheet.cs
+++ b/project-demos/showcase-crm/Apps/Views/CompaniesApp.CompanyLeadsEditSheet.cs
@@ -27,7 +27,7 @@ public class CompanyLeadsEditSheet(IState isOpen, RefreshToken refreshToke
.Builder(e => e.CompanyId, e => e.ToAsyncSelectInput(UseCompanySearch, UseCompanyLookup, placeholder: "Select Company"))
.Builder(e => e.ContactId, e => e.ToAsyncSelectInput(UseContactSearch, UseContactLookup, placeholder: "Select Contact"))
.Remove(e => e.Id, e => e.CreatedAt, e => e.UpdatedAt)
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToSheet(isOpen, "Edit Lead");
async Task OnSubmit(Lead? request)
diff --git a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactCreateDialog.cs b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactCreateDialog.cs
index 68fe6c39..10bec042 100644
--- a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactCreateDialog.cs
+++ b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactCreateDialog.cs
@@ -26,7 +26,7 @@ private record ContactCreateRequest
return contact
.ToForm()
.Builder(e => e.CompanyId, e => e.ToAsyncSelectInput(UseCompanySearch, UseCompanyLookup, placeholder: "Select Company"))
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToDialog(isOpen, title: "Create Contact", submitTitle: "Create");
async Task OnSubmit(ContactCreateRequest request)
diff --git a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactDealsBlade.cs b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactDealsBlade.cs
index 39f56d35..08c5c852 100644
--- a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactDealsBlade.cs
+++ b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactDealsBlade.cs
@@ -76,7 +76,7 @@ private record DealTableRecord(int Id, string Company, string Stage, string Amou
MenuItem.Default(Icons.Pencil, "edit").Tag("edit"),
MenuItem.Default(Icons.Trash2, "delete").Tag("delete")
)
- .HandleRowAction(e =>
+ .OnRowAction(e =>
{
var args = e.Value;
var tag = args.Tag?.ToString();
diff --git a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactDealsCreateDialog.cs b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactDealsCreateDialog.cs
index cf679372..4cb77579 100644
--- a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactDealsCreateDialog.cs
+++ b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactDealsCreateDialog.cs
@@ -28,7 +28,7 @@ private record DealCreateRequest
.Builder(e => e.StageId, e => e.ToAsyncSelectInput(UseStageSearch, UseStageLookup, placeholder: "Select Stage"))
.Builder(e => e.Amount, e => e.ToMoneyInput().Currency("USD"))
.Builder(e => e.CloseDate, e => e.ToDateInput())
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToDialog(isOpen, title: "Create Deal", submitTitle: "Create");
async Task OnSubmit(DealCreateRequest request)
diff --git a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactDealsEditSheet.cs b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactDealsEditSheet.cs
index b8176579..7622a9c3 100644
--- a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactDealsEditSheet.cs
+++ b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactDealsEditSheet.cs
@@ -26,7 +26,7 @@ public class ContactDealsEditSheet(IState isOpen, RefreshToken refreshToke
.Builder(e => e.CloseDate, e => e.ToDateInput())
.Builder(e => e.StageId, e => e.ToAsyncSelectInput(UseStageSearch, UseStageLookup, placeholder: "Select Stage"))
.Remove(e => e.Id, e => e.CreatedAt, e => e.UpdatedAt)
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToSheet(isOpen, "Edit Deal");
async Task OnSubmit(Deal? request)
diff --git a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactEditSheet.cs b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactEditSheet.cs
index ce8f1969..803a16b3 100644
--- a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactEditSheet.cs
+++ b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactEditSheet.cs
@@ -28,7 +28,7 @@ public class ContactEditSheet(IState isOpen, RefreshToken refreshToken, in
.Builder(e => e.Phone, e => e.ToTelInput())
.Builder(e => e.CompanyId, e => e.ToAsyncSelectInput(UseCompanySearch, UseCompanyLookup, placeholder: "Select Company"))
.Remove(e => e.Id, e => e.CreatedAt, e => e.UpdatedAt)
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToSheet(isOpen, "Edit Contact");
async Task OnSubmit(Contact? request)
diff --git a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactLeadsBlade.cs b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactLeadsBlade.cs
index 54d68cc3..42f4309a 100644
--- a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactLeadsBlade.cs
+++ b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactLeadsBlade.cs
@@ -72,7 +72,7 @@ private record LeadTableRecord(int Id, string Status, string Source, string Crea
MenuItem.Default(Icons.Pencil, "edit").Tag("edit"),
MenuItem.Default(Icons.Trash2, "delete").Tag("delete")
)
- .HandleRowAction(e =>
+ .OnRowAction(e =>
{
var args = e.Value;
var tag = args.Tag?.ToString();
diff --git a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactLeadsCreateDialog.cs b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactLeadsCreateDialog.cs
index c6df07dc..0e4fe25c 100644
--- a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactLeadsCreateDialog.cs
+++ b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactLeadsCreateDialog.cs
@@ -21,7 +21,7 @@ private record LeadCreateRequest
.ToForm()
.Builder(e => e.StatusId, e => e.ToAsyncSelectInput(UseStatusSearch, UseStatusLookup, placeholder: "Select Status"))
.Builder(e => e.CompanyId, e => e.ToAsyncSelectInput(UseCompanySearch, UseCompanyLookup, placeholder: "Select Company"))
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToDialog(isOpen, title: "Create Lead", submitTitle: "Create");
async Task OnSubmit(LeadCreateRequest request)
diff --git a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactLeadsEditSheet.cs b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactLeadsEditSheet.cs
index feaaf3a1..8b911493 100644
--- a/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactLeadsEditSheet.cs
+++ b/project-demos/showcase-crm/Apps/Views/ContactsApp.ContactLeadsEditSheet.cs
@@ -27,7 +27,7 @@ public class ContactLeadsEditSheet(IState isOpen, RefreshToken refreshToke
.Builder(e => e.CompanyId, e => e.ToAsyncSelectInput(UseCompanySearch, UseCompanyLookup, placeholder: "Select Company"))
.Builder(e => e.ContactId, e => e.ToAsyncSelectInput(UseContactSearch, UseContactLookup, placeholder: "Select Contact"))
.Remove(e => e.Id, e => e.CreatedAt, e => e.UpdatedAt)
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToSheet(isOpen, "Edit Lead");
async Task OnSubmit(Lead? request)
diff --git a/project-demos/showcase-crm/Apps/Views/DealsApp.DealCreateDialog.cs b/project-demos/showcase-crm/Apps/Views/DealsApp.DealCreateDialog.cs
index 165fc0d0..ffebc23e 100644
--- a/project-demos/showcase-crm/Apps/Views/DealsApp.DealCreateDialog.cs
+++ b/project-demos/showcase-crm/Apps/Views/DealsApp.DealCreateDialog.cs
@@ -54,7 +54,7 @@ private record DealCreateRequest
.Builder(e => e.Amount, e => e.ToMoneyInput().Currency("USD"))
.Builder(e => e.CloseDate, e => e.ToDateInput())
.Builder(e => e.StageId, e => e.ToAsyncSelectInput(UseStageSearch, UseStageLookup, placeholder: "Select Stage"))
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToDialog(isOpen, title: "Create Deal", submitTitle: "Create");
async Task OnSubmit(DealCreateRequest request)
diff --git a/project-demos/showcase-crm/Apps/Views/DealsApp.DealEditSheet.cs b/project-demos/showcase-crm/Apps/Views/DealsApp.DealEditSheet.cs
index bf4150f7..06c6bbcb 100644
--- a/project-demos/showcase-crm/Apps/Views/DealsApp.DealEditSheet.cs
+++ b/project-demos/showcase-crm/Apps/Views/DealsApp.DealEditSheet.cs
@@ -29,7 +29,7 @@ public class DealEditSheet(IState isOpen, RefreshToken refreshToken, int d
.Builder(e => e.ContactId, e => e.ToAsyncSelectInput(UseContactSearch, UseContactLookup, placeholder: "Select Contact"))
.Builder(e => e.LeadId, e => e.ToAsyncSelectInput(UseLeadSearch, UseLeadLookup, placeholder: "Select Lead"))
.Remove(e => e.Id, e => e.CreatedAt, e => e.UpdatedAt)
- .HandleSubmit(OnSubmit);
+ .OnSubmit(OnSubmit);
var (onSubmit, formView, validationView, loading) = formBuilder.UseForm(Context);
@@ -47,13 +47,13 @@ public class DealEditSheet(IState isOpen, RefreshToken refreshToken, int d
var footer = Layout.Horizontal()
| new Button("Save").Variant(ButtonVariant.Primary).Loading(loading).Disabled(loading)
- .HandleClick(async _ =>
+ .OnClick(async _ =>
{
if (await onSubmit())
isOpen.Set(false);
})
| deleteBtn
- | new Button("Cancel").Variant(ButtonVariant.Outline).HandleClick(_ => isOpen.Set(false))
+ | new Button("Cancel").Variant(ButtonVariant.Outline).OnClick(_ => isOpen.Set(false))
| validationView;
var layout = new FooterLayout(footer, formView);
diff --git a/project-demos/showcase-crm/Apps/Views/DealsApp.DealsKanbanBlade.cs b/project-demos/showcase-crm/Apps/Views/DealsApp.DealsKanbanBlade.cs
index 04cf6043..034f9b4e 100644
--- a/project-demos/showcase-crm/Apps/Views/DealsApp.DealsKanbanBlade.cs
+++ b/project-demos/showcase-crm/Apps/Views/DealsApp.DealsKanbanBlade.cs
@@ -76,7 +76,7 @@ private record DealTableRecord(int Id, string CompanyName, string ContactName, s
MenuItem.Default(Icons.Pencil, "edit").Tag("edit"),
MenuItem.Default(Icons.Trash2, "delete").Tag("delete")
)
- .HandleRowAction(e =>
+ .OnRowAction(e =>
{
var args = e.Value;
var tag = args.Tag?.ToString();
@@ -109,7 +109,7 @@ private record DealTableRecord(int Id, string CompanyName, string ContactName, s
content: deal.ToDetails()
.Remove(x => x.Id)
)
- .HandleClick(() => showSheet(deal.Id)))
+ .OnClick(() => showSheet(deal.Id)))
.ColumnOrder(d => StageOrder(d.StageDescription))
.Width(Size.Full())
.HandleMove(moveData =>
diff --git a/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadCreateDialog.cs b/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadCreateDialog.cs
index ede09e69..232685b7 100644
--- a/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadCreateDialog.cs
+++ b/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadCreateDialog.cs
@@ -25,7 +25,7 @@ private record LeadCreateRequest
.Builder(e => e.CompanyId, e => e.ToAsyncSelectInput(UseCompanySearch, UseCompanyLookup, placeholder: "Select Company"))
.Builder(e => e.ContactId, e => e.ToAsyncSelectInput(UseContactSearch, UseContactLookup, placeholder: "Select Contact"))
.Builder(e => e.Source, e => e.ToTextInput())
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToDialog(isOpen, title: "Create Lead", submitTitle: "Create");
async Task OnSubmit(LeadCreateRequest request)
diff --git a/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadDealsBlade.cs b/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadDealsBlade.cs
index 45681c1b..4b79bce4 100644
--- a/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadDealsBlade.cs
+++ b/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadDealsBlade.cs
@@ -80,7 +80,7 @@ private record DealTableRecord(int Id, string Company, string Contact, string St
MenuItem.Default(Icons.Pencil, "edit").Tag("edit"),
MenuItem.Default(Icons.Trash2, "delete").Tag("delete")
)
- .HandleRowAction(e =>
+ .OnRowAction(e =>
{
var args = e.Value;
var tag = args.Tag?.ToString();
diff --git a/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadDealsCreateDialog.cs b/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadDealsCreateDialog.cs
index cb8db1d4..901ed510 100644
--- a/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadDealsCreateDialog.cs
+++ b/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadDealsCreateDialog.cs
@@ -31,7 +31,7 @@ private record DealCreateRequest
.Builder(e => e.StageId, e => e.ToAsyncSelectInput(UseStageSearch, UseStageLookup, placeholder: "Select Stage"))
.Builder(e => e.Amount, e => e.ToMoneyInput().Currency("USD"))
.Builder(e => e.CloseDate, e => e.ToDateInput())
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToDialog(isOpen, title: "Create Deal", submitTitle: "Create");
async Task OnSubmit(DealCreateRequest request)
diff --git a/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadDealsEditSheet.cs b/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadDealsEditSheet.cs
index 5bf391f1..a5d2824c 100644
--- a/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadDealsEditSheet.cs
+++ b/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadDealsEditSheet.cs
@@ -29,7 +29,7 @@ public class LeadDealsEditSheet(IState isOpen, RefreshToken refreshToken,
.Builder(e => e.ContactId, e => e.ToAsyncSelectInput(UseContactSearch, UseContactLookup, placeholder: "Select Contact"))
.Builder(e => e.LeadId, e => e.ToAsyncSelectInput(UseLeadSearch, UseLeadLookup, placeholder: "Select Lead"))
.Remove(e => e.Id, e => e.CreatedAt, e => e.UpdatedAt)
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToSheet(isOpen, "Edit Deal");
async Task OnSubmit(Deal? request)
diff --git a/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadEditSheet.cs b/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadEditSheet.cs
index 81b0ec53..9e54c87a 100644
--- a/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadEditSheet.cs
+++ b/project-demos/showcase-crm/Apps/Views/LeadsApp.LeadEditSheet.cs
@@ -31,7 +31,7 @@ public class LeadEditSheet(IState isOpen, RefreshToken refreshToken, int l
.Builder(e => e.ContactId, e => e.ToAsyncSelectInput(UseContactSearch, UseContactLookup, placeholder: "Select Contact"))
.Builder(e => e.StatusId, e => e.ToAsyncSelectInput(UseStatusSearch, UseStatusLookup, placeholder: "Select Status"))
.Remove(e => e.Id, e => e.CreatedAt, e => e.UpdatedAt)
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToSheet(isOpen, "Edit Lead");
async Task OnSubmit(Lead? request)
diff --git a/project-demos/showcase-crm/Apps/Views/UsersApp.UserCreateDialog.cs b/project-demos/showcase-crm/Apps/Views/UsersApp.UserCreateDialog.cs
index 1f57db6a..7e13b6ec 100644
--- a/project-demos/showcase-crm/Apps/Views/UsersApp.UserCreateDialog.cs
+++ b/project-demos/showcase-crm/Apps/Views/UsersApp.UserCreateDialog.cs
@@ -19,7 +19,7 @@ private record UserCreateRequest
return user
.ToForm()
.Builder(e => e.Email, e => e.ToEmailInput())
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToDialog(isOpen, title: "Create User", submitTitle: "Create");
async Task OnSubmit(UserCreateRequest request)
diff --git a/project-demos/showcase-crm/Apps/Views/UsersApp.UserEditSheet.cs b/project-demos/showcase-crm/Apps/Views/UsersApp.UserEditSheet.cs
index cad50259..68cc6559 100644
--- a/project-demos/showcase-crm/Apps/Views/UsersApp.UserEditSheet.cs
+++ b/project-demos/showcase-crm/Apps/Views/UsersApp.UserEditSheet.cs
@@ -25,7 +25,7 @@ public class UserEditSheet(IState isOpen, RefreshToken refreshToken, int u
.Builder(e => e.Name, e => e.ToTextInput())
.Builder(e => e.Email, e => e.ToEmailInput())
.Remove(e => e.Id, e => e.CreatedAt, e => e.UpdatedAt)
- .HandleSubmit(OnSubmit)
+ .OnSubmit(OnSubmit)
.ToSheet(isOpen, "Edit User");
async Task OnSubmit(User? request)
diff --git a/project-demos/showcase-crm/ShowcaseCrm.csproj b/project-demos/showcase-crm/ShowcaseCrm.csproj
index bc2a7858..c547a5c9 100644
--- a/project-demos/showcase-crm/ShowcaseCrm.csproj
+++ b/project-demos/showcase-crm/ShowcaseCrm.csproj
@@ -13,7 +13,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/project-demos/sliplane-manage/Apps/Views/DeployView.cs b/project-demos/sliplane-manage/Apps/Views/DeployView.cs
index 53352105..ab691cb6 100644
--- a/project-demos/sliplane-manage/Apps/Views/DeployView.cs
+++ b/project-demos/sliplane-manage/Apps/Views/DeployView.cs
@@ -185,7 +185,7 @@ await client.CreateServiceAsync(_apiToken, m.ProjectId,
new TableCell(e.Key),
new TableCell(e.Value ?? ""),
new TableCell(new Button("Remove").Variant(ButtonVariant.Outline)
- .HandleClick(_ => envList.Set(envList.Value.Where((_, j) => j != i).ToList())))
+ .OnClick(_ => envList.Set(envList.Value.Where((_, j) => j != i).ToList())))
.Width(Size.Fit()))).ToArray();
object envTable = envDataRows.Length == 0
@@ -212,8 +212,8 @@ void SaveEnv()
| addEnvKey.ToTextInput().Placeholder("Key (e.g. DATABASE_URL)")
| addEnvValue.ToTextInput().Placeholder("Value")),
footer: new DialogFooter(
- new Button("Save").Variant(ButtonVariant.Primary).HandleClick(_ => SaveEnv()),
- new Button("Cancel").HandleClick(_ => showAddEnvDlg.Set(false))
+ new Button("Save").Variant(ButtonVariant.Primary).OnClick(_ => SaveEnv()),
+ new Button("Cancel").OnClick(_ => showAddEnvDlg.Set(false))
)).Width(Size.Units(220));
}
@@ -239,8 +239,8 @@ void SaveVolume()
| addVolumeId.ToSelectInput(volumeOptionsForDialog)
| addMountPath.ToTextInput().Placeholder("Mount path (e.g. /data)")),
footer: new DialogFooter(
- new Button("Save").Variant(ButtonVariant.Primary).HandleClick(_ => SaveVolume()),
- new Button("Cancel").HandleClick(_ => showAddVolumeDlg.Set(false))
+ new Button("Save").Variant(ButtonVariant.Primary).OnClick(_ => SaveVolume()),
+ new Button("Cancel").OnClick(_ => showAddVolumeDlg.Set(false))
)).Width(Size.Units(220));
}
@@ -254,7 +254,7 @@ void SaveVolume()
Layout.Vertical()
| envTable
| new Button("Add variable").Icon(Icons.Plus).Variant(ButtonVariant.Outline)
- .HandleClick(_ => showAddEnvDlg.Set(true)));
+ .OnClick(_ => showAddEnvDlg.Set(true)));
var vols = serverVolumes.Value ?? new List();
var volItems = volumeMountsList.Value ?? new List<(string VolumeId, string MountPath)>();
@@ -270,7 +270,7 @@ void SaveVolume()
new TableCell(volName),
new TableCell(v.MountPath),
new TableCell(new Button("Remove").Variant(ButtonVariant.Outline)
- .HandleClick(_ => volumeMountsList.Set(volumeMountsList.Value.Where((_, j) => j != index).ToList())))
+ .OnClick(_ => volumeMountsList.Set(volumeMountsList.Value.Where((_, j) => j != index).ToList())))
.Width(Size.Fit()));
}).ToArray();
object volTableContent = volDataRows.Length == 0
@@ -282,11 +282,11 @@ void SaveVolume()
Layout.Vertical()
| volTableContent
| new Button("Add volume").Icon(Icons.Plus).Variant(ButtonVariant.Outline)
- .HandleClick(_ => showAddVolumeDlg.Set(true)));
+ .OnClick(_ => showAddVolumeDlg.Set(true)));
var actionsRow = Layout.Horizontal()
| new Button("Deploy").Icon(Icons.Rocket).Primary().Large().Loading(loading)
- .HandleClick(async _ => await HandleDeploy())
+ .OnClick(async _ => await HandleDeploy())
| validationView;
var card = new Card(
diff --git a/project-demos/sliplane-manage/Apps/Views/ProjectsView.cs b/project-demos/sliplane-manage/Apps/Views/ProjectsView.cs
index fb708c06..87336ff6 100644
--- a/project-demos/sliplane-manage/Apps/Views/ProjectsView.cs
+++ b/project-demos/sliplane-manage/Apps/Views/ProjectsView.cs
@@ -292,7 +292,7 @@ async Task LoadProjectsAsync()
| servicesRow;
return new Card(body)
- .HandleClick(_ => selectedProject.Set(p));
+ .OnClick(_ => selectedProject.Set(p));
})
.ToArray();
@@ -398,7 +398,7 @@ async Task DeleteProjectAsync()
MenuItem.Default(Icons.FileText, "Logs").Tag("logs"),
MenuItem.Default(Icons.Calendar, "Events").Tag("events")
)
- .HandleRowAction(e =>
+ .OnRowAction(e =>
{
var args = e.Value;
var tag = args.Tag?.ToString();
@@ -447,12 +447,12 @@ async Task DeleteProjectAsync()
body: new DialogBody(body),
footer: new DialogFooter(
new Button("Cancel")
- .HandleClick(_ => selectedProject.Set((SliplaneProject?)null))
+ .OnClick(_ => selectedProject.Set((SliplaneProject?)null))
.Secondary(),
new Button("Create service")
.Icon(Icons.Plus)
.Primary()
- .HandleClick(_ => createServiceSheetOpen.Set(true)),
+ .OnClick(_ => createServiceSheetOpen.Set(true)),
new Button("Delete project", onClick: async _ => await DeleteProjectAsync())
.Icon(Icons.Trash)
.Variant(ButtonVariant.Destructive)
@@ -620,8 +620,8 @@ async Task DeleteAsync()
var pauseLabel = isPausedStatus(full.Status) ? "Resume" : "Pause";
viewFooter = Layout.Horizontal()
- | new Button("Edit").Icon(Icons.Pencil).Variant(ButtonVariant.Outline).HandleClick(_ => { selectedServiceForEdit.Set(full); editSheetOpen.Set(true); })
- | new Button(pauseLabel).Icon(isPausedStatus(full.Status) ? Icons.Play : Icons.Pause).Variant(ButtonVariant.Outline).Loading(viewSheetBusy.Value).HandleClick(async _ => await PauseUnpauseAsync())
+ | new Button("Edit").Icon(Icons.Pencil).Variant(ButtonVariant.Outline).OnClick(_ => { selectedServiceForEdit.Set(full); editSheetOpen.Set(true); })
+ | new Button(pauseLabel).Icon(isPausedStatus(full.Status) ? Icons.Play : Icons.Pause).Variant(ButtonVariant.Outline).Loading(viewSheetBusy.Value).OnClick(async _ => await PauseUnpauseAsync())
| new Button("Delete", onClick: async _ => await DeleteAsync())
.Icon(Icons.Trash).Variant(ButtonVariant.Destructive).Loading(viewSheetBusy.Value)
.WithConfirm("Are you sure you want to delete this service?", "Delete service")
@@ -668,7 +668,7 @@ async Task DeleteAsync()
}
}
- var addProjectBtn = new Button("Add project").Icon(Icons.Plus).Large().Secondary().BorderRadius(BorderRadius.Full).HandleClick(_ => showAddProjectDialog.Set(true));
+ var addProjectBtn = new Button("Add project").Icon(Icons.Plus).Large().Secondary().BorderRadius(BorderRadius.Full).OnClick(_ => showAddProjectDialog.Set(true));
var addProjectFloat = new FloatingPanel(addProjectBtn, Align.BottomRight).Offset(new Thickness(0, 0, 20, 10));
Dialog? addProjectDialog = null;
@@ -711,8 +711,8 @@ async Task CreateProjectAsync()
header: new DialogHeader("Add project"),
body: new DialogBody(addProjectForm),
footer: new DialogFooter(
- new Button("Cancel").HandleClick(_ => showAddProjectDialog.Set(false)).Secondary(),
- new Button("Create").Icon(Icons.Plus).Variant(ButtonVariant.Primary).Loading(addProjectBusy.Value).HandleClick(async _ => await CreateProjectAsync()))
+ new Button("Cancel").OnClick(_ => showAddProjectDialog.Set(false)).Secondary(),
+ new Button("Create").Icon(Icons.Plus).Variant(ButtonVariant.Primary).Loading(addProjectBusy.Value).OnClick(async _ => await CreateProjectAsync()))
).Width(Size.Units(120));
}
@@ -904,7 +904,7 @@ void CloseSheet()
return new TableRow(
new TableCell(e.Key),
new TableCell(e.Value ?? ""),
- new TableCell(new Button("Remove").Variant(ButtonVariant.Outline).HandleClick(_ =>
+ new TableCell(new Button("Remove").Variant(ButtonVariant.Outline).OnClick(_ =>
{
var next = envList.Value.Where((_, i) => i != index).ToList();
envList.Set(next);
@@ -929,12 +929,12 @@ void CloseSheet()
| healthcheck.ToTextInput().Placeholder("Health check path (e.g. /health)")
| Text.H4("Environment variables")
| envTableContent
- | new Button("Add variable").Icon(Icons.Plus).Variant(ButtonVariant.Outline).HandleClick(_ => showAddEnvDialog.Set(true))
+ | new Button("Add variable").Icon(Icons.Plus).Variant(ButtonVariant.Outline).OnClick(_ => showAddEnvDialog.Set(true))
| (error.Value is { Length: > 0 } err ? (object)new Callout(err, variant: CalloutVariant.Error) : Layout.Vertical());
var footer = Layout.Horizontal()
| new Button("Cancel", onClick: _ => CloseSheet()).Variant(ButtonVariant.Outline)
- | new Button("Save").Icon(Icons.Check).Variant(ButtonVariant.Primary).Loading(busy.Value).HandleClick(async _ => await SaveAsync());
+ | new Button("Save").Icon(Icons.Check).Variant(ButtonVariant.Primary).Loading(busy.Value).OnClick(async _ => await SaveAsync());
Dialog? addEnvDialog = null;
if (showAddEnvDialog.Value)
@@ -957,8 +957,8 @@ void SaveEnv()
header: new DialogHeader("Add environment variable"),
body: new DialogBody(envForm),
footer: new DialogFooter(
- new Button("Save").Variant(ButtonVariant.Primary).HandleClick(_ => SaveEnv()),
- new Button("Cancel").HandleClick(_ => showAddEnvDialog.Set(false))
+ new Button("Save").Variant(ButtonVariant.Primary).OnClick(_ => SaveEnv()),
+ new Button("Cancel").OnClick(_ => showAddEnvDialog.Set(false))
)).Width(Size.Units(220));
}
@@ -1134,7 +1134,7 @@ void CloseSheet()
return new TableRow(
new TableCell(e.Key),
new TableCell(e.Value ?? ""),
- new TableCell(new Button("Remove").Variant(ButtonVariant.Outline).HandleClick(_ =>
+ new TableCell(new Button("Remove").Variant(ButtonVariant.Outline).OnClick(_ =>
{
var next = envList.Value.Where((_, i) => i != index).ToList();
envList.Set(next);
@@ -1147,7 +1147,7 @@ void CloseSheet()
var envSection = Layout.Vertical()
| Text.H4("Environment variables")
| envTableContent
- | new Button("Add variable").Icon(Icons.Plus).Variant(ButtonVariant.Outline).HandleClick(_ => showAddEnvDialog.Set(true));
+ | new Button("Add variable").Icon(Icons.Plus).Variant(ButtonVariant.Outline).OnClick(_ => showAddEnvDialog.Set(true));
var vols = serverVolumes.Value ?? new List();
var volItems = volumeMountsList.Value ?? new List<(string VolumeId, string MountPath)>();
@@ -1163,7 +1163,7 @@ void CloseSheet()
return new TableRow(
new TableCell(volName),
new TableCell(v.MountPath),
- new TableCell(new Button("Remove").Variant(ButtonVariant.Outline).HandleClick(_ =>
+ new TableCell(new Button("Remove").Variant(ButtonVariant.Outline).OnClick(_ =>
{
var next = volumeMountsList.Value.Where((_, i) => i != index).ToList();
volumeMountsList.Set(next);
@@ -1176,7 +1176,7 @@ void CloseSheet()
var volumesSection = Layout.Vertical()
| Text.H4("Volumes (attach server volumes)")
| volTableContent
- | new Button("Add volume").Icon(Icons.Plus).Variant(ButtonVariant.Outline).HandleClick(_ => showAddVolumeDialog.Set(true));
+ | new Button("Add volume").Icon(Icons.Plus).Variant(ButtonVariant.Outline).OnClick(_ => showAddVolumeDialog.Set(true));
var errorBlock = error.Value is { Length: > 0 } err
? (object)new Callout(err, variant: CalloutVariant.Error)
@@ -1193,7 +1193,7 @@ void CloseSheet()
var footer = Layout.Horizontal()
| new Button("Cancel", onClick: _ => CloseSheet()).Variant(ButtonVariant.Outline)
- | new Button("Create").Icon(Icons.Plus).Variant(ButtonVariant.Primary).Loading(busy.Value).HandleClick(async _ => await CreateAsync());
+ | new Button("Create").Icon(Icons.Plus).Variant(ButtonVariant.Primary).Loading(busy.Value).OnClick(async _ => await CreateAsync());
Dialog? addEnvDialog = null;
if (showAddEnvDialog.Value)
@@ -1216,8 +1216,8 @@ void SaveEnv()
header: new DialogHeader("Add environment variable"),
body: new DialogBody(envForm),
footer: new DialogFooter(
- new Button("Save").Variant(ButtonVariant.Primary).HandleClick(_ => SaveEnv()),
- new Button("Cancel").HandleClick(_ => showAddEnvDialog.Set(false))
+ new Button("Save").Variant(ButtonVariant.Primary).OnClick(_ => SaveEnv()),
+ new Button("Cancel").OnClick(_ => showAddEnvDialog.Set(false))
)).Width(Size.Units(220));
}
@@ -1242,8 +1242,8 @@ void SaveVolume()
header: new DialogHeader("Add volume mount"),
body: new DialogBody(volForm),
footer: new DialogFooter(
- new Button("Save").Variant(ButtonVariant.Primary).HandleClick(_ => SaveVolume()),
- new Button("Cancel").HandleClick(_ => showAddVolumeDialog.Set(false))
+ new Button("Save").Variant(ButtonVariant.Primary).OnClick(_ => SaveVolume()),
+ new Button("Cancel").OnClick(_ => showAddVolumeDialog.Set(false))
)).Width(Size.Units(220));
}
diff --git a/project-demos/sliplane-manage/Apps/Views/ServersView.cs b/project-demos/sliplane-manage/Apps/Views/ServersView.cs
index b0977f4f..5cc3c2c7 100644
--- a/project-demos/sliplane-manage/Apps/Views/ServersView.cs
+++ b/project-demos/sliplane-manage/Apps/Views/ServersView.cs
@@ -164,7 +164,7 @@ async Task LoadServersAsync()
| servicesRow
| createdRow
)
- .HandleClick(_ => showSheet(s));
+ .OnClick(_ => showSheet(s));
})
.ToArray();
diff --git a/project-demos/sliplane-manage/Apps/Views/ServicesView.cs b/project-demos/sliplane-manage/Apps/Views/ServicesView.cs
index 8e217025..ddf5bace 100644
--- a/project-demos/sliplane-manage/Apps/Views/ServicesView.cs
+++ b/project-demos/sliplane-manage/Apps/Views/ServicesView.cs
@@ -73,7 +73,7 @@ void ShowServiceSheet(string projectId, string projectName, SliplaneService svc)
var headerRow = Layout.Horizontal()
| Text.H2("Services");
- var addServiceBtn = new Button("Add service").Icon(Icons.Plus).HandleClick(_ => openCreateSheet()).Large().Secondary().BorderRadius(BorderRadius.Full);
+ var addServiceBtn = new Button("Add service").Icon(Icons.Plus).OnClick(_ => openCreateSheet()).Large().Secondary().BorderRadius(BorderRadius.Full);
var addServiceFloat = new FloatingPanel(addServiceBtn, Align.BottomRight).Offset(new Thickness(0, 0, 20, 10));
object content;
@@ -257,7 +257,7 @@ private static object[] BuildServiceCards(
| statusRow
| (openLinkRow ?? Layout.Vertical());
- return new Card(body).HandleClick(_ => showSheet(projectId, projectName, svc));
+ return new Card(body).OnClick(_ => showSheet(projectId, projectName, svc));
})
.ToArray();
}
@@ -372,8 +372,8 @@ async Task DeleteAsync()
new EditServiceSheet(isOpen, _apiToken, projectId, projectName, service, _reloadCounter, _selection));
var footer = Layout.Horizontal()
- | new Button("Edit").Icon(Icons.Pencil).Variant(ButtonVariant.Outline).HandleClick(_ => openEditSheet())
- | new Button(pauseLabel).Icon(isPaused ? Icons.Play : Icons.Pause).Variant(ButtonVariant.Outline).Loading(busy.Value).HandleClick(async _ => await PauseUnpauseAsync())
+ | new Button("Edit").Icon(Icons.Pencil).Variant(ButtonVariant.Outline).OnClick(_ => openEditSheet())
+ | new Button(pauseLabel).Icon(isPaused ? Icons.Play : Icons.Pause).Variant(ButtonVariant.Outline).Loading(busy.Value).OnClick(async _ => await PauseUnpauseAsync())
| new Button("Delete", onClick: async _ => await DeleteAsync())
.Icon(Icons.Trash).Variant(ButtonVariant.Destructive).Loading(busy.Value)
.WithConfirm("Are you sure you want to delete this service?", "Delete service");
@@ -502,7 +502,7 @@ async Task SaveAsync()
return new TableRow(
new TableCell(e.Key),
new TableCell(e.Value ?? ""),
- new TableCell(new Button("Remove").Variant(ButtonVariant.Outline).HandleClick(_ =>
+ new TableCell(new Button("Remove").Variant(ButtonVariant.Outline).OnClick(_ =>
{
var next = envList.Value.Where((_, i) => i != index).ToList();
envList.Set(next);
@@ -527,12 +527,12 @@ async Task SaveAsync()
| healthcheck.ToTextInput().Placeholder("Health check path (e.g. /health)")
| Text.H4("Environment variables")
| envTableContent
- | new Button("Add variable").Icon(Icons.Plus).Variant(ButtonVariant.Outline).HandleClick(_ => showAddEnvDialog.Set(true))
+ | new Button("Add variable").Icon(Icons.Plus).Variant(ButtonVariant.Outline).OnClick(_ => showAddEnvDialog.Set(true))
| (error.Value is { Length: > 0 } err ? (object)new Callout(err, variant: CalloutVariant.Error) : Layout.Vertical());
var footer = Layout.Horizontal()
- | new Button("Cancel").Variant(ButtonVariant.Outline).HandleClick(_ => _isOpen.Set(false))
- | new Button("Save").Icon(Icons.Check).Variant(ButtonVariant.Primary).Loading(busy.Value).HandleClick(async _ => await SaveAsync());
+ | new Button("Cancel").Variant(ButtonVariant.Outline).OnClick(_ => _isOpen.Set(false))
+ | new Button("Save").Icon(Icons.Check).Variant(ButtonVariant.Primary).Loading(busy.Value).OnClick(async _ => await SaveAsync());
Dialog? addEnvDialog = null;
if (showAddEnvDialog.Value)
@@ -555,8 +555,8 @@ void SaveEnv()
header: new DialogHeader("Add environment variable"),
body: new DialogBody(envForm),
footer: new DialogFooter(
- new Button("Save").Variant(ButtonVariant.Primary).HandleClick(_ => SaveEnv()),
- new Button("Cancel").HandleClick(_ => showAddEnvDialog.Set(false))
+ new Button("Save").Variant(ButtonVariant.Primary).OnClick(_ => SaveEnv()),
+ new Button("Cancel").OnClick(_ => showAddEnvDialog.Set(false))
)).Width(Size.Units(220));
}
@@ -772,7 +772,7 @@ async Task CreateAsync()
return new TableRow(
new TableCell(e.Key),
new TableCell(e.Value ?? ""),
- new TableCell(new Button("Remove").Variant(ButtonVariant.Outline).HandleClick(_ =>
+ new TableCell(new Button("Remove").Variant(ButtonVariant.Outline).OnClick(_ =>
{
var next = envList.Value.Where((_, i) => i != index).ToList();
envList.Set(next);
@@ -785,7 +785,7 @@ async Task CreateAsync()
var envSection = Layout.Vertical()
| Text.H4("Environment variables")
| envTableContent
- | new Button("Add variable").Icon(Icons.Plus).Variant(ButtonVariant.Outline).HandleClick(_ => showAddEnvDialog.Set(true));
+ | new Button("Add variable").Icon(Icons.Plus).Variant(ButtonVariant.Outline).OnClick(_ => showAddEnvDialog.Set(true));
// Volumes: Table widget + Add button; dialog to add one mount
var vols = serverVolumes.Value ?? new List();
@@ -802,7 +802,7 @@ async Task CreateAsync()
return new TableRow(
new TableCell(volName),
new TableCell(v.MountPath),
- new TableCell(new Button("Remove").Variant(ButtonVariant.Outline).HandleClick(_ =>
+ new TableCell(new Button("Remove").Variant(ButtonVariant.Outline).OnClick(_ =>
{
var next = volumeMountsList.Value.Where((_, i) => i != index).ToList();
volumeMountsList.Set(next);
@@ -815,7 +815,7 @@ async Task CreateAsync()
var volumesSection = Layout.Vertical()
| Text.H4("Volumes (attach server volumes)")
| volTableContent
- | new Button("Add volume").Icon(Icons.Plus).Variant(ButtonVariant.Outline).HandleClick(_ => showAddVolumeDialog.Set(true));
+ | new Button("Add volume").Icon(Icons.Plus).Variant(ButtonVariant.Outline).OnClick(_ => showAddVolumeDialog.Set(true));
var errorBlock = error.Value is { Length: > 0 } err
? (object)new Callout(err, variant: CalloutVariant.Error)
@@ -831,8 +831,8 @@ async Task CreateAsync()
| errorBlock;
var footer = Layout.Horizontal()
- | new Button("Cancel").Variant(ButtonVariant.Outline).HandleClick(_ => _isOpen.Set(false))
- | new Button("Create").Icon(Icons.Plus).Variant(ButtonVariant.Primary).Loading(busy.Value).HandleClick(async _ => await CreateAsync());
+ | new Button("Cancel").Variant(ButtonVariant.Outline).OnClick(_ => _isOpen.Set(false))
+ | new Button("Create").Icon(Icons.Plus).Variant(ButtonVariant.Primary).Loading(busy.Value).OnClick(async _ => await CreateAsync());
// Dialog: Add environment variable
Dialog? addEnvDialog = null;
@@ -856,8 +856,8 @@ void SaveEnv()
header: new DialogHeader("Add environment variable"),
body: new DialogBody(envForm),
footer: new DialogFooter(
- new Button("Save").Variant(ButtonVariant.Primary).HandleClick(_ => SaveEnv()),
- new Button("Cancel").HandleClick(_ => showAddEnvDialog.Set(false))
+ new Button("Save").Variant(ButtonVariant.Primary).OnClick(_ => SaveEnv()),
+ new Button("Cancel").OnClick(_ => showAddEnvDialog.Set(false))
)).Width(Size.Units(220));
}
@@ -883,8 +883,8 @@ void SaveVolume()
header: new DialogHeader("Add volume mount"),
body: new DialogBody(volForm),
footer: new DialogFooter(
- new Button("Save").Variant(ButtonVariant.Primary).HandleClick(_ => SaveVolume()),
- new Button("Cancel").HandleClick(_ => showAddVolumeDialog.Set(false))
+ new Button("Save").Variant(ButtonVariant.Primary).OnClick(_ => SaveVolume()),
+ new Button("Cancel").OnClick(_ => showAddVolumeDialog.Set(false))
)).Width(Size.Units(220));
}
diff --git a/project-demos/sliplane-manage/SliplaneManage.csproj b/project-demos/sliplane-manage/SliplaneManage.csproj
index 26a4b994..69642414 100644
--- a/project-demos/sliplane-manage/SliplaneManage.csproj
+++ b/project-demos/sliplane-manage/SliplaneManage.csproj
@@ -16,7 +16,7 @@
-
+
diff --git a/project-demos/snowflake/Apps/SnowflakeApps.cs b/project-demos/snowflake/Apps/SnowflakeApps.cs
index 328ca769..d9cc2873 100644
--- a/project-demos/snowflake/Apps/SnowflakeApps.cs
+++ b/project-demos/snowflake/Apps/SnowflakeApps.cs
@@ -556,15 +556,15 @@ object BuildTabs(IState activeTab, bool isVerified)
return Layout.Horizontal().Gap(2)
| new Button("Settings").Icon(Icons.Settings)
.Variant(activeTab.Value == 0 ? ButtonVariant.Primary : ButtonVariant.Outline)
- .HandleClick(() => activeTab.Value = 0)
+ .OnClick(() => activeTab.Value = 0)
| new Button("Database Explorer").Icon(Icons.Database)
.Variant(activeTab.Value == 1 ? ButtonVariant.Primary : ButtonVariant.Outline)
.Disabled(!isVerified)
- .HandleClick(() => activeTab.Value = 1)
+ .OnClick(() => activeTab.Value = 1)
| new Button("Brand Dashboard").Icon(Icons.ChartBar)
.Variant(activeTab.Value == 2 ? ButtonVariant.Primary : ButtonVariant.Outline)
.Disabled(!isVerified)
- .HandleClick(() => activeTab.Value = 2);
+ .OnClick(() => activeTab.Value = 2);
}
object BuildSettingsTab(
@@ -596,7 +596,7 @@ object BuildSettingsTab(
? new Button("Clear Credentials")
.Icon(Icons.LogOut)
.Variant(ButtonVariant.Secondary)
- .HandleClick(_ =>
+ .OnClick(_ =>
{
account.Value = "";
user.Value = "";
@@ -609,7 +609,7 @@ object BuildSettingsTab(
.Icon(Icons.Key)
.Variant(ButtonVariant.Primary)
.Disabled(isVerifying.Value)
- .HandleClick(_ =>
+ .OnClick(_ =>
{
isDialogOpen.Value = true;
verificationStatus.Value = null;
@@ -1115,12 +1115,12 @@ private object BuildDataTabs(IState activeTab, TableInfo? tableInfo)
var dataTab = new Button("Data")
.Icon(Icons.Table)
.Variant(activeTab.Value == 0 ? ButtonVariant.Primary : ButtonVariant.Outline)
- .HandleClick(() => activeTab.Value = 0);
+ .OnClick(() => activeTab.Value = 0);
var structureTab = new Button("Structure")
.Icon(Icons.Layers)
.Variant(activeTab.Value == 1 ? ButtonVariant.Primary : ButtonVariant.Outline)
- .HandleClick(() => activeTab.Value = 1)
+ .OnClick(() => activeTab.Value = 1)
.Disabled(tableInfo == null);
return Layout.Horizontal().Gap(2)
diff --git a/project-demos/snowflake/SnowflakeExample.csproj b/project-demos/snowflake/SnowflakeExample.csproj
index a5eb331c..5ab6f681 100644
--- a/project-demos/snowflake/SnowflakeExample.csproj
+++ b/project-demos/snowflake/SnowflakeExample.csproj
@@ -16,7 +16,7 @@
-
+