Skip to content

Prep for release v4.14.4 - #5053

Merged
Denis Voituron (dvoituron) merged 9 commits into
mainfrom
prep-for-release
Jul 29, 2026
Merged

Denis Voituron (dvoituron) merged 9 commits into
mainfrom
prep-for-release

Conversation

@vnbaaij

Copy link
Copy Markdown
Collaborator
  • Update version
  • Update WhatsNew files
  • Update homepage
  • Update Icons to 1.1.334

Adam Ratzman (adamint) and others added 8 commits July 28, 2026 17:11
* Fix anchored region focus across shadow DOM

* Remove Playwright test infrastructure

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Exclude the open popup when finding the next page element after the anchor

CloseAsync is invoked after focus() and resolves asynchronously, so the popup is
still in the DOM during traversal. For popups rendered inline next to their
anchor (FluentPopover, and FluentMenu with DrawMenuWithoutService), the next
focusable element in document order after the anchor is the popup's own content,
so Tab from the last item looped back into the popup instead of leaving it.

Filter the popup's composed subtree out of the candidate list before locating
the anchor, and take the following candidate without wrapping.

* Add Popover keyboard navigation demo example

Adds an example where the popover is declared between its anchor and the
next control, which is the arrangement the existing Popover examples do
not cover and the one the anchored region focus fix addresses.

* update popover example

---------

Co-authored-by: Vincent Baaij <vnbaaij@outlook.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Denis Voituron <dvoituron@outlook.com>
* Fix popover focus return on tab navigation

* Fix popover focus traversal

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0833666-e36b-4435-a085-97eb64deb98f

* Drop the anchored region changes; they are superseded by #5041

#5041 rewrites the same focus traversal in FluentAnchoredRegion.razor.js and
covers everything this branch did there, so keeping both would just conflict.
This branch now carries only the FluentDataGrid column resize popup fix (#5002).

* Resolve focus origin to its owning focusable element on column resize Tab

Fluent web components delegate focus into their shadow root, so
event.composedPath()[0] is the inner shadow control while
getFocusableElements() collects the fluent-* host whenever the host itself
is focusable (the resize buttons set tabindex="0"). indexOf() therefore
returned -1, no Tab boundary was ever detected, and the resize popup stayed
open when tabbing out of it.

Walk up the composed tree to map the event origin onto the collected
element, and guard the last-element check against -1 so an empty list can no
longer look like a boundary.

* Collect focusable elements nested in a Fluent component's shadow root

The column resize popup in Exact mode renders a FluentTextField, whose input
sits inside a wrapper in the shadow root rather than being a direct child of
it. It was therefore never collected, so Shift+Tab out of the text field left
the popup open and Shift+Tab out of the first button skipped the text field
and closed the popup instead.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Vincent Baaij <vnbaaij@outlook.com>
Copilot-Session: c0833666-e36b-4435-a085-97eb64deb98f
- Update icons to 1.1.334
- Update home
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

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

Prepares the repo for the v4.14.4 release by updating versioning metadata, changelogs/demo docs, demo homepage “Latest releases”, and pulling in the Fluent UI System Icons 1.1.334 update (generated icon classes). It also includes keyboard-focus improvements for anchored popups and the DataGrid column resize popup.

Changes:

  • Bump version from 4.14.3 to 4.14.4 (build props + pipeline version variable).
  • Update What’s New content in root and demo docs; add demo homepage release entry.
  • Update keyboard navigation/focus handling for AnchoredRegion/Popover and DataGrid column resize; regenerate icon sets.

Reviewed changes

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

Show a summary per file
File Description
WHATSNEW.md Adds v4.14.4 changelog entry.
src/Core/Components/DataGrid/FluentDataGrid.razor.js Adds Tab boundary handling for the column resize popup focus flow.
src/Core/Components/AnchoredRegion/FluentAnchoredRegion.razor.js Improves focus traversal across shadow DOM/inline popups and popover keyboard behavior.
src/Assets/FluentUI.Icons/Icons/Regular/Regular12.cs Regenerated Regular 12px icons for updated system icons.
src/Assets/FluentUI.Icons/Icons/Light/Light32.cs Regenerated Light 32px icons for updated system icons.
src/Assets/FluentUI.Icons/Icons/Filled/Filled48.cs Regenerated Filled 48px icons for updated system icons.
src/Assets/FluentUI.Icons/Icons/Filled/Filled12.cs Regenerated Filled 12px icons for updated system icons.
examples/Demo/Shared/wwwroot/docs/WhatsNew.md Adds v4.14.4 changelog entry for the demo docs.
examples/Demo/Shared/Pages/Popover/PopoverPage.razor Adds a new demo section describing keyboard navigation behavior.
examples/Demo/Shared/Pages/Popover/Examples/PopoverKeyboardNavigation.razor New demo example component for popover keyboard navigation.
examples/Demo/Shared/Pages/Home/Home.razor Updates “Latest releases” list to include v4.14.4.
examples/Demo/Shared/Microsoft.FluentUI.AspNetCore.Components.xml Updates generated XML docs ordering/content (includes moved members).
eng/pipelines/version.yml Updates pipeline FileVersion to 4.14.4.
Directory.Build.props Updates VersionFile/VersionPrefix to 4.14.4.
Files not reviewed (1)
  • examples/Demo/Shared/Microsoft.FluentUI.AspNetCore.Components.xml: Generated file
Comments suppressed due to low confidence (1)

src/Core/Components/DataGrid/FluentDataGrid.razor.js:26

  • Same compatibility concern as above: checkVisibility() may be undefined in some browsers, which would throw here when filtering focusables.
    return focusableElements.filter(el => !!el && el.tabIndex !== -1 && el.checkVisibility());

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/Core/Components/DataGrid/FluentDataGrid.razor.js
Comment thread src/Core/Components/AnchoredRegion/FluentAnchoredRegion.razor.js
@dvoituron
Denis Voituron (dvoituron) enabled auto-merge (squash) July 29, 2026 11:39
@dvoituron
Denis Voituron (dvoituron) merged commit ec340ba into main Jul 29, 2026
4 checks passed
@dvoituron
Denis Voituron (dvoituron) deleted the prep-for-release branch July 29, 2026 11:58
Vincent Baaij (vnbaaij) added a commit that referenced this pull request Sep 26, 2026
* Update NuGet package for fixing CVE. See dotnet/announcements#327

* Non-altering change to force mirroring

* Clean up issue tester

* Small text formatting change to force deploy

* Update workflows

* Update README

* Update to latest JavaScript SDK

* Add global.json

* Update workflow to use .NET 9

* Remove net10.0 TFM for now

* Set dotnet 9.0.204

* Update deploy_demo.yml to use 9.0.204

* Update home page

* Also *temporarily* remove .NET 10 TFM for DataGrid Adapters

* Update workflows

* Try to get preview docs up again

* Use latest .NET 9 SDK for GH Actions

* Remove mention of v3 site

* Update global.json

* Test deploy to new SWA

* Update JavaScript SDK

* Try older JavaScript SDK

* Use .204 SDK on all actions

* Newer JavaScript SDK with .NET .204 SDK

* Deploy demo to 2 SWAs

* Fix id's

* Evrything tied to .204 and add sub subscription

* Get sources copied

* Try again

* Tweak message

* Try again

* Try again

* Try swa.config.json

* Try extension

* Revert config.json change

* Use correct codeql action

* Include build step in actions

* Set SDK for ADO pipelines

* Add es metadata (#4131)

* Merge pull request 53130 from invBootstrap into main

* Update TSAOptions codebaseName (#4196)

* Update TSAOptions codebaseName

* Try to start the Mirroring

* Update pipeline for real signing with PME enforcement

* Add a trigger on main and a tag (v*)

* Overwrite FocusAsync in FluentAutoComplete (#4230)

Co-authored-by: Vincent Baaij <vnbaaij@outlook.com>

* Update whats new after cherry pick

* Try to fix deploy error

* Different fix

* Take 3

* Take 4

* Take 5

* Take 6

* Disable main brancg in the All-lib YAML file

* Fix CVE-2025-5889 (#4292)

* Update version and update publish local script

* Use correct version in global.json

* ADO Pipelines no longer need to be tied to specific net 9 sdk

* Delete global.json

* Prep for release v4.14.4 (#5053)

* Fix anchored region focus across shadow DOM and inline popups (#5041)

* Fix anchored region focus across shadow DOM

* Remove Playwright test infrastructure

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Exclude the open popup when finding the next page element after the anchor

CloseAsync is invoked after focus() and resolves asynchronously, so the popup is
still in the DOM during traversal. For popups rendered inline next to their
anchor (FluentPopover, and FluentMenu with DrawMenuWithoutService), the next
focusable element in document order after the anchor is the popup's own content,
so Tab from the last item looped back into the popup instead of leaving it.

Filter the popup's composed subtree out of the candidate list before locating
the anchor, and take the following candidate without wrapping.

* Add Popover keyboard navigation demo example

Adds an example where the popover is declared between its anchor and the
next control, which is the arrangement the existing Popover examples do
not cover and the one the anchored region focus fix addresses.

* update popover example

---------

Co-authored-by: Vincent Baaij <vnbaaij@outlook.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Denis Voituron <dvoituron@outlook.com>

* Fix FluentDataGrid column width popup focus on tab navigation (#5003)

* Fix popover focus return on tab navigation

* Fix popover focus traversal

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0833666-e36b-4435-a085-97eb64deb98f

* Drop the anchored region changes; they are superseded by #5041

#5041 rewrites the same focus traversal in FluentAnchoredRegion.razor.js and
covers everything this branch did there, so keeping both would just conflict.
This branch now carries only the FluentDataGrid column resize popup fix (#5002).

* Resolve focus origin to its owning focusable element on column resize Tab

Fluent web components delegate focus into their shadow root, so
event.composedPath()[0] is the inner shadow control while
getFocusableElements() collects the fluent-* host whenever the host itself
is focusable (the resize buttons set tabindex="0"). indexOf() therefore
returned -1, no Tab boundary was ever detected, and the resize popup stayed
open when tabbing out of it.

Walk up the composed tree to map the event origin onto the collected
element, and guard the last-element check against -1 so an empty list can no
longer look like a boundary.

* Collect focusable elements nested in a Fluent component's shadow root

The column resize popup in Exact mode renders a FluentTextField, whose input
sits inside a wrapper in the shadow root rather than being a direct child of
it. It was therefore never collected, so Shift+Tab out of the text field left
the popup open and Shift+Tab out of the first button skipped the text field
and closed the popup instead.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Vincent Baaij <vnbaaij@outlook.com>
Copilot-Session: c0833666-e36b-4435-a085-97eb64deb98f

* - Update WhatsNew files
- Update icons to 1.1.334
- Update home

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* - Update version number

---------

Co-authored-by: Adam Ratzman <adam@adamratzman.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Denis Voituron <dvoituron@outlook.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0833666-e36b-4435-a085-97eb64deb98f

* - Fix compilation wrning
- Edit homepage (v5 released)

* Prep v4.14.5 release

* Update whatsnew's

* Fix links in Readme

---------

Co-authored-by: Denis Voituron <dvoituron@outlook.com>
Co-authored-by: MerlinBot <MerlinBot>
Co-authored-by: Marvin Klein <32510006+MarvinKlein1508@users.noreply.github.com>
Co-authored-by: Adam Ratzman <adam@adamratzman.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0833666-e36b-4435-a085-97eb64deb98f
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.

4 participants