Skip to content

fix(react-headless-components-preview): dismiss Popover on focus exit by default - #36929

Open
Paul Mardling (PaulGMardling) wants to merge 8 commits into
microsoft:masterfrom
PaulGMardling:paulgmardling-39630-headless-focus-dismissal
Open

Paul Mardling (PaulGMardling) wants to merge 8 commits into
microsoft:masterfrom
PaulGMardling:paulgmardling-39630-headless-focus-dismissal

Conversation

@PaulGMardling

@PaulGMardling Paul Mardling (PaulGMardling) commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Previous Behavior

Non-modal headless Popover stays open after Tab moves focus outside. Enabling trapFocus prevents reaching the next page control instead of fixing dismissal.

New Behavior

Automatically dismiss non-modal Popover when focus leaves the trigger/surface logical boundary, preserving destination focus and controlled accept/reject behavior. No public API additions; modal behavior is unchanged.

  • Retain owned portal, shadow-root and iframe focus; ignore window blur alone and initial external focus.
  • Preserve native-close restoration during content updates and safely clean up navigated-frame observers and synchronous unmounts.
  • Establish Fluent Portal ownership during layout; includes a separate Portal patch change file.

Cross-origin frame transitions use one scoped 100 ms sampler per Popover. An entire round trip between samples can be missed; instantaneous/universal detection is not guaranteed. InfoLabel/InfoButton fixes are separate work.

Validation:

  • yarn nx run react-headless-components-preview:test --runInBand — 1,305 tests passed. Full React 17 and 18 unit runs also passed (1,305 each); native browser regressions passed in Chrome and both compatibility browsers.
  • yarn nx run react-headless-components-preview:bundle-size --excludeTaskDependencies --skip-nx-cache — measured TeachingPopover at 37,107 bytes minified versus the CI baseline's 33,739. The unchanged 10% minified-size gate passes (9.98% growth); gzip is 12,445 versus 11,083 bytes.
  • yarn nx generate @fluentui/workspace-plugin:normalize-package-dependencies --verify — passed.
  • yarn nx run react-headless-components-preview:type-check --excludeTaskDependencies and yarn nx run react-headless-components-preview:lint — passed; public API reports unchanged.

Fixes for all three previous CI failures are pushed in 92e88b4e9e; hosted checks must rerun. Windows Edge evidence covers earlier head 9c5cd5993c, not these latest repairs. Latest-head Windows/Narrator and TCS verification remain outstanding.

Related Issue(s)

  • References ADO 39630; ticket closure follows TCS verification.

…t dismissal

Preserve destination focus when a non-modal Popover's logical focus boundary is exited. Keep the behavior opt-in and honor controlled state, native closing, and existing modal semantics.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 44bec1f8-d9c2-4333-a285-7270b37fe5da
@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

📊 Bundle size report

Package & Exports Baseline (minified/GZIP) PR Change
react-charts
AreaChart
402.942 kB
125.854 kB
402.933 kB
125.855 kB
-9 B
1 B
react-charts
DeclarativeChart
756.223 kB
221.658 kB
756.214 kB
221.659 kB
-9 B
1 B
react-charts
DonutChart
313.421 kB
96.687 kB
313.412 kB
96.688 kB
-9 B
1 B
react-charts
FunnelChart
304.836 kB
93.372 kB
304.827 kB
93.373 kB
-9 B
1 B
react-charts
GanttChart
385.85 kB
120.344 kB
385.84 kB
120.344 kB
-10 B
react-charts
GaugeChart
313.382 kB
96.231 kB
313.373 kB
96.234 kB
-9 B
3 B
react-charts
GroupedVerticalBarChart
394.163 kB
123.176 kB
394.154 kB
123.176 kB
-9 B
react-charts
HeatMapChart
388.057 kB
121.294 kB
388.048 kB
121.295 kB
-9 B
1 B
react-charts
HorizontalBarChart
293.131 kB
89.081 kB
293.122 kB
89.081 kB
-9 B
react-charts
Legends
232.566 kB
69.71 kB
232.556 kB
69.71 kB
-10 B
react-charts
LineChart
414.183 kB
129.026 kB
414.174 kB
129.026 kB
-9 B
react-charts
PolarChart
341.319 kB
106.588 kB
341.31 kB
106.588 kB
-9 B
react-charts
SankeyChart
209.067 kB
67.203 kB
209.058 kB
67.203 kB
-9 B
react-charts
ScatterChart
393.396 kB
123.028 kB
393.387 kB
123.028 kB
-9 B
react-charts
VerticalBarChart
430.382 kB
128.028 kB
430.373 kB
128.03 kB
-9 B
2 B
react-charts
VerticalStackedBarChart
399.949 kB
124.471 kB
399.94 kB
124.47 kB
-9 B
-1 B
react-combobox
Combobox (including child components)
137.042 kB
44.29 kB
137.032 kB
44.287 kB
-10 B
-3 B
react-combobox
Dropdown (including child components)
135.723 kB
43.711 kB
135.713 kB
43.711 kB
-10 B
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
223.278 kB
67.379 kB
223.268 kB
67.379 kB
-10 B
react-components
react-components: entire library
1.283 MB
322.134 kB
1.283 MB
322.133 kB
-9 B
-1 B
react-datepicker-compat
DatePicker Compat
216.641 kB
64.398 kB
216.625 kB
64.408 kB
-16 B
10 B
react-headless-components-preview
react-headless-components-preview: entire library
228.365 kB
67.574 kB
231.349 kB
68.721 kB
2.984 kB
1.147 kB
react-headless-components-preview
@fluentui/react-headless-components-preview/teaching-popover
33.739 kB
11.083 kB
37.107 kB
12.445 kB
3.368 kB
1.362 kB
react-menu
Menu (including children components)
156.704 kB
49.751 kB
156.694 kB
49.751 kB
-10 B
react-menu
Menu (including selectable components)
159.869 kB
50.385 kB
159.859 kB
50.381 kB
-10 B
-4 B
react-popover
Popover
122.078 kB
39.348 kB
122.068 kB
39.35 kB
-10 B
2 B
react-portal
Portal
13.959 kB
5.447 kB
14.066 kB
5.464 kB
107 B
17 B
react-tag-picker
@fluentui/react-tag-picker - package
171.164 kB
53.355 kB
171.154 kB
53.356 kB
-10 B
1 B
react-timepicker-compat
TimePicker
139.754 kB
45.561 kB
139.744 kB
45.561 kB
-10 B
react-toast
Toast (including Toaster)
90.483 kB
28.281 kB
90.474 kB
28.281 kB
-9 B
react-tooltip
Tooltip
54.989 kB
19.528 kB
54.979 kB
19.529 kB
-10 B
1 B
Unchanged fixtures
Package & Exports Size (minified/GZIP)
global-context
createContext
510 B
326 B
global-context
createContextSelector
531 B
334 B
keyboard-key
keyboard-key package
3.927 kB
1.99 kB
keyboard-keys
Multiple keyCodes
50 B
70 B
keyboard-keys
Multiple keys
87 B
94 B
keyboard-keys
Single key
44 B
64 B
keyboard-keys
Single keyCode
39 B
59 B
priority-overflow
createOverflowManager
5.416 kB
2.191 kB
react
ActivityItem
71.827 kB
23.603 kB
react
Announced
39.065 kB
13.523 kB
react
Autofill
15.557 kB
4.803 kB
react
Breadcrumb
201.081 kB
59.91 kB
react
Button
194.713 kB
56.19 kB
react
ButtonGrid
179.546 kB
54.199 kB
react
Calendar
121.593 kB
37.09 kB
react
Callout
84.756 kB
27.836 kB
react
Check
53.774 kB
18.079 kB
react
Checkbox
60.527 kB
20.13 kB
react
ChoiceGroup
66.038 kB
21.703 kB
react
ChoiceGroupOption
59.333 kB
19.594 kB
react
Coachmark
93.132 kB
29.567 kB
react
Color
7.94 kB
3.172 kB
react
ColorPicker
135.394 kB
42.386 kB
react
ComboBox
250.892 kB
71.805 kB
react
CommandBar
202.143 kB
59.685 kB
react
ContextualMenu
154.579 kB
47.83 kB
react
DatePicker
183.523 kB
56.145 kB
react
DateTimeUtilities
5.447 kB
1.917 kB
react
DetailsList
230.308 kB
66.152 kB
react
Dialog
210.376 kB
62.633 kB
react
Divider
20.182 kB
7.074 kB
react
DocumentCard
216.129 kB
63.993 kB
react
DragDrop
8.546 kB
2.789 kB
react
DraggableZone
34.867 kB
11.718 kB
react
Dropdown
233.381 kB
68.269 kB
react
ExtendedPicker
97.386 kB
28.087 kB
react
Fabric
42.305 kB
14.594 kB
react
Facepile
209.694 kB
62.698 kB
react
FloatingPicker
241.15 kB
68.562 kB
react
FocusTrapZone
17.462 kB
6.12 kB
react
FocusZone
55.696 kB
17.674 kB
react
Grid
179.546 kB
54.199 kB
react
GroupedList
135.516 kB
40.954 kB
react
GroupedListV2
123.14 kB
38.026 kB
react
HoverCard
97.22 kB
30.948 kB
react
Icon
52.459 kB
17.507 kB
react
Icons
66.918 kB
24.614 kB
react
Image
47.469 kB
15.914 kB
react
Keytip
81.786 kB
26.887 kB
react
KeytipData
14.546 kB
4.828 kB
react
KeytipLayer
103.529 kB
32.149 kB
react
Keytips
106.3 kB
33.156 kB
react
Label
38.911 kB
13.484 kB
react
Layer
48.647 kB
16.599 kB
react
Link
40.245 kB
13.906 kB
react
List
39.953 kB
12.657 kB
react
MarqueeSelection
75.078 kB
22.66 kB
react
MessageBar
189.694 kB
56.635 kB
react
Modal
94.148 kB
30.451 kB
react
Nav
187.163 kB
56.028 kB
react
OverflowSet
33.922 kB
11.493 kB
react
Overlay
41.474 kB
14.324 kB
react
Panel
200.622 kB
59.618 kB
react
Persona
115.043 kB
36.722 kB
react
PersonaCoin
115.043 kB
36.722 kB
react
PersonaPresence
58.644 kB
19.613 kB
react
Pickers
298.149 kB
83.358 kB
react
Pivot
188.02 kB
56.764 kB
react
Popup
12.427 kB
4.226 kB
react
Positioning
23.45 kB
7.878 kB
react
PositioningContainer
73.984 kB
23.94 kB
react
ProgressIndicator
40.064 kB
13.768 kB
react
Rating
82.626 kB
26.36 kB
react
Fluent UI React (entire library)
1.018 MB
283.771 kB
react
ResizeGroup
13.467 kB
4.42 kB
react
ResponsiveMode
8.271 kB
3.006 kB
react
ScrollablePane
56.088 kB
17.955 kB
react
SearchBox
187.934 kB
56.206 kB
react
SelectableOption
927 B
479 B
react
SelectedItemsList
231.646 kB
67.506 kB
react
Selection
43.019 kB
12.515 kB
react
Separator
35.952 kB
12.359 kB
react
Shimmer
49.795 kB
16.486 kB
react
ShimmeredDetailsList
241.04 kB
68.863 kB
react
Slider
58.19 kB
19.443 kB
react
SpinButton
191.6 kB
57.301 kB
react
Spinner
42.344 kB
14.701 kB
react
Stack
42.643 kB
14.594 kB
react
Sticky
33.164 kB
10.726 kB
react
Styling
46.665 kB
15.362 kB
react
SwatchColorPicker
189.899 kB
57.734 kB
react
TeachingBubble
204.91 kB
60.62 kB
react
Text
37.475 kB
13.004 kB
react
TextField
81.327 kB
25.554 kB
react
Theme
44.125 kB
14.405 kB
react
ThemeGenerator
12.525 kB
4.15 kB
react
TimePicker
240.706 kB
69.592 kB
react
Toggle
46.766 kB
16.205 kB
react
Tooltip
87.56 kB
28.389 kB
react
Utilities
83.437 kB
25.4 kB
react
Viewport
24.462 kB
7.84 kB
react
WeeklyDayPicker
101.844 kB
31.918 kB
react
WindowProvider
1.262 kB
614 B
react-accordion
Accordion (including children components)
87.834 kB
27.741 kB
react-aria
ARIA - useARIAButtonProps
1.35 kB
631 B
react-aria
ARIA - AriaLiveAnnouncer
3.259 kB
1.498 kB
react-avatar
Avatar
49.166 kB
15.658 kB
react-avatar
AvatarGroup
14.126 kB
5.692 kB
react-avatar
AvatarGroupItem
58.643 kB
18.172 kB
react-badge
Badge
24.49 kB
7.925 kB
react-badge
CounterBadge
25.212 kB
8.184 kB
react-badge
PresenceBadge
25.012 kB
9.105 kB
react-breadcrumb
@fluentui/react-breadcrumb - package
103.23 kB
29.071 kB
react-button
Button
34.065 kB
9.04 kB
react-button
CompoundButton
40.945 kB
10.352 kB
react-button
MenuButton
39.729 kB
10.713 kB
react-button
SplitButton
49.148 kB
12.471 kB
react-button
ToggleButton
54.14 kB
11.256 kB
react-calendar-compat
Calendar Compat
142.719 kB
40.558 kB
react-calendar-preview
Calendar
159.337 kB
46.707 kB
react-card
Card - All
93.139 kB
27.125 kB
react-card
Card
85.734 kB
25.241 kB
react-card
CardFooter
13.021 kB
5.17 kB
react-card
CardHeader
15.568 kB
6.015 kB
react-card
CardPreview
13.099 kB
5.282 kB
react-charting
AreaChart
305.604 kB
96.064 kB
react-charting
ChartHoverCard
37.583 kB
12.898 kB
react-charting
DeclarativeChart
682.303 kB
194.265 kB
react-charting
DonutChart
204.722 kB
64.446 kB
react-charting
GanttChart
287.668 kB
90.971 kB
react-charting
GaugeChart
198.031 kB
61.913 kB
react-charting
GroupedVerticalBarChart
297.52 kB
93.326 kB
react-charting
HeatMapChart
288.382 kB
90.725 kB
react-charting
HorizontalBarChart
127.789 kB
40.246 kB
react-charting
HorizontalBarChartWithAxis
298.841 kB
93.377 kB
react-charting
Legends
152.339 kB
46.989 kB
react-charting
LineChart
335.132 kB
103.104 kB
react-charting
MultiStackedBarChart
182.884 kB
55.982 kB
react-charting
PieChart
135.373 kB
42.885 kB
react-charting
PolarChart
236.069 kB
74.906 kB
react-charting
SankeyChart
158.995 kB
49.787 kB
react-charting
ScatterChart
291.625 kB
92.346 kB
react-charting
Sparkline
88.444 kB
29.993 kB
react-charting
StackedBarChart
176.459 kB
53.543 kB
react-charting
TreeChart
86.064 kB
27.233 kB
react-charting
VerticalBarChart
308.514 kB
95.448 kB
react-charting
VerticalStackedBarChart
305.607 kB
95.128 kB
react-charts
HorizontalBarChartWithAxis
63 B
83 B
react-charts
Sparkline
79.774 kB
26.585 kB
react-checkbox
Checkbox
31.71 kB
11.289 kB
react-color-picker
ColorArea
27.778 kB
10.463 kB
react-color-picker
ColorPicker
12.913 kB
5.244 kB
react-color-picker
ColorSlider
22.818 kB
9.023 kB
react-components
react-components: all base hooks
219.615 kB
68.539 kB
react-components
react-components: Button, FluentProvider & webLightTheme
68.214 kB
19.863 kB
react-components
react-components: FluentProvider & webLightTheme
41.444 kB
13.893 kB
react-dialog
Dialog (including children components)
86.865 kB
26.93 kB
react-divider
Divider
16.488 kB
5.964 kB
react-field
Field
23.331 kB
8.683 kB
react-headless-components-preview
@fluentui/react-headless-components-preview/tag-picker
50.254 kB
16.375 kB
react-image
Image
13.855 kB
5.586 kB
react-input
Input
26.594 kB
8.782 kB
react-jsx-runtime
Classic Pragma
1.282 kB
613 B
react-jsx-runtime
JSX Dev Runtime
2.137 kB
988 B
react-jsx-runtime
JSX Runtime
2.134 kB
948 B
react-label
Label
13.201 kB
5.31 kB
react-link
Link
16.77 kB
6.61 kB
react-list
List
71.03 kB
21.795 kB
react-list
ListItem
95.718 kB
29.156 kB
react-message-bar
MessageBar (all components)
26.349 kB
9.34 kB
react-motion
@fluentui/react-motion - createMotionComponent()
4.269 kB
1.864 kB
react-motion
@fluentui/react-motion - createPresenceComponent()
6.001 kB
2.482 kB
react-motion
@fluentui/react-motion - PresenceGroup
1.715 kB
816 B
react-overflow
hooks only
10.203 kB
3.696 kB
react-persona
Persona
56.119 kB
17.602 kB
react-portal-compat
PortalCompatProvider
5.198 kB
2.104 kB
react-positioning
usePositioning
29.156 kB
10.251 kB
react-positioning
useSafeZoneArea
13.461 kB
5.425 kB
react-progress
ProgressBar
20.566 kB
7.98 kB
react-provider
FluentProvider
20.836 kB
8.049 kB
react-radio
Radio
28.38 kB
9.229 kB
react-radio
RadioGroup
14.286 kB
5.757 kB
react-range-slider-preview
RangeSlider
39.889 kB
13.475 kB
react-select
Select
27.184 kB
9.835 kB
react-slider
Slider
33.727 kB
11.61 kB
react-spinbutton
SpinButton
34.735 kB
11.44 kB
react-spinner
Spinner
23.962 kB
7.926 kB
react-swatch-picker
@fluentui/react-swatch-picker - package
89.202 kB
26.275 kB
react-switch
Switch
34.378 kB
10.933 kB
react-table
DataGrid
143.634 kB
42.543 kB
react-table
Table (Primitives only)
38.903 kB
13.017 kB
react-table
Table as DataGrid
119.146 kB
33.785 kB
react-table
Table (Selection only)
67.409 kB
19.301 kB
react-table
Table (Sort only)
66.072 kB
18.926 kB
react-tags
InteractionTag
13.986 kB
5.531 kB
react-tags
Tag
30.614 kB
9.763 kB
react-tags
TagGroup
69.63 kB
21.545 kB
react-teaching-popover
TeachingPopover
97.048 kB
30.59 kB
react-text
Text - Default
15.542 kB
6.022 kB
react-text
Text - Wrappers
18.706 kB
6.343 kB
react-textarea
Textarea
24.959 kB
9.052 kB
react-theme
Single theme token import
69 B
89 B
react-theme
Teams: all themes
37.967 kB
7.989 kB
react-theme
Teams: Light theme
20.797 kB
5.863 kB
react-tree
FlatTree
132.701 kB
39.468 kB
react-tree
PersonaFlatTree
134.558 kB
39.973 kB
react-tree
PersonaTree
130.645 kB
38.769 kB
react-tree
Tree
128.788 kB
38.287 kB
react-utilities
SSRProvider
182 B
160 B
🤖 This report was generated against de1d16969e9017dc3d0784783d94d6eb83583ac3

@github-actions

Copy link
Copy Markdown

Pull request demo site: URL

Make non-modal focus-exit dismissal built-in accessibility behavior rather than a consumer opt-in. Remove the proposed public API additions and cover default TeachingPopover and InfoLabel behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 44bec1f8-d9c2-4333-a285-7270b37fe5da
@PaulGMardling Paul Mardling (PaulGMardling) changed the title feat(react-headless-components-preview): add opt-in Popover focus-exit dismissal fix(react-headless-components-preview): dismiss Popover on focus exit by default Oct 19, 2026
…tion

Preserve logical React portal focus through external shadow roots, retain native listeners across commits, and detect confirmed iframe focus exits without treating window blur alone as dismissal. Add unit and real-browser regressions while keeping the public API unchanged.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 44bec1f8-d9c2-4333-a285-7270b37fe5da
…ship

Classify the live focus destination after Portal layout ownership settles, observe both trigger and surface portal roots, and retain bounded frame observation with direct same-origin events. Preserve native close intent through concurrent content updates and add native-browser and cleanup regressions. Keep the public API unchanged.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 44bec1f8-d9c2-4333-a285-7270b37fe5da
…root chains

Observe every shadow ancestor for owned React focus, including nested closed roots. Cover whole-Popover and Fluent Portal nesting plus the approved bounded opaque-frame fallback without mixing InfoLabel changes into this branch.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 44bec1f8-d9c2-4333-a285-7270b37fe5da
…ycle

Preserve native-close focus ownership through content replacement, resolve owned focus across accessible iframe chains, and retire navigated document observers safely. Guard reentrant unmounts against stale observations and resource allocation while retaining cached-document subscriptions for Back/Forward restoration. Add native browser and unit regressions without changing the public API.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 44bec1f8-d9c2-4333-a285-7270b37fe5da
@PaulGMardling
Paul Mardling (PaulGMardling) marked this pull request as ready for review October 20, 2026 16:00
Keep master's released dependency versions and align the test-only Portal dependency with version 9.8.17. Preserve the existing Popover focus engine and public API reports.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 44bec1f8-d9c2-4333-a285-7270b37fe5da
@@ -0,0 +1,6 @@
{

@github-actions github-actions Bot Oct 21, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🕵🏾‍♀️ visual changes to review in the Visual Change Report

vr-tests-react-components/Menu Converged - submenuIndicator slotted content 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Menu Converged - submenuIndicator slotted content.default - RTL.submenus open.chromium.png 404 Changed
vr-tests-react-components/Menu Converged - submenuIndicator slotted content.default.submenus open.chromium.png 605 Changed
vr-tests-react-components/Positioning 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Positioning.Positioning end.chromium.png 505 Changed
vr-tests-react-components/Positioning.Positioning end.updated 2 times.chromium.png 624 Changed
vr-tests-react-components/ProgressBar converged 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/ProgressBar converged.Indeterminate + thickness - High Contrast.default.chromium.png 50 Changed
vr-tests-react-components/ProgressBar converged.Indeterminate + thickness.default.chromium.png 54 Changed
vr-tests-react-components/Skeleton converged 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Skeleton converged.Opaque Skeleton with rectangle - Dark Mode.default.chromium.png 10 Changed
vr-tests-react-components/Skeleton converged.Opaque Skeleton with square - Dark Mode.default.chromium.png 2 Changed
vr-tests-react-components/TagPicker 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/TagPicker.disabled - RTL.disabled input hover.chromium.png 635 Changed
vr-tests-web-components/Avatar 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-web-components/Avatar. - Dark Mode.normal.chromium.png 10380 Changed
vr-tests-web-components/Badge 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-web-components/Badge. - Dark Mode.normal.chromium.png 443 Changed
vr-tests-web-components/MenuList 3 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-web-components/MenuList. - RTL.1st selected.chromium_2.png 39384 Changed
vr-tests-web-components/MenuList. - RTL.2nd selected.chromium_3.png 38816 Changed
vr-tests-web-components/MenuList. - RTL.normal.chromium_1.png 39083 Changed
vr-tests-web-components/TextInput 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-web-components/TextInput. - Dark Mode.normal.chromium_1.png 288 Changed
vr-tests/Callout 3 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests/Callout.Gap space 25.default.chromium.png 2195 Changed
vr-tests/Callout.Top right edge.default.chromium.png 1146 Changed
vr-tests/Callout.Bottom left edge.default.chromium.png 2195 Changed
vr-tests/react-charting-LineChart 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests/react-charting-LineChart.Multiple - RTL.default.chromium.png 200 Changed
vr-tests/react-charting-LineChart.Multiple.default.chromium.png 192 Changed

There were 2 duplicate changes discarded. Check the build logs for more information.

Normalize the test-only Portal dependency, close native state before releasing the surface in legacy React roots, and compact private observation state with one scoped frame sampler. Preserve the existing public API and 10% bundle budget.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 44bec1f8-d9c2-4333-a285-7270b37fe5da

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.

1 participant