From 7b6683c86cb84091302b9410f92148ded29bcf31 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Thu, 21 May 2026 13:12:03 -0300 Subject: [PATCH 1/9] chore: bump @mui/material and peers to v9, @testing-library/react to v14 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - @mui/material: ^6.4.3 → ^9.0.0 - @mui/icons-material: ^6.4.3 → ^9.0.0 - @mui/x-date-pickers: ^7.26.0 → ^9.0.0 (v9 targets MUI v9) - @emotion/react: ^11.11.4 → ^11.14.0 - @emotion/styled: ^11.11.5 → ^11.14.0 - react / react-dom: ^17.0.0 → ^18.0.0 (MUI v9 dropped React 17) - @testing-library/react: 12.1.5 → ^14.0.0 (RTL 12 supports React 17 only) peerDependencies updated to match: - react / react-dom: ^18.0.0 || ^19.0.0 - @emotion/*: ^11.0.0 (broader range for consumers) Co-Authored-By: Claude Sonnet 4.6 --- package.json | 30 +++--- yarn.lock | 278 +++++++++++++++++++++++++-------------------------- 2 files changed, 151 insertions(+), 157 deletions(-) diff --git a/package.json b/package.json index 3cf6d1bf..acec6f06 100644 --- a/package.json +++ b/package.json @@ -20,18 +20,18 @@ "@babel/preset-flow": "^7.7.4", "@babel/preset-react": "^7.7.4", "@babel/runtime": "^7.20.7", - "@emotion/react": "^11.11.4", - "@emotion/styled": "^11.11.5", - "@mui/icons-material": "^6.4.3", - "@mui/material": "^6.4.3", - "@mui/x-date-pickers": "^7.26.0", + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.0", + "@mui/icons-material": "^9.0.0", + "@mui/material": "^9.0.0", + "@mui/x-date-pickers": "^9.0.0", "@react-pdf/renderer": "^3.1.11", "@sentry/react": "^8.54.0", "@sentry/webpack-plugin": "^3.1.2", "@stripe/react-stripe-js": "^5.4.1", "@stripe/stripe-js": "^8.5.3", "@testing-library/jest-dom": "5.17.0", - "@testing-library/react": "12.1.5", + "@testing-library/react": "^14.0.0", "@testing-library/user-event": "14.5.2", "awesome-bootstrap-checkbox": "^1.0.1", "babel-cli": "^6.26.0", @@ -72,13 +72,13 @@ "node-sass": "^7.0.1", "path": "^0.12.7", "postcss-loader": "^6.2.1", - "react": "^17.0.0", + "react": "^18.0.0", "react-beautiful-dnd": "^13.1.1", "react-bootstrap": "^0.31.5", "react-datetime": "^2.16.2", "react-dnd": "^16.0.0", "react-dnd-html5-backend": "^16.0.0", - "react-dom": "^17.0.0", + "react-dom": "^18.0.0", "react-dropzone": "^4.2.9", "react-final-form": "^6.5.9", "react-google-maps": "^9.4.5", @@ -112,11 +112,11 @@ "cheerio": "1.0.0-rc.10" }, "peerDependencies": { - "@emotion/react": "^11.11.4", - "@emotion/styled": "^11.11.5", - "@mui/icons-material": "^6.4.3", - "@mui/material": "^6.4.3", - "@mui/x-date-pickers": "^7.26.0", + "@emotion/react": "^11.0.0", + "@emotion/styled": "^11.0.0", + "@mui/icons-material": "^9.0.0", + "@mui/material": "^9.0.0", + "@mui/x-date-pickers": "^9.0.0", "@react-pdf/renderer": "^3.1.11", "@sentry/react": "^8.54.0", "@stripe/react-stripe-js": "^5.4.1", @@ -139,13 +139,13 @@ "moment": "^2.22.2", "moment-timezone": "^0.5.21", "prop-types": "^15.8.1", - "react": "^17.0.0", + "react": "^18.0.0 || ^19.0.0", "react-beautiful-dnd": "^13.1.1", "react-bootstrap": "^0.31.5", "react-datetime": "^2.16.2", "react-dnd": "^16.0.0", "react-dnd-html5-backend": "^16.0.0", - "react-dom": "^17.0.0", + "react-dom": "^18.0.0 || ^19.0.0", "react-dropzone": "^4.2.9", "react-final-form": "^6.5.9", "react-google-maps": "^9.4.5", diff --git a/yarn.lock b/yarn.lock index 8ab62c6b..9fad6a43 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1001,16 +1001,11 @@ dependencies: regenerator-runtime "^0.13.11" -"@babel/runtime@^7.25.7", "@babel/runtime@^7.26.0": +"@babel/runtime@^7.29.2": version "7.29.2" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.2.tgz#9a6e2d05f4b6692e1801cd4fb176ad823930ed5e" integrity sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g== -"@babel/runtime@^7.28.6": - version "7.28.6" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz" - integrity sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA== - "@babel/template@^7.16.7", "@babel/template@^7.28.6", "@babel/template@^7.3.3": version "7.28.6" resolved "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz" @@ -1080,7 +1075,7 @@ find-root "^1.1.0" source-map "^0.7.2" -"@emotion/cache@^11.13.5", "@emotion/cache@^11.14.0": +"@emotion/cache@^11.14.0": version "11.14.0" resolved "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz" integrity sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA== @@ -1118,9 +1113,9 @@ resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz" integrity sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ== -"@emotion/react@^11.11.4": +"@emotion/react@^11.14.0": version "11.14.0" - resolved "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.14.0.tgz#cfaae35ebc67dd9ef4ea2e9acc6cd29e157dd05d" integrity sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA== dependencies: "@babel/runtime" "^7.18.3" @@ -1158,10 +1153,10 @@ resolved "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz" integrity sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg== -"@emotion/styled@^11.11.5": - version "11.14.0" - resolved "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz" - integrity sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA== +"@emotion/styled@^11.14.0": + version "11.14.1" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.14.1.tgz#8c34bed2948e83e1980370305614c20955aacd1c" + integrity sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw== dependencies: "@babel/runtime" "^7.18.3" "@emotion/babel-plugin" "^11.13.5" @@ -1569,127 +1564,124 @@ resolved "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@mui/core-downloads-tracker@^6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-6.5.0.tgz" - integrity sha512-LGb8t8i6M2ZtS3Drn3GbTI1DVhDY6FJ9crEey2lZ0aN2EMZo8IZBZj9wRf4vqbZHaWjsYgtbOnJw5V8UWbmK2Q== +"@mui/core-downloads-tracker@^9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-9.0.1.tgz#74be0bfd6bef24d76fe009be9d91851516278749" + integrity sha512-GzamIIhZ1bH77dq7eKaeyRgJdkypsxin4jBFq2EMs4lBWRR0LFO1CSVMsoebn/VvjcNrnrOrjy48MkrkQUK2iw== -"@mui/icons-material@^6.4.3": - version "6.5.0" - resolved "https://registry.npmjs.org/@mui/icons-material/-/icons-material-6.5.0.tgz" - integrity sha512-VPuPqXqbBPlcVSA0BmnoE4knW4/xG6Thazo8vCLWkOKusko6DtwFV6B665MMWJ9j0KFohTIf3yx2zYtYacvG1g== +"@mui/icons-material@^9.0.0": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-9.0.1.tgz#2bd2014e62fef35f477e7b5b6f33f590a6e50063" + integrity sha512-5PRpQjVLTNLyV/2J9J53Yz4R0tVbodG0BQDN2zQI1QBG1OPYM25ar+4N20eyFOfJT6zKglLzsnU70+zdVLaTkw== dependencies: - "@babel/runtime" "^7.26.0" + "@babel/runtime" "^7.29.2" -"@mui/material@^6.4.3": - version "6.5.0" - resolved "https://registry.npmjs.org/@mui/material/-/material-6.5.0.tgz" - integrity sha512-yjvtXoFcrPLGtgKRxFaH6OQPtcLPhkloC0BML6rBG5UeldR0nPULR/2E2BfXdo5JNV7j7lOzrrLX2Qf/iSidow== - dependencies: - "@babel/runtime" "^7.26.0" - "@mui/core-downloads-tracker" "^6.5.0" - "@mui/system" "^6.5.0" - "@mui/types" "~7.2.24" - "@mui/utils" "^6.4.9" +"@mui/material@^9.0.0": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-9.0.1.tgz#0260b0787cd44761e4faebc03b35f12018a5106a" + integrity sha512-voyCpeUxcSWLN7KPZuq0pGCIt726T9K6kiVM3XUcywZDAlZSarLHaUxJVQpospbjjOzN53hwyjo8s6KoWl6utw== + dependencies: + "@babel/runtime" "^7.29.2" + "@mui/core-downloads-tracker" "^9.0.1" + "@mui/system" "^9.0.1" + "@mui/types" "^9.0.0" + "@mui/utils" "^9.0.1" "@popperjs/core" "^2.11.8" "@types/react-transition-group" "^4.4.12" clsx "^2.1.1" - csstype "^3.1.3" + csstype "^3.2.3" prop-types "^15.8.1" - react-is "^19.0.0" + react-is "^19.2.4" react-transition-group "^4.4.5" -"@mui/private-theming@^6.4.9": - version "6.4.9" - resolved "https://registry.npmjs.org/@mui/private-theming/-/private-theming-6.4.9.tgz" - integrity sha512-LktcVmI5X17/Q5SkwjCcdOLBzt1hXuc14jYa7NPShog0GBDCDvKtcnP0V7a2s6EiVRlv7BzbWEJzH6+l/zaCxw== +"@mui/private-theming@^9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-9.0.1.tgz#3bd627d10326fb682b824c4a1fa5d07b0401f813" + integrity sha512-pSIGq4Yw749KHEwlkYZWVERgHgwJELP6ODtBNUfV8V4oIb5H+h7IQDFXuk/b2oQccODK1enJAtiEzlgLZmq+8g== dependencies: - "@babel/runtime" "^7.26.0" - "@mui/utils" "^6.4.9" + "@babel/runtime" "^7.29.2" + "@mui/utils" "^9.0.1" prop-types "^15.8.1" -"@mui/styled-engine@^6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-6.5.0.tgz" - integrity sha512-8woC2zAqF4qUDSPIBZ8v3sakj+WgweolpyM/FXf8jAx6FMls+IE4Y8VDZc+zS805J7PRz31vz73n2SovKGaYgw== +"@mui/styled-engine@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-9.0.0.tgz#ab7b1c25c0193a796ced29da3662191d53ae339b" + integrity sha512-9RLGdX4Jg0aQPRuvqh/OLzYSPlgd5zyEw5/1HIRfdavSiOd03WtUaGZH9/w1RoTYuRKwpgy0hpIFaMHIqPVIWg== dependencies: - "@babel/runtime" "^7.26.0" - "@emotion/cache" "^11.13.5" + "@babel/runtime" "^7.29.2" + "@emotion/cache" "^11.14.0" "@emotion/serialize" "^1.3.3" "@emotion/sheet" "^1.4.0" - csstype "^3.1.3" + csstype "^3.2.3" prop-types "^15.8.1" -"@mui/system@^6.5.0": - version "6.5.0" - resolved "https://registry.npmjs.org/@mui/system/-/system-6.5.0.tgz" - integrity sha512-XcbBYxDS+h/lgsoGe78ExXFZXtuIlSBpn/KsZq8PtZcIkUNJInkuDqcLd2rVBQrDC1u+rvVovdaWPf2FHKJf3w== - dependencies: - "@babel/runtime" "^7.26.0" - "@mui/private-theming" "^6.4.9" - "@mui/styled-engine" "^6.5.0" - "@mui/types" "~7.2.24" - "@mui/utils" "^6.4.9" +"@mui/system@^9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-9.0.1.tgz#2c67da0be27216bc1afdc1cfbdd8d7245cb17f83" + integrity sha512-WvlioaLxk6ewUIOfh0StxUvOPDS1mCfzaulcudsL1brZNXuh0N9FMk7RpH7ImJKjEz412SEy/V/yvqmtxbqxCQ== + dependencies: + "@babel/runtime" "^7.29.2" + "@mui/private-theming" "^9.0.1" + "@mui/styled-engine" "^9.0.0" + "@mui/types" "^9.0.0" + "@mui/utils" "^9.0.1" clsx "^2.1.1" - csstype "^3.1.3" + csstype "^3.2.3" prop-types "^15.8.1" -"@mui/types@^7.4.12": - version "7.4.12" - resolved "https://registry.npmjs.org/@mui/types/-/types-7.4.12.tgz" - integrity sha512-iKNAF2u9PzSIj40CjvKJWxFXJo122jXVdrmdh0hMYd+FR+NuJMkr/L88XwWLCRiJ5P1j+uyac25+Kp6YC4hu6w== +"@mui/types@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-9.0.0.tgz#92d8c64e72cb863ee59108cb20cc476d648a3ab9" + integrity sha512-i1cuFCAWN44b3AJWO7mh7tuh1sqbQSeVr/94oG0TX5uXivac8XalgE4/6fQZcmGZigzbQ35IXxj/4jLpRIBYZg== dependencies: - "@babel/runtime" "^7.28.6" - -"@mui/types@~7.2.24": - version "7.2.24" - resolved "https://registry.npmjs.org/@mui/types/-/types-7.2.24.tgz" - integrity sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw== + "@babel/runtime" "^7.29.2" -"@mui/utils@^5.16.6 || ^6.0.0 || ^7.0.0": - version "7.3.9" - resolved "https://registry.npmjs.org/@mui/utils/-/utils-7.3.9.tgz" - integrity sha512-U6SdZaGbfb65fqTsH3V5oJdFj9uYwyLE2WVuNvmbggTSDBb8QHrFsqY8BN3taK9t3yJ8/BPHD/kNvLNyjwM7Yw== +"@mui/utils@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-9.0.0.tgz#25b563ccbf537feba5f89c37a00cb8e6eea45ad0" + integrity sha512-bQcqyg/gjULUqTuyUjSAFr6LQGLvtkNtDbJerAtoUn9kGZ0hg5QJiN1PLHMLbeFpe3te1831uq7GFl2ITokGdg== dependencies: - "@babel/runtime" "^7.28.6" - "@mui/types" "^7.4.12" + "@babel/runtime" "^7.29.2" + "@mui/types" "^9.0.0" "@types/prop-types" "^15.7.15" clsx "^2.1.1" prop-types "^15.8.1" - react-is "^19.2.3" + react-is "^19.2.4" -"@mui/utils@^6.4.9": - version "6.4.9" - resolved "https://registry.npmjs.org/@mui/utils/-/utils-6.4.9.tgz" - integrity sha512-Y12Q9hbK9g+ZY0T3Rxrx9m2m10gaphDuUMgWxyV5kNJevVxXYCLclYUCC9vXaIk1/NdNDTcW2Yfr2OGvNFNmHg== +"@mui/utils@9.0.1", "@mui/utils@^9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-9.0.1.tgz#044c89f0f7e61e77f82f9496535744fc5d5a5128" + integrity sha512-f3UO3jNN1pYg5zxqXC81Bvv8hx5ACcYc0387382ZI7M5ono1heIwHYLrKsz85myguWdeVKPRZGmDdynWUBjK2g== dependencies: - "@babel/runtime" "^7.26.0" - "@mui/types" "~7.2.24" - "@types/prop-types" "^15.7.14" + "@babel/runtime" "^7.29.2" + "@mui/types" "^9.0.0" + "@types/prop-types" "^15.7.15" clsx "^2.1.1" prop-types "^15.8.1" - react-is "^19.0.0" + react-is "^19.2.4" -"@mui/x-date-pickers@^7.26.0": - version "7.29.4" - resolved "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.29.4.tgz" - integrity sha512-wJ3tsqk/y6dp+mXGtT9czciAMEO5Zr3IIAHg9x6IL0Eqanqy0N3chbmQQZv3iq0m2qUpQDLvZ4utZBUTJdjNzw== +"@mui/x-date-pickers@^9.0.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-9.3.0.tgz#186dd7c00f1a824684be89bcbf957547a4860743" + integrity sha512-Kg9mEZA+nHKi55DsbzVVMUhURQU6MQXtAEKjgyMqyaq1PMZ8Nr72KszqGhZZNmVkyM91wcq/icYgRVzYa65Gow== dependencies: - "@babel/runtime" "^7.25.7" - "@mui/utils" "^5.16.6 || ^6.0.0 || ^7.0.0" - "@mui/x-internals" "7.29.0" - "@types/react-transition-group" "^4.4.11" + "@babel/runtime" "^7.29.2" + "@mui/utils" "9.0.1" + "@mui/x-internals" "^9.1.0" + "@types/react-transition-group" "^4.4.12" clsx "^2.1.1" prop-types "^15.8.1" react-transition-group "^4.4.5" -"@mui/x-internals@7.29.0": - version "7.29.0" - resolved "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.29.0.tgz" - integrity sha512-+Gk6VTZIFD70XreWvdXBwKd8GZ2FlSCuecQFzm6znwqXg1ZsndavrhG9tkxpxo2fM1Zf7Tk8+HcOO0hCbhTQFA== +"@mui/x-internals@^9.1.0": + version "9.1.0" + resolved "https://registry.yarnpkg.com/@mui/x-internals/-/x-internals-9.1.0.tgz#d8429e7bb8874fc1d24f305d6610be29599fdf56" + integrity sha512-fVezTa1lU+Hb3y9UMI8D/iWXADhs0I8PaZqoh2LOUXjGEUJmKqwsRD19ZXInZsH2yu+YS0dqYMPDvzjYTTyo+Q== dependencies: - "@babel/runtime" "^7.25.7" - "@mui/utils" "^5.16.6 || ^6.0.0 || ^7.0.0" + "@babel/runtime" "^7.29.2" + "@mui/utils" "9.0.0" + reselect "^5.1.1" + use-sync-external-store "^1.6.0" "@npmcli/fs@^1.0.0": version "1.1.1" @@ -2056,10 +2048,10 @@ dependencies: tslib "^2.4.0" -"@testing-library/dom@^8.0.0": - version "8.20.1" - resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz" - integrity sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g== +"@testing-library/dom@^9.0.0": + version "9.3.4" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.4.tgz#50696ec28376926fec0a1bf87d9dbac5e27f60ce" + integrity sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ== dependencies: "@babel/code-frame" "^7.10.4" "@babel/runtime" "^7.12.5" @@ -2085,14 +2077,14 @@ lodash "^4.17.15" redent "^3.0.0" -"@testing-library/react@12.1.5": - version "12.1.5" - resolved "https://registry.npmjs.org/@testing-library/react/-/react-12.1.5.tgz" - integrity sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg== +"@testing-library/react@^14.0.0": + version "14.3.1" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.3.1.tgz#29513fc3770d6fb75245c4e1245c470e4ffdd830" + integrity sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ== dependencies: "@babel/runtime" "^7.12.5" - "@testing-library/dom" "^8.0.0" - "@types/react-dom" "<18.0.0" + "@testing-library/dom" "^9.0.0" + "@types/react-dom" "^18.0.0" "@testing-library/user-event@14.5.2": version "14.5.2" @@ -2328,7 +2320,7 @@ resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.1.tgz" integrity sha512-XFjFHmaLVifrAKaZ+EKghFHtHSUonyw8P2Qmy2/+osBnrKbH9UYtlK10zg8/kCt47MFilll/DEDKy3DHfJ0URw== -"@types/prop-types@^15.7.14", "@types/prop-types@^15.7.15": +"@types/prop-types@^15.7.15": version "15.7.15" resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz" integrity sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw== @@ -2343,10 +2335,10 @@ resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@<18.0.0": - version "17.0.26" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.26.tgz" - integrity sha512-Z+2VcYXJwOqQ79HreLU/1fyQ88eXSSFh6I3JdrEHQIfYSI0kCQpTGvOrbE6jFGGYXKsHuwY9tBa/w5Uo6KzrEg== +"@types/react-dom@^18.0.0": + version "18.3.7" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.7.tgz#b89ddf2cd83b4feafcc4e2ea41afdfb95a0d194f" + integrity sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ== "@types/react-redux@^7.1.20": version "7.1.34" @@ -2358,7 +2350,7 @@ hoist-non-react-statics "^3.3.0" redux "^4.0.0" -"@types/react-transition-group@^4.4.11", "@types/react-transition-group@^4.4.12": +"@types/react-transition-group@^4.4.12": version "4.4.12" resolved "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz" integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w== @@ -4290,14 +4282,14 @@ csstype@^2.5.2: resolved "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz" integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA== -csstype@^3.0.2, csstype@^3.1.3: +csstype@^3.0.2: version "3.1.3" resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== -csstype@^3.2.2: +csstype@^3.2.2, csstype@^3.2.3: version "3.2.3" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== dashdash@^1.12.0: @@ -9048,14 +9040,13 @@ react-dnd@^16.0.0: fast-deep-equal "^3.1.3" hoist-non-react-statics "^3.3.2" -react-dom@^17.0.0: - version "17.0.2" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== +react-dom@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" + scheduler "^0.23.2" react-dropzone@^4.2.9: version "4.3.0" @@ -9121,15 +9112,10 @@ react-is@^18.3.1: resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== -react-is@^19.0.0: - version "19.1.0" - resolved "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz" - integrity sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg== - -react-is@^19.2.3: - version "19.2.4" - resolved "https://registry.npmjs.org/react-is/-/react-is-19.2.4.tgz" - integrity sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA== +react-is@^19.2.4: + version "19.2.6" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.2.6.tgz#aeee6159b159eb7f520d672cffcc69e7052d288f" + integrity sha512-XjBR15BhXuylgWGuslhDKqlSayuqvqBX91BP8pauG8kd1zY8kotkNWbXksTCNRarse4kuGbe2kIY05ARtwNIvw== react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: version "3.0.4" @@ -9252,13 +9238,12 @@ react@^16.1.0: object-assign "^4.1.1" prop-types "^15.6.2" -react@^17.0.0: - version "17.0.2" - resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== +react@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" read-pkg-up@^7.0.1: version "7.0.1" @@ -9536,6 +9521,11 @@ requires-port@^1.0.0: resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= +reselect@^5.1.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-5.2.0.tgz#f380ef7664332d26ea06c1cba04bdbbdcaa955f1" + integrity sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw== + resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" @@ -9692,13 +9682,12 @@ scheduler@^0.17.0: loose-envify "^1.1.0" object-assign "^4.1.1" -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" schema-utils@^2.6.5: version "2.7.1" @@ -10856,6 +10845,11 @@ use-memo-one@^1.1.1: resolved "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz" integrity sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ== +use-sync-external-store@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz#b174bfa65cb2b526732d9f2ac0a408027876f32d" + integrity sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w== + use@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" From aff5851d551e322ef496dae8b95d2446a21e4376 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Thu, 21 May 2026 13:18:48 -0300 Subject: [PATCH 2/9] codemod: text-field-props Co-Authored-By: Claude Sonnet 4.6 --- src/components/inputs/company-input-v2.js | 4 +++- .../__tests__/FormItemTable.test.js | 8 ++++---- .../__tests__/additional-input-list.test.js | 18 ++++++++++-------- .../mui/__tests__/additional-input.test.js | 4 ++-- .../mui/__tests__/meta-field-values.test.js | 4 ++-- src/components/mui/cards/InlineCard/index.js | 4 ++-- src/components/mui/cards/TableCard/index.js | 8 ++++---- .../mui/table/extra-rows/DiscountRow.jsx | 4 ++-- src/components/mui/table/extra-rows/FeeRow.jsx | 4 ++-- .../mui/table/extra-rows/PaymentRow.jsx | 4 ++-- .../mui/table/extra-rows/RefundRow.jsx | 4 ++-- .../mui/table/extra-rows/TotalRow.jsx | 2 +- src/utils/methods.js | 2 +- 13 files changed, 37 insertions(+), 33 deletions(-) diff --git a/src/components/inputs/company-input-v2.js b/src/components/inputs/company-input-v2.js index e99338cc..4effe3fb 100644 --- a/src/components/inputs/company-input-v2.js +++ b/src/components/inputs/company-input-v2.js @@ -136,7 +136,9 @@ const CompanyInputV2 = ({ summitId, isRequired, sx, onChange, id, name, label, v helperText={helperText} error={error} margin="normal" - InputLabelProps={disableShrink ? { shrink: false } : undefined} + slotProps={{ + inputLabel: disableShrink ? { shrink: false } : undefined + }} /> )} renderOption={(props, option) => { diff --git a/src/components/mui/FormItemTable/__tests__/FormItemTable.test.js b/src/components/mui/FormItemTable/__tests__/FormItemTable.test.js index 19100866..bd824911 100644 --- a/src/components/mui/FormItemTable/__tests__/FormItemTable.test.js +++ b/src/components/mui/FormItemTable/__tests__/FormItemTable.test.js @@ -267,10 +267,10 @@ jest.mock("../../formik-inputs/mui-formik-dropdown-checkbox", () => ({ {options && options.map((opt) => ( // eslint-disable-next-line jsx-a11y/label-has-associated-control - ) ))} ) @@ -284,10 +284,10 @@ jest.mock("../../formik-inputs/mui-formik-dropdown-radio", () => ({ {options && options.map((opt) => ( // eslint-disable-next-line jsx-a11y/label-has-associated-control - ) ))} ) diff --git a/src/components/mui/__tests__/additional-input-list.test.js b/src/components/mui/__tests__/additional-input-list.test.js index 42a421fd..7e47f3e8 100644 --- a/src/components/mui/__tests__/additional-input-list.test.js +++ b/src/components/mui/__tests__/additional-input-list.test.js @@ -25,13 +25,15 @@ jest.mock("../showConfirmDialog", () => jest.fn()); jest.mock( "../formik-inputs/additional-input/additional-input", () => - function MockAdditionalInput({ - item, - itemIdx, - onAdd, - onDelete, - isAddDisabled - }) { + (function MockAdditionalInput( + { + item, + itemIdx, + onAdd, + onDelete, + isAddDisabled + } + ) { return (
{item.name} @@ -51,7 +53,7 @@ jest.mock(
); - } + }) ); // Helper function to render the component with Formik diff --git a/src/components/mui/__tests__/additional-input.test.js b/src/components/mui/__tests__/additional-input.test.js index cb604cf4..52dfc277 100644 --- a/src/components/mui/__tests__/additional-input.test.js +++ b/src/components/mui/__tests__/additional-input.test.js @@ -22,9 +22,9 @@ import AdditionalInput from "../formik-inputs/additional-input/additional-input" jest.mock( "../formik-inputs/additional-input/meta-field-values", () => - function MockMetaFieldValues() { + (function MockMetaFieldValues() { return
MetaFieldValues
; - } + }) ); // Helper function to render the component with Formik diff --git a/src/components/mui/__tests__/meta-field-values.test.js b/src/components/mui/__tests__/meta-field-values.test.js index 4c0e20a5..26f59874 100644 --- a/src/components/mui/__tests__/meta-field-values.test.js +++ b/src/components/mui/__tests__/meta-field-values.test.js @@ -25,7 +25,7 @@ jest.mock("../showConfirmDialog", () => jest.fn()); jest.mock( "../dnd-list", () => - function MockDragAndDropList({ items, renderItem }) { + (function MockDragAndDropList({ items, renderItem }) { return (
{items.map((item, index) => ( @@ -35,7 +35,7 @@ jest.mock( ))}
); - } + }) ); // Helper function to render the component with Formik diff --git a/src/components/mui/cards/InlineCard/index.js b/src/components/mui/cards/InlineCard/index.js index 1d41067e..dd091df4 100644 --- a/src/components/mui/cards/InlineCard/index.js +++ b/src/components/mui/cards/InlineCard/index.js @@ -35,7 +35,7 @@ const InlineCard = ({ title, rows }) => ( {(rows ?? []).map((row, i) => ( // eslint-disable-next-line react/no-array-index-key - + ( @@ -43,7 +43,7 @@ const InlineCard = ({ title, rows }) => ( {row.value} {i < rows.length - 1 && } - + ) ))} diff --git a/src/components/mui/cards/TableCard/index.js b/src/components/mui/cards/TableCard/index.js index 07766dc4..edbf1659 100644 --- a/src/components/mui/cards/TableCard/index.js +++ b/src/components/mui/cards/TableCard/index.js @@ -36,23 +36,23 @@ const TableCard = ({ title, rows = [], columns = [] }) => ( {columns.map((col, i) => ( // eslint-disable-next-line react/no-array-index-key - {col.label} + ({col.label}) ))} {rows.map((row, i) => ( // eslint-disable-next-line react/no-array-index-key - + ( {columns.map((col, j) => ( // eslint-disable-next-line react/no-array-index-key - {row[col.key]} + ({row[col.key]}) ))} {i < rows.length - 1 && ( )} - + ) ))} diff --git a/src/components/mui/table/extra-rows/DiscountRow.jsx b/src/components/mui/table/extra-rows/DiscountRow.jsx index 4e0d84b5..aff6826d 100644 --- a/src/components/mui/table/extra-rows/DiscountRow.jsx +++ b/src/components/mui/table/extra-rows/DiscountRow.jsx @@ -36,7 +36,7 @@ const DiscountRow = ({ discount, discountTotal, colGap = 2, trailing = 0 }) => { {[...Array(colGap)].map((_, i) => ( // eslint-disable-next-line react/no-array-index-key - + () ))} @@ -53,7 +53,7 @@ const DiscountRow = ({ discount, discountTotal, colGap = 2, trailing = 0 }) => { {[...Array(trailing)].map((_, i) => ( // eslint-disable-next-line react/no-array-index-key - + () ))} ); diff --git a/src/components/mui/table/extra-rows/FeeRow.jsx b/src/components/mui/table/extra-rows/FeeRow.jsx index e4914acd..d9b63129 100644 --- a/src/components/mui/table/extra-rows/FeeRow.jsx +++ b/src/components/mui/table/extra-rows/FeeRow.jsx @@ -31,7 +31,7 @@ const FeeRow = ({ fee, colGap = 3, trailing = 0 }) => { {[...Array(colGap)].map((_, i) => ( // eslint-disable-next-line react/no-array-index-key - + () ))} { {[...Array(trailing)].map((_, i) => ( // eslint-disable-next-line react/no-array-index-key - + () ))} ); diff --git a/src/components/mui/table/extra-rows/PaymentRow.jsx b/src/components/mui/table/extra-rows/PaymentRow.jsx index dc61d88f..9a2888f1 100644 --- a/src/components/mui/table/extra-rows/PaymentRow.jsx +++ b/src/components/mui/table/extra-rows/PaymentRow.jsx @@ -47,7 +47,7 @@ const PaymentRow = ({ payment, colGap = 1, trailing = 0 }) => { {[...Array(colGap)].map((_, i) => ( // eslint-disable-next-line react/no-array-index-key - + () ))} { {[...Array(trailing)].map((_, i) => ( // eslint-disable-next-line react/no-array-index-key - + () ))} ); diff --git a/src/components/mui/table/extra-rows/RefundRow.jsx b/src/components/mui/table/extra-rows/RefundRow.jsx index 9b3e9e27..b374f4ce 100644 --- a/src/components/mui/table/extra-rows/RefundRow.jsx +++ b/src/components/mui/table/extra-rows/RefundRow.jsx @@ -45,7 +45,7 @@ const RefundRow = ({ refund, colGap = 1, trailing = 0 }) => { {[...Array(colGap)].map((_, i) => ( // eslint-disable-next-line react/no-array-index-key - + () ))} { {[...Array(trailing)].map((_, i) => ( // eslint-disable-next-line react/no-array-index-key - + () ))} ); diff --git a/src/components/mui/table/extra-rows/TotalRow.jsx b/src/components/mui/table/extra-rows/TotalRow.jsx index 41bceb6c..44f8ed3e 100644 --- a/src/components/mui/table/extra-rows/TotalRow.jsx +++ b/src/components/mui/table/extra-rows/TotalRow.jsx @@ -39,7 +39,7 @@ const TotalRow = ({ columns, targetCol, total, trailing = 0, label = null, rowSx })} {[...Array(trailing)].map((_, i) => ( // eslint-disable-next-line react/no-array-index-key - + () ))} ); diff --git a/src/utils/methods.js b/src/utils/methods.js index e318325e..13bb31c8 100644 --- a/src/utils/methods.js +++ b/src/utils/methods.js @@ -220,7 +220,7 @@ export const base64URLEncode = (str) => { .toString('base64') .replace(/\+/g, '-') .replace(/\//g, '_') - .replace(/=/g, '') + .replace(/=/g, ''); } export const retryPromise = async ( From af8a21c5ba5f7e1fa5631ffe9d6d4765b6370c00 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Thu, 21 May 2026 13:19:39 -0300 Subject: [PATCH 3/9] codemod: autocomplete-props Co-Authored-By: Claude Sonnet 4.6 --- src/components/inputs/company-input-v2.js | 1 + src/components/mui/formik-inputs/company-input-mui.js | 7 +++++-- .../mui/formik-inputs/mui-formik-async-select.js | 7 +++++-- src/components/mui/formik-inputs/mui-sponsor-input.js | 7 +++++-- src/components/mui/formik-inputs/sponsorship-input-mui.js | 7 +++++-- 5 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/components/inputs/company-input-v2.js b/src/components/inputs/company-input-v2.js index 4effe3fb..f8f9236e 100644 --- a/src/components/inputs/company-input-v2.js +++ b/src/components/inputs/company-input-v2.js @@ -137,6 +137,7 @@ const CompanyInputV2 = ({ summitId, isRequired, sx, onChange, id, name, label, v error={error} margin="normal" slotProps={{ + ...params.slotProps, inputLabel: disableShrink ? { shrink: false } : undefined }} /> diff --git a/src/components/mui/formik-inputs/company-input-mui.js b/src/components/mui/formik-inputs/company-input-mui.js index 8edfeefb..03c925ca 100644 --- a/src/components/mui/formik-inputs/company-input-mui.js +++ b/src/components/mui/formik-inputs/company-input-mui.js @@ -172,18 +172,21 @@ const CompanyInputMUI = ({ error={Boolean(error)} helperText={error || ""} slotProps={{ - ...params.InputProps, + ...params.slotProps, + ...params.slotProps.input, inputLabel: { shrink: false }, + sx: { "& input::placeholder": { color: "#00000061", opacity: 1 } }, + endAdornment: ( <> {loading && } - {params.InputProps?.endAdornment} + {params.slotProps.input?.endAdornment} ) }} diff --git a/src/components/mui/formik-inputs/mui-formik-async-select.js b/src/components/mui/formik-inputs/mui-formik-async-select.js index 8f724fb6..b9a7bf7a 100644 --- a/src/components/mui/formik-inputs/mui-formik-async-select.js +++ b/src/components/mui/formik-inputs/mui-formik-async-select.js @@ -108,15 +108,18 @@ const MuiFormikAsyncAutocomplete = ({ error={Boolean(error)} helperText={error || ""} slotProps={{ + ...params.slotProps, + input: { - ...params.InputProps, + ...params.slotProps.input, endAdornment: ( <> {loading && } - {params.InputProps?.endAdornment} + {params.slotProps.input?.endAdornment} ) }, + inputLabel: { shrink: false } }} sx={{ diff --git a/src/components/mui/formik-inputs/mui-sponsor-input.js b/src/components/mui/formik-inputs/mui-sponsor-input.js index aa8d6a45..b848fae0 100644 --- a/src/components/mui/formik-inputs/mui-sponsor-input.js +++ b/src/components/mui/formik-inputs/mui-sponsor-input.js @@ -133,18 +133,21 @@ const MuiSponsorInput = ({ error={Boolean(error)} helperText={errorMessage || ""} slotProps={{ - ...params.InputProps, + ...params.slotProps, + ...params.slotProps.input, inputLabel: { shrink: false }, + sx: { "& input::placeholder": { color: "#00000061", opacity: 1 } }, + endAdornment: ( <> {loading && } - {params.InputProps?.endAdornment} + {params.slotProps.input?.endAdornment} ) }} diff --git a/src/components/mui/formik-inputs/sponsorship-input-mui.js b/src/components/mui/formik-inputs/sponsorship-input-mui.js index 358eb192..8cd322c4 100644 --- a/src/components/mui/formik-inputs/sponsorship-input-mui.js +++ b/src/components/mui/formik-inputs/sponsorship-input-mui.js @@ -129,18 +129,21 @@ const SponsorshipTypeInputMUI = ({ error={Boolean(error)} helperText={errorMessage || ""} slotProps={{ - ...params.InputProps, + ...params.slotProps, + ...params.slotProps.input, inputLabel: { shrink: false }, + sx: { "& input::placeholder": { color: "#00000061", opacity: 1 } }, + endAdornment: ( <> {loading && } - {params.InputProps?.endAdornment} + {params.slotProps.input?.endAdornment} ) }} From c13fad33e14db1d167339a50f910605a50dc68e7 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Thu, 21 May 2026 13:28:13 -0300 Subject: [PATCH 4/9] =?UTF-8?q?codemod:=20tooltip-props=20=E2=80=94=200=20?= =?UTF-8?q?files=20in=20scope?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 From 7c475e65d7b3517062002a388118bbef3ac2fd3f Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Thu, 21 May 2026 13:29:15 -0300 Subject: [PATCH 5/9] =?UTF-8?q?codemod:=20list-item-props=20=E2=80=94=200?= =?UTF-8?q?=20files=20in=20scope?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 From 0b769070b37bfcf8b0e379bb32e530f5019c4710 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Thu, 21 May 2026 13:31:17 -0300 Subject: [PATCH 6/9] =?UTF-8?q?codemod:=20divider-props=20=E2=80=94=200=20?= =?UTF-8?q?files=20in=20scope?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 From c2d40e93a96bdd8d9dba83f9f71befab25b770da Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Thu, 21 May 2026 14:34:32 -0300 Subject: [PATCH 7/9] fix: manual MUI v9 API migration (Task 3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Grid2 → Grid in item-price-tiers, additional-input, meta-field-values - InputProps → slotProps.input in meta-field-values (TextField endAdornment) - inputProps → slotProps.htmlInput in mui-formik-pricefield, mui-formik-quantity-field, item-price-tiers (Checkbox) - Autocomplete renderInput: params.InputProps → params.slotProps in company-input-mui, sponsorship-input-mui, mui-sponsor-input - MuiFormikTextField: deep-merge external slotProps.htmlInput with internal maxLength - MenuListProps → slotProps.list in menu-button - ErrorOutline → ErrorOutlined in upload-input-v3 Co-Authored-By: Claude Sonnet 4.6 --- .../inputs/upload-input-v3/index.js | 2 +- .../additional-input/additional-input.js | 42 +++++++++---------- .../additional-input/meta-field-values.js | 42 ++++++++++--------- .../mui/formik-inputs/company-input-mui.js | 30 ++++++------- .../mui/formik-inputs/item-price-tiers.js | 20 +++++---- .../formik-inputs/mui-formik-pricefield.js | 10 ++--- .../mui-formik-quantity-field.js | 8 ++-- .../mui/formik-inputs/mui-formik-textfield.js | 6 +-- .../mui/formik-inputs/mui-sponsor-input.js | 30 ++++++------- .../formik-inputs/sponsorship-input-mui.js | 30 ++++++------- src/components/mui/menu-button.js | 4 +- 11 files changed, 114 insertions(+), 110 deletions(-) diff --git a/src/components/inputs/upload-input-v3/index.js b/src/components/inputs/upload-input-v3/index.js index d90e6a75..0897a62b 100644 --- a/src/components/inputs/upload-input-v3/index.js +++ b/src/components/inputs/upload-input-v3/index.js @@ -22,7 +22,7 @@ import { import UploadFileIcon from "@mui/icons-material/UploadFile"; import DeleteIcon from "@mui/icons-material/Delete"; import CheckCircleIcon from "@mui/icons-material/CheckCircle"; -import ErrorOutlineIcon from "@mui/icons-material/ErrorOutline"; +import ErrorOutlineIcon from "@mui/icons-material/ErrorOutlined"; import CloseIcon from "@mui/icons-material/Close"; import { DropzoneV3 } from './dropzone-v3'; import './index.less'; diff --git a/src/components/mui/formik-inputs/additional-input/additional-input.js b/src/components/mui/formik-inputs/additional-input/additional-input.js index ea436df1..c0401256 100644 --- a/src/components/mui/formik-inputs/additional-input/additional-input.js +++ b/src/components/mui/formik-inputs/additional-input/additional-input.js @@ -17,7 +17,7 @@ import { Button, Divider, FormHelperText, - Grid2, + Grid, InputLabel, MenuItem } from "@mui/material"; @@ -58,8 +58,8 @@ const AdditionalInput = ({ typeof fieldErrors.values === "string"; return ( - - + + - - + + {T.translate("additional_inputs.title")} @@ -81,8 +81,8 @@ const AdditionalInput = ({ )} fullWidth /> - - + + {T.translate("additional_inputs.type")} @@ -98,14 +98,14 @@ const AdditionalInput = ({ ))} - - + + - - + + {METAFIELD_TYPES_WITH_OPTIONS.includes(currentType) && ( <> @@ -124,8 +124,8 @@ const AdditionalInput = ({ )} {currentType === "Quantity" && ( - - + + - - + + - - + + )} - - + + - - + + ); }; diff --git a/src/components/mui/formik-inputs/additional-input/meta-field-values.js b/src/components/mui/formik-inputs/additional-input/meta-field-values.js index de179930..77bd505e 100644 --- a/src/components/mui/formik-inputs/additional-input/meta-field-values.js +++ b/src/components/mui/formik-inputs/additional-input/meta-field-values.js @@ -14,7 +14,7 @@ import React from "react"; import T from "i18n-react/dist/i18n-react"; import { useFormikContext } from "formik"; -import { Box, Button, Grid2, Divider, IconButton } from "@mui/material"; +import { Box, Button, Grid, Divider, IconButton } from "@mui/material"; import CloseIcon from "@mui/icons-material/Close"; import AddIcon from "@mui/icons-material/Add"; import DragAndDropList from "../../dnd-list"; @@ -107,7 +107,7 @@ const MetaFieldValues = ({ return ( - - + - - + + handleRemoveValue(val, valueIndex)} - aria-label="remove value" - > - - - ) + slotProps={{ + input: { + endAdornment: ( + handleRemoveValue(val, valueIndex)} + aria-label="remove value" + > + + + ) + } }} /> - - + + - - + + ); @@ -176,7 +178,7 @@ const MetaFieldValues = ({ updateOrderKey="order" droppableId={`droppable-values-${fieldIndex}`} /> - + - + ); }; diff --git a/src/components/mui/formik-inputs/company-input-mui.js b/src/components/mui/formik-inputs/company-input-mui.js index 03c925ca..c5105708 100644 --- a/src/components/mui/formik-inputs/company-input-mui.js +++ b/src/components/mui/formik-inputs/company-input-mui.js @@ -173,22 +173,22 @@ const CompanyInputMUI = ({ helperText={error || ""} slotProps={{ ...params.slotProps, - ...params.slotProps.input, - inputLabel: { shrink: false }, - - sx: { - "& input::placeholder": { - color: "#00000061", - opacity: 1 - } + input: { + ...params.slotProps?.input, + endAdornment: ( + <> + {loading && } + {params.slotProps?.input?.endAdornment} + + ) }, - - endAdornment: ( - <> - {loading && } - {params.slotProps.input?.endAdornment} - - ) + inputLabel: { shrink: false } + }} + sx={{ + "& input::placeholder": { + color: "#00000061", + opacity: 1 + } }} /> )} diff --git a/src/components/mui/formik-inputs/item-price-tiers.js b/src/components/mui/formik-inputs/item-price-tiers.js index 16718d97..45c056b8 100644 --- a/src/components/mui/formik-inputs/item-price-tiers.js +++ b/src/components/mui/formik-inputs/item-price-tiers.js @@ -18,7 +18,7 @@ import { Box, Checkbox, FormControlLabel, - Grid2, + Grid, InputLabel, TextField } from "@mui/material"; @@ -46,11 +46,11 @@ const ItemPriceTiers = ({ readOnly = false }) => { }; return ( - + {TIERS.map(({ field, label }) => { const isEnabled = enabled[field]; return ( - + { onChange={(ev) => handleToggle(field, ev.target.checked)} size="small" disabled={readOnly} - inputProps={{ - "aria-label": `${T.translate(label)} ${T.translate( - "general.not_available" - )}` + slotProps={{ + input: { + "aria-label": `${T.translate(label)} ${T.translate( + "general.not_available" + )}` + } }} /> } @@ -93,10 +95,10 @@ const ItemPriceTiers = ({ readOnly = false }) => { /> )} - + ); })} - + ); }; diff --git a/src/components/mui/formik-inputs/mui-formik-pricefield.js b/src/components/mui/formik-inputs/mui-formik-pricefield.js index 27b4e4ff..0156d0f7 100644 --- a/src/components/mui/formik-inputs/mui-formik-pricefield.js +++ b/src/components/mui/formik-inputs/mui-formik-pricefield.js @@ -104,13 +104,13 @@ const MuiFormikPriceField = ({ slotProps={{ input: { startAdornment: $ + }, + htmlInput: { + min: 0, + inputMode: "decimal", + ...inputProps } }} - inputProps={{ - min: 0, - inputMode: "decimal", - ...inputProps - }} onKeyDown={handleKeyDown} // eslint-disable-next-line react/jsx-props-no-spreading {...props} diff --git a/src/components/mui/formik-inputs/mui-formik-quantity-field.js b/src/components/mui/formik-inputs/mui-formik-quantity-field.js index bd95f5e6..1b1eaea9 100644 --- a/src/components/mui/formik-inputs/mui-formik-quantity-field.js +++ b/src/components/mui/formik-inputs/mui-formik-quantity-field.js @@ -26,9 +26,11 @@ const MuiFormikQuantityField = ({ ...props }) => ( e.nativeEvent.stopImmediatePropagation(); } }} - inputProps={{ - min: 0, - inputMode: "numeric" + slotProps={{ + htmlInput: { + min: 0, + inputMode: "numeric" + } }} // eslint-disable-next-line react/jsx-props-no-spreading {...props} diff --git a/src/components/mui/formik-inputs/mui-formik-textfield.js b/src/components/mui/formik-inputs/mui-formik-textfield.js index b8526fb3..f4acd4f7 100644 --- a/src/components/mui/formik-inputs/mui-formik-textfield.js +++ b/src/components/mui/formik-inputs/mui-formik-textfield.js @@ -21,6 +21,7 @@ const MuiFormikTextField = ({ label, maxLength, required = false, + slotProps: externalSlotProps, ...props }) => { const [field, meta] = useField(name); @@ -43,9 +44,8 @@ const MuiFormikTextField = ({ error={meta.touched && Boolean(meta.error)} helperText={meta.touched && meta.error} slotProps={{ - htmlInput: { - maxLength - } + ...externalSlotProps, + htmlInput: { maxLength, ...externalSlotProps?.htmlInput } }} // eslint-disable-next-line react/jsx-props-no-spreading {...props} diff --git a/src/components/mui/formik-inputs/mui-sponsor-input.js b/src/components/mui/formik-inputs/mui-sponsor-input.js index b848fae0..57776aec 100644 --- a/src/components/mui/formik-inputs/mui-sponsor-input.js +++ b/src/components/mui/formik-inputs/mui-sponsor-input.js @@ -134,22 +134,22 @@ const MuiSponsorInput = ({ helperText={errorMessage || ""} slotProps={{ ...params.slotProps, - ...params.slotProps.input, - inputLabel: { shrink: false }, - - sx: { - "& input::placeholder": { - color: "#00000061", - opacity: 1 - } + input: { + ...params.slotProps?.input, + endAdornment: ( + <> + {loading && } + {params.slotProps?.input?.endAdornment} + + ) }, - - endAdornment: ( - <> - {loading && } - {params.slotProps.input?.endAdornment} - - ) + inputLabel: { shrink: false } + }} + sx={{ + "& input::placeholder": { + color: "#00000061", + opacity: 1 + } }} /> )} diff --git a/src/components/mui/formik-inputs/sponsorship-input-mui.js b/src/components/mui/formik-inputs/sponsorship-input-mui.js index 8cd322c4..edfa4d13 100644 --- a/src/components/mui/formik-inputs/sponsorship-input-mui.js +++ b/src/components/mui/formik-inputs/sponsorship-input-mui.js @@ -130,22 +130,22 @@ const SponsorshipTypeInputMUI = ({ helperText={errorMessage || ""} slotProps={{ ...params.slotProps, - ...params.slotProps.input, - inputLabel: { shrink: false }, - - sx: { - "& input::placeholder": { - color: "#00000061", - opacity: 1 - } + input: { + ...params.slotProps?.input, + endAdornment: ( + <> + {loading && } + {params.slotProps?.input?.endAdornment} + + ) }, - - endAdornment: ( - <> - {loading && } - {params.slotProps.input?.endAdornment} - - ) + inputLabel: { shrink: false } + }} + sx={{ + "& input::placeholder": { + color: "#00000061", + opacity: 1 + } }} /> )} diff --git a/src/components/mui/menu-button.js b/src/components/mui/menu-button.js index 70c8bb40..6ba9a433 100644 --- a/src/components/mui/menu-button.js +++ b/src/components/mui/menu-button.js @@ -81,10 +81,8 @@ const MenuButton = ({ anchorEl={anchorEl} open={Boolean(anchorEl)} onClose={handleClose} - MenuListProps={{ - "aria-labelledby": buttonId - }} slotProps={{ + list: { "aria-labelledby": buttonId }, paper: { sx: { minWidth: 220 } } From 80c2fe759c3706f855c7b5327b4d2972e569f6ca Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Thu, 21 May 2026 14:43:08 -0300 Subject: [PATCH 8/9] test: update tests for MUI v9 breaking changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - MuiFormikSwitch: getByRole("checkbox") → getByRole("switch") (MUI v9 uses role=switch) - MuiFormikDatepicker: getByLabelText → getByRole("group")/getByRole("spinbutton") (x-date-pickers v9 renders spinbutton sections, not a plain input) - FormItemTable: drop MUI MenuItem children from select mock (MenuItem now requires MenuListContext; rendering it inside native {options && @@ -227,7 +227,6 @@ jest.mock("../../formik-inputs/mui-formik-select", () => ({ {opt.label} ))} - {children} ) })); diff --git a/src/components/mui/__tests__/mui-formik-datepicker.test.js b/src/components/mui/__tests__/mui-formik-datepicker.test.js index 76cc93fd..7bba67fb 100644 --- a/src/components/mui/__tests__/mui-formik-datepicker.test.js +++ b/src/components/mui/__tests__/mui-formik-datepicker.test.js @@ -42,7 +42,7 @@ describe("MuiFormikDatepicker", () => { test("shows required marker in label", () => { renderWithFormik({ required: true }); - expect(screen.getByLabelText("Test Date *")).toBeInTheDocument(); + expect(screen.getByRole("group", { name: "Test Date *" })).toBeInTheDocument(); }); test("shows validation error on submit without value", async () => { @@ -62,7 +62,6 @@ describe("MuiFormikDatepicker", () => { const user = userEvent.setup(); renderWithFormik({ required: true }); - await user.click(screen.getByLabelText("Test Date *")); await user.click(screen.getByRole("button", { name: "Choose date" })); const today = await screen.findByRole("gridcell", { @@ -70,8 +69,7 @@ describe("MuiFormikDatepicker", () => { }); await user.click(today); - const input = screen.getByLabelText("Test Date *"); - expect(input).not.toHaveValue(""); - expect(input).not.toHaveValue("MM/DD/YYYY"); + const monthSpinbutton = screen.getByRole("spinbutton", { name: "Month" }); + expect(monthSpinbutton).not.toHaveTextContent("MM"); }); }); diff --git a/src/components/mui/__tests__/mui-formik-switch.test.js b/src/components/mui/__tests__/mui-formik-switch.test.js index d492330a..623664d2 100644 --- a/src/components/mui/__tests__/mui-formik-switch.test.js +++ b/src/components/mui/__tests__/mui-formik-switch.test.js @@ -33,24 +33,24 @@ describe("MuiFormikSwitch", () => { expect(screen.getByText("Enable Feature")).toBeInTheDocument(); }); - test("renders a switch (checkbox role)", () => { + test("renders a switch (switch role)", () => { renderWithFormik({}); - expect(screen.getByRole("checkbox")).toBeInTheDocument(); + expect(screen.getByRole("switch")).toBeInTheDocument(); }); test("is off when initial value is false", () => { renderWithFormik({}); - expect(screen.getByRole("checkbox")).not.toBeChecked(); + expect(screen.getByRole("switch")).not.toBeChecked(); }); test("is on when initial value is true", () => { renderWithFormik({}, { enabled: true }); - expect(screen.getByRole("checkbox")).toBeChecked(); + expect(screen.getByRole("switch")).toBeChecked(); }); test("toggles on click", async () => { renderWithFormik({}); - const toggle = screen.getByRole("checkbox"); + const toggle = screen.getByRole("switch"); await userEvent.click(toggle); expect(toggle).toBeChecked(); }); From 54e6f6eb2b80b09a65ffd973e83b6fba05829655 Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Thu, 21 May 2026 14:43:52 -0300 Subject: [PATCH 9/9] chore: bump version to 6.0.0-beta.1 (MUI v9 upgrade) Skips 5.x series to signal breaking peer-dep change (@mui/material ^9.0.0, react ^18||^19). Consumers must upgrade MUI and React before installing this version. Co-Authored-By: Claude Sonnet 4.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index acec6f06..39829573 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openstack-uicore-foundation", - "version": "5.0.22", + "version": "6.0.0-beta.1", "description": "ui reactjs components for openstack marketing site", "main": "lib/openstack-uicore-foundation.js", "scripts": {