Skip to content

Commit 1671c73

Browse files
committed
Merge branch 'dev'
2 parents 0c1a502 + 8469c9a commit 1671c73

File tree

88 files changed

+1272
-171
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+1272
-171
lines changed

Directory.Build.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
<SolutionDir>$(MSBuildThisFileDirectory)</SolutionDir>
1313
<AccelerateBuildsInVisualStudio>true</AccelerateBuildsInVisualStudio>
1414

15-
<VersionFile>4.10.1</VersionFile>
16-
<VersionPrefix>4.10.1</VersionPrefix>
15+
<VersionFile>4.10.2</VersionFile>
16+
<VersionPrefix>4.10.2</VersionPrefix>
1717
<VersionSuffix></VersionSuffix>
1818
<AssemblyVersion>$(VersionFile)</AssemblyVersion>
1919
<FileVersion>$(VersionFile)</FileVersion>

Directory.Packages.props

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
<PropertyGroup>
33
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
44
<RuntimeVersion8>8.0.0</RuntimeVersion8>
5-
<AspNetCoreVersion8>8.0.8</AspNetCoreVersion8>
6-
<EfCoreVersion8>8.0.8</EfCoreVersion8>
7-
<RuntimeVersion9>9.0.0-rc.1.24431.7</RuntimeVersion9>
8-
<AspNetCoreVersion9>9.0.0-rc.1.24452.1</AspNetCoreVersion9>
9-
<EfCoreVersion9>9.0.0-rc.1.24451.1</EfCoreVersion9>
5+
<AspNetCoreVersion8>8.0.10</AspNetCoreVersion8>
6+
<EfCoreVersion8>8.0.10</EfCoreVersion8>
7+
<RuntimeVersion9>9.0.0-rc.2.24473.5</RuntimeVersion9>
8+
<AspNetCoreVersion9>9.0.0-rc.2.24474.3</AspNetCoreVersion9>
9+
<EfCoreVersion9>9.0.0-rc.2.24474.1</EfCoreVersion9>
1010
</PropertyGroup>
1111
<ItemGroup>
1212
<!-- For Sample Apps -->
13-
<PackageVersion Include="Microsoft.FluentUI.AspNetCore.Components" Version="4.10.0" />
14-
<PackageVersion Include="Microsoft.FluentUI.AspNetCore.Components.Icons" version="4.10.0" />
13+
<PackageVersion Include="Microsoft.FluentUI.AspNetCore.Components" Version="4.10.1" />
14+
<PackageVersion Include="Microsoft.FluentUI.AspNetCore.Components.Icons" version="4.10.1" />
1515
<PackageVersion Include="Microsoft.FluentUI.AspNetCore.Components.Emoji" Version="4.6.0" />
1616
<!-- Test dependencies -->
1717
<PackageVersion Include="bunit" Version="1.31.3" />
@@ -23,15 +23,15 @@
2323
<PackageVersion Include="coverlet.collector" Version="6.0.2" />
2424
<!-- Shared dependencies -->
2525
<PackageVersion Include="Markdig.Signed" Version="0.34.0" />
26-
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.11.0-beta1.24219.2" />
26+
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.11.0" />
2727
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.11.0" />
2828
<PackageVersion Include="Microsoft.VisualStudio.Threading.Analyzers" Version="17.11.20" />
2929
<PackageVersion Include="Microsoft.VisualStudioEng.MicroBuild.Core" Version="1.0.0" />
3030
</ItemGroup>
3131
<ItemGroup Condition="'$(TargetFramework)'=='netstandard2.0'">
3232
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="$(RuntimeVersion8)" />
3333
<PackageVersion Include="System.Text.Encodings.Web" Version="$(RuntimeVersion8)" />
34-
<PackageVersion Include="System.Text.Json" Version="8.0.4" />
34+
<PackageVersion Include="System.Text.Json" Version="8.0.5" />
3535
</ItemGroup>
3636
<ItemGroup Condition="'$(TargetFramework)'=='net8.0'">
3737
<!-- Build dependencies -->
@@ -41,13 +41,13 @@
4141
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="$(RuntimeVersion8)" />
4242
<PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="$(RuntimeVersion8)" />
4343
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="$(RuntimeVersion8)" />
44-
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="$(RuntimeVersion8)" />
45-
<PackageVersion Include="Microsoft.Extensions.Http" Version="$(RuntimeVersion8)" />
44+
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.1" />
45+
<PackageVersion Include="Microsoft.Extensions.Http" Version="8.0.1" />
4646
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="$(EfCoreVersion8)" />
4747
<PackageVersion Include="Microsoft.EntityFrameworkCore.Sqlite" Version="$(EfCoreVersion8)" />
4848
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="$(EfCoreVersion8)" />
4949
<PackageVersion Include="System.Text.Encodings.Web" Version="$(RuntimeVersion8)" />
50-
<PackageVersion Include="System.Text.Json" Version="8.0.4" />
50+
<PackageVersion Include="System.Text.Json" Version="8.0.5" />
5151
</ItemGroup>
5252
<ItemGroup Condition="'$(TargetFramework)'=='net9.0'">
5353
<!-- Build dependencies -->
@@ -65,4 +65,4 @@
6565
<PackageVersion Include="System.Text.Encodings.Web" Version="$(RuntimeVersion9)" />
6666
<PackageVersion Include="System.Text.Json" Version="$(RuntimeVersion9)" />
6767
</ItemGroup>
68-
</Project>
68+
</Project>

WHATSNEW.md

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,137 @@
1+
## V4.10.2
2+
3+
### General
4+
- \[General\] Update to latest .NET 8 and .NET 9 RC2 SDK.
5+
- \[Debounce\] Fix the Debounce class with async methods ([#2759](https://github.com/microsoft/fluentui-blazor/pull/2759))
6+
7+
### Components
8+
- \[Button\] Add StopPropagation + UnitTests ([#2732](https://github.com/microsoft/fluentui-blazor/pull/2732))
9+
- \[DataGrid\] Add `HeaderTootip` to columns to allow for custom header tooltip text ([#2775](https://github.com/microsoft/fluentui-blazor/pull/2775))
10+
- \[DataGrid\] Changes related to loading behavior ([#2739](https://github.com/microsoft/fluentui-blazor/pull/2739))
11+
- \[DataGrid\] Fix disposed object access error in EntityFrameworkAdapter [#2769] ([#2781](https://github.com/microsoft/fluentui-blazor/pull/2781))
12+
- \[DataGrid\] Support for multiple IAsyncQueryExecutor registrations ([#2730](https://github.com/microsoft/fluentui-blazor/pull/2730))
13+
- \[FluentNavLink\] An issue where empty strings were not allowed in Href ([#2722](https://github.com/microsoft/fluentui-blazor/pull/2722))
14+
- \[FluentRadioGroup\] Fix binding error ([#2742](https://github.com/microsoft/fluentui-blazor/pull/2742))
15+
- \[Menu\] Add z-index to MenuProvider ([#2772](https://github.com/microsoft/fluentui-blazor/pull/2772))
16+
- \[MenuButton\] Fix the MenuItem OnClick used with MenuButton ([#2784](https://github.com/microsoft/fluentui-blazor/pull/2784))
17+
- \[MessageBar\] Update way animation is applied to the MessageBar ([#2723](https://github.com/microsoft/fluentui-blazor/pull/2723))
18+
- \[NavMenu\] Make submenu in collapsed state work again ([#2771](https://github.com/microsoft/fluentui-blazor/pull/2771))
19+
- \[Overlay\] Fix the detection of ExcludedElement for WASM ([#2755](https://github.com/microsoft/fluentui-blazor/pull/2755))
20+
- \[ProfileMenu\] Add `Open` attribute ([#2741](https://github.com/microsoft/fluentui-blazor/pull/2741))
21+
- \[Providers\] To prevent the menu and tooltip from displaying a scrollbar in body ([#2744](https://github.com/microsoft/fluentui-blazor/pull/2744))
22+
- \[Tooltip\] Add role so screen reader can announce tooltip text ([#2724](https://github.com/microsoft/fluentui-blazor/pull/2724))
23+
- \[TreeView\] Improve RTL support ([#2770](https://github.com/microsoft/fluentui-blazor/pull/2770))
24+
- \[TreeView\] prevent runtime errors in change handeling ([#2776](https://github.com/microsoft/fluentui-blazor/pull/2776))
25+
26+
### Demo site and documentation
27+
- \[Docs\] Components inheriting ListComponentBase missing member descriptions ([#2735](https://github.com/microsoft/fluentui-blazor/pull/2735))
28+
- \[Docs\] Fix nullable reference types not always showing in API documentation ([#2758](https://github.com/microsoft/fluentui-blazor/pull/2758))
29+
- \[Docs\] Fixes missing method descriptions for APIs ([#2764](https://github.com/microsoft/fluentui-blazor/pull/2764))
30+
- \[Docs\] Removes extra period from TemplatesPage.razor ([#2777](https://github.com/microsoft/fluentui-blazor/pull/2777))
31+
- \[Docs\] Removes unnecessary output to console for Grid page ([#2767](https://github.com/microsoft/fluentui-blazor/pull/2767))
32+
33+
34+
### Icons
35+
- Update to Fluent UI System Icons 1.1.260 (changes since 1.1.258). New **color** icons have been added!
36+
37+
**What's new (Name / Size(s) / Variant(s))**
38+
- Arrow Circle Up Left / 16 / Filled & Regular
39+
- Arrow Circle Up Right / 16 / Filled & Regular
40+
- Building Checkmark / 16, 20 / Filled & Regular
41+
- Clock Alarm / 48 / Filled & Regular
42+
- Clothes Hanger / 12, 16, 20, 24 / Filled & Regular
43+
- Comment Quote / 16, 20, 24, 28 / Filled & Regular
44+
- Comment Text / 16, 20, 24, 28, 32, 48 / Filled & Regular
45+
- Glance Horizontal / 28, 48 / Filled & Regular
46+
- Glance / 16, 28, 32, 48 / Filled & Regular
47+
- Megaphone / 12 / Filled & Regular
48+
- Mic Link / 16, 20, 24, 28, 32, 48 / Filled & Regular
49+
- Pen Sync / 16, 20, 24, 28, 32, 48 / Filled & Regular
50+
- People Link / 16, 20, 24, 28, 32, 48 / Filled & Regular
51+
- People Queue / 28, 32, 48 / Filled & Regular
52+
- Person Head Hint / 16, 20, 24 / Filled & Regular
53+
- Person Sound Spatial / 16, 20, 24, 28, 32, 48 / Filled & Regular
54+
- Sound Wave Circle Sparkle / 16, 20, 24, 28, 32, 48 / Filled & Regular
55+
- Sound Wave Circle / 16, 28, 32, 48 / Filled & Regular
56+
57+
**What's updated (Name / Size(s) / Variant(s))**
58+
59+
- Comment / 12 / Filled & Regular
60+
- TV USB / 16, 48 / Filled & Regular
61+
62+
**New style — Color!**
63+
64+
- Add Circle / 16, 20, 24, 28, 32 / Color
65+
- Alert / 16, 20, 24, 28, 32, 48 / Color
66+
- Approvals App / 16, 20, 24, 28, 32 / Color
67+
- Apps / 16, 20, 24, 28, 32, 48 / Color
68+
- Arrow Trending Lines / 20, 24 / Color
69+
- Beach / 16, 20, 24, 28, 32, 48 / Color
70+
- Building Multiple / 20, 24 / Color
71+
- Building People / 16, 20, 24 / Color
72+
- Building Store / 16, 20, 24 / Color
73+
- Building / 16, 20, 24, 32, 48 / Color
74+
- Calendar Cancel / 16, 20, 24 / Color
75+
- Calendar Checkmark / 16, 20, 24 / Color
76+
- Calendar Clock / 16, 20, 24 / Color
77+
- Calendar People / 20 / Color
78+
- Calendar / 16, 20, 24, 28, 32, 48 / Color
79+
- Camera / 16, 20, 24 / Color
80+
- Chat Bubbles Question / 16, 20, 24 / Color
81+
- Chat More / 16, 20, 24 / Color
82+
- Chat Multiple / 16, 20, 24 / Color
83+
- Checkbox Person / 16, 20, 24 / Color
84+
- Checkbox / 16, 20, 24 / Color
85+
- Checkmark Circle / 16, 20, 24, 32, 48 / Color
86+
- Clipboard Text Edit / 20, 24, 32 / Color
87+
- Clipboard / 16, 20, 24, 28, 32, 48 / Color
88+
- Clock Alarm / 16, 20, 24, 32, 48 / Color
89+
- Cloud Dismiss / 16, 20, 24, 28, 32, 48 / Color
90+
- Cloud / 16, 20, 24, 28, 32, 48 / Color
91+
- Code Block / 16, 20, 24, 28, 32, 48 / Color
92+
- Coin Multiple / 16, 20 / Color
93+
- Data Bar Vertical Ascending / 16, 20, 24 / Color
94+
- Dismiss Circle / 16, 20, 24, 28, 32, 48 / Color
95+
- Document Add / 16, 20, 24, 28, 48 / Color
96+
- Document Folder / 16, 20, 24 / Color
97+
- Document Lock / 16, 20, 24, 28, 48 / Color
98+
- Document / 16, 20, 24, 28, 32, 48 / Color
99+
- Edit / 16, 20, 24, 32 / Color
100+
- Error Circle / 16, 20, 24, 48 / Color
101+
- Food / 16, 20, 24, 28, 32, 48 / Color
102+
- Game Chat / 20 / Color
103+
- Globe Shield / 20, 24, 48 / Color
104+
- Headphones / 20, 24, 28, 32, 48 / Color
105+
- Headset / 16, 20, 24, 28, 32, 48 / Color
106+
- History / 16, 20, 24, 28, 32, 48 / Color
107+
- Home / 16, 20, 24, 28, 32, 48 / Color
108+
- Library / 16, 20, 24, 28, 32 / Color
109+
- Mail Multiple / 16, 20, 24, 28, 32 / Color
110+
- Mail / 16, 20, 24, 28, 32, 48 / Color
111+
- Mic / 16, 20, 24, 28, 32, 48 / Color
112+
- Org / 16, 20, 24, 28, 32, 48 / Color
113+
- People Home / 16, 20, 24, 28, 32, 48 / Color
114+
- People Team / 16, 20, 24, 28, 32, 48 / Color
115+
- People / 16, 20, 24, 28, 32, 48 / Color
116+
- Person Available / 16, 20, 24 / Color
117+
- Person / 16, 20, 24, 28, 32, 48 / Color
118+
- Pin / 16, 20, 24, 28, 32, 48 / Color
119+
- Poll / 16, 20, 24, 32 / Color
120+
- Question Circle / 16, 20, 24, 28, 32, 48 / Color
121+
- Receipt / 16, 20, 24, 28, 32 / Color
122+
- Reward / 16, 20, 24 / Color
123+
- Scan Person / 16, 20, 24, 28, 48 / Color
124+
- Scan Type / 20, 24 / Color
125+
- Search Visual / 16, 20, 24 / Color
126+
- Shield Checkmark / 16, 20, 24, 28, 48 / Color
127+
- Shield / 16, 20, 24, 28, 32, 48 / Color
128+
- Shifts / 16, 20, 24, 28, 32 / Color
129+
- Text Edit Style / 16, 20, 24 / Color
130+
- Vault / 16, 20, 24 / Color
131+
- Video / 16, 20, 24, 28, 32, 48 / Color
132+
- Warning / 16, 20, 24, 28, 32, 48 / Color
133+
- Wrench / 16, 20, 24 / Color
134+
1135
## v4.10.1
2136

3137
### General

eng/pipelines/version.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ variables:
22
# File and Package version
33
# dev branch: 1.2.4-Preview-23282-1' (PackageSuffix is always ignored in Dev branch)
44
# main branch: 1.2.4-RC.1' (PackageSuffix is ignored, if empty, in Main branch)
5-
FileVersion: '4.10.1' # Set the next final version here.
5+
FileVersion: '4.10.2' # Set the next final version here.
66
PackageSuffix: ''

examples/Demo/DocGenerator/CodeCommentsGenerator.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ private static string CleanupParamName(string value)
7979
value = regex.Replace(value, "");
8080
regex = new("[P,T,M,F]:FluentUI\\.Demo\\.Shared\\.");
8181
value = regex.Replace(value, "");
82+
regex = new("\\(.*\\)$");
83+
value = regex.Replace(value, "");
8284

8385
return value;
8486
}

examples/Demo/Server/FluentUI.Demo.Server.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net8.0; net9.0</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
55
<Nullable>enable</Nullable>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<LangVersion>latest</LangVersion>

examples/Demo/Server/Program.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,11 @@
3030

3131
app.UseHttpsRedirection();
3232

33+
#if NET8_0
3334
app.UseStaticFiles();
35+
#else
36+
app.MapStaticAssets();
37+
#endif
3438

3539
app.UseRouting();
3640

examples/Demo/Shared/Components/ApiDocumentation.razor.cs

Lines changed: 55 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ private IEnumerable<MemberDescription> GetMembers(MemberTypes type)
141141
Type = propertyInfo.ToTypeNameString(),
142142
EnumValues = GetEnumValues(propertyInfo),
143143
Default = defaultVaue,
144-
Description = CodeComments.GetSummary(Component.Name + "." + propertyInfo.Name) ?? CodeComments.GetSummary(Component.BaseType?.Name + "." + propertyInfo.Name),
144+
Description = GetDescription(Component, propertyInfo),
145145
IsParameter = isParameter,
146146
Icon = icon
147147
});
@@ -156,7 +156,7 @@ private IEnumerable<MemberDescription> GetMembers(MemberTypes type)
156156
MemberType = MemberTypes.Event,
157157
Name = propertyInfo.Name,
158158
Type = propertyInfo.ToTypeNameString(),
159-
Description = CodeComments.GetSummary(Component.Name + "." + propertyInfo.Name) ?? CodeComments.GetSummary(Component.BaseType?.Name + "." + propertyInfo.Name)
159+
Description = GetDescription(Component, propertyInfo)
160160
});
161161
}
162162
}
@@ -176,7 +176,7 @@ private IEnumerable<MemberDescription> GetMembers(MemberTypes type)
176176
Name = methodInfo.Name + genericArguments,
177177
Parameters = methodInfo.GetParameters().Select(i => $"{i.ToTypeNameString()} {i.Name}").ToArray(),
178178
Type = methodInfo.ToTypeNameString(),
179-
Description = CodeComments.GetSummary(Component.Name + "." + methodInfo.Name) ?? CodeComments.GetSummary(Component.BaseType?.Name + "." + methodInfo.Name)
179+
Description = GetDescription(Component, methodInfo)
180180
});
181181
}
182182
}
@@ -194,6 +194,58 @@ private IEnumerable<MemberDescription> GetMembers(MemberTypes type)
194194
return _allMembers.Where(i => i.MemberType == type);
195195
}
196196

197+
/// <summary>
198+
/// Gets member description for generic MemberInfo.
199+
/// </summary>
200+
/// <typeparam name="T"></typeparam>
201+
/// <param name="component"></param>
202+
/// <param name="memberInfo"></param>
203+
/// <returns>member description</returns>
204+
private static string GetDescription<T>(Type component, T memberInfo) where T : MemberInfo
205+
{
206+
return DescriptionFromCodeComments(component, memberInfo.Name);
207+
}
208+
209+
/// <summary>
210+
/// Gets description
211+
/// </summary>
212+
/// <param name="component"></param>
213+
/// <param name="methodInfo"></param>
214+
/// <returns></returns>
215+
/// <remarks>
216+
/// see the following about name mangling when dealing with generics
217+
/// https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/xmldoc/#id-strings
218+
/// </remarks>
219+
private static string GetDescription(Type component, MethodInfo methodInfo)
220+
{
221+
var genericArgumentCount = methodInfo.GetGenericArguments().Length;
222+
var mangledName = methodInfo.Name + (genericArgumentCount == 0 ? "" : $"``{genericArgumentCount}");
223+
224+
var description = DescriptionFromCodeComments(component, mangledName);
225+
226+
return description;
227+
}
228+
229+
/// <summary>
230+
/// Gets member description from source generated class of component
231+
/// descriptions. If none found, component base member description
232+
/// is returned.
233+
/// </summary>
234+
/// <param name="component"></param>
235+
/// <param name="name">name of property, method, or event</param>
236+
/// <returns></returns>
237+
private static string DescriptionFromCodeComments(Type component, string name)
238+
{
239+
var description = CodeComments.GetSummary(component.Name + "." + name);
240+
241+
if (description == null && component.BaseType != null)
242+
{
243+
description = DescriptionFromCodeComments(component.BaseType, name);
244+
}
245+
246+
return description ?? string.Empty;
247+
}
248+
197249
private static string[] GetEnumValues(PropertyInfo? propertyInfo)
198250
{
199251
if (propertyInfo != null)

examples/Demo/Shared/FluentUI.Demo.Shared.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk.Razor">
22
<PropertyGroup>
3-
<TargetFrameworks>net8.0; net9.0</TargetFrameworks>
3+
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
44
<Nullable>enable</Nullable>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<LangVersion>latest</LangVersion>
@@ -39,7 +39,7 @@
3939
<ItemGroup>
4040
<PackageReference Include="Markdig.Signed" />
4141
<PackageReference Include="Microsoft.AspNetCore.Components.Web" />
42-
<PackageReference Include="Microsoft.FluentUI.AspNetCore.Components.Icons" />
42+
<PackageReference Include="Microsoft.FluentUI.AspNetCore.Components.Icons" />
4343
<PackageReference Include="Microsoft.FluentUI.AspNetCore.Components.Emoji" />
4444
</ItemGroup>
4545

0 commit comments

Comments
 (0)