Skip to content

feat: bring back removed deprecated packages react-alert,react-infobutton,react-virtualizer and add React 19 support#35285

Merged
Hotell merged 16 commits intomicrosoft:masterfrom
Hotell:react-19/bring-back-unstable-pkgs
Oct 7, 2025
Merged

feat: bring back removed deprecated packages react-alert,react-infobutton,react-virtualizer and add React 19 support#35285
Hotell merged 16 commits intomicrosoft:masterfrom
Hotell:react-19/bring-back-unstable-pkgs

Conversation

@Hotell
Copy link
Copy Markdown
Contributor

@Hotell Hotell commented Oct 6, 2025

Previous Behavior

Initially we wanted to introduce Optional PeerDependencies for "EOL" packages that are exposed via /unstable api (#35217).

This would be unfortunately a kind of an indirect "Breaking Change" to users not migrating to React 19, rather bumping fluent to new version on their current setup as it would force them to manually recover and install these problematic deprecated packages manually.

For React 19 users it would force them to migrate away from /unstable api usage of these deprecated packages.

While we plan to provide migrate CLI in the future it still doesn't felt right in terms of user consumption and because of that we decided to bring back these problematic packages within the repo.

New Behavior

1. Brings back DEPRECATED packages that are exposed via @fluentui/react-components/unstable api

restored packages:

additional changes:

  • stories and bundle-size fixtures have been removed on purpose to limit the "support" area
  • packages were moved to react-components/deperecated/* for extra clarity
  • cxe-prg was added as owner ( although they don't have full context about these packages the intention is not to provide any features etc going forward - purely to unblock React 18+ user upgrades with minimum effort needed )
  • packages are no part of TS path aliases within tsconfig.base.json on purpose as their shouldn't be used at all anywhere within the repo

2. Adds React 19 support to these packages

  • mitigates strict peer dependency failures during installs
  • passes all test-rit pipelines

Related Issue(s)

@Hotell Hotell force-pushed the react-19/bring-back-unstable-pkgs branch from 3b2b82e to ab92584 Compare October 6, 2025 16:24
@github-actions
Copy link
Copy Markdown

github-actions bot commented Oct 6, 2025

📊 Bundle size report

Package & Exports Baseline (minified/GZIP) PR Change
react-accordion
Accordion (including children components)
108.221 kB
33.115 kB
108.256 kB
33.14 kB
35 B
25 B
react-avatar
Avatar
48.518 kB
15.508 kB
48.555 kB
15.528 kB
37 B
20 B
react-avatar
AvatarGroupItem
62.662 kB
19.727 kB
62.699 kB
19.747 kB
37 B
20 B
react-badge
PresenceBadge
24.929 kB
9.147 kB
24.97 kB
9.163 kB
41 B
16 B
react-breadcrumb
@fluentui/react-breadcrumb - package
114.22 kB
31.522 kB
114.255 kB
31.55 kB
35 B
28 B
react-button
MenuButton
41.6 kB
11.902 kB
41.642 kB
11.917 kB
42 B
15 B
react-button
SplitButton
49.667 kB
13.477 kB
49.702 kB
13.496 kB
35 B
19 B
react-calendar-compat
Calendar Compat
149.796 kB
39.951 kB
149.83 kB
39.965 kB
34 B
14 B
react-charts
AreaChart
384.803 kB
117.317 kB
384.836 kB
117.337 kB
33 B
20 B
react-charts
DeclarativeChart
681.499 kB
195.683 kB
681.534 kB
195.71 kB
35 B
27 B
react-charts
DonutChart
296.931 kB
88.744 kB
296.966 kB
88.76 kB
35 B
16 B
react-charts
FunnelChart
288.17 kB
85.701 kB
288.205 kB
85.707 kB
35 B
6 B
react-charts
GanttChart
368.041 kB
110.814 kB
368.076 kB
110.829 kB
35 B
15 B
react-charts
GaugeChart
311.221 kB
92.228 kB
311.254 kB
92.242 kB
33 B
14 B
react-charts
GroupedVerticalBarChart
371.572 kB
111.942 kB
371.605 kB
111.951 kB
33 B
9 B
react-charts
HeatMapChart
370.069 kB
112.439 kB
370.104 kB
112.45 kB
35 B
11 B
react-charts
HorizontalBarChart
295.674 kB
86.998 kB
295.707 kB
87.014 kB
33 B
16 B
react-charts
Legends
235.208 kB
69.59 kB
235.243 kB
69.602 kB
35 B
12 B
react-charts
LineChart
394.308 kB
118.854 kB
394.341 kB
118.887 kB
33 B
33 B
react-charts
ScatterChart
375.828 kB
113.387 kB
375.861 kB
113.403 kB
33 B
16 B
react-charts
VerticalBarChart
410.642 kB
118.919 kB
410.675 kB
118.927 kB
33 B
8 B
react-charts
VerticalStackedBarChart
382.456 kB
114.785 kB
382.491 kB
114.801 kB
35 B
16 B
react-checkbox
Checkbox
34.335 kB
11.786 kB
34.37 kB
11.792 kB
35 B
6 B
react-combobox
Combobox (including child components)
106.952 kB
34.798 kB
106.981 kB
34.816 kB
29 B
18 B
react-combobox
Dropdown (including child components)
107.582 kB
34.719 kB
107.611 kB
34.737 kB
29 B
18 B
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
236.627 kB
68.563 kB
236.662 kB
68.579 kB
35 B
16 B
react-components
react-components: entire library
1.277 MB
320.927 kB
1.277 MB
320.897 kB
35 B
-30 B
react-datepicker-compat
DatePicker Compat
226.669 kB
64.105 kB
226.703 kB
64.124 kB
34 B
19 B
react-dialog
Dialog (including children components)
103.578 kB
30.891 kB
103.613 kB
30.917 kB
35 B
26 B
react-field
Field
22.657 kB
8.602 kB
22.697 kB
8.603 kB
40 B
1 B
react-list
ListItem
112.381 kB
33.224 kB
112.422 kB
33.229 kB
41 B
5 B
react-menu
Menu (including children components)
165.367 kB
50.066 kB
165.402 kB
50.102 kB
35 B
36 B
react-menu
Menu (including selectable components)
168.349 kB
50.667 kB
168.384 kB
50.68 kB
35 B
13 B
react-message-bar
MessageBar (all components)
24.12 kB
8.966 kB
24.157 kB
8.983 kB
37 B
17 B
react-persona
Persona
55.409 kB
17.389 kB
55.446 kB
17.41 kB
37 B
21 B
react-select
Select
26.95 kB
9.833 kB
26.987 kB
9.848 kB
37 B
15 B
react-spinbutton
SpinButton
34.431 kB
11.449 kB
34.468 kB
11.453 kB
37 B
4 B
react-swatch-picker
@fluentui/react-swatch-picker - package
106.047 kB
30.539 kB
106.082 kB
30.558 kB
35 B
19 B
react-switch
Switch
34.51 kB
11.014 kB
34.55 kB
11.013 kB
40 B
-1 B
react-table
DataGrid
161.122 kB
45.55 kB
161.157 kB
45.558 kB
35 B
8 B
react-table
Table (Primitives only)
41.94 kB
13.559 kB
41.975 kB
13.575 kB
35 B
16 B
react-table
Table as DataGrid
131.446 kB
36.336 kB
131.48 kB
36.345 kB
34 B
9 B
react-table
Table (Selection only)
69.808 kB
19.693 kB
69.843 kB
19.71 kB
35 B
17 B
react-table
Table (Sort only)
68.451 kB
19.308 kB
68.486 kB
19.324 kB
35 B
16 B
react-tag-picker
@fluentui/react-tag-picker - package
188.343 kB
56.458 kB
188.376 kB
56.482 kB
33 B
24 B
react-tags
Tag
30.379 kB
9.779 kB
30.413 kB
9.802 kB
34 B
23 B
react-timepicker-compat
TimePicker
109.935 kB
36.335 kB
109.972 kB
36.348 kB
37 B
13 B
react-tree
FlatTree
149.007 kB
42.628 kB
149.042 kB
42.637 kB
35 B
9 B
react-tree
PersonaFlatTree
149.763 kB
42.759 kB
149.798 kB
42.771 kB
35 B
12 B
react-tree
PersonaTree
146.028 kB
41.626 kB
146.063 kB
41.633 kB
35 B
7 B
react-tree
Tree
145.278 kB
41.487 kB
145.313 kB
41.507 kB
35 B
20 B
Unchanged fixtures
Package & Exports Size (minified/GZIP)
global-context
createContext
510 B
328 B
global-context
createContextSelector
537 B
339 B
keyboard-key
keyboard-key package
3.746 kB
1.928 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
4.519 kB
1.881 kB
react
ActivityItem
71.196 kB
23.345 kB
react
Announced
38.466 kB
13.274 kB
react
Autofill
15.42 kB
4.766 kB
react
Breadcrumb
200.704 kB
59.591 kB
react
Button
194.253 kB
55.877 kB
react
ButtonGrid
179.141 kB
53.883 kB
react
Calendar
121.126 kB
36.822 kB
react
Callout
84.233 kB
27.586 kB
react
Check
53.182 kB
17.832 kB
react
Checkbox
59.948 kB
19.872 kB
react
ChoiceGroup
65.458 kB
21.462 kB
react
ChoiceGroupOption
58.745 kB
19.351 kB
react
Coachmark
92.652 kB
29.303 kB
react
Color
7.789 kB
3.127 kB
react
ColorPicker
134.856 kB
42.108 kB
react
ComboBox
250.586 kB
71.503 kB
react
CommandBar
201.76 kB
59.381 kB
react
ContextualMenu
154.128 kB
47.559 kB
react
DatePicker
183.167 kB
55.875 kB
react
DateTimeUtilities
5.244 kB
1.849 kB
react
DetailsList
229.894 kB
65.799 kB
react
Dialog
210.059 kB
62.349 kB
react
Divider
19.582 kB
6.838 kB
react
DocumentCard
215.742 kB
63.648 kB
react
DragDrop
8.343 kB
2.724 kB
react
DraggableZone
34.28 kB
11.488 kB
react
Dropdown
233.05 kB
67.954 kB
react
ExtendedPicker
96.823 kB
27.866 kB
react
Fabric
41.722 kB
14.34 kB
react
Facepile
209.276 kB
62.369 kB
react
FloatingPicker
240.764 kB
68.214 kB
react
FocusTrapZone
16.978 kB
5.889 kB
react
FocusZone
55.1 kB
17.451 kB
react
Grid
179.141 kB
53.883 kB
react
GroupedList
135.012 kB
40.664 kB
react
GroupedListV2
122.629 kB
37.753 kB
react
HoverCard
96.718 kB
30.685 kB
react
Icon
51.863 kB
17.261 kB
react
Icons
66.339 kB
24.385 kB
react
Image
46.877 kB
15.692 kB
react
Keytip
81.241 kB
26.671 kB
react
KeytipData
14.032 kB
4.582 kB
react
KeytipLayer
103.029 kB
31.896 kB
react
Keytips
105.801 kB
32.898 kB
react
Label
38.318 kB
13.239 kB
react
Layer
48.077 kB
16.346 kB
react
Link
39.659 kB
13.651 kB
react
List
39.346 kB
12.454 kB
react
MarqueeSelection
74.484 kB
22.396 kB
react
MessageBar
189.287 kB
56.32 kB
react
Modal
93.678 kB
30.217 kB
react
Nav
186.724 kB
55.713 kB
react
OverflowSet
33.336 kB
11.279 kB
react
Overlay
40.879 kB
14.075 kB
react
Panel
200.226 kB
59.327 kB
react
Persona
114.513 kB
36.43 kB
react
PersonaCoin
114.513 kB
36.43 kB
react
PersonaPresence
58.052 kB
19.371 kB
react
Pickers
297.809 kB
82.985 kB
react
Pivot
187.621 kB
56.485 kB
react
Popup
12.294 kB
4.195 kB
react
Positioning
22.764 kB
7.683 kB
react
PositioningContainer
73.415 kB
23.685 kB
react
ProgressIndicator
39.471 kB
13.526 kB
react
Rating
82.056 kB
26.086 kB
react
Fluent UI React (entire library)
1.019 MB
283.153 kB
react
ResizeGroup
13.338 kB
4.377 kB
react
ResponsiveMode
8.13 kB
2.966 kB
react
ScrollablePane
55.535 kB
17.715 kB
react
SearchBox
187.523 kB
55.912 kB
react
SelectableOption
724 B
413 B
react
SelectedItemsList
231.249 kB
67.169 kB
react
Selection
42.418 kB
12.26 kB
react
Separator
35.359 kB
12.13 kB
react
Shimmer
49.237 kB
16.255 kB
react
ShimmeredDetailsList
240.675 kB
68.541 kB
react
Slider
57.615 kB
19.194 kB
react
SpinButton
191.196 kB
56.998 kB
react
Spinner
41.753 kB
14.466 kB
react
Stack
42.03 kB
14.386 kB
react
Sticky
32.577 kB
10.488 kB
react
Styling
46.033 kB
15.135 kB
react
SwatchColorPicker
189.536 kB
57.41 kB
react
TeachingBubble
204.538 kB
60.3 kB
react
Text
36.886 kB
12.806 kB
react
TextField
80.768 kB
25.3 kB
react
Theme
43.486 kB
14.168 kB
react
ThemeGenerator
12.384 kB
4.116 kB
react
TimePicker
240.414 kB
69.299 kB
react
Toggle
46.189 kB
15.954 kB
react
Tooltip
87.013 kB
28.144 kB
react
Utilities
82.932 kB
25.149 kB
react
Viewport
23.872 kB
7.642 kB
react
WeeklyDayPicker
101.318 kB
31.639 kB
react
WindowProvider
1.059 kB
541 B
react-aria
ARIA - Default
237 B
181 B
react-avatar
AvatarGroup
19.235 kB
7.617 kB
react-badge
Badge
25.089 kB
8.256 kB
react-badge
CounterBadge
25.869 kB
8.53 kB
react-button
Button
36.705 kB
10.508 kB
react-button
CompoundButton
43.117 kB
11.812 kB
react-button
ToggleButton
52.636 kB
12.285 kB
react-card
Card - All
106.044 kB
29.799 kB
react-card
Card
98.69 kB
27.924 kB
react-card
CardFooter
13.662 kB
5.517 kB
react-card
CardHeader
16.195 kB
6.38 kB
react-card
CardPreview
13.729 kB
5.645 kB
react-charting
AreaChart
284.332 kB
87.922 kB
react-charting
ChartHoverCard
37.19 kB
12.698 kB
react-charting
DeclarativeChart
616.749 kB
172.694 kB
react-charting
DonutChart
190.707 kB
59.669 kB
react-charting
GanttChart
263.725 kB
81.758 kB
react-charting
GaugeChart
191.226 kB
59.23 kB
react-charting
GroupedVerticalBarChart
275.452 kB
84.768 kB
react-charting
HeatMapChart
266.686 kB
82.47 kB
react-charting
HorizontalBarChart
127.178 kB
39.924 kB
react-charting
HorizontalBarChartWithAxis
273.441 kB
83.714 kB
react-charting
Legends
151 kB
46.241 kB
react-charting
LineChart
313.897 kB
94.904 kB
react-charting
MultiStackedBarChart
181.176 kB
55.069 kB
react-charting
PieChart
134.179 kB
42.275 kB
react-charting
SankeyChart
145.995 kB
45.451 kB
react-charting
ScatterChart
270.077 kB
84.063 kB
react-charting
Sparkline
87.61 kB
29.668 kB
react-charting
StackedBarChart
174.857 kB
52.649 kB
react-charting
TreeChart
84.803 kB
26.633 kB
react-charting
VerticalBarChart
285.861 kB
86.244 kB
react-charting
VerticalStackedBarChart
281.731 kB
85.732 kB
react-charts
HorizontalBarChartWithAxis
63 B
83 B
react-charts
SankeyChart
198.878 kB
61.101 kB
react-charts
Sparkline
91.123 kB
28.692 kB
react-color-picker
ColorArea
49.32 kB
17.32 kB
react-color-picker
ColorPicker
17.95 kB
7.143 kB
react-color-picker
ColorSlider
41.493 kB
15.375 kB
react-components
react-components: Button, FluentProvider & webLightTheme
68.796 kB
19.903 kB
react-components
react-components: FluentProvider & webLightTheme
43.63 kB
14.257 kB
react-divider
Divider
20.626 kB
7.654 kB
react-image
Image
14.473 kB
5.919 kB
react-input
Input
27.148 kB
9.108 kB
react-jsx-runtime
Classic Pragma
1.101 kB
550 B
react-jsx-runtime
JSX Dev Runtime
2.8 kB
1.251 kB
react-jsx-runtime
JSX Runtime
3.422 kB
1.493 kB
react-label
Label
13.799 kB
5.644 kB
react-link
Link
16.746 kB
6.785 kB
react-list
List
88.922 kB
26.387 kB
react-motion
@fluentui/react-motion - createMotionComponent()
4.109 kB
1.806 kB
react-motion
@fluentui/react-motion - createPresenceComponent()
5.771 kB
2.396 kB
react-motion
@fluentui/react-motion - PresenceGroup
1.727 kB
823 B
react-overflow
hooks only
12.931 kB
4.85 kB
react-popover
Popover
132.3 kB
41.178 kB
react-portal
Portal
15.411 kB
5.385 kB
react-portal-compat
PortalCompatProvider
8.386 kB
2.624 kB
react-positioning
usePositioning
28.865 kB
10.146 kB
react-positioning
useSafeZoneArea
12.29 kB
4.967 kB
react-progress
ProgressBar
16.593 kB
6.613 kB
react-provider
FluentProvider
23.806 kB
8.557 kB
react-radio
Radio
31.8 kB
10.006 kB
react-radio
RadioGroup
14.889 kB
6.09 kB
react-slider
Slider
37.211 kB
12.461 kB
react-spinner
Spinner
24.396 kB
8.201 kB
react-tags
InteractionTag
14.561 kB
5.865 kB
react-tags
TagGroup
83.125 kB
24.561 kB
react-teaching-popover
TeachingPopover
102.777 kB
30.738 kB
react-text
Text - Default
16.19 kB
6.366 kB
react-text
Text - Wrappers
19.35 kB
6.695 kB
react-textarea
Textarea
25.53 kB
9.361 kB
react-theme
Single theme token import
69 B
89 B
react-theme
Teams: all themes
36.081 kB
7.658 kB
react-theme
Teams: Light theme
20.025 kB
5.723 kB
react-toast
Toast (including Toaster)
103.349 kB
30.964 kB
react-tooltip
Tooltip
57.922 kB
20.084 kB
react-utilities
SSRProvider
180 B
160 B
🤖 This report was generated against d9fc192aaac99aa7ad35b7dfa7c01c291a9dfc27

@github-actions github-actions bot added the CI label Oct 7, 2025
@Hotell Hotell changed the title chore: bring back removed deprecated packages react-alert,react-infobutton,react-virtualizer feat: bring back removed deprecated packages react-alert,react-infobutton,react-virtualizer and add React 19 support Oct 7, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented Oct 7, 2025

Pull request demo site: URL

@Hotell Hotell marked this pull request as ready for review October 7, 2025 11:22
Copy link
Copy Markdown
Contributor

@dmytrokirpa dmytrokirpa left a comment

Choose a reason for hiding this comment

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

@Hotell are we going to remove those packages again after publishing a new version or they will live there until the /unstable subpath is completely removed from the suite?

@Hotell
Copy link
Copy Markdown
Contributor Author

Hotell commented Oct 7, 2025

@Hotell are we going to remove those packages again after publishing a new version or they will live there until the /unstable subpath is completely removed from the suite?

yeah based on our convo we gonna keep it until

  • we adopt the initial optional peerDeps approach -> needs migrations story in place and spread across our users
  • v10(11) where this api will be removed completely

@Hotell Hotell merged commit 3a3e9a5 into microsoft:master Oct 7, 2025
15 checks passed
@Hotell Hotell deleted the react-19/bring-back-unstable-pkgs branch October 7, 2025 15:02
pixel-perfectionist pushed a commit to pixel-perfectionist/fluentui that referenced this pull request Oct 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Deprecated dependencies found in @fluentui/react-components@9.70.0

3 participants