diff --git a/package-lock.json b/package-lock.json index b4b36f6bddf8d46f2d3b880d265e638326a64b62..ee4ec5cc2f63b1284db478bb41ef2287e44483e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,13 @@ "version": "0.1.0", "dependencies": { "@ahooksjs/use-url-state": "^3.5.0", + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", "@fontsource/roboto": "^4.1.0", - "@material-ui/core": "^4.11.2", - "@material-ui/icons": "^4.11.2", - "@material-ui/lab": "^4.0.0-alpha.57", + "@mui/icons-material": "^5.14.1", + "@mui/lab": "^5.0.0-alpha.137", + "@mui/material": "^5.14.1", + "@mui/styles": "^5.14.1", "@testing-library/jest-dom": "^5.11.9", "@testing-library/react": "^11.2.3", "@testing-library/user-event": "^12.6.0", @@ -395,7 +398,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -518,7 +520,6 @@ "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -2027,9 +2028,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", + "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -2088,7 +2089,6 @@ "version": "7.21.3", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", - "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", @@ -2411,10 +2411,167 @@ "node": ">=10.0.0" } }, - "node_modules/@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "node_modules/@emotion/react": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", + "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", + "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/serialize/node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@emotion/serialize/node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "node_modules/@emotion/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" }, "node_modules/@eslint-community/eslint-utils": { "version": "4.3.0", @@ -3736,208 +3893,6 @@ "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" }, - "node_modules/@material-ui/core": { - "version": "4.12.4", - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz", - "integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==", - "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", - "dependencies": { - "@babel/runtime": "^7.4.4", - "@material-ui/styles": "^4.11.5", - "@material-ui/system": "^4.12.2", - "@material-ui/types": "5.1.0", - "@material-ui/utils": "^4.11.3", - "@types/react-transition-group": "^4.2.0", - "clsx": "^1.0.4", - "hoist-non-react-statics": "^3.3.2", - "popper.js": "1.16.1-lts", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0", - "react-transition-group": "^4.4.0" - }, - "engines": { - "node": ">=8.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/material-ui" - }, - "peerDependencies": { - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@material-ui/core/node_modules/@material-ui/styles": { - "version": "4.11.5", - "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.5.tgz", - "integrity": "sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA==", - "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", - "dependencies": { - "@babel/runtime": "^7.4.4", - "@emotion/hash": "^0.8.0", - "@material-ui/types": "5.1.0", - "@material-ui/utils": "^4.11.3", - "clsx": "^1.0.4", - "csstype": "^2.5.2", - "hoist-non-react-statics": "^3.3.2", - "jss": "^10.5.1", - "jss-plugin-camel-case": "^10.5.1", - "jss-plugin-default-unit": "^10.5.1", - "jss-plugin-global": "^10.5.1", - "jss-plugin-nested": "^10.5.1", - "jss-plugin-props-sort": "^10.5.1", - "jss-plugin-rule-value-function": "^10.5.1", - "jss-plugin-vendor-prefixer": "^10.5.1", - "prop-types": "^15.7.2" - }, - "engines": { - "node": ">=8.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/material-ui" - }, - "peerDependencies": { - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@material-ui/core/node_modules/@material-ui/system": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.2.tgz", - "integrity": "sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw==", - "dependencies": { - "@babel/runtime": "^7.4.4", - "@material-ui/utils": "^4.11.3", - "csstype": "^2.5.2", - "prop-types": "^15.7.2" - }, - "engines": { - "node": ">=8.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/material-ui" - }, - "peerDependencies": { - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@material-ui/core/node_modules/@material-ui/utils": { - "version": "4.11.3", - "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.3.tgz", - "integrity": "sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==", - "dependencies": { - "@babel/runtime": "^7.4.4", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@material-ui/icons": { - "version": "4.11.3", - "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.3.tgz", - "integrity": "sha512-IKHlyx6LDh8n19vzwH5RtHIOHl9Tu90aAAxcbWME6kp4dmvODM3UvOHJeMIDzUbd4muuJKHmlNoBN+mDY4XkBA==", - "dependencies": { - "@babel/runtime": "^7.4.4" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@material-ui/core": "^4.0.0", - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@material-ui/lab": { - "version": "4.0.0-alpha.61", - "resolved": "https://registry.npmjs.org/@material-ui/lab/-/lab-4.0.0-alpha.61.tgz", - "integrity": "sha512-rSzm+XKiNUjKegj8bzt5+pygZeckNLOr+IjykH8sYdVk7dE9y2ZuUSofiMV2bJk3qU+JHwexmw+q0RyNZB9ugg==", - "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", - "dependencies": { - "@babel/runtime": "^7.4.4", - "@material-ui/utils": "^4.11.3", - "clsx": "^1.0.4", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "@material-ui/core": "^4.12.1", - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@material-ui/lab/node_modules/@material-ui/utils": { - "version": "4.11.3", - "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.3.tgz", - "integrity": "sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==", - "dependencies": { - "@babel/runtime": "^7.4.4", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@material-ui/types": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", - "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==", - "peerDependencies": { - "@types/react": "*" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@mdx-js/mdx": { "version": "1.6.22", "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", @@ -4102,6 +4057,373 @@ "node": ">=14" } }, + "node_modules/@mui/base": { + "version": "5.0.0-beta.8", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.8.tgz", + "integrity": "sha512-b4vVjMZx5KzzEMf4arXKoeV5ZegAMOoPwoy1vfUBwhvXc2QtaaAyBp50U7OA2L06Leubc1A+lEp3eqwZoFn87g==", + "dependencies": { + "@babel/runtime": "^7.22.6", + "@emotion/is-prop-valid": "^1.2.1", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.1", + "@popperjs/core": "^2.11.8", + "clsx": "^1.2.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/base/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.1.tgz", + "integrity": "sha512-mIa1WmDmNr1LoupV1Rbxt9bTFKMbIn10RHG1bnZ/FJCkAYpuU/D4n+R+ttiycgcZNngU++zyh/OQeJblzbQPzg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + } + }, + "node_modules/@mui/icons-material": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.14.1.tgz", + "integrity": "sha512-xV/f26muQqtWzerzOIdGPrXoxp/OKaE2G2Wp9gnmG47mHua5Slup/tMc3fA4ZYUreGGrK6+tT81TEvt1Wsng8Q==", + "dependencies": { + "@babel/runtime": "^7.22.6" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/lab": { + "version": "5.0.0-alpha.137", + "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.137.tgz", + "integrity": "sha512-bHfcfti9/GnB657QpTdlK1fc9gjkP3SC+NrXyb9NCr0rT5Cq7TEkBGXyY5wGUSCyHR3CrMvchkIsfG5sH/NJ9A==", + "dependencies": { + "@babel/runtime": "^7.22.6", + "@mui/base": "5.0.0-beta.8", + "@mui/system": "^5.14.1", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.1", + "clsx": "^1.2.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/lab/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@mui/material": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.14.1.tgz", + "integrity": "sha512-WtsgYuageTunLfxH3Ri+o1RuQTFImtRHxMcVNyD0Hhd2/znjW6KODNz0XfjvLRnNCAynBxZNiflcoIBW40h9PQ==", + "dependencies": { + "@babel/runtime": "^7.22.6", + "@mui/base": "5.0.0-beta.8", + "@mui/core-downloads-tracker": "^5.14.1", + "@mui/system": "^5.14.1", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.1", + "@types/react-transition-group": "^4.4.6", + "clsx": "^1.2.1", + "csstype": "^3.1.2", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/@mui/material/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@mui/private-theming": { + "version": "5.13.7", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.13.7.tgz", + "integrity": "sha512-qbSr+udcij5F9dKhGX7fEdx2drXchq7htLNr2Qg2Ma+WJ6q0ERlEqGSBiPiVDJkptcjeVL4DGmcf1wl5+vD4EA==", + "dependencies": { + "@babel/runtime": "^7.22.5", + "@mui/utils": "^5.13.7", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.13.2", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.13.2.tgz", + "integrity": "sha512-VCYCU6xVtXOrIN8lcbuPmoG+u7FYuOERG++fpY74hPpEWkyFQG97F+/XfTQVYzlR2m7nPjnwVUgATcTCMEaMvw==", + "dependencies": { + "@babel/runtime": "^7.21.0", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.2", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine/node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/@mui/styles": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.14.1.tgz", + "integrity": "sha512-+oF3diiAbfnD5TFVyiwSe2rl+aNInBKpkam88oF2XrLtC3Ult9BNatn4tzH55U+s/KWL2zjEItdciaRIg0fAAg==", + "dependencies": { + "@babel/runtime": "^7.22.6", + "@emotion/hash": "^0.9.1", + "@mui/private-theming": "^5.13.7", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.1", + "clsx": "^1.2.1", + "csstype": "^3.1.2", + "hoist-non-react-statics": "^3.3.2", + "jss": "^10.10.0", + "jss-plugin-camel-case": "^10.10.0", + "jss-plugin-default-unit": "^10.10.0", + "jss-plugin-global": "^10.10.0", + "jss-plugin-nested": "^10.10.0", + "jss-plugin-props-sort": "^10.10.0", + "jss-plugin-rule-value-function": "^10.10.0", + "jss-plugin-vendor-prefixer": "^10.10.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styles/node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@mui/styles/node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/@mui/system": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.14.1.tgz", + "integrity": "sha512-u+xlsU34Jdkgx1CxmBnIC4Y08uPdVX5iEd3S/1dggDFtOGp+Lj8xmKRJAQ8PJOOJLOh8pDwaZx4AwXikL4l1QA==", + "dependencies": { + "@babel/runtime": "^7.22.6", + "@mui/private-theming": "^5.13.7", + "@mui/styled-engine": "^5.13.2", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.1", + "clsx": "^1.2.1", + "csstype": "^3.1.2", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/system/node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/@mui/types": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.4.tgz", + "integrity": "sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA==", + "peerDependencies": { + "@types/react": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.1.tgz", + "integrity": "sha512-39KHKK2JeqRmuUcLDLwM+c2XfVC136C5/yUyQXmO2PVbOb2Bol4KxtkssEqCbTwg87PSCG3f1Tb0keRsK7cVGw==", + "dependencies": { + "@babel/runtime": "^7.22.6", + "@types/prop-types": "^15.7.5", + "@types/react-is": "^18.2.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0" + } + }, + "node_modules/@mui/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, "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", @@ -4298,6 +4620,15 @@ "node": ">= 8" } }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -7894,8 +8225,7 @@ "node_modules/@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, "node_modules/@types/parse5": { "version": "5.0.3", @@ -7942,10 +8272,18 @@ "csstype": "^3.0.2" } }, + "node_modules/@types/react-is": { + "version": "18.2.1", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-18.2.1.tgz", + "integrity": "sha512-wyUkmaaSZEzFZivD8F2ftSyAfk6L+DfFliVj/mYdOXbVjRcS87fQJLTnhk6dRZPuJjI+9g6RZJO4PNCngUrmyw==", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", + "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", "dependencies": { "@types/react": "*" } @@ -9836,7 +10174,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dev": true, "dependencies": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", @@ -11078,7 +11415,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "engines": { "node": ">=6" } @@ -12179,8 +12515,7 @@ "node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/cookie": { "version": "0.5.0", @@ -12281,7 +12616,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -13206,11 +13540,6 @@ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true }, - "node_modules/csstype": { - "version": "2.6.21", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" - }, "node_modules/cucumber": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/cucumber/-/cucumber-4.2.1.tgz", @@ -14900,7 +15229,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "dependencies": { "is-arrayish": "^0.2.1" } @@ -16943,6 +17271,11 @@ "node": ">=6" } }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -18800,7 +19133,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -18816,7 +19148,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "engines": { "node": ">=4" } @@ -19268,8 +19599,7 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "node_modules/is-bigint": { "version": "1.0.4", @@ -19356,7 +19686,6 @@ "version": "2.11.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, "dependencies": { "has": "^1.0.3" }, @@ -23013,8 +23342,7 @@ "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "node_modules/json-schema": { "version": "0.4.0", @@ -23379,8 +23707,7 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/listr2": { "version": "3.14.0", @@ -26681,7 +27008,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "dependencies": { "callsites": "^3.0.0" }, @@ -26733,7 +27059,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -26829,8 +27154,7 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-platform": { "version": "0.11.15", @@ -26851,7 +27175,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, "engines": { "node": ">=8" } @@ -27058,11 +27381,6 @@ "node": ">=10" } }, - "node_modules/popper.js": { - "version": "1.16.1-lts", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz", - "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==" - }, "node_modules/portfinder": { "version": "1.0.32", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", @@ -32158,7 +32476,6 @@ "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, "dependencies": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -34859,6 +35176,11 @@ "node": ">=8" } }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, "node_modules/subarg": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", @@ -34917,7 +35239,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -35799,7 +36120,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, "engines": { "node": ">=4" } @@ -39369,7 +39689,6 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, "engines": { "node": ">= 6" } @@ -39755,7 +40074,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, "requires": { "@babel/types": "^7.18.6" } @@ -39847,8 +40165,7 @@ "@babel/helper-string-parser": { "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" }, "@babel/helper-validator-identifier": { "version": "7.19.1", @@ -40853,9 +41170,9 @@ "dev": true }, "@babel/runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", - "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", + "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", "requires": { "regenerator-runtime": "^0.13.11" } @@ -40902,7 +41219,6 @@ "version": "7.21.3", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", - "dev": true, "requires": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", @@ -41180,10 +41496,143 @@ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true }, - "@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + "@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + }, + "dependencies": { + "@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + } + } + }, + "@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "requires": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "requires": { + "@emotion/memoize": "^0.8.1" + } + }, + "@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "@emotion/react": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", + "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", + "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", + "requires": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + }, + "dependencies": { + "@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + } + } + }, + "@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "@emotion/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + } + }, + "@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "requires": {} + }, + "@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + }, + "@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" }, "@eslint-community/eslint-utils": { "version": "4.3.0", @@ -42210,109 +42659,6 @@ "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" }, - "@material-ui/core": { - "version": "4.12.4", - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz", - "integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==", - "requires": { - "@babel/runtime": "^7.4.4", - "@material-ui/styles": "^4.11.5", - "@material-ui/system": "^4.12.2", - "@material-ui/types": "5.1.0", - "@material-ui/utils": "^4.11.3", - "@types/react-transition-group": "^4.2.0", - "clsx": "^1.0.4", - "hoist-non-react-statics": "^3.3.2", - "popper.js": "1.16.1-lts", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0", - "react-transition-group": "^4.4.0" - }, - "dependencies": { - "@material-ui/styles": { - "version": "4.11.5", - "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.5.tgz", - "integrity": "sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA==", - "requires": { - "@babel/runtime": "^7.4.4", - "@emotion/hash": "^0.8.0", - "@material-ui/types": "5.1.0", - "@material-ui/utils": "^4.11.3", - "clsx": "^1.0.4", - "csstype": "^2.5.2", - "hoist-non-react-statics": "^3.3.2", - "jss": "^10.5.1", - "jss-plugin-camel-case": "^10.5.1", - "jss-plugin-default-unit": "^10.5.1", - "jss-plugin-global": "^10.5.1", - "jss-plugin-nested": "^10.5.1", - "jss-plugin-props-sort": "^10.5.1", - "jss-plugin-rule-value-function": "^10.5.1", - "jss-plugin-vendor-prefixer": "^10.5.1", - "prop-types": "^15.7.2" - } - }, - "@material-ui/system": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.2.tgz", - "integrity": "sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw==", - "requires": { - "@babel/runtime": "^7.4.4", - "@material-ui/utils": "^4.11.3", - "csstype": "^2.5.2", - "prop-types": "^15.7.2" - } - }, - "@material-ui/utils": { - "version": "4.11.3", - "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.3.tgz", - "integrity": "sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==", - "requires": { - "@babel/runtime": "^7.4.4", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0" - } - } - } - }, - "@material-ui/icons": { - "version": "4.11.3", - "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.3.tgz", - "integrity": "sha512-IKHlyx6LDh8n19vzwH5RtHIOHl9Tu90aAAxcbWME6kp4dmvODM3UvOHJeMIDzUbd4muuJKHmlNoBN+mDY4XkBA==", - "requires": { - "@babel/runtime": "^7.4.4" - } - }, - "@material-ui/lab": { - "version": "4.0.0-alpha.61", - "resolved": "https://registry.npmjs.org/@material-ui/lab/-/lab-4.0.0-alpha.61.tgz", - "integrity": "sha512-rSzm+XKiNUjKegj8bzt5+pygZeckNLOr+IjykH8sYdVk7dE9y2ZuUSofiMV2bJk3qU+JHwexmw+q0RyNZB9ugg==", - "requires": { - "@babel/runtime": "^7.4.4", - "@material-ui/utils": "^4.11.3", - "clsx": "^1.0.4", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0" - }, - "dependencies": { - "@material-ui/utils": { - "version": "4.11.3", - "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.3.tgz", - "integrity": "sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==", - "requires": { - "@babel/runtime": "^7.4.4", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0" - } - } - } - }, - "@material-ui/types": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", - "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==", - "requires": {} - }, "@mdx-js/mdx": { "version": "1.6.22", "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", @@ -42442,6 +42788,205 @@ "strict-event-emitter": "^0.2.0" } }, + "@mui/base": { + "version": "5.0.0-beta.8", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.8.tgz", + "integrity": "sha512-b4vVjMZx5KzzEMf4arXKoeV5ZegAMOoPwoy1vfUBwhvXc2QtaaAyBp50U7OA2L06Leubc1A+lEp3eqwZoFn87g==", + "requires": { + "@babel/runtime": "^7.22.6", + "@emotion/is-prop-valid": "^1.2.1", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.1", + "@popperjs/core": "^2.11.8", + "clsx": "^1.2.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "dependencies": { + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + } + } + }, + "@mui/core-downloads-tracker": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.1.tgz", + "integrity": "sha512-mIa1WmDmNr1LoupV1Rbxt9bTFKMbIn10RHG1bnZ/FJCkAYpuU/D4n+R+ttiycgcZNngU++zyh/OQeJblzbQPzg==" + }, + "@mui/icons-material": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.14.1.tgz", + "integrity": "sha512-xV/f26muQqtWzerzOIdGPrXoxp/OKaE2G2Wp9gnmG47mHua5Slup/tMc3fA4ZYUreGGrK6+tT81TEvt1Wsng8Q==", + "requires": { + "@babel/runtime": "^7.22.6" + } + }, + "@mui/lab": { + "version": "5.0.0-alpha.137", + "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.137.tgz", + "integrity": "sha512-bHfcfti9/GnB657QpTdlK1fc9gjkP3SC+NrXyb9NCr0rT5Cq7TEkBGXyY5wGUSCyHR3CrMvchkIsfG5sH/NJ9A==", + "requires": { + "@babel/runtime": "^7.22.6", + "@mui/base": "5.0.0-beta.8", + "@mui/system": "^5.14.1", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.1", + "clsx": "^1.2.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "dependencies": { + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + } + } + }, + "@mui/material": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.14.1.tgz", + "integrity": "sha512-WtsgYuageTunLfxH3Ri+o1RuQTFImtRHxMcVNyD0Hhd2/znjW6KODNz0XfjvLRnNCAynBxZNiflcoIBW40h9PQ==", + "requires": { + "@babel/runtime": "^7.22.6", + "@mui/base": "5.0.0-beta.8", + "@mui/core-downloads-tracker": "^5.14.1", + "@mui/system": "^5.14.1", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.1", + "@types/react-transition-group": "^4.4.6", + "clsx": "^1.2.1", + "csstype": "^3.1.2", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "dependencies": { + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + } + } + }, + "@mui/private-theming": { + "version": "5.13.7", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.13.7.tgz", + "integrity": "sha512-qbSr+udcij5F9dKhGX7fEdx2drXchq7htLNr2Qg2Ma+WJ6q0ERlEqGSBiPiVDJkptcjeVL4DGmcf1wl5+vD4EA==", + "requires": { + "@babel/runtime": "^7.22.5", + "@mui/utils": "^5.13.7", + "prop-types": "^15.8.1" + } + }, + "@mui/styled-engine": { + "version": "5.13.2", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.13.2.tgz", + "integrity": "sha512-VCYCU6xVtXOrIN8lcbuPmoG+u7FYuOERG++fpY74hPpEWkyFQG97F+/XfTQVYzlR2m7nPjnwVUgATcTCMEaMvw==", + "requires": { + "@babel/runtime": "^7.21.0", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.2", + "prop-types": "^15.8.1" + }, + "dependencies": { + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + } + } + }, + "@mui/styles": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.14.1.tgz", + "integrity": "sha512-+oF3diiAbfnD5TFVyiwSe2rl+aNInBKpkam88oF2XrLtC3Ult9BNatn4tzH55U+s/KWL2zjEItdciaRIg0fAAg==", + "requires": { + "@babel/runtime": "^7.22.6", + "@emotion/hash": "^0.9.1", + "@mui/private-theming": "^5.13.7", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.1", + "clsx": "^1.2.1", + "csstype": "^3.1.2", + "hoist-non-react-statics": "^3.3.2", + "jss": "^10.10.0", + "jss-plugin-camel-case": "^10.10.0", + "jss-plugin-default-unit": "^10.10.0", + "jss-plugin-global": "^10.10.0", + "jss-plugin-nested": "^10.10.0", + "jss-plugin-props-sort": "^10.10.0", + "jss-plugin-rule-value-function": "^10.10.0", + "jss-plugin-vendor-prefixer": "^10.10.0", + "prop-types": "^15.8.1" + }, + "dependencies": { + "@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + } + } + }, + "@mui/system": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.14.1.tgz", + "integrity": "sha512-u+xlsU34Jdkgx1CxmBnIC4Y08uPdVX5iEd3S/1dggDFtOGp+Lj8xmKRJAQ8PJOOJLOh8pDwaZx4AwXikL4l1QA==", + "requires": { + "@babel/runtime": "^7.22.6", + "@mui/private-theming": "^5.13.7", + "@mui/styled-engine": "^5.13.2", + "@mui/types": "^7.2.4", + "@mui/utils": "^5.14.1", + "clsx": "^1.2.1", + "csstype": "^3.1.2", + "prop-types": "^15.8.1" + }, + "dependencies": { + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + } + } + }, + "@mui/types": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.4.tgz", + "integrity": "sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA==", + "requires": {} + }, + "@mui/utils": { + "version": "5.14.1", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.1.tgz", + "integrity": "sha512-39KHKK2JeqRmuUcLDLwM+c2XfVC136C5/yUyQXmO2PVbOb2Bol4KxtkssEqCbTwg87PSCG3f1Tb0keRsK7cVGw==", + "requires": { + "@babel/runtime": "^7.22.6", + "@types/prop-types": "^15.7.5", + "@types/react-is": "^18.2.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "dependencies": { + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + } + } + }, "@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", @@ -42576,6 +43121,11 @@ } } }, + "@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" + }, "@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -45166,8 +45716,7 @@ "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, "@types/parse5": { "version": "5.0.3", @@ -45221,10 +45770,18 @@ } } }, + "@types/react-is": { + "version": "18.2.1", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-18.2.1.tgz", + "integrity": "sha512-wyUkmaaSZEzFZivD8F2ftSyAfk6L+DfFliVj/mYdOXbVjRcS87fQJLTnhk6dRZPuJjI+9g6RZJO4PNCngUrmyw==", + "requires": { + "@types/react": "*" + } + }, "@types/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", + "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", "requires": { "@types/react": "*" } @@ -46695,7 +47252,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dev": true, "requires": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", @@ -47701,8 +48257,7 @@ "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, "camel-case": { "version": "4.1.2", @@ -48555,8 +49110,7 @@ "convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "cookie": { "version": "0.5.0", @@ -48636,7 +49190,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, "requires": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -49385,11 +49938,6 @@ } } }, - "csstype": { - "version": "2.6.21", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" - }, "cucumber": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/cucumber/-/cucumber-4.2.1.tgz", @@ -50743,7 +51291,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "requires": { "is-arrayish": "^0.2.1" } @@ -52315,6 +52862,11 @@ } } }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -53732,7 +54284,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -53741,8 +54292,7 @@ "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" } } }, @@ -54088,8 +54638,7 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "is-bigint": { "version": "1.0.4", @@ -54155,7 +54704,6 @@ "version": "2.11.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, "requires": { "has": "^1.0.3" } @@ -56899,8 +57447,7 @@ "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "json-schema": { "version": "0.4.0", @@ -57210,8 +57757,7 @@ "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "listr2": { "version": "3.14.0", @@ -59702,7 +60248,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "requires": { "callsites": "^3.0.0" } @@ -59747,7 +60292,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -59822,8 +60366,7 @@ "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-platform": { "version": "0.11.15", @@ -59840,8 +60383,7 @@ "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, "pathval": { "version": "1.1.1", @@ -59993,11 +60535,6 @@ "@babel/runtime": "^7.17.8" } }, - "popper.js": { - "version": "1.16.1-lts", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz", - "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==" - }, "portfinder": { "version": "1.0.32", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", @@ -63879,7 +64416,6 @@ "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, "requires": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -66064,6 +66600,11 @@ } } }, + "stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, "subarg": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", @@ -66111,8 +66652,7 @@ "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, "svg-parser": { "version": "2.0.4", @@ -66827,8 +67367,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, "to-object-path": { "version": "0.3.0", @@ -69699,8 +70238,7 @@ "yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" }, "yargs": { "version": "15.4.1", diff --git a/package.json b/package.json index 4c80bb5fe49a38c3790135c7269b9f8a54882d8e..b9c410902d036551c54f899dd9d3ab8f755da1c5 100644 --- a/package.json +++ b/package.json @@ -5,10 +5,13 @@ "proxy": "http://localhost:8080", "dependencies": { "@ahooksjs/use-url-state": "^3.5.0", + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", "@fontsource/roboto": "^4.1.0", - "@material-ui/core": "^4.11.2", - "@material-ui/icons": "^4.11.2", - "@material-ui/lab": "^4.0.0-alpha.57", + "@mui/icons-material": "^5.14.1", + "@mui/lab": "^5.0.0-alpha.137", + "@mui/material": "^5.14.1", + "@mui/styles": "^5.14.1", "@testing-library/jest-dom": "^5.11.9", "@testing-library/react": "^11.2.3", "@testing-library/user-event": "^12.6.0", diff --git a/src/App.js b/src/App.js index 3375cece468dde9ad94c91941845cc71f0775aab..95405938e1e04f54338f62001a0e916513b0b34f 100644 --- a/src/App.js +++ b/src/App.js @@ -1,8 +1,9 @@ import React, { useEffect } from "react"; import "./App.css"; import { Navigate, Route, Routes, BrowserRouter } from "react-router-dom"; -import { ThemeProvider } from "@material-ui/core/styles"; -import { CssBaseline } from "@material-ui/core"; +import { StyledEngineProvider } from "@mui/material"; +import { ThemeProvider } from "@mui/material/styles"; +import { CssBaseline } from "@mui/material"; import { theme } from "./style/Theme"; import { IOCListView } from "./views/IOC/IOCListView"; import { HomeAccessControl } from "./views/home/HomeAccessControl"; @@ -37,90 +38,92 @@ function App() { preventDuplicate maxSnack="5" > - <ThemeProvider theme={theme}> - <CssBaseline /> - <BrowserRouter> - <APIProvider> - <UserProvider> - <TokenRenew /> - <NotificationProvider> - <GlobalAppBar> - <Routes> - <Route - path="/" - element={<Navigate to="/home" />} - exact - /> - <Route - path="/home" - element={<HomeAccessControl />} - exact - /> - <Route - path="/records" - element={<RecordListView />} - exact - /> - <Route - path="/records/:name" - element={<RecordDetailsView />} - exact - /> - <Route - path="/iocs/:id" - element={<IOCDetailsAccessControl exact />} - /> - <Route - path="/iocs" - element={<IOCListView />} - exact - /> - <Route - path="/jobs" - element={<JobLogAccessControl />} - exact - /> - <Route - path="/jobs/:id" - element={<JobDetailsAccessControl exact />} - /> - <Route - path="/hosts/:id" - element={<HostDetailsAccessControl />} - exact - /> - <Route - path="/hosts" - element={<HostListView />} - exact - /> - <Route - path="/statistics" - element={<StatisticsView />} - exact - /> - <Route - path="/help" - element={<HelpView />} - exact - /> - <Route - path="/login" - element={<LoginView />} - exact - /> - <Route - path="*" - element={<NotFound />} - exact - /> - </Routes> - </GlobalAppBar> - </NotificationProvider> - </UserProvider> - </APIProvider> - </BrowserRouter> - </ThemeProvider> + <StyledEngineProvider injectFirst> + <ThemeProvider theme={theme}> + <CssBaseline /> + <BrowserRouter> + <APIProvider> + <UserProvider> + <TokenRenew /> + <NotificationProvider> + <GlobalAppBar> + <Routes> + <Route + path="/" + element={<Navigate to="/home" />} + exact + /> + <Route + path="/home" + element={<HomeAccessControl />} + exact + /> + <Route + path="/records" + element={<RecordListView />} + exact + /> + <Route + path="/records/:name" + element={<RecordDetailsView />} + exact + /> + <Route + path="/iocs/:id" + element={<IOCDetailsAccessControl exact />} + /> + <Route + path="/iocs" + element={<IOCListView />} + exact + /> + <Route + path="/jobs" + element={<JobLogAccessControl />} + exact + /> + <Route + path="/jobs/:id" + element={<JobDetailsAccessControl exact />} + /> + <Route + path="/hosts/:id" + element={<HostDetailsAccessControl />} + exact + /> + <Route + path="/hosts" + element={<HostListView />} + exact + /> + <Route + path="/statistics" + element={<StatisticsView />} + exact + /> + <Route + path="/help" + element={<HelpView />} + exact + /> + <Route + path="/login" + element={<LoginView />} + exact + /> + <Route + path="*" + element={<NotFound />} + exact + /> + </Routes> + </GlobalAppBar> + </NotificationProvider> + </UserProvider> + </APIProvider> + </BrowserRouter> + </ThemeProvider> + </StyledEngineProvider> </SnackbarProvider> </AppErrorBoundary> ); diff --git a/src/CypressComponentTestExample.spec.js b/src/CypressComponentTestExample.spec.js index df6d3f39a19024d9c1d4d52526af836af46f4181..4d84e5f010b13ed38b7ccde49e7665f5e6606e66 100644 --- a/src/CypressComponentTestExample.spec.js +++ b/src/CypressComponentTestExample.spec.js @@ -1,5 +1,5 @@ import React from "react"; -import { Button } from "@material-ui/core"; +import { Button } from "@mui/material"; it("Button", () => { cy.mount(<Button>Test button</Button>); diff --git a/src/api/SwaggerApi.js b/src/api/SwaggerApi.js index bd3ffb68e31226c4b42fdda7e231b8f7d9650524..c92d13630a0e7e3266a1719e3c019b7652baeff6 100644 --- a/src/api/SwaggerApi.js +++ b/src/api/SwaggerApi.js @@ -7,7 +7,7 @@ import React, { useCallback, useRef } from "react"; import SwaggerClient from "swagger-client"; import { createContext, useContext, useEffect, useState } from "react"; -import { CircularProgress } from "@material-ui/core"; +import { CircularProgress } from "@mui/material"; import { useCustomSnackbar } from "../components/common/snackbar/Snackbar"; const createSwaggerClient = async () => { diff --git a/src/components/IOC/AdministerUndeployment/AdministerUndeployment.js b/src/components/IOC/AdministerUndeployment/AdministerUndeployment.js index b7903d1824e026df672a20396e984bf01a4e1009..9135eb4ac626e3d32f17fb9ce242d7ce13391551 100644 --- a/src/components/IOC/AdministerUndeployment/AdministerUndeployment.js +++ b/src/components/IOC/AdministerUndeployment/AdministerUndeployment.js @@ -1,13 +1,13 @@ import React, { useState, useRef, useEffect } from "react"; import { useNavigate } from "react-router-dom"; -import { makeStyles } from "@material-ui/core/styles"; -import { Button, Typography, Grid, Tooltip } from "@material-ui/core"; +import { makeStyles } from "@mui/styles"; +import { Button, Typography, Grid, Tooltip } from "@mui/material"; import { theme } from "../../../style/Theme"; import { useUndeployInDb } from "../../../api/SwaggerApi"; import { SimpleAccordion } from "../../common/Accordion/SimpleAccordion"; import { ConfirmationDialog } from "../../dialog/ConfirmationDialog"; import { SimpleModal } from "../../common/SimpleModal/SimpleModal"; -import { Alert } from "@material-ui/lab"; +import { Alert } from "@mui/lab"; import AccessControl from "../../auth/AccessControl"; import { IocActiveDeployment } from "../../../api/DataTypes"; diff --git a/src/components/IOC/AlertMessages/AlertMessages.js b/src/components/IOC/AlertMessages/AlertMessages.js index 843711a30ab47d9d80d28724d5a637b880f19200..e749f95bd8aad862f99cd6c36051565eff24f223 100644 --- a/src/components/IOC/AlertMessages/AlertMessages.js +++ b/src/components/IOC/AlertMessages/AlertMessages.js @@ -1,7 +1,8 @@ import React from "react"; -import { Button, Grid, makeStyles } from "@material-ui/core"; -import { Alert } from "@material-ui/lab"; +import { Button, Grid } from "@mui/material"; +import { Alert } from "@mui/lab"; import { theme } from "../../../style/Theme"; +import { makeStyles } from "@mui/styles"; const useStyles = makeStyles((theme) => ({ infoBadge: { diff --git a/src/components/IOC/ChangeHostAdmin/ChangeHostAdmin.js b/src/components/IOC/ChangeHostAdmin/ChangeHostAdmin.js index e983916c7b2917f30bbeeac334d20b3b6d3c382e..aa98413331346ba5efa36bfcff962a0559e7aac7 100644 --- a/src/components/IOC/ChangeHostAdmin/ChangeHostAdmin.js +++ b/src/components/IOC/ChangeHostAdmin/ChangeHostAdmin.js @@ -7,15 +7,16 @@ import { Grid, Tooltip, TextField, - CircularProgress -} from "@material-ui/core"; + CircularProgress, + Alert, + Autocomplete +} from "@mui/material"; import { SimpleModal } from "../../common/SimpleModal/SimpleModal"; import { ConfirmationDialog } from "../../dialog/ConfirmationDialog"; import { useUpdateActiveDeploymentHost, useCSEntrySearch } from "../../../api/SwaggerApi"; -import { Alert, Autocomplete } from "@material-ui/lab"; import { useTypingTimer } from "../../common/SearchBoxFilter/TypingTimer"; import { transformHostQuery } from "../../common/Helper"; diff --git a/src/components/IOC/GitRefLink/GitRefLink.js b/src/components/IOC/GitRefLink/GitRefLink.js index f6a30199b93e4278573c46b9673af550340923e4..aed0d253917c23452533c0a93cfc37b84f6503dd 100644 --- a/src/components/IOC/GitRefLink/GitRefLink.js +++ b/src/components/IOC/GitRefLink/GitRefLink.js @@ -3,7 +3,7 @@ * Component providing link (and tag) to gitlab */ import React from "react"; -import { Typography, Link as MuiLink } from "@material-ui/core"; +import { Typography, Link as MuiLink } from "@mui/material"; import { string } from "prop-types"; const propTypes = { @@ -38,6 +38,7 @@ export default function GitRefLink({ url, revision }) { href={url} target="_blank" rel="noreferrer" + underline="hover" > {revision} </MuiLink> diff --git a/src/components/IOC/IOCAsyncList/IOCAsyncList.js b/src/components/IOC/IOCAsyncList/IOCAsyncList.js index a7a6c293c92312cb9b2c3b4ab6ce4445897e4946..ce2e08e448e09dbc9b74c8d62ab2db4d038509fe 100644 --- a/src/components/IOC/IOCAsyncList/IOCAsyncList.js +++ b/src/components/IOC/IOCAsyncList/IOCAsyncList.js @@ -1,5 +1,5 @@ import React from "react"; -import { Hidden } from "@material-ui/core"; +import { useMediaQuery } from "@mui/material"; import { IOCDetailFetcher } from "../IOCDetailFetcher"; import { IOCList } from "../IOCList"; import { IOCTable } from "../IOCTable"; @@ -15,12 +15,13 @@ export function IOCAsyncList({ loading, asyncDetails = true }) { + const smUp = useMediaQuery((theme) => theme.breakpoints.up("sm")); + const smDown = useMediaQuery((theme) => theme.breakpoints.down("sm")); + return ( <> - <Hidden smUp> - <IOCList iocs={iocs} /> - </Hidden> - <Hidden xsDown> + {smDown ? <IOCList iocs={iocs} /> : null} + {smUp ? ( <IOCTable iocs={iocs} setIocs={setIocs} @@ -31,7 +32,7 @@ export function IOCAsyncList({ totalCount={totalCount} rowsPerPage={rowsPerPage} /> - </Hidden> + ) : null} {asyncDetails && iocs.map((ioc, index) => ( <IOCDetailFetcher diff --git a/src/components/IOC/IOCCreateDialog/IOCCreateDialog.js b/src/components/IOC/IOCCreateDialog/IOCCreateDialog.js index 9f1ee5ed0b7001e71df2fb4d4d510b20b859e720..31247fd84f7849291934621e1550f24d91dc3576 100644 --- a/src/components/IOC/IOCCreateDialog/IOCCreateDialog.js +++ b/src/components/IOC/IOCCreateDialog/IOCCreateDialog.js @@ -6,10 +6,11 @@ import { DialogActions, DialogContent, DialogTitle, - makeStyles, - CircularProgress -} from "@material-ui/core"; -import { Autocomplete, Alert } from "@material-ui/lab"; + CircularProgress, + Autocomplete, + Alert +} from "@mui/material"; +import { makeStyles } from "@mui/styles"; import { useNamingNames, useAllowedGitProjects } from "../../../api/SwaggerApi"; import { useTypingTimer } from "../../common/SearchBoxFilter/TypingTimer"; diff --git a/src/components/IOC/IOCDelete/IOCDelete.js b/src/components/IOC/IOCDelete/IOCDelete.js index b3abfc0f5c66a28a54a8e35673d132a670332f3b..94157044a4061fdb5fe36a266f8b7c78c6ad9914 100644 --- a/src/components/IOC/IOCDelete/IOCDelete.js +++ b/src/components/IOC/IOCDelete/IOCDelete.js @@ -1,13 +1,13 @@ import React, { useState, useRef, useEffect } from "react"; import { useNavigate } from "react-router-dom"; -import { makeStyles } from "@material-ui/core/styles"; -import { Button, Typography, Grid, Tooltip } from "@material-ui/core"; +import { makeStyles } from "@mui/styles"; +import { Button, Typography, Grid, Tooltip } from "@mui/material"; import { theme } from "../../../style/Theme"; import { useDeleteIOC } from "../../../api/SwaggerApi"; import { SimpleAccordion } from "../../common/Accordion/SimpleAccordion"; import { ConfirmationDialog } from "../../dialog/ConfirmationDialog"; import { SimpleModal } from "../../common/SimpleModal/SimpleModal"; -import { Alert } from "@material-ui/lab"; +import { Alert } from "@mui/lab"; import AccessControl from "../../auth/AccessControl"; const useStyles = makeStyles({ diff --git a/src/components/IOC/IOCDeployDialog/IOCDeployDialog.js b/src/components/IOC/IOCDeployDialog/IOCDeployDialog.js index 9571515ddbc119997f3142a75e05f779b17cc1f2..b8f554b059e32f20d42f06cc78b5a52551aebdd9 100644 --- a/src/components/IOC/IOCDeployDialog/IOCDeployDialog.js +++ b/src/components/IOC/IOCDeployDialog/IOCDeployDialog.js @@ -7,11 +7,12 @@ import { DialogContent, DialogTitle, Typography, - makeStyles, Tooltip, - CircularProgress -} from "@material-ui/core"; -import { Autocomplete, Alert } from "@material-ui/lab"; + CircularProgress, + Autocomplete, + Alert +} from "@mui/material"; +import { makeStyles } from "@mui/styles"; import { useCSEntrySearch, useTagsAndCommitIds } from "../../../api/SwaggerApi"; import { useTypingTimer } from "../../common/SearchBoxFilter/TypingTimer"; import { formatDate, transformHostQuery } from "../../common/Helper"; @@ -166,11 +167,13 @@ export function IOCDeployDialog({ getOptionLabel={(option) => { return option.shortReference; }} - renderOption={(option) => { + renderOption={(props, option) => { return ( - <Tooltip title={option.description}> - <div>{createOptionTags(option)}</div> - </Tooltip> + <li {...props}> + <Tooltip title={option.description}> + <div>{createOptionTags(option)}</div> + </Tooltip> + </li> ); }} onChange={(event, value, reason) => { diff --git a/src/components/IOC/IOCDetailAdmin/IOCDetailAdmin.js b/src/components/IOC/IOCDetailAdmin/IOCDetailAdmin.js index 9d0a72d05482dc6a14d6875fd7d52f33b53451f9..6637235c9c45d52faf1412951ed2bf947db37ab8 100644 --- a/src/components/IOC/IOCDetailAdmin/IOCDetailAdmin.js +++ b/src/components/IOC/IOCDetailAdmin/IOCDetailAdmin.js @@ -3,12 +3,13 @@ import { SimpleAccordion } from "../../common/Accordion/SimpleAccordion"; import { Button, CircularProgress, - makeStyles, TextField, Tooltip, - Typography -} from "@material-ui/core"; -import { Autocomplete, Alert } from "@material-ui/lab"; + Typography, + Autocomplete, + Alert +} from "@mui/material"; +import { makeStyles } from "@mui/styles"; import { useAllowedGitProjects, useNamingNames, diff --git a/src/components/IOC/IOCDetails/IOCDetails.js b/src/components/IOC/IOCDetails/IOCDetails.js index 556e67671f41af6a6c5dc30d173a794a2a677c38..eae00bb5b5c64ac6b807cf06d3f7f9676345f7a0 100644 --- a/src/components/IOC/IOCDetails/IOCDetails.js +++ b/src/components/IOC/IOCDetails/IOCDetails.js @@ -1,4 +1,4 @@ -import { Grid, Box } from "@material-ui/core"; +import { Grid, Box } from "@mui/material"; import React from "react"; import { SimpleAccordion } from "../../common/Accordion/SimpleAccordion"; import { KeyValueTable } from "../../common/KeyValueTable/KeyValueTable"; diff --git a/src/components/IOC/IOCIcons/IOCIcons.js b/src/components/IOC/IOCIcons/IOCIcons.js index 3df091bab4fe65fc851ed0a5d1a629130f91c2cd..d193b6462fb02417e47d427de9eb4eb40fa4618e 100644 --- a/src/components/IOC/IOCIcons/IOCIcons.js +++ b/src/components/IOC/IOCIcons/IOCIcons.js @@ -1,5 +1,5 @@ import React from "react"; -import { Tooltip, Typography, useTheme } from "@material-ui/core"; +import { Tooltip, Typography, useTheme } from "@mui/material"; import { Brightness1, Cancel, @@ -9,7 +9,7 @@ import { HelpOutline, PlayCircleFilled, PauseCircleFilled -} from "@material-ui/icons"; +} from "@mui/icons-material"; import Popover from "../../common/Popover"; import AlertMessages from "../AlertMessages/AlertMessages"; diff --git a/src/components/IOC/IOCList/IOCList.js b/src/components/IOC/IOCList/IOCList.js index e22da01364aae339b09a521f97a5633ef4e2be61..8784bbe231226c25118185c4ea8eef0d7cf03b9a 100644 --- a/src/components/IOC/IOCList/IOCList.js +++ b/src/components/IOC/IOCList/IOCList.js @@ -1,5 +1,5 @@ import React from "react"; -import { List, ListItem, Paper } from "@material-ui/core"; +import { List, ListItem, Paper } from "@mui/material"; import { Link } from "react-router-dom"; import { IOCBadge } from "../IOCBadge"; diff --git a/src/components/IOC/IOCLiveStatus/IOCLiveStatus.js b/src/components/IOC/IOCLiveStatus/IOCLiveStatus.js index ef5dfa5402ebc029e95231dde166f2d971aa0fcf..46baa9fc01ca7ea03d65c5964dae242d06c77622 100644 --- a/src/components/IOC/IOCLiveStatus/IOCLiveStatus.js +++ b/src/components/IOC/IOCLiveStatus/IOCLiveStatus.js @@ -1,5 +1,6 @@ import React, { useCallback } from "react"; -import { Typography, makeStyles, Link as MuiLink } from "@material-ui/core"; +import { Typography, Link as MuiLink } from "@mui/material"; +import { makeStyles } from "@mui/styles"; import { SimpleAccordion } from "../../common/Accordion/SimpleAccordion"; import { IOCDetails } from "../IOCDetails"; import { Link as ReactRouterLink } from "react-router-dom"; @@ -62,6 +63,7 @@ export function IOCLiveStatus({ ioc }) { <MuiLink component={ReactRouterLink} to={`/hosts/${ioc.activeDeployment?.host.csEntryId}`} + underline="hover" > {ioc.activeDeployment?.host.fqdn} </MuiLink> diff --git a/src/components/IOC/IOCManage/IOCManage.js b/src/components/IOC/IOCManage/IOCManage.js index 69dfb061b8f361d52e1b09e2dc0d76cd2ae43f0e..4e0e6220908524bba8d1fc1f365ab38ff23a224b 100644 --- a/src/components/IOC/IOCManage/IOCManage.js +++ b/src/components/IOC/IOCManage/IOCManage.js @@ -1,9 +1,4 @@ -import { - Button, - Link as MuiLink, - Tooltip, - Typography -} from "@material-ui/core"; +import { Button, Link as MuiLink, Tooltip, Typography } from "@mui/material"; import React, { useState, useEffect, useContext, useCallback } from "react"; import { IOCDetails } from "../IOCDetails"; import { DeployIOC } from "../DeployIOC"; @@ -90,6 +85,7 @@ export function IOCManage({ href={`${window.NAMING_ADDRESS}/devices.xhtml?i=2&deviceName=${ioc.namingName}`} target="_blank" rel="noreferrer" + underline="hover" > {ioc.namingName} </MuiLink> @@ -101,6 +97,7 @@ export function IOCManage({ href={git} target="_blank" rel="noreferrer" + underline="hover" > {git} </MuiLink> diff --git a/src/components/IOC/IOCService/IOCService.js b/src/components/IOC/IOCService/IOCService.js index 29f18c69327d6e02f621a2152d065a109ad04c02..6f909119a6a1f2d0b272dbdda377aa285f4f56b0 100644 --- a/src/components/IOC/IOCService/IOCService.js +++ b/src/components/IOC/IOCService/IOCService.js @@ -4,14 +4,14 @@ import { Grid, Typography, Tooltip -} from "@material-ui/core"; -import { makeStyles } from "@material-ui/core/styles"; +} from "@mui/material"; +import { makeStyles } from "@mui/styles"; import React, { useState, useEffect, useRef, useContext } from "react"; import { useStartIOC, useStopIOC } from "../../../api/SwaggerApi"; import { SimpleModal } from "../../common/SimpleModal/SimpleModal"; import { ConfirmationDialog } from "../../dialog/ConfirmationDialog"; import { notificationContext } from "../../common/notification/Notifications"; -import { Alert } from "@material-ui/lab"; +import { Alert } from "@mui/lab"; import { theme } from "../../../style/Theme"; import { initRequestParams } from "../../common/Helper"; import AccessControl from "../../auth/AccessControl"; diff --git a/src/components/IOC/IOCTable/IOCTable.js b/src/components/IOC/IOCTable/IOCTable.js index d097e167a4cd812cc296ad0564bd720792ac84c3..a4ed7fa701902b51a9f004f283a3d9115df4b7e5 100644 --- a/src/components/IOC/IOCTable/IOCTable.js +++ b/src/components/IOC/IOCTable/IOCTable.js @@ -1,6 +1,6 @@ import React, { useCallback } from "react"; import { CustomTable } from "../../common/table/CustomTable"; -import { Grid, Tooltip, Typography } from "@material-ui/core"; +import { Grid, Tooltip, Typography } from "@mui/material"; import { IOCStatusIcon } from "../IOCIcons"; import { noWrapText } from "../../common/Helper"; import { useRedirect } from "../../../hooks/Redirect"; diff --git a/src/components/IOC/IOCUndeployDialog/IOCUndeployDialog.js b/src/components/IOC/IOCUndeployDialog/IOCUndeployDialog.js index b929470be134762a7f606b4a29a1c6c3679561e2..16b638ded8803d5c426ee60a01ae77a6ecb7e216 100644 --- a/src/components/IOC/IOCUndeployDialog/IOCUndeployDialog.js +++ b/src/components/IOC/IOCUndeployDialog/IOCUndeployDialog.js @@ -6,10 +6,10 @@ import { DialogActions, DialogContent, DialogTitle, - DialogContentText, - makeStyles -} from "@material-ui/core"; -import { Alert } from "@material-ui/lab"; + DialogContentText +} from "@mui/material"; +import { makeStyles } from "@mui/styles"; +import { Alert } from "@mui/lab"; const useStyles = makeStyles((theme) => ({ textField: { diff --git a/src/components/Job/JobBadge.js b/src/components/Job/JobBadge.js index 2628dc586147c6a7923b91c2d511a7723017377e..c3f39484298f8f05dc37d90f814a6498f70bd7a0 100644 --- a/src/components/Job/JobBadge.js +++ b/src/components/Job/JobBadge.js @@ -1,7 +1,7 @@ import React from "react"; import { IconBadge } from "../common/Badge/IconBadge"; import { JobTypeIcon } from "./JobIcons"; -import { Link as MuiLink } from "@material-ui/core"; +import { Link as MuiLink } from "@mui/material"; import { Link as ReactRouterLink } from "react-router-dom"; export function JobBadge({ operation }) { @@ -9,6 +9,7 @@ export function JobBadge({ operation }) { <MuiLink component={ReactRouterLink} to={`/iocs/${operation.iocId}`} + underline="hover" > {operation.iocName} </MuiLink> diff --git a/src/components/Job/JobDetails.js b/src/components/Job/JobDetails.js index 17d1c0a51f1c3287bec93721beb4a44af37f697c..67cb21b0757862b53343624c5cbb7ee2a77e4b81 100644 --- a/src/components/Job/JobDetails.js +++ b/src/components/Job/JobDetails.js @@ -5,9 +5,9 @@ import { Card, CardContent, Container, - Link as MuiLink, - makeStyles -} from "@material-ui/core"; + Link as MuiLink +} from "@mui/material"; +import { makeStyles } from "@mui/styles"; import { DeploymentStepper } from "../deployments/DeploymentStepper"; import { KeyValueTable } from "../common/KeyValueTable/KeyValueTable"; import { SimpleAccordion } from "../common/Accordion/SimpleAccordion"; @@ -66,6 +66,7 @@ export function JobDetails({ operation, job }) { <MuiLink component={ReactRouterLink} to={`/hosts/${operation.host.csEntryId}`} + underline="hover" > {operation.host.fqdn} </MuiLink> @@ -96,6 +97,7 @@ export function JobDetails({ operation, job }) { href={operation.gitProjectUrl} target="_blank" rel="noreferrer" + underline="hover" > {operation.gitProjectUrl} </MuiLink> @@ -107,6 +109,7 @@ export function JobDetails({ operation, job }) { href={operation.awxJobUrl} target="_blank" rel="noreferrer" + underline="hover" > {operation.awxJobUrl} </MuiLink> diff --git a/src/components/Job/JobTable.js b/src/components/Job/JobTable.js index 71d8a47a0e451448850789efc6d1179a7bc4284e..02dddc2c3576a0651df6a5220b86dac8cc02bb0e 100644 --- a/src/components/Job/JobTable.js +++ b/src/components/Job/JobTable.js @@ -1,6 +1,6 @@ import React, { useCallback } from "react"; import { CustomTable } from "../common/table/CustomTable"; -import { Grid, Tooltip } from "@material-ui/core"; +import { Grid, Tooltip } from "@mui/material"; import { noWrapText } from "../common/Helper"; import { useRedirect } from "../../hooks/Redirect"; import { JobStatusIcon, JobTypeIcon } from "./JobIcons"; diff --git a/src/components/auth/AccessDenied/AccessDenied.js b/src/components/auth/AccessDenied/AccessDenied.js index 28a25a8cbff280d4b321b5a9620aed0869c94d0d..573060572eeabe63f755941289fbd1d2deab995a 100644 --- a/src/components/auth/AccessDenied/AccessDenied.js +++ b/src/components/auth/AccessDenied/AccessDenied.js @@ -1,5 +1,6 @@ import React from "react"; -import { Paper, Typography, Box, Button, makeStyles } from "@material-ui/core"; +import { Paper, Typography, Box, Button } from "@mui/material"; +import { makeStyles } from "@mui/styles"; import { RootContainer } from "../../common/Container/RootContainer"; import { useRedirect } from "../../../hooks/Redirect"; diff --git a/src/components/auth/Login/Login.js b/src/components/auth/Login/Login.js index 9ad06534323fb0e9f3a18be810a6025ba10ca3ce..d3f35d1a17b10065be167f1117fea3d6c460dab2 100644 --- a/src/components/auth/Login/Login.js +++ b/src/components/auth/Login/Login.js @@ -4,11 +4,11 @@ import { Button, Dialog, DialogContent, - makeStyles, Box, LinearProgress -} from "@material-ui/core"; -import { Alert } from "@material-ui/lab"; +} from "@mui/material"; +import { makeStyles } from "@mui/styles"; +import { Alert } from "@mui/lab"; const useStyles = makeStyles((theme) => ({ textField: { diff --git a/src/components/common/Accordion/SimpleAccordion.js b/src/components/common/Accordion/SimpleAccordion.js index d4b9dce860cf64ba0e18a644d7d129707ba89acc..fae95e3d4d9eba7b85a28cafc3c4b1f60ce8346b 100644 --- a/src/components/common/Accordion/SimpleAccordion.js +++ b/src/components/common/Accordion/SimpleAccordion.js @@ -4,8 +4,8 @@ import { AccordionSummary, Container, Typography -} from "@material-ui/core"; -import { ExpandMore } from "@material-ui/icons"; +} from "@mui/material"; +import { ExpandMore } from "@mui/icons-material"; import React from "react"; export function SimpleAccordion({ summary, children, ...rest }) { diff --git a/src/components/common/Badge/IconBadge.js b/src/components/common/Badge/IconBadge.js index dc68fc93982885897f712eea2ca6c570e11bd74d..0e1a00959323ae1ca0b46284ee2ce75f0c393e8c 100644 --- a/src/components/common/Badge/IconBadge.js +++ b/src/components/common/Badge/IconBadge.js @@ -1,4 +1,4 @@ -import { Grid, Typography } from "@material-ui/core"; +import { Grid, Typography } from "@mui/material"; import React from "react"; export function IconBadge({ icon, secondaryIcon, title, subheader }) { @@ -15,7 +15,7 @@ export function IconBadge({ icon, secondaryIcon, title, subheader }) { > <Grid container - justify="center" + justifyContent="center" direction="column" alignItems="center" > @@ -31,7 +31,7 @@ export function IconBadge({ icon, secondaryIcon, title, subheader }) { > <Grid container - justify="flex-start" + justifyContent="flex-start" > <Grid item diff --git a/src/components/common/Console/Console.js b/src/components/common/Console/Console.js index 6cf76e0385e2fcac39c8db461997b33fed0b4ca1..d8948b859fcc20c5413b64c7b223d402e8d04465 100644 --- a/src/components/common/Console/Console.js +++ b/src/components/common/Console/Console.js @@ -1,12 +1,6 @@ import React, { useState } from "react"; -import { - Container, - Button, - Grid, - Box, - LinearProgress -} from "@material-ui/core"; -import { Launch } from "@material-ui/icons"; +import { Container, Button, Grid, Box, LinearProgress } from "@mui/material"; +import { Launch } from "@mui/icons-material"; import { ConsoleOutput } from "./ConsoleOutput"; import { LogDialog } from "./LogDialog"; import { SimpleModal } from "../SimpleModal/SimpleModal"; @@ -65,7 +59,7 @@ export function Console({ <Grid container spacing={0} - justify="flex-end" + justifyContent="flex-end" > <Grid item diff --git a/src/components/common/Console/ConsoleOutput.js b/src/components/common/Console/ConsoleOutput.js index 8b160f6e8883100164d2c045ee16fe80f8e842b4..48a096424da66867ae0cde7444e0dc6bb34aba42 100644 --- a/src/components/common/Console/ConsoleOutput.js +++ b/src/components/common/Console/ConsoleOutput.js @@ -1,5 +1,5 @@ import React, { useState, useRef, useEffect } from "react"; -import { makeStyles } from "@material-ui/core/styles"; +import { makeStyles } from "@mui/styles"; import clsx from "clsx"; import { useWindowDimensions } from "../../common/Helper"; diff --git a/src/components/common/Console/LogDialog.js b/src/components/common/Console/LogDialog.js index c826166399f5f68c5bccf6b81338ad4a3fd97176..15e589ccfd336401a0f2b8293b6dd5140a0136c5 100644 --- a/src/components/common/Console/LogDialog.js +++ b/src/components/common/Console/LogDialog.js @@ -1,10 +1,6 @@ import React from "react"; -import { - Dialog, - DialogContent, - DialogTitle, - makeStyles -} from "@material-ui/core"; +import { Dialog, DialogContent, DialogTitle } from "@mui/material"; +import { makeStyles } from "@mui/styles"; const useStyles = makeStyles(() => ({ title: { diff --git a/src/components/common/Container/RootContainer.js b/src/components/common/Container/RootContainer.js index a5eced5a2cf0d3b4884fab685674e7eede5694d9..09228a70681992abc5c2f6847e6798bec22eff12 100644 --- a/src/components/common/Container/RootContainer.js +++ b/src/components/common/Container/RootContainer.js @@ -1,5 +1,5 @@ -import { styled } from "@material-ui/core/styles"; -import Container from "@material-ui/core/Container"; +import { styled } from "@mui/material/styles"; +import Container from "@mui/material/Container"; export const RootContainer = styled(Container)({ paddingBottom: "200px" diff --git a/src/components/common/Helper.js b/src/components/common/Helper.js index 1374442305a666a8f071bc22f26d6fc7524853fd..19d9e3a4a692a60017f0287dcb9c04e14a8a370a 100644 --- a/src/components/common/Helper.js +++ b/src/components/common/Helper.js @@ -1,7 +1,7 @@ import React, { useState, useEffect } from "react"; import moment from "moment"; -import { alpha } from "@material-ui/core/styles/colorManipulator"; -import { Typography } from "@material-ui/core"; +import { alpha } from "@mui/material/styles"; +import { Typography } from "@mui/material"; export function formatToList(items) { if (!items) return null; diff --git a/src/components/common/KeyValueTable/KeyValueTable.js b/src/components/common/KeyValueTable/KeyValueTable.js index a5884db71b7e9b6e110731d087d5bc98cc54a535..9289299c2b561917ab98bf5e50e857b6576cf437 100644 --- a/src/components/common/KeyValueTable/KeyValueTable.js +++ b/src/components/common/KeyValueTable/KeyValueTable.js @@ -6,7 +6,7 @@ import { TableCell, TableRow, Typography -} from "@material-ui/core"; +} from "@mui/material"; // const StyledTableRow = withStyles((theme) => ({ // root: { diff --git a/src/components/common/Loki/LokiContainer.js b/src/components/common/Loki/LokiContainer.js index b17554d7f111c19d552d80d815e4c1da38f3249a..704b6c1d1fe1a5a21d7fcc79e0f029551f3a0b0d 100644 --- a/src/components/common/Loki/LokiContainer.js +++ b/src/components/common/Loki/LokiContainer.js @@ -1,5 +1,5 @@ import React from "react"; -import { Container } from "@material-ui/core"; +import { Container } from "@mui/material"; import { useHost } from "../../../api/SwaggerApi"; import { LokiPanel } from "./LokiPanel"; diff --git a/src/components/common/Loki/LokiPanel.js b/src/components/common/Loki/LokiPanel.js index e9f0e4bda081f878b29f8a3777ccd5ff7b1771af..21c1536482a0e225b19bb77c4040082a2b6a0b74 100644 --- a/src/components/common/Loki/LokiPanel.js +++ b/src/components/common/Loki/LokiPanel.js @@ -1,5 +1,5 @@ import React, { useState, useEffect, useCallback } from "react"; -import { makeStyles } from "@material-ui/core/styles"; +import { makeStyles } from "@mui/styles"; import { useLokiSysLog, useLokiProcServLog } from "../../../api/SwaggerApi"; import { Grid, @@ -9,7 +9,7 @@ import { FormControl, LinearProgress, Container -} from "@material-ui/core"; +} from "@mui/material"; import { formatDate } from "../Helper.js"; import { Console } from "../Console/Console"; import { useSafePolling } from "../../../hooks/Polling"; @@ -66,8 +66,8 @@ export function LokiPanel({ host, iocName, isSyslog, isDeployed }) { const handleChange = (event) => { setPeriodChange(true); - setTimeRange(event.target.value); - setTimeRangeText(event.currentTarget.innerText); + setTimeRange(event.target?.value); + setTimeRangeText(event.currentTarget?.innerText); }; // remove progressBar if intervall has been changed, and data received @@ -124,6 +124,7 @@ export function LokiPanel({ host, iocName, isSyslog, isDeployed }) { > <InputLabel id="time-range-select">Time range</InputLabel> <Select + variant="standard" labelId="time-range-select" value={timeRange} onChange={handleChange} @@ -140,7 +141,7 @@ export function LokiPanel({ host, iocName, isSyslog, isDeployed }) { <Grid container spacing={1} - justify="flex-start" + justifyContent="flex-start" > <Grid item diff --git a/src/components/common/Popover/Popover.js b/src/components/common/Popover/Popover.js index 5c6e54b70ada096a4c684b8e9c77f2dba784a093..8f498d624c843b0487a167fcd918e941ec0aeb4a 100644 --- a/src/components/common/Popover/Popover.js +++ b/src/components/common/Popover/Popover.js @@ -1,5 +1,6 @@ import React from "react"; -import { Popover as MuiPopover, makeStyles } from "@material-ui/core"; +import { Popover as MuiPopover } from "@mui/material"; +import { makeStyles } from "@mui/styles"; const useStyles = makeStyles((theme) => ({ popover: { diff --git a/src/components/common/PrimeKeyValueTable/PrimeKeyValueTable.stories.js b/src/components/common/PrimeKeyValueTable/PrimeKeyValueTable.stories.js index e4b53992af82ef21493972c2fd63a89695a813c6..3732b778753c3e6219e8589ce75600805aa84903 100644 --- a/src/components/common/PrimeKeyValueTable/PrimeKeyValueTable.stories.js +++ b/src/components/common/PrimeKeyValueTable/PrimeKeyValueTable.stories.js @@ -1,5 +1,6 @@ import React from "react"; -import { Container, ThemeProvider } from "@material-ui/core"; +import { Container, StyledEngineProvider } from "@mui/material"; +import { ThemeProvider } from "@mui/material/styles"; import { theme } from "../../../style/Theme"; import { PrimeKeyValueTable } from "./PrimeKeyValueTable"; @@ -9,11 +10,13 @@ export default { }; const Template = (args) => ( - <ThemeProvider theme={theme}> - <Container> - <PrimeKeyValueTable {...args} /> - </Container> - </ThemeProvider> + <StyledEngineProvider injectFirst> + <ThemeProvider theme={theme}> + <Container> + <PrimeKeyValueTable {...args} /> + </Container> + </ThemeProvider> + </StyledEngineProvider> ); export const Example = Template.bind({}); diff --git a/src/components/common/SearchBar/SearchBar.js b/src/components/common/SearchBar/SearchBar.js index 118e7f90d1b5810bd89c321ae10c1c80734e30b9..885133b869edf44830a7f19ce8cef27e66e8b848 100644 --- a/src/components/common/SearchBar/SearchBar.js +++ b/src/components/common/SearchBar/SearchBar.js @@ -3,8 +3,8 @@ import React, { Container, Fade, TextField -} from "@material-ui/core"; -import { Check } from "@material-ui/icons"; +} from "@mui/material"; +import { Check } from "@mui/icons-material"; import { useEffect, useState } from "react"; import { useEffectAfterMount } from "../../../hooks/MountEffects"; import { useTypingTimer } from "../SearchBoxFilter/TypingTimer"; diff --git a/src/components/common/SearchBoxFilter/SearchBoxFilter.js b/src/components/common/SearchBoxFilter/SearchBoxFilter.js index f1dea0daca29dd6f0e8fbff85c8757370868b601..5ae724a11fe40a6818290c5ff7099054deb8b063 100644 --- a/src/components/common/SearchBoxFilter/SearchBoxFilter.js +++ b/src/components/common/SearchBoxFilter/SearchBoxFilter.js @@ -1,12 +1,6 @@ import React, { useState, useEffect } from "react"; -import { - Container, - List, - ListItem, - Paper, - TextField, - makeStyles -} from "@material-ui/core"; +import { Container, List, ListItem, Paper, TextField } from "@mui/material"; +import { makeStyles } from "@mui/styles"; import { useTypingTimer } from "./TypingTimer"; const useStyles = makeStyles((theme) => ({ diff --git a/src/components/common/SimpleModal/SimpleModal.js b/src/components/common/SimpleModal/SimpleModal.js index 5f44815550fa8d241b002ee3d530209fb371507c..e696279b49297ecb90a5d2f0c5686982ac0e8e7c 100644 --- a/src/components/common/SimpleModal/SimpleModal.js +++ b/src/components/common/SimpleModal/SimpleModal.js @@ -1,5 +1,6 @@ import React from "react"; -import { makeStyles, Dialog } from "@material-ui/core"; +import { Dialog } from "@mui/material"; +import { makeStyles } from "@mui/styles"; const useStyles = makeStyles((theme) => ({ paper: { diff --git a/src/components/common/snackbar/Snackbar.js b/src/components/common/snackbar/Snackbar.js index d3b9083348febd63381d139847ad71f2712bcaa9..8ba7481f47b54913acae39faee2e4eaf57031f3c 100644 --- a/src/components/common/snackbar/Snackbar.js +++ b/src/components/common/snackbar/Snackbar.js @@ -1,6 +1,7 @@ import React from "react"; import { useSnackbar } from "notistack"; -import { Button, makeStyles } from "@material-ui/core"; +import { Button } from "@mui/material"; +import { makeStyles } from "@mui/styles"; const useStyles = makeStyles((theme) => ({ text: { diff --git a/src/components/common/stepper/StepperWithStyle.js b/src/components/common/stepper/StepperWithStyle.js index 1e0d35755365d658627c5b7dfec623c8cf1ec6e6..e416f3ba32af401572079e0f7a5a11c0dad30ddb 100644 --- a/src/components/common/stepper/StepperWithStyle.js +++ b/src/components/common/stepper/StepperWithStyle.js @@ -1,13 +1,13 @@ import React from "react"; -import { makeStyles, withStyles } from "@material-ui/core/styles"; +import { makeStyles, withStyles } from "@mui/styles"; import clsx from "clsx"; import { Stepper, Step, StepLabel, StepConnector, - Hidden -} from "@material-ui/core"; + useMediaQuery +} from "@mui/material"; import { theme } from "../../../style/Theme"; const useStyles = makeStyles({ @@ -46,12 +46,12 @@ const ColorlibConnectorHorizontal = withStyles({ top: 22 }, active: { - "& $line": { + "& .MuiStepConnector-line": { background: theme.palette.status.progress } }, completed: { - "& $line": { + "& .MuiStepConnector-line": { background: theme.palette.status.ok } }, @@ -68,12 +68,12 @@ const ColorlibConnectorVertical = withStyles({ top: 22 }, active: { - "& $line": { + "& .MuiStepConnector-line": { background: theme.palette.status.progress } }, completed: { - "& $line": { + "& .MuiStepConnector-line": { background: theme.palette.status.ok } }, @@ -87,6 +87,8 @@ const ColorlibConnectorVertical = withStyles({ })(StepConnector); export function StepperWithStyle({ steps, activeStep, isStepFailed, icons }) { + const smUp = useMediaQuery((theme) => theme.breakpoints.up("sm")); + const smDown = useMediaQuery((theme) => theme.breakpoints.down("sm")); const classes = useStyles(theme); function ColorlibStepIcon(props) { @@ -108,12 +110,13 @@ export function StepperWithStyle({ steps, activeStep, isStepFailed, icons }) { return ( <> - <Hidden smUp> + {smDown ? ( <Stepper className={classes.stepper} activeStep={activeStep} orientation="vertical" connector={<ColorlibConnectorVertical />} + style={{ padding: 24 }} > {steps.map((label, index) => { const labelProps = {}; @@ -135,8 +138,8 @@ export function StepperWithStyle({ steps, activeStep, isStepFailed, icons }) { ); })} </Stepper> - </Hidden> - <Hidden xsDown> + ) : null} + {smUp ? ( <Stepper className={classes.stepper} alternativeLabel @@ -166,7 +169,7 @@ export function StepperWithStyle({ steps, activeStep, isStepFailed, icons }) { ); })} </Stepper> - </Hidden> + ) : null} </> ); } diff --git a/src/components/common/table/CustomTable.js b/src/components/common/table/CustomTable.js index 44288d1d352860d0fe402d4a271015e2d217ac28..071709f6b19113afa5149058d6bcd2eafdea4288 100644 --- a/src/components/common/table/CustomTable.js +++ b/src/components/common/table/CustomTable.js @@ -1,6 +1,6 @@ import React, { useRef, useState } from "react"; import PropTypes from "prop-types"; -import { LinearProgress, Paper } from "@material-ui/core"; +import { LinearProgress, Paper } from "@mui/material"; import { DataTable } from "primereact/datatable"; import { Column } from "primereact/column"; import { ContextMenu } from "primereact/contextmenu"; diff --git a/src/components/deployments/DeploymentBadge.js b/src/components/deployments/DeploymentBadge.js index 9031236ec6537f5f48e5adde12780d44a390d989..5dd03dbfc5aaa917b4dc74282993cef95b0c5a42 100644 --- a/src/components/deployments/DeploymentBadge.js +++ b/src/components/deployments/DeploymentBadge.js @@ -1,7 +1,7 @@ import React from "react"; import { IconBadge } from "../common/Badge/IconBadge"; import { DeploymentTypeIcon } from "./DeploymentIcons"; -import { Link as MuiLink } from "@material-ui/core"; +import { Link as MuiLink } from "@mui/material"; import { Link as ReactRouterLink } from "react-router-dom"; export function DeploymentBadge({ deployment }) { @@ -9,6 +9,7 @@ export function DeploymentBadge({ deployment }) { <MuiLink component={ReactRouterLink} to={`/iocs/${deployment.iocId}`} + underline="hover" > {deployment.namingName} </MuiLink> diff --git a/src/components/deployments/DeploymentDetails.js b/src/components/deployments/DeploymentDetails.js index eefbb416ea207158c255a375e4659636a50c9eb8..b4e86498f1f00ec70ab558ec115aaa4596edf177 100644 --- a/src/components/deployments/DeploymentDetails.js +++ b/src/components/deployments/DeploymentDetails.js @@ -5,9 +5,9 @@ import { Card, CardContent, Container, - Link as MuiLink, - makeStyles -} from "@material-ui/core"; + Link as MuiLink +} from "@mui/material"; +import { makeStyles } from "@mui/styles"; import { DeploymentStepper } from "./DeploymentStepper"; import { KeyValueTable } from "../common/KeyValueTable/KeyValueTable"; import { SimpleAccordion } from "../common/Accordion/SimpleAccordion"; @@ -74,6 +74,7 @@ export function DeploymentDetails({ deployment, deploymentJob }) { <MuiLink component={ReactRouterLink} to={`/hosts/${deployment.host.csEntryId}`} + underline="hover" > {deployment.host.fqdn} </MuiLink> @@ -104,6 +105,7 @@ export function DeploymentDetails({ deployment, deploymentJob }) { href={deployment.sourceUrl} target="_blank" rel="noreferrer" + underline="hover" > {deployment.sourceUrl} </MuiLink> @@ -115,6 +117,7 @@ export function DeploymentDetails({ deployment, deploymentJob }) { href={deployment.awxJobUrl} target="_blank" rel="noreferrer" + underline="hover" > {deployment.awxJobUrl} </MuiLink> diff --git a/src/components/deployments/DeploymentIcons.js b/src/components/deployments/DeploymentIcons.js index d2a61ef08a0875fa36d74dc1c969af7051794b1d..c591afcb1a31eaff243f048da27897dce4444486 100644 --- a/src/components/deployments/DeploymentIcons.js +++ b/src/components/deployments/DeploymentIcons.js @@ -6,8 +6,8 @@ import { QueueOutlined, AddCircleOutline, RemoveCircleOutline -} from "@material-ui/icons"; -import { Tooltip } from "@material-ui/core"; +} from "@mui/icons-material"; +import { Tooltip } from "@mui/material"; import { theme } from "../../style/Theme"; export function DeploymentStatusIcon({ status }) { diff --git a/src/components/deployments/DeploymentJobOutput.js b/src/components/deployments/DeploymentJobOutput.js index 79b7b8e36d9a102e60351e3370185e53937ec9b6..93129e6e8f4352460d1ab5f5387ebfce1fbbdb8c 100644 --- a/src/components/deployments/DeploymentJobOutput.js +++ b/src/components/deployments/DeploymentJobOutput.js @@ -1,5 +1,5 @@ import React, { useCallback, useRef, useEffect } from "react"; -import { LinearProgress, Typography, Container } from "@material-ui/core"; +import { LinearProgress, Typography, Container } from "@mui/material"; import { useJobLogById } from "../../api/SwaggerApi"; import { Console } from "../common/Console/Console"; import { useSafePolling } from "../../hooks/Polling"; diff --git a/src/components/deployments/DeploymentStepper.js b/src/components/deployments/DeploymentStepper.js index b75dc6197e67109ae7021352dfa24f633e4169ad..3bc6665c275754972027bda1580d3ebf8a79d7e2 100644 --- a/src/components/deployments/DeploymentStepper.js +++ b/src/components/deployments/DeploymentStepper.js @@ -3,7 +3,7 @@ import { ScheduleOutlined, RotateRightOutlined, CheckCircleOutline -} from "@material-ui/icons"; +} from "@mui/icons-material"; import { StepperWithStyle } from "../common/stepper/StepperWithStyle"; export function DeploymentStepper(props) { diff --git a/src/components/deployments/DeploymentsList.js b/src/components/deployments/DeploymentsList.js index f8bffc73d894b972d6717a75ca25340cf187b008..a809d8bb8a9cfddd30d888461626ace4192f1dbf 100644 --- a/src/components/deployments/DeploymentsList.js +++ b/src/components/deployments/DeploymentsList.js @@ -1,5 +1,5 @@ import React from "react"; -import { List, ListItem, Paper } from "@material-ui/core"; +import { List, ListItem, Paper } from "@mui/material"; import { Link } from "react-router-dom"; import { DeploymentBadge } from "./DeploymentBadge"; diff --git a/src/components/dialog/ConfirmationDialog.js b/src/components/dialog/ConfirmationDialog.js index 650215cf69337a821bf4f968d5f4cf59a51b6c19..5b27216abb7eed6fa5d59dc149710ce660674ed0 100644 --- a/src/components/dialog/ConfirmationDialog.js +++ b/src/components/dialog/ConfirmationDialog.js @@ -5,9 +5,9 @@ import { DialogActions, DialogContent, DialogTitle, - DialogContentText, - makeStyles -} from "@material-ui/core"; + DialogContentText +} from "@mui/material"; +import { makeStyles } from "@mui/styles"; const useStyles = makeStyles((theme) => ({ title: { diff --git a/src/components/host/HostIcons.js b/src/components/host/HostIcons.js index 67096e4504211c4ba8bc34b93c11dc366b495445..4e8ee6cc9a32f22e35bf0d9057c3ca27d983c6cc 100644 --- a/src/components/host/HostIcons.js +++ b/src/components/host/HostIcons.js @@ -1,12 +1,12 @@ import React from "react"; -import { Tooltip, useTheme } from "@material-ui/core"; +import { Tooltip, useTheme } from "@mui/material"; import { Brightness1, ErrorOutline, Error, RadioButtonUnchecked, HelpOutline -} from "@material-ui/icons"; +} from "@mui/icons-material"; export function HostStatusIcon({ host }) { const theme = useTheme(); diff --git a/src/components/host/HostList.js b/src/components/host/HostList.js index 433218e2f15149debab65c8f37c04170da7b4bf4..165bc3b13fed2b6c5effc8a7c29b5c1dd2f4f84d 100644 --- a/src/components/host/HostList.js +++ b/src/components/host/HostList.js @@ -1,5 +1,5 @@ import React from "react"; -import { List, ListItem, Paper } from "@material-ui/core"; +import { List, ListItem, Paper } from "@mui/material"; import { Link } from "react-router-dom"; import { HostBadge } from "./HostBadge"; diff --git a/src/components/host/HostTable.js b/src/components/host/HostTable.js index b3f47069c3cd479b2b9563087284256932f202b8..784b48cb29dbf51b8f0b40d67dbd34037afbc2e9 100644 --- a/src/components/host/HostTable.js +++ b/src/components/host/HostTable.js @@ -1,5 +1,5 @@ import React from "react"; -import { Grid, Tooltip } from "@material-ui/core"; +import { Grid, Tooltip } from "@mui/material"; import { CustomTable } from "../common/table/CustomTable"; import { HostStatusIcon } from "./HostIcons"; import { noWrapText } from "../common/Helper"; diff --git a/src/components/host/HostTable.spec.js b/src/components/host/HostTable.spec.js index a21b6c894d7fad6867113badddf4aa4be036d960..9c683501a4f0fde11fc612cf33a1b8ad927f5dc5 100644 --- a/src/components/host/HostTable.spec.js +++ b/src/components/host/HostTable.spec.js @@ -39,7 +39,7 @@ describe("HostTable", () => { .each(($el, index) => { if (index === 0) { const iconTitle = firstRowData[index]; - cy.wrap($el).find(`svg[title=${iconTitle}]`); + cy.wrap($el).find(`svg[aria-label=${iconTitle}]`); } else { cy.wrap($el) .find("p") diff --git a/src/components/host/HostTable.stories.js b/src/components/host/HostTable.stories.js index 426a237039fb6d675b17fc77c1c6d9899cb208ed..f4c2e17182b32afa3b028b94ad3d4814e13d3903 100644 --- a/src/components/host/HostTable.stories.js +++ b/src/components/host/HostTable.stories.js @@ -1,5 +1,5 @@ import React from "react"; -import { Container } from "@material-ui/core"; +import { Container } from "@mui/material"; import hosts from "../../mocks/fixtures/PagedCSEntryHostResponse.json"; import { HostTable } from "./HostTable"; import { RouterHarness } from "../../mocks/AppHarness"; diff --git a/src/components/navigation/ErrorBoundary/ErrorBoundary.js b/src/components/navigation/ErrorBoundary/ErrorBoundary.js index ddbd6a0d0780865ee18bd07592b768579916992d..693bd2cac19b09c11a564d2b2ca84b7e472c7871 100644 --- a/src/components/navigation/ErrorBoundary/ErrorBoundary.js +++ b/src/components/navigation/ErrorBoundary/ErrorBoundary.js @@ -1,5 +1,5 @@ -import { Box, Button, Container, Grid, Typography } from "@material-ui/core"; -import { BugReport } from "@material-ui/icons"; +import { Box, Button, Container, Grid, Typography } from "@mui/material"; +import { BugReport } from "@mui/icons-material"; import React, { useCallback, useState } from "react"; import { ErrorBoundary, useErrorHandler } from "react-error-boundary"; import { useEffectOnMount } from "../../../hooks/MountEffects"; diff --git a/src/components/navigation/GlobalAppBar/GlobalAppBar.js b/src/components/navigation/GlobalAppBar/GlobalAppBar.js index 2ffe624b500226ff7df7c7758bfc77fcbf6fe9c3..95946b2fa4f594da5936dd68bf0ba5d469b3fd25 100644 --- a/src/components/navigation/GlobalAppBar/GlobalAppBar.js +++ b/src/components/navigation/GlobalAppBar/GlobalAppBar.js @@ -15,7 +15,6 @@ import { ListItem, ListItemIcon, ListItemText, - makeStyles, Toolbar, Typography, Menu, @@ -27,9 +26,10 @@ import { List, Box, Divider, - useTheme -} from "@material-ui/core"; -import { withStyles } from "@material-ui/core/styles"; + useTheme, + ListItemButton +} from "@mui/material"; +import { makeStyles, withStyles } from "@mui/styles"; import { LockOpen, Home, @@ -37,11 +37,11 @@ import { Storage, TrendingUp, SettingsInputComponent -} from "@material-ui/icons"; -import HelpIcon from "@material-ui/icons/Help"; +} from "@mui/icons-material"; +import HelpIcon from "@mui/icons-material/Help"; import { DeploymentStatusIcon } from "../../deployments/DeploymentIcons"; -import DeleteIcon from "@material-ui/icons/Delete"; -import NotificationsIcon from "@material-ui/icons/Notifications"; +import DeleteIcon from "@mui/icons-material/Delete"; +import NotificationsIcon from "@mui/icons-material/Notifications"; import { MenuDrawer } from "../Menu/MenuDrawer"; import { Link } from "react-router-dom"; import { userContext } from "../../../api/SwaggerApi"; @@ -102,7 +102,6 @@ const StyledMenu = withStyles({ <div style={{ ...props.theme.mixins.toolbar }} /> <Menu elevation={0} - getContentAnchorEl={null} anchorOrigin={{ vertical: "bottom", horizontal: "center" @@ -116,17 +115,6 @@ const StyledMenu = withStyles({ </> )); -const StyledMenuItem = withStyles((theme) => ({ - root: { - "&:focus": { - backgroundColor: theme.palette.common.gray, - "& .MuiListItemIcon-root, & .MuiListItemText-primary": { - color: theme.palette.common.black - } - } - } -}))(MenuItem); - function InfoMenuItem({ children }) { return ( <MenuItem @@ -219,6 +207,7 @@ export function ButtonAppBar({ homeUrl, homeClick, title, button }) { className={classes.menuButton} color="inherit" aria-label="menu" + size="large" > <Home /> </IconButton> @@ -262,8 +251,7 @@ function MenuListItem({ url, icon, text, tooltip }) { placement="right" arrow > - <ListItem - button + <ListItemButton component={Link} to={url} selected={currentUrl.split("?")[0].endsWith(url)} @@ -273,7 +261,7 @@ function MenuListItem({ url, icon, text, tooltip }) { primary={text} primaryTypographyProps={{ variant: "h5" }} /> - </ListItem> + </ListItemButton> </Tooltip> </> ); @@ -350,7 +338,7 @@ export function ProfileMenu() { key={role} /> ))} - <StyledMenuItem + <MenuItem onClick={() => { handleClose(); logout(); @@ -363,18 +351,18 @@ export function ProfileMenu() { primary="Logout" primaryTypographyProps={{ variant: "h5" }} /> - </StyledMenuItem> + </MenuItem> </StyledMenu> </> ); } -const StyledListItem = withStyles(() => ({ +const StyledListItemButton = withStyles(() => ({ root: { margin: 0, paddingLeft: 10 } -}))(ListItem); +}))(ListItemButton); const StyledListItemIcon = withStyles(() => ({ root: { @@ -409,8 +397,7 @@ export function NotificationMenu() { return ( <> {notification.link ? ( - <StyledListItem - button + <StyledListItemButton component={Link} to={notification.link} onClick={() => { @@ -423,16 +410,16 @@ export function NotificationMenu() { <Typography className={classes.notificationItem}> {notification.message} </Typography> - </StyledListItem> + </StyledListItemButton> ) : ( - <StyledListItem key={notification.message}> + <StyledListItemButton key={notification.message}> <StyledListItemIcon className={classes.notificationItem}> <DeploymentStatusIcon status={notification.status} /> </StyledListItemIcon> <Typography className={classes.notificationItem}> {notification.message} </Typography> - </StyledListItem> + </StyledListItemButton> )} </> ); @@ -453,6 +440,7 @@ export function NotificationMenu() { clearNotifications(); handleClose(); }} + size="large" > <Tooltip title="Clear all notifications" @@ -486,6 +474,7 @@ export function NotificationMenu() { color="inherit" onClick={handleClick} className={classes.notificationButton} + size="large" > <Badge badgeContent={notifications.length} @@ -510,7 +499,7 @@ export function NotificationMenu() { <Grid container spacing={0} - justify="flex-end" + justifyContent="flex-end" > {notifications.length > 0 ? haveNotification() : noNotification()} </Grid> diff --git a/src/components/navigation/Menu/MenuDrawer.js b/src/components/navigation/Menu/MenuDrawer.js index 0d795bc5923eb12743c5349c6ed59547b71e0f32..09ec55a9c0b7cb68082244e36ad5dd74da264464 100644 --- a/src/components/navigation/Menu/MenuDrawer.js +++ b/src/components/navigation/Menu/MenuDrawer.js @@ -6,11 +6,11 @@ import { IconButton, Box, Tooltip, - makeStyles, useTheme -} from "@material-ui/core"; -import ChevronLeftIcon from "@material-ui/icons/ChevronLeft"; -import ChevronRightIcon from "@material-ui/icons/ChevronRight"; +} from "@mui/material"; +import ChevronLeftIcon from "@mui/icons-material/ChevronLeft"; +import ChevronRightIcon from "@mui/icons-material/ChevronRight"; +import { makeStyles } from "@mui/styles"; const useStyles = makeStyles((theme) => ({ footer: { @@ -103,6 +103,7 @@ export function MenuDrawer({ open, toggleDrawer, children }) { <IconButton onClick={handleDrawerClose} className={classes.toggleButton} + size="large" > {open ? <ChevronLeftIcon /> : <ChevronRightIcon />} </IconButton> diff --git a/src/components/navigation/NotFound.js b/src/components/navigation/NotFound.js index ac9a0ec775695ab156c7f032f6b6cb5ad9c414b3..afdfe0d9337e1e20305ecb04391775ca9be5609e 100644 --- a/src/components/navigation/NotFound.js +++ b/src/components/navigation/NotFound.js @@ -1,12 +1,6 @@ import React from "react"; -import { - Paper, - Typography, - Box, - Button, - makeStyles, - Link -} from "@material-ui/core"; +import { Paper, Typography, Box, Button, Link } from "@mui/material"; +import { makeStyles } from "@mui/styles"; import { RootContainer } from "../../components/common/Container/RootContainer"; import { useRedirect } from "../../hooks/Redirect"; @@ -70,6 +64,7 @@ export default function NotFound({ message }) { href="https://jira.esss.lu.se/plugins/servlet/desk/portal/44?requestGroup=137" target="_blank" rel="noreferrer" + underline="hover" > Service Desk </Link> diff --git a/src/components/records/RecordIcons.js b/src/components/records/RecordIcons.js index 6c8fa22e87f4eb0c77e64dcc06847fff69585c95..c1852777a39abc6e12a1afd55cf0d2f2ce055558 100644 --- a/src/components/records/RecordIcons.js +++ b/src/components/records/RecordIcons.js @@ -1,10 +1,10 @@ import React from "react"; -import { Tooltip, useTheme } from "@material-ui/core"; +import { Tooltip, useTheme } from "@mui/material"; import { Brightness1, RadioButtonUnchecked, HelpOutline -} from "@material-ui/icons"; +} from "@mui/icons-material"; export function RecordStatusIcon({ record }) { const theme = useTheme(); diff --git a/src/components/records/RecordSearch.js b/src/components/records/RecordSearch.js index 5f047ab6bf0da5ef8859ecd9b4c7e433dea4e59f..7e52cfab2da79165c1890a1505d103797d27a8de 100644 --- a/src/components/records/RecordSearch.js +++ b/src/components/records/RecordSearch.js @@ -5,7 +5,7 @@ import { RecordTable } from "./RecordTable"; import { SearchBar } from "../common/SearchBar/SearchBar"; import useUrlState from "@ahooksjs/use-url-state"; import { serialize, deserialize } from "../common/URLState/URLState"; -import { Grid, Tabs, Tab, Typography } from "@material-ui/core"; +import { Grid, Tabs, Tab, Typography } from "@mui/material"; export function RecordSearch({ iocName, rowType }) { const [records, getRecords /* reset*/, , loading] = useRecordSearch(); @@ -99,8 +99,6 @@ export function RecordSearch({ iocName, rowType }) { <Tabs value={deserialize(state.record_tab)} onChange={handleTabChange} - indicatorColor="primary" - textColor="primary" > <Tab label={<Typography variant="h5">All</Typography>} /> <Tab label={<Typography variant="h5">Only active</Typography>} /> diff --git a/src/components/records/RecordTable.js b/src/components/records/RecordTable.js index 8846161331e454c4b6c5165ae5355c5d0dc9de79..8dcdb0a1bede0bf3047f2abaa3ecd89e1a4ff5fd 100644 --- a/src/components/records/RecordTable.js +++ b/src/components/records/RecordTable.js @@ -1,7 +1,7 @@ import React from "react"; import { CustomTable } from "../common/table/CustomTable"; import { RecordStatusIcon } from "./RecordIcons"; -import { Grid } from "@material-ui/core"; +import { Grid } from "@mui/material"; import { useRedirect } from "../../hooks/Redirect"; const recordsColumns = [ diff --git a/src/components/statistics/ActiveIOCChart/ActiveIOCChart.js b/src/components/statistics/ActiveIOCChart/ActiveIOCChart.js index 33188c8a7f2d7950c31ae0cfb18ccd8b6fc95457..e63be41a706d9fd9ed9d6bf0a27d840fdf7bd835 100644 --- a/src/components/statistics/ActiveIOCChart/ActiveIOCChart.js +++ b/src/components/statistics/ActiveIOCChart/ActiveIOCChart.js @@ -1,7 +1,7 @@ import React from "react"; import { useCurrentlyActiveIOCs } from "../../../api/SwaggerApi"; import { useEffect } from "react"; -import { LinearProgress, useTheme } from "@material-ui/core"; +import { LinearProgress, useTheme } from "@mui/material"; import { circularPalette } from "../../common/Helper"; import { BarChart, diff --git a/src/components/statistics/DeploymentLineChart/DeploymentLineChart.js b/src/components/statistics/DeploymentLineChart/DeploymentLineChart.js index d4fcf11d282855e7276f2027e260d21a37da9a8d..3f6cb2b2e7acf0c984bc402058a1188e9a1aece1 100644 --- a/src/components/statistics/DeploymentLineChart/DeploymentLineChart.js +++ b/src/components/statistics/DeploymentLineChart/DeploymentLineChart.js @@ -2,7 +2,7 @@ import React from "react"; import { useEffect } from "react"; import { formatDateOnly } from "../../common/Helper"; import { circularPalette } from "../../common/Helper"; -import { LinearProgress, useTheme } from "@material-ui/core"; +import { LinearProgress, useTheme } from "@mui/material"; import { AreaChart, Area, diff --git a/src/components/statistics/OperationChart/OperationChart.js b/src/components/statistics/OperationChart/OperationChart.js index 97bec2cf7ff081b8a659092aa04d93f1b5f46789..f7faf934f685eb811a2797791c8aabbef3eb8a83 100644 --- a/src/components/statistics/OperationChart/OperationChart.js +++ b/src/components/statistics/OperationChart/OperationChart.js @@ -2,7 +2,7 @@ import React from "react"; import { useEffect } from "react"; import { formatDateOnly } from "../../common/Helper"; import { circularPalette } from "../../common/Helper"; -import { LinearProgress, useTheme } from "@material-ui/core"; +import { LinearProgress, useTheme } from "@mui/material"; import { AreaChart, Area, diff --git a/src/icons/CCCEControlSymbol.js b/src/icons/CCCEControlSymbol.js index d01a503dfe6e6a1a24e86662d55096314a0cd28e..15bcf8622475ad7c0c602d56e02c683d80cfe387 100644 --- a/src/icons/CCCEControlSymbol.js +++ b/src/icons/CCCEControlSymbol.js @@ -1,6 +1,6 @@ import React from "react"; import { ReactComponent as CcceControlSymbolGray } from "./resources/control/ccce-control-symbol_757575.svg"; -import SvgIcon from "@material-ui/core/SvgIcon"; +import SvgIcon from "@mui/material/SvgIcon"; export function CCCEControlSymbol(props) { return ( diff --git a/src/icons/RocketLaunch.js b/src/icons/RocketLaunch.js index dc1c0421b4c2ae97732985c0269e524ef8a72791..7769db6b583dc4c9a6cb7ed1d0f17cf48d71f666 100644 --- a/src/icons/RocketLaunch.js +++ b/src/icons/RocketLaunch.js @@ -1,7 +1,7 @@ import React from "react"; import { ReactComponent as RocketLaunchBlack } from "./resources/rocket/rocket_launch_black_24dp.svg"; -import { Tooltip } from "@material-ui/core"; -import SvgIcon from "@material-ui/core/SvgIcon"; +import { Tooltip } from "@mui/material"; +import SvgIcon from "@mui/material/SvgIcon"; export function RocketLaunch(props) { return ( diff --git a/src/mocks/AppHarness.js b/src/mocks/AppHarness.js index f99888d2638fb512089e5b143cf11d0da01a7b28..51fdee6bfca34d7cd498e65df07b3274bf7db305 100644 --- a/src/mocks/AppHarness.js +++ b/src/mocks/AppHarness.js @@ -1,6 +1,7 @@ import React from "react"; import { SnackbarProvider } from "notistack"; -import { Container, ThemeProvider } from "@material-ui/core"; +import { Container, StyledEngineProvider } from "@mui/material"; +import { ThemeProvider } from "@mui/material/styles"; import { theme } from "../style/Theme"; import { APIProvider, UserProvider } from "../api/SwaggerApi"; import { NotificationProvider } from "../components/common/notification/Notifications"; @@ -13,27 +14,31 @@ export function AppHarness({ children, initialHistory = ["/"] }) { preventDuplicate maxSnack="5" > - <ThemeProvider theme={theme}> - <MemoryRouter initialEntries={initialHistory}> - <APIProvider> - <UserProvider> - <NotificationProvider> - <GlobalAppBar> - <Container>{children}</Container> - </GlobalAppBar> - </NotificationProvider> - </UserProvider> - </APIProvider> - </MemoryRouter> - </ThemeProvider> + <StyledEngineProvider injectFirst> + <ThemeProvider theme={theme}> + <MemoryRouter initialEntries={initialHistory}> + <APIProvider> + <UserProvider> + <NotificationProvider> + <GlobalAppBar> + <Container>{children}</Container> + </GlobalAppBar> + </NotificationProvider> + </UserProvider> + </APIProvider> + </MemoryRouter> + </ThemeProvider> + </StyledEngineProvider> </SnackbarProvider> ); } export function RouterHarness({ children, initialHistory = ["/"] }) { return ( - <ThemeProvider theme={theme}> - <MemoryRouter initialEntries={initialHistory}>{children}</MemoryRouter> - </ThemeProvider> + <StyledEngineProvider injectFirst> + <ThemeProvider theme={theme}> + <MemoryRouter initialEntries={initialHistory}>{children}</MemoryRouter> + </ThemeProvider> + </StyledEngineProvider> ); } diff --git a/src/stories/components/common/IOC/IOCTable.stories.js b/src/stories/components/common/IOC/IOCTable.stories.js index b0edf45439fdb0b39743520ce3d95f3a3d0cb40a..4066059a7d34bbb50046f2888a92e13eee518042 100644 --- a/src/stories/components/common/IOC/IOCTable.stories.js +++ b/src/stories/components/common/IOC/IOCTable.stories.js @@ -1,6 +1,6 @@ import React from "react"; import { IOCTable } from "../../../../components/IOC/IOCTable"; -import { Container } from "@material-ui/core"; +import { Container } from "@mui/material"; import iocs from "../../../../mocks/fixtures/PagedIOCResponse.json"; import asyncCombinedIOCs from "../../../../mocks/fixtures/AsyncCombinedIOCs.json"; import { RouterHarness } from "../../../../mocks/AppHarness"; diff --git a/src/stories/components/common/PrimeKeyValueTable/PrimeKeyValueTable.stories.js b/src/stories/components/common/PrimeKeyValueTable/PrimeKeyValueTable.stories.js index f7058772aaf67bfc0e29ab4ad080276e1c117693..ef2a9d37749de619c3cf5d3f9e5717269aac20c7 100644 --- a/src/stories/components/common/PrimeKeyValueTable/PrimeKeyValueTable.stories.js +++ b/src/stories/components/common/PrimeKeyValueTable/PrimeKeyValueTable.stories.js @@ -1,5 +1,6 @@ import React from "react"; -import { Container, ThemeProvider } from "@material-ui/core"; +import { Container, StyledEngineProvider } from "@mui/material"; +import { ThemeProvider } from "@mui/material/styles"; import { theme } from "../../../../style/Theme"; import { PrimeKeyValueTable } from "../../../../components/common/PrimeKeyValueTable/PrimeKeyValueTable"; import { disabledTable } from "../../../utils/common-args"; @@ -9,11 +10,13 @@ export default { }; const Template = (args) => ( - <ThemeProvider theme={theme}> - <Container> - <PrimeKeyValueTable {...args} /> - </Container> - </ThemeProvider> + <StyledEngineProvider injectFirst> + <ThemeProvider theme={theme}> + <Container> + <PrimeKeyValueTable {...args} /> + </Container> + </ThemeProvider> + </StyledEngineProvider> ); export const Example = (args) => <Template {...args} />; diff --git a/src/stories/components/common/host/HostTable.stories.js b/src/stories/components/common/host/HostTable.stories.js index 44418331e4567f6a1c3f92e02280f6825bc99706..80e1e304828186fe1ad9f760f53820ef7d058e45 100644 --- a/src/stories/components/common/host/HostTable.stories.js +++ b/src/stories/components/common/host/HostTable.stories.js @@ -1,5 +1,5 @@ import React from "react"; -import { Container } from "@material-ui/core"; +import { Container } from "@mui/material"; import hosts from "../../../../mocks/fixtures/PagedCSEntryHostResponse.json"; import { HostTable } from "../../../../components/host/HostTable"; import { RouterHarness } from "../../../../mocks/AppHarness"; diff --git a/src/stories/components/common/job/JobDetails.stories.js b/src/stories/components/common/job/JobDetails.stories.js index 4ab5cc322fb7cc98076a9583fade16e3053c4207..8002898b1ca0e235521d923c20de230e00afffca 100644 --- a/src/stories/components/common/job/JobDetails.stories.js +++ b/src/stories/components/common/job/JobDetails.stories.js @@ -1,5 +1,6 @@ import React from "react"; -import { Container, ThemeProvider } from "@material-ui/core"; +import { Container, StyledEngineProvider } from "@mui/material"; +import { ThemeProvider } from "@mui/material/styles"; import { theme } from "../../../../style/Theme"; import { JobDetails } from "../../../../components/Job/JobDetails"; import deploymentOperation from "../../../../mocks/fixtures/OperationDeploymentDetails.json"; @@ -10,13 +11,15 @@ export default { }; const Template = (args) => ( - <ThemeProvider theme={theme}> - <RouterHarness> - <Container> - <JobDetails {...args} /> - </Container> - </RouterHarness> - </ThemeProvider> + <StyledEngineProvider injectFirst> + <ThemeProvider theme={theme}> + <RouterHarness> + <Container> + <JobDetails {...args} /> + </Container> + </RouterHarness> + </ThemeProvider> + </StyledEngineProvider> ); export const Deployment = (args) => <Template {...args} />; diff --git a/src/stories/components/common/job/JobTable.stories.js b/src/stories/components/common/job/JobTable.stories.js index 172acb97713c154d4430ec20bf94ae7afee4bc6c..de00a0249fe805c988a6517af1e1d9be13ef4e45 100644 --- a/src/stories/components/common/job/JobTable.stories.js +++ b/src/stories/components/common/job/JobTable.stories.js @@ -2,7 +2,7 @@ import React from "react"; import { RouterHarness } from "../../../../mocks/AppHarness"; import { JobTable } from "../../../../components/Job/JobTable"; import { disabledTable } from "../../../utils/common-args"; -import { Container } from "@material-ui/core"; +import { Container } from "@mui/material"; import operationList from "../../../../mocks/fixtures/OperationList.json"; export default { diff --git a/src/style/Theme.js b/src/style/Theme.js index 62b864e6d06094166b86228a6c9e5aeb8a1e809b..10aff290f548154477657323b36f17501dfb31ef 100644 --- a/src/style/Theme.js +++ b/src/style/Theme.js @@ -1,45 +1,58 @@ -import { createTheme } from "@material-ui/core/styles"; +import { createTheme } from "@mui/material/styles"; import { chartColors } from "./Palette"; -import createBreakpoints from "@material-ui/core/styles/createBreakpoints"; -const breakpoints = createBreakpoints({}); +let theme = createTheme({}); -export const theme = createTheme({ - breakpoints, - overrides: { +theme = createTheme({ + components: { + MuiWithWidth: { + defaultProps: { + initialWidth: "lg" + } + }, MuiTooltip: { tooltip: { fontSize: "0.875rem", backgroundColor: "#707070ff" } }, - MuiListItem: { - root: { - "&$selected, &$selected:hover": { - backgroundColor: "#ccccccff" - } - }, - button: { - "&:hover": { - backgroundColor: "#ddddddff" + MuiListItemButton: { + styleOverrides: { + root: { + "&.Mui-selected, &.Mui-selected:hover": { + backgroundColor: "#cccccc" + }, + "&:hover": { + backgroundColor: "#ddddddff" + } } } }, MuiInputBase: { - root: { - fontSize: "0.875rem" + styleOverrides: { + root: { + fontSize: "0.875rem", + paddingY: 2 + } } }, MuiTypography: { body1: { fontSize: "0.875rem" } + }, + MuiDialogContent: { + styleOverrides: { + root: { + paddingTop: "0.5rem !important", + paddingBottom: "0.5rem !important" + } + } } }, - props: { MuiWithWidth: { initialWidth: "lg" } }, drawer: { widthOpen: 240, - widthClose: 57 + widthClose: 75 }, palette: { primary: { @@ -74,89 +87,89 @@ export const theme = createTheme({ ].join(","), h1: { fontFamily: "Titillium Web, sans-serif", - [breakpoints.down("md")]: { + [theme.breakpoints.down("md")]: { fontSize: "0.98rem" }, - [breakpoints.up("md")]: { + [theme.breakpoints.up("md")]: { fontSize: "1.31rem" } }, h2: { fontFamily: ["Segoe UI", "Roboto", "Noto Sans"].join(","), - [breakpoints.down("md")]: { + [theme.breakpoints.down("md")]: { fontSize: "1.3rem" }, - [breakpoints.up("md")]: { + [theme.breakpoints.up("md")]: { fontSize: "1.7rem" }, fontWeight: 600 }, h3: { fontFamily: ["Segoe UI", "Roboto", "Noto Sans"].join(","), - [breakpoints.down("md")]: { + [theme.breakpoints.down("md")]: { fontSize: "1.25rem" }, - [breakpoints.up("md")]: { + [theme.breakpoints.up("md")]: { fontSize: "1.75rem" }, fontWeight: 600 }, h4: { fontFamily: ["Segoe UI", "Roboto", "Noto Sans"].join(","), - [breakpoints.down("md")]: { + [theme.breakpoints.down("md")]: { fontSize: "0,98rem" }, - [breakpoints.up("md")]: { + [theme.breakpoints.up("md")]: { fontSize: "1.09rem" }, fontWeight: 600 }, h5: { fontFamily: ["Segoe UI", "Roboto", "Noto Sans"].join(","), - [breakpoints.down("md")]: { + [theme.breakpoints.down("md")]: { fontSize: "0.98rem" }, - [breakpoints.up("md")]: { + [theme.breakpoints.up("md")]: { fontSize: "0.875rem" }, fontWeight: 600 }, h6: { fontFamily: ["Segoe UI", "Roboto", "Noto Sans"].join(","), - [breakpoints.down("md")]: { + [theme.breakpoints.down("md")]: { fontSize: "0.765rem" }, - [breakpoints.up("md")]: { + [theme.breakpoints.up("md")]: { fontSize: "0.875rem" }, fontWeight: 600 }, overline: { fontFamily: ["Segoe UI", "Roboto", "Noto Sans"].join(","), - [breakpoints.down("md")]: { + [theme.breakpoints.down("md")]: { fontSize: "0.656rem" }, - [breakpoints.up("md")]: { + [theme.breakpoints.up("md")]: { fontSize: "0.875rem" }, fontWeight: 600 }, body1: { fontFamily: ["Segoe UI", "Roboto", "Noto Sans"].join(","), - [breakpoints.down("md")]: { + [theme.breakpoints.down("md")]: { fontSize: "0.765rem !important", fontWeight: 600 }, - [breakpoints.down("md")]: { + [theme.breakpoints.down("md")]: { fontSize: "0.875rem !important" } }, button: { fontFamily: ["Segoe UI", "Roboto", "Noto Sans"].join(","), - [breakpoints.down("md")]: { + [theme.breakpoints.down("md")]: { fontSize: "0,656rem" }, - [breakpoints.up("md")]: { + [theme.breakpoints.up("md")]: { fontSize: "0,765rem" }, fontWeight: 500 @@ -175,3 +188,5 @@ export const theme = createTheme({ color: "#b2b2b2" } }); + +export { theme }; diff --git a/src/views/IOC/IOCDetailsContainer.js b/src/views/IOC/IOCDetailsContainer.js index a1a7e897f17cd8d74f853cd70f9de33409512b22..6c867484779ccdbc7b8b78fe30ea86b37faa2b64 100644 --- a/src/views/IOC/IOCDetailsContainer.js +++ b/src/views/IOC/IOCDetailsContainer.js @@ -1,6 +1,6 @@ import React, { useState } from "react"; import { IOCDetailsView } from "./IOCDetailsView"; -import { LinearProgress } from "@material-ui/core"; +import { LinearProgress } from "@mui/material"; import NotFound from "../../components/navigation/NotFound"; import { onFetchEntityError } from "../../components/common/Helper"; import { useIOC } from "../../api/SwaggerApi"; diff --git a/src/views/IOC/IOCDetailsView.js b/src/views/IOC/IOCDetailsView.js index 351419419fbcf7720eab498919d672e432d6ddea..e2ac6b85c2afcacc122a7bfb5b60a4fe9214e2ed 100644 --- a/src/views/IOC/IOCDetailsView.js +++ b/src/views/IOC/IOCDetailsView.js @@ -1,12 +1,5 @@ -import { - Grid, - Paper, - Tab, - Tabs, - Typography, - IconButton -} from "@material-ui/core"; -import ArrowBackIcon from "@material-ui/icons/ArrowBack"; +import { Grid, Paper, Tab, Tabs, Typography, IconButton } from "@mui/material"; +import ArrowBackIcon from "@mui/icons-material/ArrowBack"; import React, { useCallback, useEffect, useState } from "react"; import { useOngoingCommand, useOperationsSearch } from "../../api/SwaggerApi"; import { IOCLiveStatus } from "../../components/IOC/IOCLiveStatus"; @@ -132,8 +125,6 @@ export function IOCDetailsView({ ioc, getIOC, loading }) { <Tabs value={deserialize(state.tab)} onChange={handleTabChange} - indicatorColor="primary" - textColor="primary" > {children} </Tabs> @@ -153,6 +144,7 @@ export function IOCDetailsView({ ioc, getIOC, loading }) { <IconButton color="inherit" onClick={handleClick} + size="large" > <ArrowBackIcon /> </IconButton> @@ -163,7 +155,7 @@ export function IOCDetailsView({ ioc, getIOC, loading }) { > <Grid container - justify="center" + justifyContent="center" > {ioc && ( <CustomTabs> diff --git a/src/views/IOC/IOCListView.js b/src/views/IOC/IOCListView.js index b0a82de7318172c9cce790b94acfcb1c46339e42..58519c863316a10489baa0a89b7d6ae24c3c1688 100644 --- a/src/views/IOC/IOCListView.js +++ b/src/views/IOC/IOCListView.js @@ -7,13 +7,13 @@ import { Typography, Tabs, Tab -} from "@material-ui/core"; +} from "@mui/material"; import { RootContainer } from "../../components/common/Container/RootContainer"; import React, { useState, useEffect, useContext, useCallback } from "react"; import { useGlobalAppBar } from "../../components/navigation/GlobalAppBar/GlobalAppBar"; import { IOCAsyncList } from "../../components/IOC/IOCAsyncList"; import { useIOCSearch, userContext } from "../../api/SwaggerApi"; -import { makeStyles } from "@material-ui/core/styles"; +import { makeStyles } from "@mui/styles"; import { initRequestParams } from "../../components/common/Helper"; import { SearchBar } from "../../components/common/SearchBar/SearchBar"; import AccessControl from "../../components/auth/AccessControl"; @@ -155,7 +155,7 @@ export function IOCListView() { container spacing={1} component={Container} - justify="space-between" + justifyContent="space-between" alignItems="center" style={{ display: "flex" }} > @@ -163,8 +163,6 @@ export function IOCListView() { <Tabs value={deserialize(state.tab)} onChange={(event, tab) => handleTabChange(tab)} - indicatorColor="primary" - textColor="primary" > <Tab label={<Typography variant="h5">All</Typography>} /> <Tab diff --git a/src/views/help/HelpView.js b/src/views/help/HelpView.js index 970072de8d460166c8f156c18b918f0c54008f39..c99a9dba7c6155fee42efd1b3c3550d40a2792a3 100644 --- a/src/views/help/HelpView.js +++ b/src/views/help/HelpView.js @@ -1,5 +1,6 @@ import React from "react"; -import { Paper, Link, Typography, makeStyles } from "@material-ui/core"; +import { Paper, Link, Typography } from "@mui/material"; +import { makeStyles } from "@mui/styles"; import { useGlobalAppBar } from "../../components/navigation/GlobalAppBar/GlobalAppBar"; import "./helpfile.css"; import { RootContainer } from "../../components/common/Container/RootContainer"; @@ -36,6 +37,7 @@ export function HelpView() { href="https://naming.esss.lu.se/" target="_blank" rel="noreferrer" + underline="hover" > Naming </Link>{" "} @@ -44,6 +46,7 @@ export function HelpView() { href="https://confluence.esss.lu.se/x/k41nFg" target="_blank" rel="noreferrer" + underline="hover" > here </Link>{" "} @@ -55,6 +58,7 @@ export function HelpView() { href="https://csentry.esss.lu.se/" target="_blank" rel="noreferrer" + underline="hover" > CSEntry </Link> @@ -65,6 +69,7 @@ export function HelpView() { href="https://gitlab.esss.lu.se/iocs" target="_blank" rel="noreferrer" + underline="hover" > iocs/ </Link> @@ -73,6 +78,7 @@ export function HelpView() { href="https://gitlab.esss.lu.se/iocs/factory" target="_blank" rel="noreferrer" + underline="hover" > factory </Link>{" "} @@ -81,6 +87,7 @@ export function HelpView() { href="https://gitlab.esss.lu.se/iocs/manual" target="_blank" rel="noreferrer" + underline="hover" > manual </Link>{" "} @@ -89,6 +96,7 @@ export function HelpView() { href="https://gitlab.esss.lu.se/ics-cookiecutter/cookiecutter-e3-ioc" target="_blank" rel="noreferrer" + underline="hover" > cookiecutter </Link>{" "} @@ -98,6 +106,7 @@ export function HelpView() { href="https://gitlab.esss.lu.se/ccce/dev/e3-ioc-ccce-example" target="_blank" rel="noreferrer" + underline="hover" > here </Link> @@ -119,6 +128,7 @@ export function HelpView() { href="https://jira.esss.lu.se/plugins/servlet/desk/portal/44?requestGroup=137" target="_blank" rel="noreferrer" + underline="hover" > Service Desk </Link> @@ -131,6 +141,7 @@ export function HelpView() { href="https://confluence.esss.lu.se/x/3fPIFQ" target="_blank" rel="noreferrer" + underline="hover" > bug and known issues page </Link> @@ -139,6 +150,7 @@ export function HelpView() { href="https://confluence.esss.lu.se/x/CVGQFg" target="_blank" rel="noreferrer" + underline="hover" > help articles </Link> @@ -190,6 +202,7 @@ export function HelpView() { href="https://gitlab.esss.lu.se/iocs" target="_blank" rel="noreferrer" + underline="hover" > iocs/ </Link> @@ -244,6 +257,7 @@ export function HelpView() { href="https://confluence.esss.lu.se/x/CVGQFg" target="_blank" rel="noreferrer" + underline="hover" > deployment and monitoring </Link>{" "} @@ -270,6 +284,7 @@ export function HelpView() { href={`${window.SERVER_ADDRESS}${window.SWAGGER_UI_URL}`} target="_blank" rel="noreferrer" + underline="hover" > API documentation </Link> @@ -285,6 +300,7 @@ export function HelpView() { href={`${window.FRONTEND_REPOSITORY_TAGS}${window.FRONTEND_VERSION}`} target="_blank" rel="noreferrer" + underline="hover" >{`${window.FRONTEND_VERSION}`}</Link> </td> </tr> diff --git a/src/views/home/HomeView.js b/src/views/home/HomeView.js index b9c8f616adec809a01194a2ae2d75f3bb9858a11..e47e3e9be37bc2b9c49180421a81e0dd756e878a 100644 --- a/src/views/home/HomeView.js +++ b/src/views/home/HomeView.js @@ -1,11 +1,4 @@ -import { - Container, - Grid, - Paper, - Button, - Box, - Typography -} from "@material-ui/core"; +import { Container, Grid, Paper, Button, Box, Typography } from "@mui/material"; import React, { useState } from "react"; import { useGlobalAppBar } from "../../components/navigation/GlobalAppBar/GlobalAppBar"; import { CreateIOC } from "../../components/IOC/CreateIOC"; @@ -20,7 +13,7 @@ import { useOwnIocsWithAlarms } from "../../api/SwaggerApi"; import ReactMarkdown from "react-markdown"; -import { makeStyles } from "@material-ui/core/styles"; +import { makeStyles } from "@mui/styles"; const useStyles = makeStyles((theme) => ({ root: { @@ -61,7 +54,7 @@ export function HomeView() { <Grid container spacing={1} - justify="flex-end" + justifyContent="flex-end" > <Grid item @@ -135,7 +128,7 @@ export function HomeView() { {announcements?.announcementsText && ( <Grid container - justify="flex-start" + justifyContent="flex-start" className={classes.announcements} > <Grid diff --git a/src/views/host/HostDetailsContainer.js b/src/views/host/HostDetailsContainer.js index cc5b5d89ad6ff53607fd0af518bf4f8d894d7d21..3be2de7f2dc157af3d2ac0660ace1c99c232c159 100644 --- a/src/views/host/HostDetailsContainer.js +++ b/src/views/host/HostDetailsContainer.js @@ -1,6 +1,6 @@ import React, { useState } from "react"; import { HostDetailsView } from "./HostDetailsView"; -import { LinearProgress } from "@material-ui/core"; +import { LinearProgress } from "@mui/material"; import { useHost } from "../../api/SwaggerApi"; import { onFetchEntityError } from "../../components/common/Helper"; import NotFound from "../../components/navigation/NotFound"; diff --git a/src/views/host/HostDetailsView.js b/src/views/host/HostDetailsView.js index 0f93aa17e090e936c4050aa740db00cdb1f9b55c..e672e576b51e3769ab01790f8591b5b80b6683a8 100644 --- a/src/views/host/HostDetailsView.js +++ b/src/views/host/HostDetailsView.js @@ -7,9 +7,9 @@ import { Card, CardContent, Typography -} from "@material-ui/core"; -import { makeStyles } from "@material-ui/core/styles"; -import ArrowBackIcon from "@material-ui/icons/ArrowBack"; +} from "@mui/material"; +import { makeStyles } from "@mui/styles"; +import ArrowBackIcon from "@mui/icons-material/ArrowBack"; import { useHostIOCList } from "../../api/SwaggerApi"; import { HostBadge } from "../../components/host/HostBadge"; import { SimpleAccordion } from "../../components/common/Accordion/SimpleAccordion"; @@ -129,6 +129,7 @@ export function HostDetailsView({ id }) { <IconButton color="inherit" onClick={handleClick} + size="large" > <ArrowBackIcon /> </IconButton> @@ -204,6 +205,7 @@ export function HostDetailsView({ id }) { href={`https://csentry.esss.lu.se/network/hosts/view/${host?.csEntryHost.name}`} target="_blank" rel="noreferrer" + underline="hover" >{`https://csentry.esss.lu.se/network/hosts/view/${host?.csEntryHost?.name}`}</Link> <Typography @@ -216,6 +218,7 @@ export function HostDetailsView({ id }) { href={`https://grafana.tn.esss.lu.se/d/5zJT23xWz/node-exporter-full?orgId=1&var-node=${host?.csEntryHost.fqdn}`} target="_blank" rel="noreferrer" + underline="hover" >{`https://grafana.tn.esss.lu.se/d/5zJT23xWz/node-exporter-full?orgId=1&var-node=${host?.csEntryHost.fqdn}`}</Link> </Container> </CardContent> diff --git a/src/views/host/HostListView.js b/src/views/host/HostListView.js index 80d5eee1dcecf37cf46789fa8623689386ef90a0..f3a2c01b93d69c24553af713224b6677443e10a1 100644 --- a/src/views/host/HostListView.js +++ b/src/views/host/HostListView.js @@ -3,19 +3,19 @@ import { Container, Paper, Grid, - Hidden, Tabs, Tab, Typography, FormControlLabel, - Switch -} from "@material-ui/core"; + Switch, + useMediaQuery +} from "@mui/material"; import { RootContainer } from "../../components/common/Container/RootContainer"; import { HostList } from "../../components/host/HostList"; import { HostTable } from "../../components/host/HostTable"; import { useCSEntrySearch } from "../../api/SwaggerApi"; import { useGlobalAppBar } from "../../components/navigation/GlobalAppBar/GlobalAppBar"; -import { makeStyles } from "@material-ui/core/styles"; +import { makeStyles } from "@mui/styles"; import { initRequestParams, transformHostQuery @@ -125,6 +125,9 @@ export function HostListView() { [setState] ); + const smUp = useMediaQuery((theme) => theme.breakpoints.up("sm")); + const smDown = useMediaQuery((theme) => theme.breakpoints.down("sm")); + const content = ( <> <SearchBar @@ -132,10 +135,8 @@ export function HostListView() { query={deserialize(state.query)} loading={loading} > - <Hidden smUp> - <HostList hosts={hosts.hostList} /> - </Hidden> - <Hidden xsDown> + {smDown ? <HostList hosts={hosts.hostList} /> : null} + {smUp ? ( <HostTable hosts={hosts.hostList} loading={loading} @@ -144,7 +145,7 @@ export function HostListView() { setLazyParams={setLazyParams} rowsPerPage={rowsPerPage} /> - </Hidden> + ) : null} </SearchBar> </> ); @@ -160,7 +161,7 @@ export function HostListView() { container spacing={1} component={Container} - justify="space-between" + justifyContent="space-between" alignItems="center" style={{ display: "flex" }} > @@ -168,8 +169,6 @@ export function HostListView() { <Tabs value={deserialize(state.tab)} onChange={handleTabChange} - indicatorColor="primary" - textColor="primary" > <Tab label={<Typography variant="h5">All</Typography>} /> <Tab diff --git a/src/views/jobs/JobDetailsContainer.js b/src/views/jobs/JobDetailsContainer.js index 0b9013ee8880ce94dc92947844cb8cf42d004e12..263d1317ee0504092e044c63efd3fb698c23e410 100644 --- a/src/views/jobs/JobDetailsContainer.js +++ b/src/views/jobs/JobDetailsContainer.js @@ -1,6 +1,6 @@ import React, { useCallback, useRef, useState } from "react"; import { JobDetailsView } from "./JobDetailsView"; -import { LinearProgress } from "@material-ui/core"; +import { LinearProgress } from "@mui/material"; import { useOperation, useJobById } from "../../api/SwaggerApi"; import { useSafePolling } from "../../hooks/Polling"; import NotFound from "../../components/navigation/NotFound"; diff --git a/src/views/jobs/JobDetailsView.js b/src/views/jobs/JobDetailsView.js index 7479ad9b432d6b49c08a820bf465913fefb48154..1c746f57645722c218115d261aa20bfa96ee15c6 100644 --- a/src/views/jobs/JobDetailsView.js +++ b/src/views/jobs/JobDetailsView.js @@ -1,7 +1,7 @@ import React, { useEffect } from "react"; -import { IconButton, Paper } from "@material-ui/core"; +import { IconButton, Paper } from "@mui/material"; import { JobDetails } from "../../components/Job/JobDetails"; -import ArrowBackIcon from "@material-ui/icons/ArrowBack"; +import ArrowBackIcon from "@mui/icons-material/ArrowBack"; import { useNavigate } from "react-router-dom"; import { useGlobalAppBar } from "../../components/navigation/GlobalAppBar/GlobalAppBar"; @@ -23,6 +23,7 @@ export function JobDetailsView({ operation, job }) { <IconButton color="inherit" onClick={handleClick} + size="large" > <ArrowBackIcon /> </IconButton> diff --git a/src/views/jobs/JobListView.js b/src/views/jobs/JobListView.js index 61c1d48c0c1c8d5acddf490d996f12a2ca1d7a09..241fbd1e659acd51ad8f2e47694a6772032dd31a 100644 --- a/src/views/jobs/JobListView.js +++ b/src/views/jobs/JobListView.js @@ -1,5 +1,5 @@ import React, { useContext, useState, useCallback } from "react"; -import { makeStyles } from "@material-ui/core/styles"; +import { makeStyles } from "@mui/styles"; import { Paper, Grid, @@ -7,16 +7,16 @@ import { Switch, Typography, Container, - TextField -} from "@material-ui/core"; -import Tabs from "@material-ui/core/Tabs"; -import Tab from "@material-ui/core/Tab"; + TextField, + Autocomplete +} from "@mui/material"; +import Tabs from "@mui/material/Tabs"; +import Tab from "@mui/material/Tab"; import { useOperationsSearch, userContext } from "../../api/SwaggerApi"; import { initRequestParams } from "../../components/common/Helper"; import { useEffect } from "react"; import { SearchBar } from "../../components/common/SearchBar/SearchBar"; import AccessControl from "../../components/auth/AccessControl"; -import { Autocomplete } from "@material-ui/lab"; import { JobAsyncList } from "../../components/Job/JobAsyncList"; import useUrlState from "@ahooksjs/use-url-state"; import { @@ -169,7 +169,7 @@ export function JobListView() { container spacing={1} component={Container} - justify="space-between" + justifyContent="space-between" alignItems="center" style={{ display: "flex" }} > @@ -177,8 +177,6 @@ export function JobListView() { <Tabs value={deserialize(state.tab)} onChange={handleTabChange} - indicatorColor="primary" - textColor="primary" > <Tab label={<Typography variant="h5">All</Typography>} /> <Tab label={<Typography variant="h5">Only Ongoing</Typography>} /> @@ -202,7 +200,7 @@ export function JobListView() { : { label: "Show all" } } getOptionLabel={(option) => option.label} - getOptionSelected={(option, value) => + isOptionEqualToValue={(option, value) => option.label === value.label } style={{ width: "100%" }} diff --git a/src/views/login/LoginView.js b/src/views/login/LoginView.js index ac9e93f17c9670db9c151aa4e73cc91d74941114..602a5846a07a6b3e2b22514fa06e99b936c263c9 100644 --- a/src/views/login/LoginView.js +++ b/src/views/login/LoginView.js @@ -1,4 +1,4 @@ -import { Card, CardContent, Grid } from "@material-ui/core"; +import { Card, CardContent, Grid } from "@mui/material"; import React, { useContext, useEffect } from "react"; import { useLocation } from "react-router-dom"; import { userContext } from "../../api/SwaggerApi"; @@ -25,7 +25,7 @@ export function LoginView() { container spacing={0} alignItems="center" - justify="center" + justifyContent="center" style={{ minHeight: "80vh" }} > <Grid diff --git a/src/views/records/RecordDetailsView.js b/src/views/records/RecordDetailsView.js index 65b2d8d5fd01df7dea338f7a3c512195a01ff1d1..7b64c25e8587387a80a29b038fcd2f4052103c1a 100644 --- a/src/views/records/RecordDetailsView.js +++ b/src/views/records/RecordDetailsView.js @@ -6,10 +6,10 @@ import { Typography, LinearProgress, Link as MuiLink -} from "@material-ui/core"; +} from "@mui/material"; import { Link as ReactRouterLink } from "react-router-dom"; import { RootContainer } from "../../components/common/Container/RootContainer"; -import ArrowBackIcon from "@material-ui/icons/ArrowBack"; +import ArrowBackIcon from "@mui/icons-material/ArrowBack"; import { useGlobalAppBar } from "../../components/navigation/GlobalAppBar/GlobalAppBar"; import { SimpleAccordion } from "../../components/common/Accordion/SimpleAccordion"; import { KeyValueTable } from "../../components/common/KeyValueTable/KeyValueTable"; @@ -52,6 +52,7 @@ export function RecordDetailsView() { <MuiLink component={ReactRouterLink} to={`/iocs/${record.iocId}`} + underline="hover" > {record?.iocName} </MuiLink> @@ -65,6 +66,7 @@ export function RecordDetailsView() { <MuiLink component={ReactRouterLink} to={`/hosts/${record.hostCSentryId}`} + underline="hover" > {record?.hostName} </MuiLink> @@ -96,6 +98,7 @@ export function RecordDetailsView() { <IconButton color="inherit" onClick={handleClick} + size="large" > <ArrowBackIcon /> </IconButton> diff --git a/src/views/records/RecordListView.js b/src/views/records/RecordListView.js index 3f2076cd4a57d82fe5ba2de9c8f79365a7d409b8..3d3725d6c21ccd219274fa3707178f1f296ea26c 100644 --- a/src/views/records/RecordListView.js +++ b/src/views/records/RecordListView.js @@ -1,5 +1,5 @@ import React from "react"; -import { Paper, Grid } from "@material-ui/core"; +import { Paper, Grid } from "@mui/material"; import { useGlobalAppBar } from "../../components/navigation/GlobalAppBar/GlobalAppBar"; import { RootContainer } from "../../components/common/Container/RootContainer"; import { RecordSearch } from "../../components/records/RecordSearch"; diff --git a/src/views/statistics/StatisticsView.js b/src/views/statistics/StatisticsView.js index 70cd223639533af95155e7349f172355754f1470..81ca1afb5550448c36ce0b8b36962c2da0b4d3a9 100644 --- a/src/views/statistics/StatisticsView.js +++ b/src/views/statistics/StatisticsView.js @@ -1,11 +1,6 @@ import React from "react"; -import { - Paper, - Grid, - useTheme, - makeStyles, - Typography -} from "@material-ui/core"; +import { Paper, Grid, useTheme, Typography } from "@mui/material"; +import { makeStyles } from "@mui/styles"; import { useGlobalAppBar } from "../../components/navigation/GlobalAppBar/GlobalAppBar"; import { RootContainer } from "../../components/common/Container/RootContainer"; import ActiveIOCChart from "../../components/statistics/ActiveIOCChart";