-
Notifications
You must be signed in to change notification settings - Fork 2.9k
chore: Upgrade Popper to Floating UI #21828
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit 8445272:
|
Asset size changesSize Auditor did not detect a change in bundle size for any component! Baseline commit: 4603faeb3a875836dd0e3901ad4cef92d5473ce0 (build) |
📊 Bundle size reportUnchanged fixtures
|
Perf Analysis (
|
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| BaseButton | mount | 775 | 778 | 5000 | |
| Breadcrumb | mount | 2393 | 2439 | 1000 | |
| Checkbox | mount | 1280 | 1282 | 5000 | |
| CheckboxBase | mount | 1086 | 1096 | 5000 | |
| ChoiceGroup | mount | 4084 | 4084 | 5000 | |
| ComboBox | mount | 818 | 890 | 1000 | |
| CommandBar | mount | 9145 | 9233 | 1000 | |
| ContextualMenu | mount | 10536 | 10651 | 1000 | |
| DefaultButton | mount | 988 | 997 | 5000 | |
| DetailsRow | mount | 3377 | 3291 | 5000 | |
| DetailsRowFast | mount | 3334 | 3326 | 5000 | |
| DetailsRowNoStyles | mount | 3209 | 3115 | 5000 | |
| Dialog | mount | 1911 | 1911 | 1000 | |
| DocumentCardTitle | mount | 146 | 147 | 1000 | |
| Dropdown | mount | 2868 | 2850 | 5000 | |
| FocusTrapZone | mount | 1543 | 1565 | 5000 | |
| FocusZone | mount | 1564 | 1551 | 5000 | |
| IconButton | mount | 1523 | 1544 | 5000 | |
| Label | mount | 302 | 300 | 5000 | |
| Layer | mount | 2550 | 2539 | 5000 | |
| Link | mount | 402 | 409 | 5000 | |
| MenuButton | mount | 1293 | 1287 | 5000 | |
| MessageBar | mount | 1884 | 1847 | 5000 | |
| Nav | mount | 2827 | 2869 | 1000 | |
| OverflowSet | mount | 937 | 965 | 5000 | |
| Panel | mount | 1838 | 1848 | 1000 | |
| Persona | mount | 863 | 866 | 1000 | |
| Pivot | mount | 1255 | 1240 | 1000 | |
| PrimaryButton | mount | 1119 | 1128 | 5000 | |
| Rating | mount | 6640 | 6688 | 5000 | |
| SearchBox | mount | 1127 | 1133 | 5000 | |
| Shimmer | mount | 2168 | 2130 | 5000 | |
| Slider | mount | 1687 | 1659 | 5000 | |
| SpinButton | mount | 4277 | 4307 | 5000 | |
| Spinner | mount | 375 | 371 | 5000 | |
| SplitButton | mount | 2720 | 2688 | 5000 | |
| Stack | mount | 447 | 456 | 5000 | |
| StackWithIntrinsicChildren | mount | 1987 | 1980 | 5000 | |
| StackWithTextChildren | mount | 4507 | 4499 | 5000 | |
| SwatchColorPicker | mount | 9943 | 9984 | 5000 | |
| TagPicker | mount | 2287 | 2266 | 5000 | |
| TeachingBubble | mount | 79944 | 80265 | 5000 | |
| Text | mount | 365 | 371 | 5000 | |
| TextField | mount | 1206 | 1210 | 5000 | |
| ThemeProvider | mount | 1017 | 1020 | 5000 | |
| ThemeProvider | virtual-rerender | 556 | 569 | 5000 | |
| ThemeProvider | virtual-rerender-with-unmount | 1601 | 1601 | 5000 | |
| Toggle | mount | 671 | 680 | 5000 | |
| buttonNative | mount | 115 | 122 | 5000 |
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
Perf Analysis (
|
| Scenario | Current PR Ticks | Baseline Ticks | Ratio |
|---|---|---|---|
| AttachmentMinimalPerf.default | 129 | 119 | 1.08:1 |
| ButtonMinimalPerf.default | 143 | 133 | 1.08:1 |
| ButtonSlotsPerf.default | 463 | 435 | 1.06:1 |
| ListWith60ListItems.default | 549 | 525 | 1.05:1 |
| RadioGroupMinimalPerf.default | 378 | 361 | 1.05:1 |
| SegmentMinimalPerf.default | 296 | 281 | 1.05:1 |
| ListCommonPerf.default | 541 | 521 | 1.04:1 |
| PortalMinimalPerf.default | 147 | 141 | 1.04:1 |
| AlertMinimalPerf.default | 223 | 217 | 1.03:1 |
| GridMinimalPerf.default | 282 | 273 | 1.03:1 |
| LabelMinimalPerf.default | 325 | 317 | 1.03:1 |
| ListNestedPerf.default | 459 | 447 | 1.03:1 |
| RefMinimalPerf.default | 200 | 195 | 1.03:1 |
| SkeletonMinimalPerf.default | 289 | 281 | 1.03:1 |
| TextMinimalPerf.default | 284 | 277 | 1.03:1 |
| ToolbarMinimalPerf.default | 809 | 784 | 1.03:1 |
| AnimationMinimalPerf.default | 462 | 451 | 1.02:1 |
| ButtonOverridesMissPerf.default | 1257 | 1229 | 1.02:1 |
| CardMinimalPerf.default | 465 | 456 | 1.02:1 |
| DividerMinimalPerf.default | 293 | 288 | 1.02:1 |
| FlexMinimalPerf.default | 238 | 234 | 1.02:1 |
| HeaderMinimalPerf.default | 300 | 293 | 1.02:1 |
| HeaderSlotsPerf.default | 635 | 622 | 1.02:1 |
| ImageMinimalPerf.default | 311 | 306 | 1.02:1 |
| PopupMinimalPerf.default | 529 | 518 | 1.02:1 |
| ProviderMinimalPerf.default | 335 | 327 | 1.02:1 |
| StatusMinimalPerf.default | 567 | 558 | 1.02:1 |
| TableManyItemsPerf.default | 1618 | 1590 | 1.02:1 |
| TableMinimalPerf.default | 335 | 328 | 1.02:1 |
| TreeMinimalPerf.default | 682 | 670 | 1.02:1 |
| BoxMinimalPerf.default | 280 | 278 | 1.01:1 |
| CarouselMinimalPerf.default | 399 | 396 | 1.01:1 |
| DialogMinimalPerf.default | 638 | 632 | 1.01:1 |
| DropdownManyItemsPerf.default | 563 | 556 | 1.01:1 |
| EmbedMinimalPerf.default | 3465 | 3418 | 1.01:1 |
| FormMinimalPerf.default | 343 | 338 | 1.01:1 |
| LayoutMinimalPerf.default | 295 | 293 | 1.01:1 |
| LoaderMinimalPerf.default | 572 | 568 | 1.01:1 |
| SplitButtonMinimalPerf.default | 3665 | 3643 | 1.01:1 |
| TextAreaMinimalPerf.default | 404 | 399 | 1.01:1 |
| VideoMinimalPerf.default | 535 | 530 | 1.01:1 |
| AccordionMinimalPerf.default | 118 | 118 | 1:1 |
| ChatMinimalPerf.default | 617 | 614 | 1:1 |
| CheckboxMinimalPerf.default | 2247 | 2258 | 1:1 |
| DropdownMinimalPerf.default | 2559 | 2562 | 1:1 |
| InputMinimalPerf.default | 1080 | 1081 | 1:1 |
| ItemLayoutMinimalPerf.default | 988 | 992 | 1:1 |
| ListMinimalPerf.default | 425 | 427 | 1:1 |
| MenuMinimalPerf.default | 709 | 709 | 1:1 |
| MenuButtonMinimalPerf.default | 1415 | 1408 | 1:1 |
| ProviderMergeThemesPerf.default | 1071 | 1071 | 1:1 |
| ReactionMinimalPerf.default | 311 | 310 | 1:1 |
| CustomToolbarPrototype.default | 2282 | 2276 | 1:1 |
| TooltipMinimalPerf.default | 899 | 897 | 1:1 |
| AvatarMinimalPerf.default | 152 | 153 | 0.99:1 |
| ChatDuplicateMessagesPerf.default | 248 | 251 | 0.99:1 |
| RosterPerf.default | 910 | 922 | 0.99:1 |
| SliderMinimalPerf.default | 1398 | 1418 | 0.99:1 |
| TreeWith60ListItems.default | 145 | 147 | 0.99:1 |
| ChatWithPopoverPerf.default | 313 | 320 | 0.98:1 |
| DatepickerMinimalPerf.default | 4713 | 4787 | 0.98:1 |
| AttachmentSlotsPerf.default | 915 | 965 | 0.95:1 |
| IconMinimalPerf.default | 484 | 515 | 0.94:1 |
…eb7af.json Co-authored-by: Martin Hochel <[email protected]>
change/@fluentui-react-tooltip-3f810af7-b574-4988-bf02-21dbdde3e0db.json
Outdated
Show resolved
Hide resolved
change/@fluentui-react-menu-16ea1e78-a70f-4378-9515-49a0254f3217.json
Outdated
Show resolved
Hide resolved
GeoffCoxMSFT
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM given the things to resolve identified by others
spmonahan
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just putting a block here so we can coordinate merging breaking changes.
|
This pull request has been automatically marked as stale because it was marked as requiring author feedback but has not had any activity for 7 days. It will be closed if no further activity occurs within 5 days of this comment. Thank you for your contributions to Fluent UI! |
|
bot, keep this open! |
|
Built up a lot of conflicts, succeeded by #24254 |
Upgrades to Floating UI which is popper v3 (same author, same repo)
There aren't too many concepts that change although the API does change. This upgrade mainly brings about some nice bundle size decreases (~15%)
TS4 minbarTemplate literal types used internally in Floating UI
Offset array -> Offset object
Floating UI introduced a new Offset API that is actually an improvement over the previous array type. A new shorthand offset for the main axis is also introduced
Before
After
Offset function argument
Before:
After:
Virual element API
smaller breaking change.
Previously Popper used the
element.getBoundingClientRect()return as the interface for a virtual element, the new types are custom written to work also for non web (i.e. React native) usages. Most of the time the usages should match up.Before:
After:
popperRef -> positioningRef
Removes
Popperinstances from our APIBefore
After
PopperVirtualElement -> PositioningVirtualElement
Removes
Popperinstances from our types, none of these types are exported fromreact-componentsis this a breaking change ?Related Issue(s)
Fixes #22067