This pull request:
- Upgrades React and react-dom to 19 (pinned to `19.0.8`), with `@types/react` 19 and `@testing-library/react` 16
- Switches `fxa-settings` to `createRoot`; `ReactDOM.render` is gone in React 19
- Moves render-phase `navigate()` calls into effects across 13 containers — a concurrent root commits asynchronously, so navigating during render races the commit
- Replaces the hand-rolled `Symbol.for('react.element')` in the SVG Jest transform with `createElement`, and consolidates the duplicated transform into `fxa-react`
- Migrates `useFormState` to `useActionState` in `CouponForm`, dispatching the auto-apply through `startTransition`
- Drops `@material-ui/core` (peers on React ^16/^17) and rebuilds the avatar zoom control as a native range input
- Removes `@testing-library/react-hooks`, which has no React 19 support, in favour of RTL's `renderHook`
- Fixes functional-test page objects that assumed the route committed with the URL
Other information
- **React is pinned to 19.0.8, not 19.2.x.** 19.2.8 reproducibly failed six passkey and 2FA
functional tests that pass on 19.0.8, on two independent branches. The cause is not diagnosed;
bumping to 19.2.x should be its own change. (FXA-14313)
- **`StrictMode` is disabled** in `fxa-settings/src/index.tsx`. `PagePasskeyAdd` starts its WebAuthn
ceremony in a mount effect and the double-invoke aborts it. Fixing that effect's cleanup and
restoring StrictMode is follow-up work. (FXA-14313)
Closes PAY-3887