From c72326a14fd678b399389188c4497ce6502badf7 Mon Sep 17 00:00:00 2001 From: Yas Moradi Date: Wed, 25 Mar 2026 17:08:46 +0100 Subject: [PATCH 01/67] feat(templates): improve bit Boilerplate dev container setup #12215 (#12216) --- .../Bit.Boilerplate/.devcontainer/devcontainer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/.devcontainer/devcontainer.json b/src/Templates/Boilerplate/Bit.Boilerplate/.devcontainer/devcontainer.json index be9daec178..78b8c5ee17 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/.devcontainer/devcontainer.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/.devcontainer/devcontainer.json @@ -4,8 +4,9 @@ "hostRequirements": { "cpus": 8 }, - "onCreateCommand": "dotnet workload install wasm-tools && dotnet dev-certs https --trust", + "onCreateCommand": "dotnet workload install wasm-tools", "waitFor": "onCreateCommand", + "postCreateCommand": "dotnet dev-certs https --trust", "customizations": { "codespaces": { "openFiles": [ From 44492edb67f1a56d2eb9dfc82793e22a5fc8f01b Mon Sep 17 00:00:00 2001 From: Saleh Yusefnejad Date: Sat, 28 Mar 2026 14:01:43 +0330 Subject: [PATCH 02/67] feat(blazorui): add missing new Icon parameters to BitFileUpload #12209 (#12210) --- .../Inputs/FileUpload/BitFileUpload.razor.cs | 98 ++++++++++- .../FileUpload/_BitFileUploadItem.razor | 29 +++- .../Inputs/FileUpload/BitFileUploadDemo.razor | 50 +++++- .../FileUpload/BitFileUploadDemo.razor.cs | 157 ++++++++++++++++- .../Inputs/FileUpload/BitFileUploadTests.cs | 159 ++++++++++++++++++ 5 files changed, 472 insertions(+), 21 deletions(-) diff --git a/src/BlazorUI/Bit.BlazorUI/Components/Inputs/FileUpload/BitFileUpload.razor.cs b/src/BlazorUI/Bit.BlazorUI/Components/Inputs/FileUpload/BitFileUpload.razor.cs index a9a808582a..a812d01898 100644 --- a/src/BlazorUI/Bit.BlazorUI/Components/Inputs/FileUpload/BitFileUpload.razor.cs +++ b/src/BlazorUI/Bit.BlazorUI/Components/Inputs/FileUpload/BitFileUpload.razor.cs @@ -57,6 +57,28 @@ public partial class BitFileUpload : BitComponentBase /// [Parameter] public bool AutoUpload { get; set; } + /// + /// Gets or sets the icon to use for the cancel upload button using custom CSS classes for external icon libraries. + /// Takes precedence over when both are set. + /// Defaults to the built-in Cancel icon when neither is set. + /// + /// + /// Use this property to render a custom cancel icon from external libraries like FontAwesome or Bootstrap Icons. + /// For built-in Fluent UI icons, use instead. + /// + [Parameter] public BitIconInfo? CancelIcon { get; set; } + + /// + /// Gets or sets the name of the icon to use for the cancel upload button from the built-in Fluent UI icons. + /// Defaults to Cancel when not set. + /// + /// + /// The icon name should be from the Fluent UI icon set (e.g., BitIconName.Cancel). + ///
+ /// For external icon libraries, use instead. + ///
+ [Parameter] public string? CancelIconName { get; set; } + /// /// Enables the chunked upload. /// @@ -79,6 +101,11 @@ public partial class BitFileUpload : BitComponentBase /// [Parameter] public string FailedUploadMessage { get; set; } = "File upload failed"; + /// + /// The custom file view template. + /// + [Parameter] public RenderFragment? FileViewTemplate { get; set; } + /// /// Hides the file view section of the file upload. /// @@ -154,6 +181,50 @@ public partial class BitFileUpload : BitComponentBase /// [Parameter] public EventCallback OnUploadFailed { get; set; } + /// + /// Gets or sets the icon to use for the pause upload button using custom CSS classes for external icon libraries. + /// Takes precedence over when both are set. + /// Defaults to the built-in Pause icon when neither is set. + /// + /// + /// Use this property to render a custom pause icon from external libraries like FontAwesome or Bootstrap Icons. + /// For built-in Fluent UI icons, use instead. + /// + [Parameter] public BitIconInfo? PauseIcon { get; set; } + + /// + /// Gets or sets the name of the icon to use for the pause upload button from the built-in Fluent UI icons. + /// Defaults to Pause when not set. + /// + /// + /// The icon name should be from the Fluent UI icon set (e.g., BitIconName.Pause). + ///
+ /// For external icon libraries, use instead. + ///
+ [Parameter] public string? PauseIconName { get; set; } + + /// + /// Gets or sets the icon to use for the remove file button using custom CSS classes for external icon libraries. + /// Takes precedence over when both are set. + /// Defaults to the built-in Delete icon when neither is set. + /// + /// + /// Use this property to render a custom remove icon from external libraries like FontAwesome or Bootstrap Icons. + /// For built-in Fluent UI icons, use instead. + /// + [Parameter] public BitIconInfo? RemoveIcon { get; set; } + + /// + /// Gets or sets the name of the icon to use for the remove file button from the built-in Fluent UI icons. + /// Defaults to Delete when not set. + /// + /// + /// The icon name should be from the Fluent UI icon set (e.g., BitIconName.Delete). + ///
+ /// For external icon libraries, use instead. + ///
+ [Parameter] public string? RemoveIconName { get; set; } + /// /// Custom http headers for remove request. /// @@ -189,6 +260,28 @@ public partial class BitFileUpload : BitComponentBase /// [Parameter] public string SuccessfulUploadMessage { get; set; } = "File upload succeed"; + /// + /// Gets or sets the icon to use for the upload button using custom CSS classes for external icon libraries. + /// Takes precedence over when both are set. + /// Defaults to the built-in Play icon when neither is set. + /// + /// + /// Use this property to render a custom upload icon from external libraries like FontAwesome or Bootstrap Icons. + /// For built-in Fluent UI icons, use instead. + /// + [Parameter] public BitIconInfo? UploadIcon { get; set; } + + /// + /// Gets or sets the name of the icon to use for the upload button from the built-in Fluent UI icons. + /// Defaults to Play when not set. + /// + /// + /// The icon name should be from the Fluent UI icon set (e.g., BitIconName.Play). + ///
+ /// For external icon libraries, use instead. + ///
+ [Parameter] public string? UploadIconName { get; set; } + /// /// Custom http headers for upload request. /// @@ -219,11 +312,6 @@ public partial class BitFileUpload : BitComponentBase /// [Parameter] public Func>? UploadUrlProvider { get; set; } - /// - /// The custom file view template. - /// - [Parameter] public RenderFragment? FileViewTemplate { get; set; } - /// diff --git a/src/BlazorUI/Bit.BlazorUI/Components/Inputs/FileUpload/_BitFileUploadItem.razor b/src/BlazorUI/Bit.BlazorUI/Components/Inputs/FileUpload/_BitFileUploadItem.razor index f7ae1fd818..19548c82e0 100644 --- a/src/BlazorUI/Bit.BlazorUI/Components/Inputs/FileUpload/_BitFileUploadItem.razor +++ b/src/BlazorUI/Bit.BlazorUI/Components/Inputs/FileUpload/_BitFileUploadItem.razor @@ -1,4 +1,4 @@ -@namespace Bit.BlazorUI +@namespace Bit.BlazorUI @{ var fileUploadPercent = GetFileUploadPercent(Item); @@ -12,13 +12,22 @@
@Item.Name
- @($"{GetFileUploadSize(Item)}/{FileSizeHumanizer.Humanize(Item.Size)}") - @fileUploadPercent% + + @($"{GetFileUploadSize(Item)}/{FileSizeHumanizer.Humanize(Item.Size)}") + + + @fileUploadPercent% +
@if (Item.Status is BitFileUploadStatus.InProgress or BitFileUploadStatus.Paused) {
-
+
} else @@ -28,22 +37,25 @@ @if (Item.Status is BitFileUploadStatus.Pending or BitFileUploadStatus.Paused) { + var uploadIcon = BitIconInfo.From(FileUpload.UploadIcon, FileUpload.UploadIconName ?? "Play");
-