From 75d397fa5aef85530402c219905d377ada03bed0 Mon Sep 17 00:00:00 2001 From: msynk Date: Tue, 21 Jul 2026 18:21:06 +0330 Subject: [PATCH 1/7] apply BitDropdown improvements #12741 --- .../Inputs/Dropdown/BitDropdown.razor | 88 +- .../Inputs/Dropdown/BitDropdown.razor.cs | 246 +++++- .../Inputs/Dropdown/BitDropdown.scss | 54 ++ .../Inputs/Dropdown/BitDropdownClassStyles.cs | 30 + .../Inputs/Dropdown/_BitDropdownItem.razor | 9 +- .../JsInterop/DropdownsJsRuntimeExtensions.cs | 19 + .../Bit.BlazorUI/Scripts/Dropdowns.ts | 104 +++ .../Inputs/Dropdown/BitDropdownDemo.razor | 4 +- .../Inputs/Dropdown/BitDropdownDemo.razor.cs | 77 ++ .../Dropdown/BitDropdownDemo.razor.scss | 6 + .../Dropdown/_BitDropdownCustomDemo.razor | 435 +++++++--- .../Dropdown/_BitDropdownCustomDemo.razor.cs | 8 + .../_BitDropdownCustomDemo.razor.samples.cs | 817 ++++++++++++------ .../Dropdown/_BitDropdownItemDemo.razor | 425 ++++++--- .../Dropdown/_BitDropdownItemDemo.razor.cs | 8 + .../_BitDropdownItemDemo.razor.samples.cs | 642 +++++++++----- .../Dropdown/_BitDropdownOptionDemo.razor | 435 ++++++++-- .../Dropdown/_BitDropdownOptionDemo.razor.cs | 6 + .../_BitDropdownOptionDemo.razor.samples.cs | 392 +++++++-- 19 files changed, 2934 insertions(+), 871 deletions(-) create mode 100644 src/BlazorUI/Bit.BlazorUI/Extensions/JsInterop/DropdownsJsRuntimeExtensions.cs create mode 100644 src/BlazorUI/Bit.BlazorUI/Scripts/Dropdowns.ts diff --git a/src/BlazorUI/Bit.BlazorUI/Components/Inputs/Dropdown/BitDropdown.razor b/src/BlazorUI/Bit.BlazorUI/Components/Inputs/Dropdown/BitDropdown.razor index 7dfe510d4c..39ec80e8b5 100644 --- a/src/BlazorUI/Bit.BlazorUI/Components/Inputs/Dropdown/BitDropdown.razor +++ b/src/BlazorUI/Bit.BlazorUI/Components/Inputs/Dropdown/BitDropdown.razor @@ -12,6 +12,18 @@ var searchBoxClearIconCss = BitIconInfo.From(SearchBoxClearIcon, SearchBoxClearIconName ?? "Cancel")?.GetCssClasses(); var comboBoxAddButtonIconCss = BitIconInfo.From(ComboBoxAddButtonIcon, ComboBoxAddButtonIconName ?? "Add")?.GetCssClasses(); var itemCheckIconCss = GetItemCheckIconCss(); + + RenderFragment emptyContent = + @
+ @if (EmptyTemplate is not null) + { + @EmptyTemplate + } + else + { + @(EmptyText ?? "No items found") + } +
; } @if (Virtualize && (Options ?? ChildContent) is not null) @@ -42,7 +54,9 @@ } -
-
+ aria-labelledby="@_labelId" + aria-multiselectable="@(MultiSelect ? "true" : null)"> @if (Responsive) { @@ -263,7 +281,7 @@ {
- } + @if (MultiSelect && ShowSelectAll && ItemsProvider is null) + { + var (allSelected, anySelected) = GetSelectAllState(); + var selectAllClasses = "bit-drp-sac bit-drp-iwr" + + (allSelected ? " bit-drp-chd" : string.Empty) + + (anySelected && allSelected is false ? " bit-drp-sai" : string.Empty) + + (IsEnabled ? string.Empty : " bit-drp-ids"); + var selectAllAriaChecked = allSelected ? "true" : anySelected ? "mixed" : "false"; +
+