Skip to content

[Input] Required message refactoring - Part 2 - #5400

Open
Vincent Baaij (vnbaaij) wants to merge 8 commits into
devfrom
users/vnbaaij/composite-required-messages
Open

Vincent Baaij (vnbaaij) wants to merge 8 commits into
devfrom
users/vnbaaij/composite-required-messages

Conversation

@vnbaaij

Copy link
Copy Markdown
Collaborator

This part handles the Required message refactoring for composite inputs (AutoComplete, DatePicker, etc).

Can only be merged once Part 1 has been merged already. Then it will be substantially lesser changed files,,,

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@vnbaaij Vincent Baaij (vnbaaij) added this to the v5.0.1 milestone Oct 6, 2026
Copilot AI balanced review requested due to automatic review settings October 6, 2026 13:56
@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

✅ All tests passed successfully

Details on your Workflow / Core Tests page.

@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Summary - Unit Tests Code Coverage

Summary
Generated on: 10/06/2026 - 17:38:01
Parser: MultiReport (6x Cobertura)
Assemblies: 2
Classes: 361
Files: 427
Line coverage: 98.4% (12540 of 12742)
Covered lines: 12540
Uncovered lines: 202
Coverable lines: 12742
Total lines: 50292
Branch coverage: 92.5% (7534 of 8138)
Covered branches: 7534
Total branches: 8138
Method coverage: Feature is only available for sponsors
Tag: 7993_37504297584

Coverage

Microsoft.FluentUI.AspNetCore.Components - 98.3%
Name Line Branch
Microsoft.FluentUI.AspNetCore.Components 98.3% 92.6%
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 79.1% 75.8%
Microsoft.FluentUI.AspNetCore.Components.ColumnBase 99% 90.2%
Microsoft.FluentUI.AspNetCore.Components.ColumnHeaderCapabilities 100% 80%
Microsoft.FluentUI.AspNetCore.Components.ColumnKeyGridSort 96.1% 87.5%
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.ColumnSortMenuItems 100% 100%
Microsoft.FluentUI.AspNetCore.Components.ColumnSortMenuItems 93.5% 100%
Microsoft.FluentUI.AspNetCore.Components.ColumnSortOptions 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.Hierarchic
alSortHelper
88.8% 85%
Microsoft.FluentUI.AspNetCore.Components.DataGrid.Infrastructure.Hierarchic
alSortHelper
88.8% 85%
Microsoft.FluentUI.AspNetCore.Components.DataGrid.Infrastructure.InternalGr
idContext
100% 100%
Microsoft.FluentUI.AspNetCore.Components.DataGridSortColumn 50% 0%
Microsoft.FluentUI.AspNetCore.Components.DataGridSortEventArgs 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 94.1%
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% 82.8%
Microsoft.FluentUI.AspNetCore.Components.DynamicComponentRenderer 100% 100%
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% 87.5%
Microsoft.FluentUI.AspNetCore.Components.Extensions.EnumExtensions 100% 92.3%
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 97.3% 81.1%
Microsoft.FluentUI.AspNetCore.Components.FluentAppBarItem 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentAutocomplete<TOption, TValue
>
96.1% 92%
Microsoft.FluentUI.AspNetCore.Components.FluentAutocomplete<TOption, TValue
>
93.1% 89.3%
Microsoft.FluentUI.AspNetCore.Components.FluentAvatar 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentBadge 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentButton 97.7% 88.8%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendar 96.7% 76.6%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendar 97% 87.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.5%
Microsoft.FluentUI.AspNetCore.Components.FluentColorPicker 97.3% 94.8%
Microsoft.FluentUI.AspNetCore.Components.FluentColorPickerInput 98.6% 95%
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 97.8% 94.7%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid 97.9% 94.4%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGridCell 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGridCell 97.2% 89.7%
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% 92%
Microsoft.FluentUI.AspNetCore.Components.FluentDialog 97.7% 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.3% 95%
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.7% 94.8%
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 73.9% 65%
Microsoft.FluentUI.AspNetCore.Components.FluentInputBase 91.6% 79.7%
Microsoft.FluentUI.AspNetCore.Components.FluentInputFile 98.6% 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% 96.6%
Microsoft.FluentUI.AspNetCore.Components.FluentListBase<TOption, TValue> 91% 89%
Microsoft.FluentUI.AspNetCore.Components.FluentListbox<TOption, TValue> 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentListbox<TOption, TValue> 89.4% 78.5%
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 98.6% 95.8%
Microsoft.FluentUI.AspNetCore.Components.FluentNavBase 100%
Microsoft.FluentUI.AspNetCore.Components.FluentNavCategory 96.6% 91.2%
Microsoft.FluentUI.AspNetCore.Components.FluentNavItem 100% 91.4%
Microsoft.FluentUI.AspNetCore.Components.FluentNavSectionHeader 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentNumberInput 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentNumberInput 100% 97.2%
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% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentOverflow 100% 100%
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 99.3% 91.7%
Microsoft.FluentUI.AspNetCore.Components.FluentRadio 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentRadioGroup 100% 90%
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> 96.7% 75%
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 100% 78.5%
Microsoft.FluentUI.AspNetCore.Components.FluentTextInput 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentTimePicker.TimeEqualityCompa
rer
100% 58.3%
Microsoft.FluentUI.AspNetCore.Components.FluentTimePicker 100% 78.5%
Microsoft.FluentUI.AspNetCore.Components.FluentTimePicker 100% 91.8%
Microsoft.FluentUI.AspNetCore.Components.FluentToast 100% 92.8%
Microsoft.FluentUI.AspNetCore.Components.FluentToastProvider 99% 96.9%
Microsoft.FluentUI.AspNetCore.Components.FluentToggleButton 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentTooltip 97.9% 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
>
95.1% 87.5%
Microsoft.FluentUI.AspNetCore.Components.GridItemsProviderResult 100%
Microsoft.FluentUI.AspNetCore.Components.GridSort<TGridItem, U> 87.5% 79.1%
Microsoft.FluentUI.AspNetCore.Components.GridSort 100% 100%
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.IFluentComponentBase 100%
Microsoft.FluentUI.AspNetCore.Components.IFluentComponentChangeAfterKeyPres
s
100% 100%
Microsoft.FluentUI.AspNetCore.Components.IFluentLocalizer 100% 100%
Microsoft.FluentUI.AspNetCore.Components.IGridSort 0%
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 100% 25%
Microsoft.FluentUI.AspNetCore.Components.JSRuntimeExtensions 100% 25%
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 94.4%
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 98.1% 97.4%
Microsoft.FluentUI.AspNetCore.Components.NotificationService 98.1% 97.4%
Microsoft.FluentUI.AspNetCore.Components.NotificationService 98.1% 97.4%
Microsoft.FluentUI.AspNetCore.Components.OptionsSearchEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.OverflowContext 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 100% 100%
Microsoft.FluentUI.AspNetCore.Components.TemplateColumn 100% 100%
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 94.7%
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 93.3% 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% 89.1%
Microsoft.FluentUI.AspNetCore.Components.Charts.AreaChartSeries 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.ChartAxisValue 100% 85.7%
Microsoft.FluentUI.AspNetCore.Components.Charts.ChartAxisValueJsonConverter 100% 92.8%
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% 85.7%
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.FluentGaugeChart 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentGroupedVerticalBarCha
rt
100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentHeatMapChart 100% 83.3%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentHorizontalBarChart 100% 75%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentHorizontalBarChartWit
hAxis
100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentLineChart 100% 83.3%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentPolarChart 100% 60%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentSankeyChart 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentScatterChart 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentSparklineChart 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentVerticalBarChart 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.FluentVerticalStackedBarCha
rt
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.GaugeChartSegment 100% 75%
Microsoft.FluentUI.AspNetCore.Components.Charts.GroupedVerticalBarChartData 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.GroupedVerticalBarChartData
Point
100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.GroupedVerticalBarChartLine
DataPoint
100%
Microsoft.FluentUI.AspNetCore.Components.Charts.HeatMapChartData 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%
Microsoft.FluentUI.AspNetCore.Components.Charts.HorizontalBarChartWithAxisS
eries
100%
Microsoft.FluentUI.AspNetCore.Components.Charts.LineChartColorFillBar 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.LineChartLineOptions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.LineChartSeries 100% 75%
Microsoft.FluentUI.AspNetCore.Components.Charts.PolarAxisOptions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.PolarChartDataPoint 100% 50%
Microsoft.FluentUI.AspNetCore.Components.Charts.PolarChartSeries 100% 66.6%
Microsoft.FluentUI.AspNetCore.Components.Charts.PolarLineOptions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.SankeyChartData 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.SankeyChartNode 100% 75%
Microsoft.FluentUI.AspNetCore.Components.Charts.ScatterChartSeries 100% 75%
Microsoft.FluentUI.AspNetCore.Components.Charts.SparklineChartData 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.SparklineChartSeries 100% 75%
Microsoft.FluentUI.AspNetCore.Components.Charts.VerticalBarChartDataPoint 100% 75%
Microsoft.FluentUI.AspNetCore.Components.Charts.VerticalStackedBarChartData 100%
Microsoft.FluentUI.AspNetCore.Components.Charts.VerticalStackedBarChartData
Point
100% 75%
Microsoft.FluentUI.AspNetCore.Components.Charts.VerticalStackedBarChartLine
DataPoint
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.

Copilot review overview

🟡 Changes recommended

Single-selection required checks can reject initialized values, and custom validation fields are not revalidated after selection changes.

Review effort: Balanced
Findings: 4 Medium severity · 3 Low severity

Open (7)
What changed in this PR

Refactors required-field messaging into shared input validation logic and extends it across composite controls.

Changes:

  • Centralizes required-message generation, including model and resource messages.
  • Wires composite inputs to outer validation expressions.
  • Adds validation tests and updates snapshots.
File Description
tests/​Core/​Components/​TextInput/​FluentTextInputTests.razor Tests model-derived required messages.
tests/​Core/​Components/​TextArea/​FluentTextAreaTests.razor Tests default required message.
tests/​Core/​Components/​Switch/​FluentSwitchTests.razor Tests required switch behavior.
tests/​Core/​Components/​Switch/​FluentSwitchTests.FluentSwitch_Required.verified.razor.html Updates required snapshot.
tests/​Core/​Components/​Switch/​FluentSwitchTests.FluentSwitch_ReadOnly.verified.razor.html Updates read-only snapshot.
tests/​Core/​Components/​Switch/​FluentSwitchTests.FluentSwitch_LabelTemplate.verified.razor.html Updates label-template snapshot.
tests/​Core/​Components/​Switch/​FluentSwitchTests.FluentSwitch_Default.verified.razor.html Updates default snapshot.
tests/​Core/​Components/​Switch/​FluentSwitchTests.FluentSwitch_Default_TrueValue.verified.razor.html Updates true-value snapshot.
tests/​Core/​Components/​Radio/​FluentRadioTests.FluentRadio_LabelWidth.verified.razor.html Removes outer empty message.
tests/​Core/​Components/​Radio/​FluentRadioTests.FluentRadio_LabelTemplate.verified.razor.html Removes outer empty message.
tests/​Core/​Components/​Radio/​FluentRadioTests.FluentRadio_Label.verified.razor.html Removes outer empty message.
tests/​Core/​Components/​Radio/​FluentRadioTests.FluentRadio_HorizontalOrientation.verified.razor.html Removes outer empty message.
tests/​Core/​Components/​Radio/​FluentRadioTests.FluentRadio_Default.verified.razor.html Removes outer empty message.
tests/​Core/​Components/​Radio/​FluentRadioGroupTests.razor Tests required radio groups.
tests/​Core/​Components/​Radio/​FluentRadioGroupTests.FluentRadioGroup_WithChildContent.verified.razor.html Updates child-content snapshot.
tests/​Core/​Components/​Radio/​FluentRadioGroupTests.FluentRadioGroup_Items.verified.razor.html Updates items snapshot.
tests/​Core/​Components/​Radio/​FluentRadioGroupTests.FluentRadioGroup_Default.verified.razor.html Updates default snapshot.
tests/​Core/​Components/​Number/​FluentNumberTests.razor Tests required number input.
tests/​Core/​Components/​List/​FluentSelectTests.razor Tests select validation paths.
tests/​Core/​Components/​List/​FluentSelectTests.FluentSelect_Width_And_Height.verified.razor.html Updates size snapshot.
tests/​Core/​Components/​List/​FluentSelectTests.FluentSelect_OptionFunctions.verified.razor.html Updates option snapshot.
tests/​Core/​Components/​List/​FluentSelectTests.FluentSelect_Manual.verified.razor.html Updates manual snapshot.
tests/​Core/​Components/​List/​FluentSelectTests.FluentSelect_Label.verified.razor.html Updates label snapshot.
tests/​Core/​Components/​List/​FluentSelectTests.FluentSelect_GetOptionValue_DefaultWhenTypesAreDifferent.verified.razor.html Updates differing-types snapshot.
tests/​Core/​Components/​List/​FluentSelectTests.FluentSelect_Enum.verified.razor.html Updates enum snapshot.
tests/​Core/​Components/​List/​FluentSelectTests.FluentSelect_Default.verified.razor.html Updates default snapshot.
tests/​Core/​Components/​List/​FluentListboxTests.razor Tests listbox validation paths.
tests/​Core/​Components/​List/​FluentListboxTests.FluentListbox_OptionFunctions.verified.razor.html Updates option snapshot.
tests/​Core/​Components/​List/​FluentListboxTests.FluentListbox_Manual.verified.razor.html Updates manual snapshot.
tests/​Core/​Components/​List/​FluentListboxTests.FluentListbox_Label.verified.razor.html Updates label snapshot.
tests/​Core/​Components/​List/​FluentListboxTests.FluentListbox_GetOptionValue_DefaultWhenTypesAreDifferent.verified.razor.html Updates differing-types snapshot.
tests/​Core/​Components/​List/​FluentListboxTests.FluentListbox_Enum.verified.razor.html Updates enum snapshot.
tests/​Core/​Components/​List/​FluentListboxTests.FluentListbox_Default.verified.razor.html Updates default snapshot.
tests/​Core/​Components/​List/​FluentComboboxTests.razor Tests required combobox behavior.
tests/​Core/​Components/​List/​FluentComboboxTests.FluentCombobox_OptionFunctions.verified.razor.html Updates event and message snapshot.
tests/​Core/​Components/​List/​FluentComboboxTests.FluentCombobox_Manual.verified.razor.html Updates manual snapshot.
tests/​Core/​Components/​List/​FluentComboboxTests.FluentCombobox_Label.verified.razor.html Updates label snapshot.
tests/​Core/​Components/​List/​FluentComboboxTests.FluentCombobox_Enum.verified.razor.html Updates enum snapshot.
tests/​Core/​Components/​List/​FluentComboboxTests.FluentCombobox_Default.verified.razor.html Updates default snapshot.
tests/​Core/​Components/​List/​FluentAutocompleteTests.razor Tests composite validation forwarding.
tests/​Core/​Components/​List/​FluentAutocompleteTests.FluentAutocomplete_Label.verified.razor.html Updates label snapshot.
tests/​Core/​Components/​List/​FluentAutocompleteTests.FluentAutocomplete_Default_Items.verified.razor.html Updates items snapshot.
tests/​Core/​Components/​Field/​FluentFieldTests.FluentField_MessageState-error.verified.razor.html Captures error text styling.
tests/​Core/​Components/​DateTimes/​FluentTimePickerTests.razor Tests time-picker validation.
tests/​Core/​Components/​DateTimes/​FluentDatePickerTests.razor Tests date-picker required behavior.
tests/​Core/​Components/​DateTimes/​FluentCalendarTests.razor Tests calendar required behavior.
tests/​Core/​Components/​ColorPicker/​FluentColorPickerInputTests.razor Tests required and model validation.
tests/​Core/​Components/​Checkbox/​FluentCheckboxTests.razor Tests required checkbox behavior.
tests/​Core/​Components/​Checkbox/​FluentCheckboxTests.FluentCheckbox_Size-medium.verified.razor.html Updates medium snapshot.
tests/​Core/​Components/​Checkbox/​FluentCheckboxTests.FluentCheckbox_Size-large.verified.razor.html Updates large snapshot.
tests/​Core/​Components/​Checkbox/​FluentCheckboxTests.FluentCheckbox_Size-999.verified.razor.html Updates invalid-size snapshot.
tests/​Core/​Components/​Checkbox/​FluentCheckboxTests.FluentCheckbox_Size-[empty].verified.razor.html Updates empty-size snapshot.
tests/​Core/​Components/​Checkbox/​FluentCheckboxTests.FluentCheckbox_ShowIndeterminate.verified.razor.html Updates indeterminate snapshot.
tests/​Core/​Components/​Checkbox/​FluentCheckboxTests.FluentCheckbox_Shape-square.verified.razor.html Updates square snapshot.
tests/​Core/​Components/​Checkbox/​FluentCheckboxTests.FluentCheckbox_Shape-circular.verified.razor.html Updates circular snapshot.
tests/​Core/​Components/​Checkbox/​FluentCheckboxTests.FluentCheckbox_Shape-999.verified.razor.html Updates invalid-shape snapshot.
tests/​Core/​Components/​Checkbox/​FluentCheckboxTests.FluentCheckbox_Shape-[empty].verified.razor.html Updates empty-shape snapshot.
tests/​Core/​Components/​Checkbox/​FluentCheckboxTests.FluentCheckbox_LabelTemplate.verified.razor.html Updates label-template snapshot.
tests/​Core/​Components/​Checkbox/​FluentCheckboxTests.FluentCheckbox_EnableThreeState.verified.razor.html Updates three-state snapshot.
tests/​Core/​Components/​Checkbox/​FluentCheckboxTests.FluentCheckbox_Default.verified.razor.html Updates default snapshot.
src/​Core/​Components/​TextInput/​FluentTextInput.razor.cs Uses shared required condition.
src/​Core/​Components/​TextArea/​FluentTextArea.razor.cs Uses shared required condition.
src/​Core/​Components/​Switch/​FluentSwitch.razor.cs Adds required condition.
src/​Core/​Components/​Radio/​FluentRadioGroup.razor.cs Adds required selection condition.
src/​Core/​Components/​NumberInput/​FluentNumberInput.razor.cs Uses shared required condition.
src/​Core/​Components/​List/​FluentSelect.razor.cs Adds list validation expressions.
src/​Core/​Components/​List/​FluentSelect.razor Connects field validation expression.
src/​Core/​Components/​List/​FluentListbox.razor.cs Adds listbox validation expressions.
src/​Core/​Components/​List/​FluentListbox.razor Connects field validation expression.
src/​Core/​Components/​List/​FluentAutocomplete.razor.cs Forwards validation and messages.
src/​Core/​Components/​List/​FluentAutocomplete.razor Configures inner text input validation.
src/​Core/​Components/​Field/​FluentField.razor.cs Exposes field-identifier creation internally.
src/​Core/​Components/​Field/​FluentField.razor Prioritizes validation messages.
src/​Core/​Components/​DateTime/​FluentTimePicker.razor.cs Uses shared required condition.
src/​Core/​Components/​DateTime/​FluentTimePicker.razor Forwards outer value expression.
src/​Core/​Components/​DateTime/​FluentDatePicker.razor.cs Uses shared required condition.
src/​Core/​Components/​DateTime/​FluentCalendar.razor.cs Uses localized shared condition.
src/​Core/​Components/​ColorPicker/​FluentColorPickerInput.razor.cs Integrates shared required logic.
src/​Core/​Components/​ColorPicker/​FluentColorPickerInput.razor Forwards outer value expression.
src/​Core/​Components/​Checkbox/​FluentCheckbox.razor.cs Adds required condition.
src/​Core/​Components/​Base/​FluentInputBase.Validation.cs Introduces shared validation helpers.
examples/​Tools/​FluentUI.Demo.SampleData/​Starship.cs Adds explicit required messages.
examples/​Demo/​FluentUI.Demo.Client/​Documentation/​Components/​Forms/​Examples/​BasicForm.razor.cs Leaves production date unset.
examples/​Demo/​FluentUI.Demo.Client/​Documentation/​Components/​Forms/​Examples/​BasicForm.razor Marks teleporter switch required.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/Core/Components/List/FluentAutocomplete.razor.cs
Comment thread src/Core/Components/List/FluentListbox.razor.cs Outdated
Comment thread src/Core/Components/List/FluentListbox.razor.cs
Comment thread src/Core/Components/List/FluentSelect.razor.cs Outdated
Comment thread tests/Core/Components/DateTimes/FluentCalendarTests.razor
Comment thread tests/Core/Components/DateTimes/FluentDatePickerTests.razor

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.

Copilot review overview

🟡 Changes recommended

Validation-field routing is inconsistent and the default required condition suppresses existing configured helper messages.

Review effort: Balanced
Findings: 1 Medium severity

Open (1)
Resolved since last review (7)
Previously missed (4)

In code that hasn't changed since last review

Medium severity Resolve ValidationFieldFor before falling back to FieldIdentifier

src/​Core/​Components/​Base/​FluentInputBase.Validation.cs:60

The default path ignores ValidationFieldFor and always uses the component's ValueExpression-based FieldIdentifier. For inputs such as FluentTextInput, the field renders validation for ValidationFieldFor, but this condition queries metadata/messages from a different property, so focus-out required text can fall back to the generic message instead of the custom model message. Resolve ValidationFieldFor before falling back to FieldIdentifier.

This issue also appears on line 64 of the same file.

Medium severity Preserve ValidationFieldFor when forwarding text input expression

src/​Core/​Components/​ColorPicker/​FluentColorPickerInput.razor:6

Forwarding only ValueExpression drops a caller-supplied ValidationFieldFor, so the inner text input can display validation for a different model field than the wrapper requested. Pass the resolved ValidationFieldExpression instead.

Medium severity Use resolved validation field for metadata and messages

src/​Core/​Components/​ColorPicker/​FluentColorPickerInput.razor.cs:47

This direct helper path still defaults to the outer component's FieldIdentifier, so a caller-supplied ValidationFieldFor is ignored when checking messages and reading its [Required] metadata. Resolve the same ValidationFieldExpression forwarded to the inner input and pass its identifier to both helper calls.

Medium severity Forward resolved validation expression to the inner combobox

src/​Core/​Components/​DateTime/​FluentTimePicker.razor:9

Forwarding ValueExpression bypasses a caller-supplied ValidationFieldFor, so the inner combobox renders EditContext messages for the bound value rather than the explicitly selected validation field. Pass ValidationFieldExpression (ValidationFieldFor ?? ValueExpression) to preserve the wrapper's validation contract.

This issue also appears on line 49 of the same file.

Comment thread src/Core/Components/List/FluentSelect.razor.cs
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

This branch has not been deployed

No deployments
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.

2 participants