Skip to content

[dev-v5] FluentMenu - Improve positioning and add mouseout handling for submenu closure - #5210

Merged
Denis Voituron (dvoituron) merged 2 commits into
dev-v5from
users/dvoituron/dev-v5/fix-menu-right
Aug 28, 2026
Merged

[dev-v5] FluentMenu - Improve positioning and add mouseout handling for submenu closure#5210
Denis Voituron (dvoituron) merged 2 commits into
dev-v5from
users/dvoituron/dev-v5/fix-menu-right

Conversation

@dvoituron

Copy link
Copy Markdown
Collaborator

[dev-v5] FluentMenu - Improve positioning and add mouseout handling for submenu closure

See #5207

  • Enhance submenu behavior by closing it when the pointer leaves, even if the parent menu item remains focused.
  • Improve positioning fallbacks for submenus to ensure better display across different scenarios.
peek_6.mp4

A problem persists when there isn't enough space on the right or left.

Unit Tests

Updated

Copilot AI lite review requested due to automatic review settings August 28, 2026 18:53
@github-actions

Copy link
Copy Markdown

✅ All tests passed successfully

Details on your Workflow / Core Tests page.

@github-actions

github-actions Bot commented Aug 28, 2026

Copy link
Copy Markdown

Summary - Unit Tests Code Coverage

Summary
Generated on: 08/28/2026 - 19:30:48
Parser: MultiReport (6x Cobertura)
Assemblies: 2
Classes: 319
Files: 374
Line coverage: 98.4% (11595 of 11782)
Covered lines: 11595
Uncovered lines: 187
Coverable lines: 11782
Total lines: 45014
Branch coverage: 92.2% (6842 of 7418)
Covered branches: 6842
Total branches: 7418
Method coverage: Feature is only available for sponsors
Tag: 7406_33203768966

Coverage

Microsoft.FluentUI.AspNetCore.Components - 98.3%
Name Line Branch
Microsoft.FluentUI.AspNetCore.Components 98.3% 92.1%
Microsoft.FluentUI.AspNetCore.Components.AdditionalAttributesExtensions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.AdditionalAttributesExtensions.Add
itionalAttributeCondition
100% 100%
Microsoft.FluentUI.AspNetCore.Components.AdditionalAttributesExtensions.Add
itionalAttributeCondition.AdditionalAttributeConditionItem
100%
Microsoft.FluentUI.AspNetCore.Components.AutocompleteHeaderFooterContent<TO
ption>
100% 50%
Microsoft.FluentUI.AspNetCore.Components.CachedServices 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Calendar.CalendarExtended 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Calendar.CalendarTitles 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Calendar.CalendarTValue 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Calendar.CalendarTValue 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ColorPicker.ColorHelper 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ColorPicker.DefaultColors 100%
Microsoft.FluentUI.AspNetCore.Components.ColorPicker.HsvColor 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ColorPicker.WheelColor 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ColumnBase 78.7% 73.5%
Microsoft.FluentUI.AspNetCore.Components.ColumnBase 97.6% 89.2%
Microsoft.FluentUI.AspNetCore.Components.ColumnHeaderCapabilities 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ColumnKeyGridSort 94.4% 75%
Microsoft.FluentUI.AspNetCore.Components.ColumnMenuSettings 100%
Microsoft.FluentUI.AspNetCore.Components.ColumnReorderOptions 100%
Microsoft.FluentUI.AspNetCore.Components.ColumnResizeOptions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ColumnResizeOptions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.CustomEmoji 100% 100%
Microsoft.FluentUI.AspNetCore.Components.CustomIcon 100%
Microsoft.FluentUI.AspNetCore.Components.DataGrid.Infrastructure.Defer 100%
Microsoft.FluentUI.AspNetCore.Components.DataGrid.Infrastructure.InternalGr
idContext
100% 100%
Microsoft.FluentUI.AspNetCore.Components.DateTimeProvider 100% 100%
Microsoft.FluentUI.AspNetCore.Components.DateTimeProviderContext 100% 92.8%
Microsoft.FluentUI.AspNetCore.Components.DefaultStyles 100%
Microsoft.FluentUI.AspNetCore.Components.DefaultValues 100% 96.1%
Microsoft.FluentUI.AspNetCore.Components.DefaultValues 100% 96.1%
Microsoft.FluentUI.AspNetCore.Components.DefaultValuesComponentBuilder<TCom
ponent, TValue>
100% 100%
Microsoft.FluentUI.AspNetCore.Components.DefaultValuesComponentBuilder<TCom
ponent>
100% 96.4%
Microsoft.FluentUI.AspNetCore.Components.Dialog.MessageBox.FluentMessageBox 100% 75%
Microsoft.FluentUI.AspNetCore.Components.DialogEventArgs 100% 92.8%
Microsoft.FluentUI.AspNetCore.Components.DialogInstance 100% 100%
Microsoft.FluentUI.AspNetCore.Components.DialogOptions 100%
Microsoft.FluentUI.AspNetCore.Components.DialogOptionsFooter 100% 100%
Microsoft.FluentUI.AspNetCore.Components.DialogOptionsFooterAction 100% 100%
Microsoft.FluentUI.AspNetCore.Components.DialogOptionsHeader 100% 100%
Microsoft.FluentUI.AspNetCore.Components.DialogOptionsHeaderAction 100% 100%
Microsoft.FluentUI.AspNetCore.Components.DialogResult 100% 100%
Microsoft.FluentUI.AspNetCore.Components.DialogResult 100%
Microsoft.FluentUI.AspNetCore.Components.DialogService 100% 83.7%
Microsoft.FluentUI.AspNetCore.Components.Emoji 100% 100%
Microsoft.FluentUI.AspNetCore.Components.EmojiCompress 100% 100%
Microsoft.FluentUI.AspNetCore.Components.EmojiExtensions 100% 50%
Microsoft.FluentUI.AspNetCore.Components.EmojiInfo 100%
Microsoft.FluentUI.AspNetCore.Components.Extensions.DateTimeExtensions 98.4% 90.3%
Microsoft.FluentUI.AspNetCore.Components.Extensions.DisplayAttributeExtensi
ons
100% 100%
Microsoft.FluentUI.AspNetCore.Components.Extensions.EnumExtensions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Extensions.FieldSizeExtensions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Extensions.FluentInputExtensions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FileSizeConverter 100%
Microsoft.FluentUI.AspNetCore.Components.FluentAccordion 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentAccordionItem 100% 95.8%
Microsoft.FluentUI.AspNetCore.Components.FluentAnchorButton 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentAppBar 94.9% 83.6%
Microsoft.FluentUI.AspNetCore.Components.FluentAppBarItem 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentAutocomplete<TOption, TValue
>
97.5% 94.7%
Microsoft.FluentUI.AspNetCore.Components.FluentAutocomplete<TOption, TValue
>
92.8% 88.2%
Microsoft.FluentUI.AspNetCore.Components.FluentAvatar 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentBadge 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentButton 97.3% 88.8%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendar 96.7% 76.6%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendar 96.6% 83.5%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendarBase 100% 89.1%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendarDay 100% 95.4%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendarMonth 100% 85.7%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendarYear 100% 91.6%
Microsoft.FluentUI.AspNetCore.Components.FluentCard 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentCheckbox 100% 97.3%
Microsoft.FluentUI.AspNetCore.Components.FluentColorPicker 97.3% 94.8%
Microsoft.FluentUI.AspNetCore.Components.FluentColorPickerInput 98.5% 95.6%
Microsoft.FluentUI.AspNetCore.Components.FluentCombobox<TOption, TValue> 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentCombobox<TOption, TValue> 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentComponentBase 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentCompoundButton 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentCounterBadge 100% 95.2%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid 98.8% 94.3%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid 98.3% 95.3%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGridCell 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGridCell 98.6% 93.8%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGridRow 96.9% 96.4%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGridRow 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentDatePicker 100% 83.3%
Microsoft.FluentUI.AspNetCore.Components.FluentDatePicker 96.6% 82.2%
Microsoft.FluentUI.AspNetCore.Components.FluentDialog 97.6% 89.8%
Microsoft.FluentUI.AspNetCore.Components.FluentDialogBody 97.5% 94.4%
Microsoft.FluentUI.AspNetCore.Components.FluentDialogInstance 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentDialogProvider 95.3% 77.5%
Microsoft.FluentUI.AspNetCore.Components.FluentDivider 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentDragContainer 100%
Microsoft.FluentUI.AspNetCore.Components.FluentDropZone 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentDropZone 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentEmoji 100% 95%
Microsoft.FluentUI.AspNetCore.Components.FluentErrorBoundary 94.7% 93.7%
Microsoft.FluentUI.AspNetCore.Components.FluentField 98.2% 94.6%
Microsoft.FluentUI.AspNetCore.Components.FluentFieldCondition 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentFieldConditionItem 100%
Microsoft.FluentUI.AspNetCore.Components.FluentFieldConditionOptions 100%
Microsoft.FluentUI.AspNetCore.Components.FluentFieldExtensions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentFieldParameterSelector 97.6% 94.4%
Microsoft.FluentUI.AspNetCore.Components.FluentGrid 100% 90%
Microsoft.FluentUI.AspNetCore.Components.FluentGridItem 100% 98.4%
Microsoft.FluentUI.AspNetCore.Components.FluentHighlighter 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentIcon 100%
Microsoft.FluentUI.AspNetCore.Components.FluentIcon 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentImage 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentInputBase 68.7% 50%
Microsoft.FluentUI.AspNetCore.Components.FluentInputBase 88.8% 50%
Microsoft.FluentUI.AspNetCore.Components.FluentInputFile 100% 93.7%
Microsoft.FluentUI.AspNetCore.Components.FluentInputFileBuffer 100%
Microsoft.FluentUI.AspNetCore.Components.FluentInputFileErrorEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.FluentInputImmediateBase 100%
Microsoft.FluentUI.AspNetCore.Components.FluentInputImmediateBase 100%
Microsoft.FluentUI.AspNetCore.Components.FluentInputImmediateManager 97.6% 97%
Microsoft.FluentUI.AspNetCore.Components.FluentJSModule 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentKeyCode 100% 93.7%
Microsoft.FluentUI.AspNetCore.Components.FluentKeyCodeEventArgs 100% 77.7%
Microsoft.FluentUI.AspNetCore.Components.FluentKeyCodeProvider 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentLabel 100%
Microsoft.FluentUI.AspNetCore.Components.FluentLabelInfo 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentLayout 100% 93.7%
Microsoft.FluentUI.AspNetCore.Components.FluentLayoutHamburger 97.7% 89.4%
Microsoft.FluentUI.AspNetCore.Components.FluentLayoutItem 100% 91.6%
Microsoft.FluentUI.AspNetCore.Components.FluentLink 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentListBase<TOption, TValue> 100% 95.8%
Microsoft.FluentUI.AspNetCore.Components.FluentListBase<TOption, TValue> 89.5% 86.6%
Microsoft.FluentUI.AspNetCore.Components.FluentListbox<TOption, TValue> 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentListbox<TOption, TValue> 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentLocalizerExtensions 100%
Microsoft.FluentUI.AspNetCore.Components.FluentLocalizerInternal 100%
Microsoft.FluentUI.AspNetCore.Components.FluentMenu 100% 90%
Microsoft.FluentUI.AspNetCore.Components.FluentMenuButton 100% 83.3%
Microsoft.FluentUI.AspNetCore.Components.FluentMenuItem 100% 92.5%
Microsoft.FluentUI.AspNetCore.Components.FluentMenuList 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentMessageBar 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentMessageBarProvider 100% 92.3%
Microsoft.FluentUI.AspNetCore.Components.FluentMultiSplitter 100% 93.7%
Microsoft.FluentUI.AspNetCore.Components.FluentMultiSplitterEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.FluentMultiSplitterPane 100% 85.3%
Microsoft.FluentUI.AspNetCore.Components.FluentMultiSplitterResizeEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.FluentNav 100% 95.8%
Microsoft.FluentUI.AspNetCore.Components.FluentNavBase 100%
Microsoft.FluentUI.AspNetCore.Components.FluentNavCategory 97.7% 91%
Microsoft.FluentUI.AspNetCore.Components.FluentNavItem 100% 91.4%
Microsoft.FluentUI.AspNetCore.Components.FluentNavSectionHeader 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentNumberInput 100% 87.5%
Microsoft.FluentUI.AspNetCore.Components.FluentNumberInput 99.1% 89.5%
Microsoft.FluentUI.AspNetCore.Components.FluentNumberInputCultureInfo 100%
Microsoft.FluentUI.AspNetCore.Components.FluentOption 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentOption 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentOptionString 100%
Microsoft.FluentUI.AspNetCore.Components.FluentOverflow 100% 93.7%
Microsoft.FluentUI.AspNetCore.Components.FluentOverlay 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentPaginator 100% 92.8%
Microsoft.FluentUI.AspNetCore.Components.FluentPopover 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentPresenceBadge 100% 95.4%
Microsoft.FluentUI.AspNetCore.Components.FluentProgress 100%
Microsoft.FluentUI.AspNetCore.Components.FluentProgressBar 100% 87.5%
Microsoft.FluentUI.AspNetCore.Components.FluentProgressRing 100%
Microsoft.FluentUI.AspNetCore.Components.FluentProviders 100%
Microsoft.FluentUI.AspNetCore.Components.FluentPullToRefresh 100% 91.7%
Microsoft.FluentUI.AspNetCore.Components.FluentRadio 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentRadioGroup 100% 88.8%
Microsoft.FluentUI.AspNetCore.Components.FluentRadioGroup 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentRatingDisplay 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSelect<TOption, TValue> 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSelect<TOption, TValue> 100% 50%
Microsoft.FluentUI.AspNetCore.Components.FluentServiceBase 100%
Microsoft.FluentUI.AspNetCore.Components.FluentServiceBase 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentServiceProviderException<TPr
ovider>
100%
Microsoft.FluentUI.AspNetCore.Components.FluentSkeleton 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSlider 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSlider 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSortableList 91.6% 87.5%
Microsoft.FluentUI.AspNetCore.Components.FluentSortableList 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSortableListEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSpacer 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSpinner 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSplitButton 100%
Microsoft.FluentUI.AspNetCore.Components.FluentStack 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentStatus 100%
Microsoft.FluentUI.AspNetCore.Components.FluentSwitch 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentTab 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentTabs 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentText 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentTextArea 98.3% 61.5%
Microsoft.FluentUI.AspNetCore.Components.FluentTextInput 100% 82.1%
Microsoft.FluentUI.AspNetCore.Components.FluentTimePicker.TimeEqualityCompa
rer
50% 50%
Microsoft.FluentUI.AspNetCore.Components.FluentTimePicker 95.2% 68.1%
Microsoft.FluentUI.AspNetCore.Components.FluentTimePicker 98.7% 71.1%
Microsoft.FluentUI.AspNetCore.Components.FluentToast 100% 92.8%
Microsoft.FluentUI.AspNetCore.Components.FluentToastProvider 99.1% 97.2%
Microsoft.FluentUI.AspNetCore.Components.FluentToggleButton 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentTooltip 100% 89.2%
Microsoft.FluentUI.AspNetCore.Components.FluentTooltipProvider 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentTreeItem 100% 94.7%
Microsoft.FluentUI.AspNetCore.Components.FluentTreeView 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentValidationMessage 100%
Microsoft.FluentUI.AspNetCore.Components.FluentValidationMessage 97.5% 88.8%
Microsoft.FluentUI.AspNetCore.Components.FluentValidationSummary 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentWizard 98.4% 87.5%
Microsoft.FluentUI.AspNetCore.Components.FluentWizardStep 97.8% 92.7%
Microsoft.FluentUI.AspNetCore.Components.FluentWizardStepArgs 100%
Microsoft.FluentUI.AspNetCore.Components.FluentWizardStepChangeEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.FluentWizardStepValidator 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FreeOptionOutput 100%
Microsoft.FluentUI.AspNetCore.Components.GridItemsProviderRequest<TGridItem
>
100% 100%
Microsoft.FluentUI.AspNetCore.Components.GridItemsProviderResult 100%
Microsoft.FluentUI.AspNetCore.Components.GridSort<TGridItem, U> 100% 94.4%
Microsoft.FluentUI.AspNetCore.Components.GridSort 100% 94.4%
Microsoft.FluentUI.AspNetCore.Components.GridSort 95.7% 91.9%
Microsoft.FluentUI.AspNetCore.Components.HierarchicalGridItem<TItem, TGridI
tem>
100%
Microsoft.FluentUI.AspNetCore.Components.HierarchicalGridItem<TItem, TGridI
tem>
100% 100%
Microsoft.FluentUI.AspNetCore.Components.HierarchicalGridUtilities 100% 100%
Microsoft.FluentUI.AspNetCore.Components.HierarchicalGridUtilities<TGridIte
m, TItem>
100% 100%
Microsoft.FluentUI.AspNetCore.Components.HierarchicalSelectColumn<TGridItem
>
100% 95.2%
Microsoft.FluentUI.AspNetCore.Components.HierarchicalSelectColumn<TGridItem
>
98% 95.9%
Microsoft.FluentUI.AspNetCore.Components.HighlighterSplitter 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Icon 100% 95%
Microsoft.FluentUI.AspNetCore.Components.IconFromImage 100%
Microsoft.FluentUI.AspNetCore.Components.IconInfo 100%
Microsoft.FluentUI.AspNetCore.Components.IconsExtensions 100% 50%
Microsoft.FluentUI.AspNetCore.Components.IFluentComponentChangeAfterKeyPres
s
100% 100%
Microsoft.FluentUI.AspNetCore.Components.IFluentLocalizer 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Infrastructure.EventCallbackSubscr
ibable
100% 100%
Microsoft.FluentUI.AspNetCore.Components.Infrastructure.EventCallbackSubscr
ibable
100%
Microsoft.FluentUI.AspNetCore.Components.Infrastructure.EventCallbackSubscr
iber
100% 87.5%
Microsoft.FluentUI.AspNetCore.Components.InputFileInstance 100% 100%
Microsoft.FluentUI.AspNetCore.Components.InputFileOptions 100%
Microsoft.FluentUI.AspNetCore.Components.InternalAppBarContext 100% 100%
Microsoft.FluentUI.AspNetCore.Components.InternalListContext 100%
Microsoft.FluentUI.AspNetCore.Components.JSRuntimeExtensions 23% 0%
Microsoft.FluentUI.AspNetCore.Components.JSRuntimeExtensions 23% 0%
Microsoft.FluentUI.AspNetCore.Components.KeyCodeService 100% 87.5%
Microsoft.FluentUI.AspNetCore.Components.KeyCodeService.KeyCodeListener 100% 100%
Microsoft.FluentUI.AspNetCore.Components.KeyPress 100%
Microsoft.FluentUI.AspNetCore.Components.LabelInfo 100%
Microsoft.FluentUI.AspNetCore.Components.LayoutHamburgerEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.LibraryToastOptions 100%
Microsoft.FluentUI.AspNetCore.Components.LibraryTooltipOptions 100%
Microsoft.FluentUI.AspNetCore.Components.Localization.LanguageResource 100% 100%
Microsoft.FluentUI.AspNetCore.Components.MarkupSanitizedOptions 100%
Microsoft.FluentUI.AspNetCore.Components.MessageBarEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.MessageBarInstance 94.1% 100%
Microsoft.FluentUI.AspNetCore.Components.MessageBarOptions 100%
Microsoft.FluentUI.AspNetCore.Components.MessageBarResult 100%
Microsoft.FluentUI.AspNetCore.Components.MessageBoxOptions 100%
Microsoft.FluentUI.AspNetCore.Components.Migration.AppearanceExtensions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Migration.FluentInputAppearanceExt
ensions
100% 100%
Microsoft.FluentUI.AspNetCore.Components.Migration.TooltipPositionExtension 100% 100%
Microsoft.FluentUI.AspNetCore.Components.NotificationService 97.3% 97.3%
Microsoft.FluentUI.AspNetCore.Components.NotificationService 97.3% 97.3%
Microsoft.FluentUI.AspNetCore.Components.NotificationService 97.3% 97.3%
Microsoft.FluentUI.AspNetCore.Components.OptionsSearchEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.OverflowChangedEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.OverlayOptions 100%
Microsoft.FluentUI.AspNetCore.Components.PaginationState 100% 81.2%
Microsoft.FluentUI.AspNetCore.Components.PropertyColumn<TGridItem, TProp> 100% 75%
Microsoft.FluentUI.AspNetCore.Components.PropertyColumn<TGridItem, TProp> 100% 84.6%
Microsoft.FluentUI.AspNetCore.Components.RangeOfDates 96.5% 86.8%
Microsoft.FluentUI.AspNetCore.Components.SelectAllTemplateArgs 100%
Microsoft.FluentUI.AspNetCore.Components.SelectColumn.ItemKeyEqualityCompar
er
72.7% 66.6%
Microsoft.FluentUI.AspNetCore.Components.SelectColumn 88.7% 93.1%
Microsoft.FluentUI.AspNetCore.Components.SelectColumn 96% 85.8%
Microsoft.FluentUI.AspNetCore.Components.ServiceProviderExtensions 100%
Microsoft.FluentUI.AspNetCore.Components.SpacingExtensions 100% 97.3%
Microsoft.FluentUI.AspNetCore.Components.TemplateColumn 0% 0%
Microsoft.FluentUI.AspNetCore.Components.TemplateColumn 100% 50%
Microsoft.FluentUI.AspNetCore.Components.Theme 100% 80%
Microsoft.FluentUI.AspNetCore.Components.Theme.ThemeBorders 100%
Microsoft.FluentUI.AspNetCore.Components.Theme.ThemeColors 100%
Microsoft.FluentUI.AspNetCore.Components.Theme.ThemeCurves 100%
Microsoft.FluentUI.AspNetCore.Components.Theme.ThemeFonts 100%
Microsoft.FluentUI.AspNetCore.Components.Theme.ThemeLines 100%
Microsoft.FluentUI.AspNetCore.Components.Theme.ThemeSpacings 100%
Microsoft.FluentUI.AspNetCore.Components.Theme.ThemeStrokes 100%
Microsoft.FluentUI.AspNetCore.Components.ThemeExtensions 93.3% 94.4%
Microsoft.FluentUI.AspNetCore.Components.ThemeService 100% 93.7%
Microsoft.FluentUI.AspNetCore.Components.ThemeSettings 100%
Microsoft.FluentUI.AspNetCore.Components.ToastEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.ToastInstance 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ToastOptions 100%
Microsoft.FluentUI.AspNetCore.Components.ToastResult 100%
Microsoft.FluentUI.AspNetCore.Components.TooltipEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.TotalItemCountChangedEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.TreeViewItem 100% 100%
Microsoft.FluentUI.AspNetCore.Components.TreeViewItemExpandedEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.Utilities.AddTag 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Utilities.CssBuilder 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Utilities.Debounce 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Utilities.Identifier 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Utilities.IdentifierContext 100% 75%
Microsoft.FluentUI.AspNetCore.Components.Utilities.InlineStyleBuilder 100% 93.7%
Microsoft.FluentUI.AspNetCore.Components.Utilities.MarkupStringSanitized 100% 92.5%
Microsoft.FluentUI.AspNetCore.Components.Utilities.MarkupStringSanitized.Pa
rsedContent
100%
Microsoft.FluentUI.AspNetCore.Components.Utilities.RangeOf 96.5% 97.2%
Microsoft.FluentUI.AspNetCore.Components.Utilities.StyleBuilder 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ZIndex 100%
Microsoft.FluentUI.AspNetCore.Components.Charts - 100%
Name Line Branch
Microsoft.FluentUI.AspNetCore.Components.Charts 100% 95.6%
Microsoft.FluentUI.AspNetCore.Components.Charts.AreaChartSeries 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.ChartAxisValue 100% 90%
Microsoft.FluentUI.AspNetCore.Components.Charts.ChartAxisValueJsonConverter 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.DataVizPaletteExtensions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.DonutDataPoint 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentAreaChart 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentCartesianChartBase 100% 87.5%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentChartBase 100% 90%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentDonutChart 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentFunnelChart 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentGanttChart 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentHorizontalBarChart 100% 75%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentHorizontalBarChartWit
hAxis
100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FunnelDataPoint 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FunnelSubValue 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.GanttChartDataPoint 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.HorizontalBarChartDataPoint 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.HorizontalBarChartSeries 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.HorizontalBarChartWithAxisD
ataPoint
100% 100%

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves the FluentMenu v5 submenu UX by (1) closing open submenus when the pointer leaves and (2) adding positioning fallbacks intended to prevent submenus from covering their parent item when near viewport edges (issue #5207).

Changes:

  • Added a mouseout handler in the menu script to close any open submenu when the pointer leaves its owning menu item (while preserving keyboard-focus behavior).
  • Added CSS position-try-fallbacks for submenu popovers to improve left/right/vertical fallback positioning.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
src/Core/Components/Menu/FluentMenuList.razor.css Adds positioning fallback rules for submenu <fluent-menu-list slot="submenu"> popovers.
src/Core.Scripts/src/Components/Menu/FluentMenu.ts Adds a mouseout handler to close open submenus when the pointer leaves.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/Core.Scripts/src/Components/Menu/FluentMenu.ts
Comment thread src/Core/Components/Menu/FluentMenuList.razor.css
@dvoituron
Denis Voituron (dvoituron) merged commit 595aae5 into dev-v5 Aug 28, 2026
3 checks passed
@dvoituron
Denis Voituron (dvoituron) deleted the users/dvoituron/dev-v5/fix-menu-right branch August 28, 2026 19:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants