build(deps): bump @mui/material from 7.3.9 to 9.0.1 (with siblings)#262
Merged
Conversation
✅ Deploy Preview for opencost-ui ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
9e854f9 to
24d3599
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the UI dependency stack to support Material UI v9 by bumping @mui/material and its peer-pinned sibling packages together, and applies the required icon alias rename (DeleteOutline → DeleteOutlined) across the codebase.
Changes:
- Bump MUI packages in
package.json(@mui/material,@mui/icons-material,@mui/x-date-pickers) to v9-compatible versions. - Refresh
package-lock.jsonto the new resolved dependency graph for the upgraded MUI ecosystem. - Update imports/usages from
DeleteOutlinetoDeleteOutlinedin affected UI components/routes.
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| package.json | Bumps MUI packages to v9-compatible versions (material + peer-pinned siblings). |
| package-lock.json | Updates lockfile to resolve the new MUI versions and related transitive dependency changes. |
| app/routes/dashboard-list.tsx | Migrates delete icon usage to DeleteOutlined. |
| app/components/report-list-table.tsx | Migrates delete icon usage to DeleteOutlined. |
| app/components/report-builder-side-panel.tsx | Migrates delete icon usage to DeleteOutlined. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Bumps the MUI v9 stack together so peer dependencies line up: - @mui/material 7.3.9 -> 9.0.1 - @mui/icons-material 7.3.9 -> 9.0.1 - @mui/x-date-pickers 8.27.2 -> 9.3.0 (8.x peer-pins @mui/material@^7) Replaces dependabot PR #245, which only bumped @mui/material and therefore failed npm install with peer-dep conflicts against @mui/icons-material@7.3.9 (and would have hit @mui/x-date-pickers@8 too). Rebased on top of recently-merged main (which includes #259/#260/#261). ### v9 breaking change handled The v9.0.0-beta.1 release removed the legacy `*Outline` icon aliases (see mui/material-ui#48116). All call sites that imported `DeleteOutline` were migrated to `DeleteOutlined`: - app/routes/dashboard-list.tsx - app/components/report-list-table.tsx - app/components/report-builder-side-panel.tsx (3 call sites) The `*Outlined` variants are the canonical Material Symbols name and have been available since v5; the legacy `*Outline` aliases are now gone. ### Notes - No Grid `direction='column'/'column-reverse'` usages exist in the codebase, so the v9.0.0-beta.1 Grid change does not apply. - The only ListItemIcon with a hardcoded minWidth (Nav/NavItem.jsx) uses sx overrides, so the v9 theme-spacing default does not affect it. - @mui/styles@^6.5.0 has no peer dep on @mui/material and continues to install cleanly alongside v9. - date-fns@^4.1.0 is supported by @mui/x-date-pickers@^9.3.0. ### Validation - `npm install` succeeds; `found 0 vulnerabilities`. - `npm run build` (new UI) passes. - `npm run build:legacy` passes. Signed-off-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Alex Meijer <ameijer@users.noreply.github.com>
24d3599 to
893b1bb
Compare
Lighthouse Report
|
peatey
approved these changes
Jun 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces stale dependabot PR #245.
The original PR only bumped
@mui/materialfrom 7.3.9 to 9.0.0, which failed CI onnpm ciwith:The MUI monorepo publishes peer-pinned siblings, so they have to move together. This PR also handles the v9 breaking changes that affect this codebase.
Bumps
@mui/material: 7.3.9 → 9.0.1@mui/icons-material: 7.3.9 → 9.0.1 (peer-pinned@mui/material@^9.0.1)@mui/x-date-pickers: 8.27.2 → 9.3.0 (8.x peer-pins@mui/material@^7)v9 breaking change handled —
*Outlineicon removalmui/material-ui#48116removed the legacy*Outlineicon aliases (kept around for backwards compat with the original@material-ui/iconsv4 names). The canonical Material Symbols name is*Outlined, which has been available since MUI v5.All call sites importing
DeleteOutlinewere migrated:The other
*Outlinedicons in the repo (EditOutlined,IosShareOutlined,CheckCircleOutlined) are the canonical names and required no changes.Other v9 changes — not applicable here
direction='column'/'column-reverse'removed: no<Grid>usage in the repo.minWidthdefaults to theme spacing: only one component (app/components/legacy/Nav/NavItem.jsx) setsminWidth: 36and does so via an explicitsxoverride, which takes precedence.Compatibility notes
@mui/styles@^6.5.0has no peer dep on@mui/material, so it continues to install cleanly alongside v9 (this combo is already mismatched onmain).date-fns@^4.1.0is in the supported range for@mui/x-date-pickers@^9.3.0.@emotion/react@^11.14.0and@emotion/styled@^11.14.1satisfy the v9 peer-dep ranges.Validation
npm installsucceeds with no peer-dep errors (found 0 vulnerabilities).npm run build(new UI) passes.npm run build:legacypasses.npx tsc --noEmitintroduces no new errors overmain(pre-existing errors inapp/routes/legacy/external-costs.tsxare unchanged).Closes #245.