Skip to content

build(deps): bump @mui/icons-material from 7.3.5 to 9.5.0 - #2451

Merged
grzanka merged 5 commits into
masterfrom
dependabot/npm_and_yarn/mui/icons-material-9.5.0
Oct 29, 2026
Merged

grzanka merged 5 commits into
masterfrom
dependabot/npm_and_yarn/mui/icons-material-9.5.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Bumps @mui/icons-material from 7.3.5 to 9.5.0.

Release notes

Sourced from @​mui/icons-material's releases.

v9.5.0

A big thanks to the 28 contributors who made this release possible. Here are some highlights ✨:

@mui/material@9.5.0

@mui/icons-material@9.5.0

@mui/system@9.5.0

... (truncated)

Changelog

Sourced from @​mui/icons-material's changelog.

9.5.0

Oct 9, 2026

A big thanks to the 28 contributors who made this release possible. Here are some highlights ✨:

@mui/material@9.5.0

... (truncated)

Commits

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update Javascript code labels Oct 19, 2026
@martastn martastn self-assigned this Oct 23, 2026
Bumps [@mui/icons-material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material) from 7.3.5 to 9.5.0.
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v9.5.0/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v9.5.0/packages/mui-icons-material)

---
updated-dependencies:
- dependency-name: "@mui/icons-material"
  dependency-version: 9.5.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/mui/icons-material-9.5.0 branch from 2b4ece3 to adaee7f Compare October 26, 2026 18:01
@martastn

Copy link
Copy Markdown
Contributor

Verdict: Safe to merge after fix (fix pushed to this branch)

Bump: @mui/icons-material 7.3.5 → 9.5.0 (major ×2, direct)

Why the original bump failed: icons v9 require @mui/material@^9.5.0 (we had 7.3.5) → npm ci ERESOLVE. Even when forced, the app rendered blank, because icons v9 import createSvgIcon from @mui/material/SvgIcon (#48029), which v7 doesn't export. RemoveCircleOutline, used in OpenFileDialog, was also removed (#48116). Icons can't be bumped alone, so the whole MUI stack is upgraded here.

Added in this PR:

  • @mui/material, @mui/system → 9.5.0; @mui/lab → 9.0.0-beta.10, pinned (lab is never stable, docs; we already used a beta); material-ui-popup-state 5.3.6 → 5.3.7 (5.3.6 peer-limits MUI ≤7). Lockfile: MUI entries only.
  • System props → sx (20 files, official codemod v9.0.0/system-props; v9 removed props like <Typography fontSize>): values moved 1:1.
  • SimulatorControls.tsx: v9 Typography ignores non-palette color (grey[600]), so the status text turned black. Moved to sx, same colour as before.
  • AutoCompleteSelect.tsx: params.InputProps → params.slotProps.input. BatchParametersEditor.tsx: inputProps → slotProps.input, renderTags → renderValue (codemods).
  • OpenFileDialog.tsx: RemoveCircleOutline → RemoveCircleOutlineOutlined (identical SVG; the upgrade guide's suggested RemoveCircleOutlined is the filled icon).
  • App.tsx theme, to keep MUI 7 behaviour:
    • MuiToggleButton tabIndex: 0 and arrow/Home/End keys stopped at the button. v9 made ToggleButtonGroup a roving-tabindex widget (#48849), so Tab skipped the group and the arrows moved focus. No app shortcut uses these keys.
    • MuiAutocomplete onMouseDownCapture: right/middle click is forwarded as a left mousedown. v9 opens the listbox on the left button only (upgrade guide, "Listbox toggle on right click"); v7 opened it on any button.
  • E2E tests only: XPath @role='dialog' → (@role='dialog' or @role='alertdialog'). v9 applies our CustomDialog role="alertdialog" to the dialog Paper instead of the outer wrapper (a11y fix), so the old selector matched nothing (0/10). Same element, title and content.

Verified (local, vs master):

  • tsc ✅ · build ✅ (main.js +6 kB gzip) · unit 28/28 · E2E same as master (only known-flaky ProjectMenu fails, on both)
  • 37 UI scenarios (demo + non-demo incl. login and the Geant4 simulation form) × light/dark + narrow window: pixel-identical; no new console warnings; same eslint warnings
  • Keyboard and mouse identical to master on all 6 testable toggle groups (Tab/Shift+Tab/arrows/Home/End/Space/Enter), on 4 autocompletes (right/middle/left click, arrows, Enter, typing, Esc), sidebar tabs, nav drawer and the tree context menu

Intentional difference: the top menus (Project/View/Object/Edit) now work from the keyboard (focus on the first item, arrows, Enter). On master they didn't respond to the keyboard at all, because the MenuItems are wrapped in <Box>, which v7 didn't support. Mouse behaviour is unchanged.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

An unresolved active finding remains—an apparently unintended icon import swap that changes the UI outside the stated dependency-upgrade scope.

1 open issue
What changed in this PR

This is a Dependabot-initiated upgrade of @mui/icons-material from 7.3.5 to 9.5.0, which (together with @mui/material, @mui/system, @mui/lab, and material-ui-popup-state) represents a two-major-version jump of the MUI stack. Because MUI removed the system shorthand props from components and reworked several component APIs, the PR also carries the accompanying source migrations needed to keep the app compiling and behaving correctly.

Changes:

  • Bump MUI packages (@mui/material, @mui/system, @mui/icons-material → ^9.5.0, @mui/lab → 9.0.0-beta.10) and material-ui-popup-state → ^5.3.7, with lockfile updates (including removal of now-deduplicated nested @mui/types/@mui/utils entries).
  • Migrate system shorthand props (textTransform, fontSize, alignItems, color, gap, width, mr, etc.) into the sx prop across many components, and migrate changed APIs (inputProps→slotProps.input, Autocomplete renderTags→renderValue, renderInput params InputProps→slotProps.input, color='primary'→'primary.main').
  • Add global theme defaultProps for MuiToggleButton (roving-key handling) and MuiAutocomplete (synthetic left-button mousedown re-dispatch), and update Selenium test xpaths to also match role='alertdialog'.
File Description
package.json /​ package-lock.json Bump MUI stack to v9 and material-ui-popup-state; prune deduplicated nested deps
src/​App.tsx Add MuiToggleButton/MuiAutocomplete theme defaults for keyboard/mouse behavior
src/​util/​genericComponents/​AutoCompleteSelect.tsx Migrate renderInput params from InputProps to slotProps.input
.../​category/​GeantScoringFilterConfiguration.tsx Add explicit AutoCompleteSelect<Particle, true> generics; import Particle
.../​Simulation/​BatchParametersEditor.tsx inputProps→slotProps.input; Autocomplete renderTags→renderValue
.../​Sidebar/​SidebarTreeListItem.tsx Reorder props; move width into sx
.../​Dialog/​OpenFileDialog.tsx Icon import changed to RemoveCircleOutlineOutlined (flagged as likely unintended)
.../​Header/​SimulatorControls.tsx Move system props into sx; color='primary'→'primary.main'
Many Typography/​Stack/​Box components Move system shorthand props into sx
src/​**/​*.test.ts (converters, ProjectMenu, SimulationControls) Match role='alertdialog' in addition to dialog

Overall this is a well-executed mechanical migration. The MUI v9 API migrations I inspected (AutoCompleteSelect slot params, the generic typing in GeantScoringFilterConfiguration, the renderValue/slotProps changes, and the color token fix in SimulatorControls) all look internally consistent, and the lockfile dedup changes are expected. I raised one scoped observation about an unnecessary icon swap in OpenFileDialog.tsx. Given the size of the version jump and the custom runtime workaround added in App.tsx, final sign-off benefits from human runtime/visual validation.

Review effort: Balanced

@@ -1,4 +1,4 @@
import RemoveCircleOutlineIcon from '@mui/icons-material/RemoveCircleOutline';
import RemoveCircleOutlineIcon from '@mui/icons-material/RemoveCircleOutlineOutlined';
@grzanka
grzanka merged commit c25b672 into master Oct 29, 2026
10 checks passed
@grzanka
grzanka deleted the dependabot/npm_and_yarn/mui/icons-material-9.5.0 branch October 29, 2026 13:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update Javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants