Skip to content

build(deps): bump @mui/material from 7.3.9 to 9.0.1 (with siblings)#262

Merged
peatey merged 1 commit into
mainfrom
cursor/bump-mui-material-v9-6d8e
Jun 2, 2026
Merged

build(deps): bump @mui/material from 7.3.9 to 9.0.1 (with siblings)#262
peatey merged 1 commit into
mainfrom
cursor/bump-mui-material-v9-6d8e

Conversation

@ameijer

@ameijer ameijer commented May 27, 2026

Copy link
Copy Markdown
Member

Replaces stale dependabot PR #245.

The original PR only bumped @mui/material from 7.3.9 to 9.0.0, which failed CI on npm ci with:

npm error Conflicting peer dependency: @mui/material@7.3.10
npm error   peer @mui/material@"^7.3.9" from @mui/icons-material@7.3.9

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 — *Outline icon removal

mui/material-ui#48116 removed the legacy *Outline icon aliases (kept around for backwards compat with the original @material-ui/icons v4 names). The canonical Material Symbols name is *Outlined, which has been available since MUI v5.

All call sites importing DeleteOutline were migrated:

import {
  Search,
  StarBorder,
  Star,
  EditOutlined,
  ContentCopy,
  IosShareOutlined,
  DeleteOutlined,
} from "@mui/icons-material";

The other *Outlined icons in the repo (EditOutlined, IosShareOutlined, CheckCircleOutlined) are the canonical names and required no changes.

Other v9 changes — not applicable here

  • Grid direction='column'/'column-reverse' removed: no <Grid> usage in the repo.
  • ListItemIcon minWidth defaults to theme spacing: only one component (app/components/legacy/Nav/NavItem.jsx) sets minWidth: 36 and does so via an explicit sx override, which takes precedence.

Compatibility notes

  • @mui/styles@^6.5.0 has no peer dep on @mui/material, so it continues to install cleanly alongside v9 (this combo is already mismatched on main).
  • date-fns@^4.1.0 is in the supported range for @mui/x-date-pickers@^9.3.0.
  • @emotion/react@^11.14.0 and @emotion/styled@^11.14.1 satisfy the v9 peer-dep ranges.

Validation

  • npm install succeeds with no peer-dep errors (found 0 vulnerabilities).
  • npm run build (new UI) passes.
  • npm run build:legacy passes.
  • npx tsc --noEmit introduces no new errors over main (pre-existing errors in app/routes/legacy/external-costs.tsx are unchanged).

Closes #245.

Open in Web Open in Cursor 

@netlify

netlify Bot commented May 27, 2026

Copy link
Copy Markdown

Deploy Preview for opencost-ui ready!

Name Link
🔨 Latest commit 893b1bb
🔍 Latest deploy log https://app.netlify.com/projects/opencost-ui/deploys/6a1eeef2d8ccac0008a0c725
😎 Deploy Preview https://deploy-preview-262--opencost-ui.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@cursor cursor Bot force-pushed the cursor/bump-mui-material-v9-6d8e branch from 9e854f9 to 24d3599 Compare May 27, 2026 18:56
@ameijer ameijer marked this pull request as ready for review June 1, 2026 17:22
@peatey peatey requested a review from Copilot June 1, 2026 17:23

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.

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 (DeleteOutlineDeleteOutlined) 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.json to the new resolved dependency graph for the upgraded MUI ecosystem.
  • Update imports/usages from DeleteOutline to DeleteOutlined in 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>
@cursor cursor Bot force-pushed the cursor/bump-mui-material-v9-6d8e branch from 24d3599 to 893b1bb Compare June 2, 2026 14:55
@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown

Lighthouse Report

Category Score
Performance 96
Accessibility 94
Best Practices 100
SEO 83

Full Report

@peatey peatey merged commit d669329 into main Jun 2, 2026
9 of 10 checks passed
@peatey peatey deleted the cursor/bump-mui-material-v9-6d8e branch June 2, 2026 15:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants