From adaee7f254aa7401e77deaf001c3a6febe7b0b34 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Oct 2026 18:01:07 +0000 Subject: [PATCH 1/4] build(deps): bump @mui/icons-material from 7.3.5 to 9.5.0 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] --- package-lock.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 490c2d074..7d8438623 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", "@minoru/react-dnd-treeview": "^3.5.4", - "@mui/icons-material": "^7.3.5", + "@mui/icons-material": "^9.5.0", "@mui/lab": "^7.0.0-beta.17", "@mui/material": "^7.0.2", "@mui/system": "^7.0.2", @@ -4046,12 +4046,12 @@ } }, "node_modules/@mui/icons-material": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.3.5.tgz", - "integrity": "sha512-LciL1GLMZ+VlzyHAALSVAR22t8IST4LCXmljcUSx2NOutgO2XnxdIp8ilFbeNf9wpo0iUFbAuoQcB7h+HHIf3A==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-9.5.0.tgz", + "integrity": "sha512-dahtVaqnRUIBgaZ4WC9EdP+LgJ5d2rslASYIX+nDFG6+ssUiM11jQ+Gd1wH8vhUGoNA9ES40MYics5BI8zJFXQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.4" + "@babel/runtime": "^7.29.7 || ^8.0.5" }, "engines": { "node": ">=14.0.0" @@ -4061,7 +4061,7 @@ "url": "https://opencollective.com/mui-org" }, "peerDependencies": { - "@mui/material": "^7.3.5", + "@mui/material": "^9.5.0", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, diff --git a/package.json b/package.json index 4fb2808c4..f27cb1a1e 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", "@minoru/react-dnd-treeview": "^3.5.4", - "@mui/icons-material": "^7.3.5", + "@mui/icons-material": "^9.5.0", "@mui/lab": "^7.0.0-beta.17", "@mui/material": "^7.0.2", "@mui/system": "^7.0.2", From 4d139fc21b5ff243425858f6d371ce2ea3c756c1 Mon Sep 17 00:00:00 2001 From: martastn Date: Tue, 27 Oct 2026 17:29:18 +0100 Subject: [PATCH 2/4] Upgrade MUI to v9 (material, system, lab, icons) with required code changes --- package-lock.json | 265 +++++------------- package.json | 8 +- src/JsRoot/GraphData.tsx | 4 +- .../components/Dialog/OpenFileDialog.tsx | 2 +- .../components/Editor/EditorToolbar.tsx | 4 +- .../Editor/Header/EditorTitlebar.tsx | 6 +- .../components/Sidebar/EditorSidebar.tsx | 19 +- .../SidebarTreeList/SidebarTreeListItem.tsx | 6 +- .../properties/category/ObjectMaterial.tsx | 6 +- .../ScoringQuantityMaterialOverrides.tsx | 6 +- .../properties/fields/SourceFileField.tsx | 6 +- .../Sidebar/tabs/EditorSidebarTabTree.tsx | 6 +- .../components/Header/ProjectMenu.test.ts | 6 +- .../Header/SimulationControls.test.ts | 8 +- .../components/Header/SimulatorControls.tsx | 26 +- .../InputEditor/InputFilesEditor.tsx | 2 +- .../components/Results/Results3D.tsx | 10 +- .../components/Results/ResultsPanel.tsx | 4 +- .../components/Results/ResultsTable.tsx | 6 +- .../Simulation/BatchParametersEditor.tsx | 6 +- .../Simulation/Geant4DatasetDownload.tsx | 34 ++- .../Simulation/RecentSimulations.tsx | 6 +- .../Simulation/RunSimulationForm.tsx | 6 +- .../Simulation/RunSimulationPanel.tsx | 18 +- src/__tests__/FlukaConverter.test.ts | 2 +- src/__tests__/Geant4Converter.test.ts | 2 +- src/__tests__/ShieldhitConverter.test.ts | 2 +- src/__tests__/TopasConverter.test.ts | 6 +- src/shared/components/Menu/MenuPosition.tsx | 4 +- .../genericComponents/AutoCompleteSelect.tsx | 3 +- 30 files changed, 211 insertions(+), 278 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7d8438623..b25054e80 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,9 +14,9 @@ "@emotion/styled": "^11.14.1", "@minoru/react-dnd-treeview": "^3.5.4", "@mui/icons-material": "^9.5.0", - "@mui/lab": "^7.0.0-beta.17", - "@mui/material": "^7.0.2", - "@mui/system": "^7.0.2", + "@mui/lab": "9.0.0-beta.10", + "@mui/material": "^9.5.0", + "@mui/system": "^9.5.0", "@mui/x-data-grid": "^9.14.0", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", @@ -35,7 +35,7 @@ "jsroot": "^7.10.3", "keycloak-js": "^26.2.1", "ky": "^1.12.0", - "material-ui-popup-state": "^5.3.6", + "material-ui-popup-state": "^5.3.7", "notistack": "^3.0.2", "object-hash": "^3.0.0", "pyodide": "^0.29.0", @@ -4036,9 +4036,9 @@ } }, "node_modules/@mui/core-downloads-tracker": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.3.5.tgz", - "integrity": "sha512-kOLwlcDPnVz2QMhiBv0OQ8le8hTCqKM9cRXlfVPL91l3RGeOsxrIhNRsUt3Xb8wb+pTVUolW+JXKym93vRKxCw==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-9.5.0.tgz", + "integrity": "sha512-PErEpl3Lp+1ZqWYKI7GQU8XSiciAFmLbUAZ7IoaUL598HLy1UAFuEUMEJu8yAS1v8vkXYzWprMVZzky4UwXoOA==", "license": "MIT", "funding": { "type": "opencollective", @@ -4072,15 +4072,15 @@ } }, "node_modules/@mui/lab": { - "version": "7.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-7.0.0-beta.17.tgz", - "integrity": "sha512-H8tSINm6Xgbi7o49MplAwks4tAEE6SpFNd9l7n4NURl0GSpOv0CZvgXKSJt4+6TmquDhE7pomHpHWJiVh/2aCg==", + "version": "9.0.0-beta.10", + "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-9.0.0-beta.10.tgz", + "integrity": "sha512-XLjMJRiOQfD2p5YIorNuymI3CZqrAIAZJsaaeoomMEwAp3p1VwpSmR072VZZr+PfB1r2aUvouxmCXQNGHyw4qw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.3", - "@mui/system": "^7.3.2", - "@mui/types": "^7.4.6", - "@mui/utils": "^7.3.2", + "@babel/runtime": "^7.29.7 || ^8.0.5", + "@mui/system": "^9.5.0", + "@mui/types": "^9.5.0", + "@mui/utils": "^9.5.0", "clsx": "^2.1.1", "prop-types": "^15.8.1" }, @@ -4094,8 +4094,8 @@ "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", - "@mui/material": "^7.3.2", - "@mui/material-pigment-css": "^7.3.2", + "@mui/material": "^9.5.0", + "@mui/material-pigment-css": "^9.5.0", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -4116,22 +4116,23 @@ } }, "node_modules/@mui/material": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.3.5.tgz", - "integrity": "sha512-8VVxFmp1GIm9PpmnQoCoYo0UWHoOrdA57tDL62vkpzEgvb/d71Wsbv4FRg7r1Gyx7PuSo0tflH34cdl/NvfHNQ==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-9.5.0.tgz", + "integrity": "sha512-QgqvdVjZoKxP8E8SBxYY6LrdV+kw00moXweZQWBbMMdifPKZAGfUaaXhGKIca6fjKnCL6HJIe/AWWCpqNvyHVw==", "license": "MIT", + "peer": true, "dependencies": { - "@babel/runtime": "^7.28.4", - "@mui/core-downloads-tracker": "^7.3.5", - "@mui/system": "^7.3.5", - "@mui/types": "^7.4.8", - "@mui/utils": "^7.3.5", + "@babel/runtime": "^7.29.7 || ^8.0.5", + "@mui/core-downloads-tracker": "^9.5.0", + "@mui/system": "^9.5.0", + "@mui/types": "^9.5.0", + "@mui/utils": "^9.5.0", "@popperjs/core": "^2.11.8", "@types/react-transition-group": "^4.4.12", "clsx": "^2.1.1", - "csstype": "^3.1.3", + "csstype": "^3.2.3", "prop-types": "^15.8.1", - "react-is": "^19.2.0", + "react-is": "^19.3.0", "react-transition-group": "^4.4.5" }, "engines": { @@ -4144,7 +4145,7 @@ "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", - "@mui/material-pigment-css": "^7.3.5", + "@mui/material-pigment-css": "^9.5.0", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -4165,13 +4166,13 @@ } }, "node_modules/@mui/private-theming": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-7.3.5.tgz", - "integrity": "sha512-cTx584W2qrLonwhZLbEN7P5pAUu0nZblg8cLBlTrZQ4sIiw8Fbvg7GvuphQaSHxPxrCpa7FDwJKtXdbl2TSmrA==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-9.5.0.tgz", + "integrity": "sha512-UHZKySlr4ZJeA5HEhe/Tq1fhsR5573ViKYn7JV80dCVJtgqRQIplRSer1DHPg2Yi22llX7QRhgM0Vtrx4kZHSA==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.4", - "@mui/utils": "^7.3.5", + "@babel/runtime": "^7.29.7 || ^8.0.5", + "@mui/utils": "^9.5.0", "prop-types": "^15.8.1" }, "engines": { @@ -4192,16 +4193,16 @@ } }, "node_modules/@mui/styled-engine": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-7.3.5.tgz", - "integrity": "sha512-zbsZ0uYYPndFCCPp2+V3RLcAN6+fv4C8pdwRx6OS3BwDkRCN8WBehqks7hWyF3vj1kdQLIWrpdv/5Y0jHRxYXQ==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-9.5.0.tgz", + "integrity": "sha512-IX1ceHnZ0bJgzJRWO/Ayl4ME1rNmpWVYwV28yb089UAMR17rJkV1qfr7ApsWQXXPi1oi+2JapJrWQAiAnTlJHQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.4", + "@babel/runtime": "^7.29.7 || ^8.0.5", "@emotion/cache": "^11.14.0", "@emotion/serialize": "^1.3.3", "@emotion/sheet": "^1.4.0", - "csstype": "^3.1.3", + "csstype": "^3.2.3", "prop-types": "^15.8.1" }, "engines": { @@ -4226,18 +4227,19 @@ } }, "node_modules/@mui/system": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-7.3.5.tgz", - "integrity": "sha512-yPaf5+gY3v80HNkJcPi6WT+r9ebeM4eJzrREXPxMt7pNTV/1eahyODO4fbH3Qvd8irNxDFYn5RQ3idHW55rA6g==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-9.5.0.tgz", + "integrity": "sha512-OZuAwvoiaaHpvn0a540VH1DUwwmojJubGfNmO2g+nb2ybNDP4/gF7t7aA6AMduELSuJ5yxwlzyFvUO3CfLv1Yg==", "license": "MIT", + "peer": true, "dependencies": { - "@babel/runtime": "^7.28.4", - "@mui/private-theming": "^7.3.5", - "@mui/styled-engine": "^7.3.5", - "@mui/types": "^7.4.8", - "@mui/utils": "^7.3.5", + "@babel/runtime": "^7.29.7 || ^8.0.5", + "@mui/private-theming": "^9.5.0", + "@mui/styled-engine": "^9.5.0", + "@mui/types": "^9.5.0", + "@mui/utils": "^9.5.0", "clsx": "^2.1.1", - "csstype": "^3.1.3", + "csstype": "^3.2.3", "prop-types": "^15.8.1" }, "engines": { @@ -4266,12 +4268,12 @@ } }, "node_modules/@mui/types": { - "version": "7.4.8", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.8.tgz", - "integrity": "sha512-ZNXLBjkPV6ftLCmmRCafak3XmSn8YV0tKE/ZOhzKys7TZXUiE0mZxlH8zKDo6j6TTUaDnuij68gIG+0Ucm7Xhw==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-9.5.0.tgz", + "integrity": "sha512-O0S6xS80qEQqW2CYNrd4GlBEQ1xpMOHZ5b4zO/DaLu6NZmtthM6smEg0Gz/u9gX5vL+8NB3EiBIxmxSCcG590Q==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.4" + "@babel/runtime": "^7.29.7 || ^8.0.5" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -4283,17 +4285,17 @@ } }, "node_modules/@mui/utils": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.3.5.tgz", - "integrity": "sha512-jisvFsEC3sgjUjcPnR4mYfhzjCDIudttSGSbe1o/IXFNu0kZuR+7vqQI0jg8qtcVZBHWrwTfvAZj9MNMumcq1g==", + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-9.5.0.tgz", + "integrity": "sha512-8m0LfSgE2pj58znY3kZ+anwRKbnBkcu/7AJPA8L/77wEjN0QnpX4/zRAccyplp1VEUnMsUBADeTRin5Mkf7epA==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.4", - "@mui/types": "^7.4.8", + "@babel/runtime": "^7.29.7 || ^8.0.5", + "@mui/types": "^9.5.0", "@types/prop-types": "^15.7.15", "clsx": "^2.1.1", "prop-types": "^15.8.1", - "react-is": "^19.2.0" + "react-is": "^19.3.0" }, "engines": { "node": ">=14.0.0" @@ -4351,53 +4353,6 @@ } } }, - "node_modules/@mui/x-data-grid/node_modules/@mui/types": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-9.4.0.tgz", - "integrity": "sha512-13DH0Oniua4WmGqeYbQAZqmiN7r4nfd0zwIoGJ5QeJwyIHgEmf+LkRw/jV1HZb6AiUoHX8Oxf4xgalq3vYHcIw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.29.7" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/x-data-grid/node_modules/@mui/utils": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-9.4.0.tgz", - "integrity": "sha512-WkzY8uYtqUDyGKPShrRQRBomfMQHddlsyKu/gRRESYO24tDPD2z0xRE8CBoUsWqpBa+YrFs9KixiS7kQRjsPAQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.29.7", - "@mui/types": "^9.4.0", - "@types/prop-types": "^15.7.15", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^19.2.8" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@mui/x-internals": { "version": "9.14.0", "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-9.14.0.tgz", @@ -4422,53 +4377,6 @@ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/@mui/x-internals/node_modules/@mui/types": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-9.4.0.tgz", - "integrity": "sha512-13DH0Oniua4WmGqeYbQAZqmiN7r4nfd0zwIoGJ5QeJwyIHgEmf+LkRw/jV1HZb6AiUoHX8Oxf4xgalq3vYHcIw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.29.7" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/x-internals/node_modules/@mui/utils": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-9.4.0.tgz", - "integrity": "sha512-WkzY8uYtqUDyGKPShrRQRBomfMQHddlsyKu/gRRESYO24tDPD2z0xRE8CBoUsWqpBa+YrFs9KixiS7kQRjsPAQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.29.7", - "@mui/types": "^9.4.0", - "@types/prop-types": "^15.7.15", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^19.2.8" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@mui/x-virtualizer": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/@mui/x-virtualizer/-/x-virtualizer-0.7.2.tgz", @@ -4492,53 +4400,6 @@ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/@mui/x-virtualizer/node_modules/@mui/types": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-9.4.0.tgz", - "integrity": "sha512-13DH0Oniua4WmGqeYbQAZqmiN7r4nfd0zwIoGJ5QeJwyIHgEmf+LkRw/jV1HZb6AiUoHX8Oxf4xgalq3vYHcIw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.29.7" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/x-virtualizer/node_modules/@mui/utils": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-9.4.0.tgz", - "integrity": "sha512-WkzY8uYtqUDyGKPShrRQRBomfMQHddlsyKu/gRRESYO24tDPD2z0xRE8CBoUsWqpBa+YrFs9KixiS7kQRjsPAQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.29.7", - "@mui/types": "^9.4.0", - "@types/prop-types": "^15.7.15", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^19.2.8" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", @@ -16165,9 +16026,9 @@ } }, "node_modules/material-ui-popup-state": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/material-ui-popup-state/-/material-ui-popup-state-5.3.6.tgz", - "integrity": "sha512-tGpq417auecyK9iKMGxSQfyv6pwg0Wii2Isi9RuL92YDDkdnXlorl5c3+S4Zg8MH6Hk4NUa/5Y9PPEWgKakzOw==", + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/material-ui-popup-state/-/material-ui-popup-state-5.3.7.tgz", + "integrity": "sha512-3ppRgNEfJ4pSEmVnRYeDDi/8L6RSGnsBrCP+WikozCeF7E21DyKAm80EOtBbeiOTooPCEQoeqrQ32uDKW2VYcw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.26.0", @@ -16179,9 +16040,9 @@ "node": ">=16" }, "peerDependencies": { - "@mui/material": "^5.0.0 || ^6.0.0 || ^7.0.0", + "@mui/material": ">=5 <10", "@types/react": "^16.8.0 || ^17 || ^18 || ^19", - "react": "^16.8.0 || ^17 || ^18 || ^19" + "react": ">=16.8.0 <20" }, "peerDependenciesMeta": { "@types/react": { diff --git a/package.json b/package.json index f27cb1a1e..1ede88b2c 100644 --- a/package.json +++ b/package.json @@ -12,9 +12,9 @@ "@emotion/styled": "^11.14.1", "@minoru/react-dnd-treeview": "^3.5.4", "@mui/icons-material": "^9.5.0", - "@mui/lab": "^7.0.0-beta.17", - "@mui/material": "^7.0.2", - "@mui/system": "^7.0.2", + "@mui/lab": "9.0.0-beta.10", + "@mui/material": "^9.5.0", + "@mui/system": "^9.5.0", "@mui/x-data-grid": "^9.14.0", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", @@ -33,7 +33,7 @@ "jsroot": "^7.10.3", "keycloak-js": "^26.2.1", "ky": "^1.12.0", - "material-ui-popup-state": "^5.3.6", + "material-ui-popup-state": "^5.3.7", "notistack": "^3.0.2", "object-hash": "^3.0.0", "pyodide": "^0.29.0", diff --git a/src/JsRoot/GraphData.tsx b/src/JsRoot/GraphData.tsx index ea9c8796f..ca1366ad7 100644 --- a/src/JsRoot/GraphData.tsx +++ b/src/JsRoot/GraphData.tsx @@ -142,7 +142,9 @@ function Section({ title, children }: SectionProps) { <> + sx={{ + fontWeight: 'bold' + }}> {title}: {children} diff --git a/src/ThreeEditor/components/Dialog/OpenFileDialog.tsx b/src/ThreeEditor/components/Dialog/OpenFileDialog.tsx index b07bc8ee2..9ee14fb6b 100644 --- a/src/ThreeEditor/components/Dialog/OpenFileDialog.tsx +++ b/src/ThreeEditor/components/Dialog/OpenFileDialog.tsx @@ -1,4 +1,4 @@ -import RemoveCircleOutlineIcon from '@mui/icons-material/RemoveCircleOutline'; +import RemoveCircleOutlineIcon from '@mui/icons-material/RemoveCircleOutlineOutlined'; import { TabContext, TabPanel } from '@mui/lab'; import { Box, Button, IconButton, TextField, Tooltip } from '@mui/material'; import { ChangeEvent, SyntheticEvent, useCallback, useMemo, useState } from 'react'; diff --git a/src/ThreeEditor/components/Editor/EditorToolbar.tsx b/src/ThreeEditor/components/Editor/EditorToolbar.tsx index cd78988e6..9db965171 100644 --- a/src/ThreeEditor/components/Editor/EditorToolbar.tsx +++ b/src/ThreeEditor/components/Editor/EditorToolbar.tsx @@ -91,7 +91,9 @@ export function EditorToolbar({ editor, sx }: EditorToolbarProps) { {toolButtons.map(({ label, icon, value, disabled }, idx) => ( + sx={{ + mr: 1 + }}> {tool === value ? ( + sx={{ + textTransform: 'none', + color: theme.palette.text.primary + }}> {title} {saving && ( diff --git a/src/ThreeEditor/components/Sidebar/EditorSidebar.tsx b/src/ThreeEditor/components/Sidebar/EditorSidebar.tsx index fd6459d96..cd622ac29 100644 --- a/src/ThreeEditor/components/Sidebar/EditorSidebar.tsx +++ b/src/ThreeEditor/components/Sidebar/EditorSidebar.tsx @@ -98,8 +98,11 @@ export function EditorSidebar(props: EditorSidebarProps) { <> {editor.selected && ( + sx={{ + fontSize: '1rem', + marginTop: '1rem', + marginBottom: '.5rem' + }}> Details )} @@ -112,8 +115,10 @@ export function EditorSidebar(props: EditorSidebarProps) { + sx={{ + fontSize: '1rem', + marginBottom: '.5rem' + }}> Beam + sx={{ + fontSize: '1rem', + marginBottom: '.5rem' + }}> Physics editor.selectById(object.id)} - width='100%' + {...bindContextMenu(popupState)} sx={{ + width: '100%', cursor: 'pointer' - }} - {...bindContextMenu(popupState)}> + }}> + sx={{ + justifyContent: 'center', + alignItems: 'center' + }}> {editorPhysic.stoppingPowerTable} diff --git a/src/ThreeEditor/components/Sidebar/properties/category/ScoringQuantityMaterialOverrides.tsx b/src/ThreeEditor/components/Sidebar/properties/category/ScoringQuantityMaterialOverrides.tsx index d8a81440a..d2f496802 100644 --- a/src/ThreeEditor/components/Sidebar/properties/category/ScoringQuantityMaterialOverrides.tsx +++ b/src/ThreeEditor/components/Sidebar/properties/category/ScoringQuantityMaterialOverrides.tsx @@ -133,8 +133,10 @@ export function ScoringQuantityMaterialOverrides(props: { + sx={{ + justifyContent: 'center', + alignItems: 'center' + }}> {editorPhysic.stoppingPowerTable} diff --git a/src/ThreeEditor/components/Sidebar/properties/fields/SourceFileField.tsx b/src/ThreeEditor/components/Sidebar/properties/fields/SourceFileField.tsx index 99d0083b7..476b4812c 100644 --- a/src/ThreeEditor/components/Sidebar/properties/fields/SourceFileField.tsx +++ b/src/ThreeEditor/components/Sidebar/properties/fields/SourceFileField.tsx @@ -51,8 +51,10 @@ export function SourceFileDefinitionField(props: { + direction='row' + sx={{ + gap: 1 + }}> diff --git a/src/util/genericComponents/AutoCompleteSelect.tsx b/src/util/genericComponents/AutoCompleteSelect.tsx index 7aded5c52..c5e99c209 100644 --- a/src/util/genericComponents/AutoCompleteSelect.tsx +++ b/src/util/genericComponents/AutoCompleteSelect.tsx @@ -25,8 +25,9 @@ export function AutoCompleteSelect< Date: Tue, 27 Oct 2026 19:43:03 +0100 Subject: [PATCH 3/4] restore MUI 7 keyboard and mouse behaviour of toggle buttons and autocompletes --- src/App.tsx | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/App.tsx b/src/App.tsx index 6b6129c1b..0f3446e29 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -59,6 +59,8 @@ function ServiceTree({ services, children }: { services: ReactElement[]; childre }, children); } +const ROVING_KEYS = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End']; + function App() { const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)'); const theme = useMemo( @@ -88,6 +90,32 @@ function App() { dimensions: { navDrawerWidth: 200 }, + components: { + MuiToggleButton: { + defaultProps: { + tabIndex: 0, + onKeyDown: event => { + if (ROVING_KEYS.includes(event.key)) event.stopPropagation(); + } + } + }, + MuiAutocomplete: { + defaultProps: { + onMouseDownCapture: event => { + const target = event.target; + + if ( + event.button !== 0 && + target instanceof HTMLInputElement && + target.classList.contains('MuiAutocomplete-input') + ) + target.dispatchEvent( + new MouseEvent('mousedown', { bubbles: true, button: 0 }) + ); + } + } + } + }, cssVariables: true }), [prefersDarkMode] From 1a8706b8373f34aa9d91d80d6a41853f93fa5005 Mon Sep 17 00:00:00 2001 From: martastn Date: Wed, 28 Oct 2026 10:55:25 +0100 Subject: [PATCH 4/4] Specify AutoCompleteSelect type for Geant4 particle filter --- .../properties/category/GeantScoringFilterConfiguration.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ThreeEditor/components/Sidebar/properties/category/GeantScoringFilterConfiguration.tsx b/src/ThreeEditor/components/Sidebar/properties/category/GeantScoringFilterConfiguration.tsx index 18cd289de..341b39baf 100644 --- a/src/ThreeEditor/components/Sidebar/properties/category/GeantScoringFilterConfiguration.tsx +++ b/src/ThreeEditor/components/Sidebar/properties/category/GeantScoringFilterConfiguration.tsx @@ -1,7 +1,7 @@ import { Typography } from '@mui/material'; import { Object3D } from 'three'; -import { GEANT4_PARTICLE_TYPES } from '../../../../../types/Particle'; +import { GEANT4_PARTICLE_TYPES, Particle } from '../../../../../types/Particle'; import { AutoCompleteSelect } from '../../../../../util/genericComponents/AutoCompleteSelect'; import { useSmartWatchEditorState } from '../../../../../util/hooks/signals'; import { SetValueCommand } from '../../../../js/commands/SetValueCommand'; @@ -55,7 +55,7 @@ export function GeantScoringFilterConfiguration(props: { {(watchedObject.filterType === 'particle' || watchedObject.filterType === 'particleWithKineticEnergy') && ( - multiple={true} onChange={(_, value) => { setValueCommand(