Features
- extract non-animatable CSS props to atomic classNames for animated components (natew)
Bug Fixes
- nested submenus cascade correctly and keyboard nav is direction-independent (natew)
- skip non-animatable prop extraction for RNW animation drivers (natew)
- popover: hoverable delay/restMs/exit-animation and animatePosition positioning (natew)
- web: route animateOnly-excluded styles through className pipeline instead of animation driver (natew)
- animations-motion: prevent immediate exit completion when re-render fires during animation (natew)
Code Refactoring
- consolidate motion driver refs, replace JSON.stringify with version counter, tree-shake debug code (natew)
Tests
- fix flaky SheetAnimation tests by using timing-based animations and correct measurement (natew)
- add hoverable popover test cases and playwright tests (natew)
Continuous Integration
- fix flaky SheetAnimation timing test - use absolute margin instead of 2x multiplier (natew)
- relax ExitCompletion zero-animatable timing threshold 100→300ms for CI noise (natew)
- skip native driver in ExitTimingCheck test - hover detection issues on web (natew)
Chores
- fix typecheck in MenuSubNestedPositionCase (natew)
- document WAAPI mid-flight interruption workaround in motion driver (natew)
- improve motion driver WAAPI workaround comments with root cause analysis (natew)
- refine motion driver WAAPI workaround comments after investigation (natew)
- add WAAPI research doc and link from code comment (natew)
Commits
- af50955: canary2.0.0-rc.21-1772318403079 (natew)
- b56d123: mcp settings (natew)
- 8e850c0: canary2.0.0-rc.21-1772323626103 (natew)
- c06ed82: test flake (natew)
- brighten takeout 3d box (natew)
- 844ab80: revert getSplitStyles animateOnly extraction - drivers need values for state tracking (natew)
- 40c4450: add findings from motion workaround (natew)
- 420e406: v2.0.0-rc.22 (natew)