From ee230008e6ed172343e1ab4c03d2eae00e5c3dc2 Mon Sep 17 00:00:00 2001 From: Olivier Tassinari Date: Mon, 4 Sep 2023 18:42:37 +0200 Subject: [PATCH 01/30] [blog] Clearer blog release title --- docs/pages/blog/mui-core-v5.md | 2 +- docs/pages/blog/mui-x-v5.md | 2 +- docs/pages/blog/mui-x-v6.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/pages/blog/mui-core-v5.md b/docs/pages/blog/mui-core-v5.md index 6636bee0dbe37c..7608354640fdba 100644 --- a/docs/pages/blog/mui-core-v5.md +++ b/docs/pages/blog/mui-core-v5.md @@ -1,5 +1,5 @@ --- -title: Introducing MUI Core v5.0 +title: Introducing MUI Core v5 description: After over 400 days of development and over 40 canary releases, we are excited to introduce MUI Core v5.0.0! date: 2021-09-16T00:00:00.000Z authors: diff --git a/docs/pages/blog/mui-x-v5.md b/docs/pages/blog/mui-x-v5.md index ef3a455e5033e3..636ba21c026746 100644 --- a/docs/pages/blog/mui-x-v5.md +++ b/docs/pages/blog/mui-x-v5.md @@ -1,5 +1,5 @@ --- -title: Introducing MUI X v5.0 +title: Introducing MUI X v5 description: We are excited to introduce MUI X v5.0.0! date: 2021-11-22T00:00:00.000Z authors: diff --git a/docs/pages/blog/mui-x-v6.md b/docs/pages/blog/mui-x-v6.md index 6c154412bcd70d..9348275f3d9f74 100644 --- a/docs/pages/blog/mui-x-v6.md +++ b/docs/pages/blog/mui-x-v6.md @@ -1,5 +1,5 @@ --- -title: Introducing MUI X v6.0.0 +title: Introducing MUI X v6 description: Introducing the new major version of the advanced components. date: 2023-03-06T00:00:00.000Z authors: ['josefreitas'] From df4562afdafc83358c794ac1225e7e5d65f643d8 Mon Sep 17 00:00:00 2001 From: Andy Le Date: Mon, 4 Sep 2023 12:44:19 -0600 Subject: [PATCH 02/30] [material-ui][Button] Add demo for file upload (#38786) --- .../components/buttons/InputFileUpload.js | 30 +++++++++++++++++++ .../components/buttons/InputFileUpload.tsx | 30 +++++++++++++++++++ .../buttons/InputFileUpload.tsx.preview | 9 ++++++ .../material/components/buttons/buttons.md | 6 ++++ 4 files changed, 75 insertions(+) create mode 100644 docs/data/material/components/buttons/InputFileUpload.js create mode 100644 docs/data/material/components/buttons/InputFileUpload.tsx create mode 100644 docs/data/material/components/buttons/InputFileUpload.tsx.preview diff --git a/docs/data/material/components/buttons/InputFileUpload.js b/docs/data/material/components/buttons/InputFileUpload.js new file mode 100644 index 00000000000000..f053ce2dd2c511 --- /dev/null +++ b/docs/data/material/components/buttons/InputFileUpload.js @@ -0,0 +1,30 @@ +import * as React from 'react'; +import { styled } from '@mui/material/styles'; +import Button from '@mui/material/Button'; +import CloudUploadIcon from '@mui/icons-material/CloudUpload'; + +const VisuallyHiddenInput = styled('input')` + clip: rect(0 0 0 0); + clip-path: inset(50%); + height: 1px; + overflow: hidden; + position: absolute; + bottom: 0; + left: 0; + white-space: nowrap; + width: 1px; +`; + +export default function InputFileUpload() { + return ( + + ); +} diff --git a/docs/data/material/components/buttons/InputFileUpload.tsx b/docs/data/material/components/buttons/InputFileUpload.tsx new file mode 100644 index 00000000000000..f053ce2dd2c511 --- /dev/null +++ b/docs/data/material/components/buttons/InputFileUpload.tsx @@ -0,0 +1,30 @@ +import * as React from 'react'; +import { styled } from '@mui/material/styles'; +import Button from '@mui/material/Button'; +import CloudUploadIcon from '@mui/icons-material/CloudUpload'; + +const VisuallyHiddenInput = styled('input')` + clip: rect(0 0 0 0); + clip-path: inset(50%); + height: 1px; + overflow: hidden; + position: absolute; + bottom: 0; + left: 0; + white-space: nowrap; + width: 1px; +`; + +export default function InputFileUpload() { + return ( + + ); +} diff --git a/docs/data/material/components/buttons/InputFileUpload.tsx.preview b/docs/data/material/components/buttons/InputFileUpload.tsx.preview new file mode 100644 index 00000000000000..7763b53206c8ad --- /dev/null +++ b/docs/data/material/components/buttons/InputFileUpload.tsx.preview @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/docs/data/material/components/buttons/buttons.md b/docs/data/material/components/buttons/buttons.md index 85e4cf967600c4..4e0f80aba7a8c8 100644 --- a/docs/data/material/components/buttons/buttons.md +++ b/docs/data/material/components/buttons/buttons.md @@ -112,6 +112,12 @@ Use `color` prop to apply theme color palette to component. {{"demo": "IconButtonColors.js"}} +## File upload + +To create a file upload button, turn the button into a label using `component="label"` and then create a visually-hidden input with type `file`. + +{{"demo": "InputFileUpload.js"}} + ## Customization Here are some examples of customizing the component. From 0cc1301ebf6fdaa39d1ebd44994cebd8c4e4df50 Mon Sep 17 00:00:00 2001 From: Matt Date: Mon, 4 Sep 2023 20:24:50 +0100 Subject: [PATCH 03/30] [docs] Fix a typo in lab-tree-view-to-mui-x.md --- docs/pages/blog/lab-tree-view-to-mui-x.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pages/blog/lab-tree-view-to-mui-x.md b/docs/pages/blog/lab-tree-view-to-mui-x.md index 020e0bad24794e..102e33ec651261 100644 --- a/docs/pages/blog/lab-tree-view-to-mui-x.md +++ b/docs/pages/blog/lab-tree-view-to-mui-x.md @@ -75,7 +75,7 @@ You can find the documentation for the Tree View component in the [MUI X docs](/ ## What's next for the Tree View? For now, `@mui/x-tree-view` is in alpha. -Our next goal is to work on the stability and API consistency of its components to prepare a stable release on the next few months. +Our next goal is to work on the stability and API consistency of its components to prepare a stable release in the next few months. Please feel free to try out the component and provide any feedback you may have. From 4255f5aa23ed5bedd1590bb72cdbec4cad0f453a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 16:42:21 -0300 Subject: [PATCH 04/30] Bump aws-sdk to ^2.1450.0 (#38777) --- packages/feedback/package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/feedback/package.json b/packages/feedback/package.json index 1a98b80fd46567..6f01ca4cd3e130 100644 --- a/packages/feedback/package.json +++ b/packages/feedback/package.json @@ -25,6 +25,6 @@ "claudia": "^5.14.1" }, "optionalDependencies": { - "aws-sdk": "^2.1445.0" + "aws-sdk": "^2.1450.0" } } diff --git a/yarn.lock b/yarn.lock index de59cf0e6fd822..fd8e67c465c825 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4796,10 +4796,10 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -aws-sdk@^2.1009.0, aws-sdk@^2.1445.0: - version "2.1445.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1445.0.tgz#02c4ab824b19b2716858fc5041a322e1951a68ea" - integrity sha512-/IYUYE79khfguHsb28fQtXKR/avgkhCa6NNOh6W84xEyc89hLTvF30VlvaYaHFlIQeDmylO9kJfjSqGrEVDPIg== +aws-sdk@^2.1009.0, aws-sdk@^2.1450.0: + version "2.1450.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1450.0.tgz#d54a0bfc6d54391b3d39ff73c0398f435082c14c" + integrity sha512-EfZLImJ0XNuIdlx5McHX0rJbOiQHz+vEjnpGV08gXSzaq2cN3vSjE+L2Dju7KmaIh85FTYvLOf2REUuCLDpSRg== dependencies: buffer "4.9.2" events "1.1.1" From 4693a495f60783d0a8724e347d66b13a34d13e3e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 16:46:04 -0300 Subject: [PATCH 05/30] Bump @types/node to ^18.17.14 (#38770) --- package.json | 4 ++-- packages/api-docs-builder/package.json | 2 +- packages/typescript-to-proptypes/package.json | 2 +- yarn.lock | 8 ++++---- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 241bf020320f85..a0b611d0adb7ce 100644 --- a/package.json +++ b/package.json @@ -106,7 +106,7 @@ "@types/fs-extra": "^11.0.1", "@types/lodash": "^4.14.197", "@types/mocha": "^10.0.1", - "@types/node": "^18.17.12", + "@types/node": "^18.17.14", "@types/prettier": "^2.7.3", "@types/react": "^18.2.21", "@types/react-is": "^18.2.1", @@ -226,7 +226,7 @@ "**/@definitelytyped/header-parser": "^0.0.169", "**/@definitelytyped/typescript-versions": "^0.0.169", "**/@definitelytyped/utils": "^0.0.169", - "**/@types/node": "^18.17.12", + "**/@types/node": "^18.17.14", "**/@types/react": "^18.2.21", "**/cross-fetch": "^4.0.0" }, diff --git a/packages/api-docs-builder/package.json b/packages/api-docs-builder/package.json index 2f7e128933bc5a..e0fcaf8f1c9ca2 100644 --- a/packages/api-docs-builder/package.json +++ b/packages/api-docs-builder/package.json @@ -20,7 +20,7 @@ }, "devDependencies": { "@types/mocha": "^10.0.1", - "@types/node": "^18.17.12", + "@types/node": "^18.17.14", "chai": "^4.3.8", "sinon": "^15.2.0", "typescript": "^5.1.6" diff --git a/packages/typescript-to-proptypes/package.json b/packages/typescript-to-proptypes/package.json index fabb40e798e7cf..55fdd1632b7f50 100644 --- a/packages/typescript-to-proptypes/package.json +++ b/packages/typescript-to-proptypes/package.json @@ -24,7 +24,7 @@ "@types/babel__core": "^7.20.1", "@types/doctrine": "^0.0.6", "@types/lodash": "^4.14.197", - "@types/node": "^18.17.12", + "@types/node": "^18.17.14", "@types/prettier": "^2.7.3", "@types/react": "^18.2.21", "@types/uuid": "^9.0.2", diff --git a/yarn.lock b/yarn.lock index fd8e67c465c825..78a097135e5b78 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3625,10 +3625,10 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== -"@types/node@*", "@types/node@>=10.0.0", "@types/node@>=12", "@types/node@>=12.0.0", "@types/node@^14.0.1", "@types/node@^14.14.35", "@types/node@^18.17.12": - version "18.17.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.12.tgz#c6bd7413a13e6ad9cfb7e97dd5c4e904c1821e50" - integrity sha512-d6xjC9fJ/nSnfDeU0AMDsaJyb1iHsqCSOdi84w4u+SlN/UgQdY5tRhpMzaFYsI4mnpvgTivEaQd0yOUhAtOnEQ== +"@types/node@*", "@types/node@>=10.0.0", "@types/node@>=12", "@types/node@>=12.0.0", "@types/node@^14.0.1", "@types/node@^14.14.35", "@types/node@^18.17.14": + version "18.17.14" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.14.tgz#a621ad26e7eb076d6846dd3d39557ddf9d89f04b" + integrity sha512-ZE/5aB73CyGqgQULkLG87N9GnyGe5TcQjv34pwS8tfBs1IkCh0ASM69mydb2znqd6v0eX+9Ytvk6oQRqu8T1Vw== "@types/normalize-package-data@^2.4.0", "@types/normalize-package-data@^2.4.1": version "2.4.1" From e04b2e7b9c9c432d9f2133047a7cef9834abb77e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Sep 2023 16:48:37 -0300 Subject: [PATCH 06/30] Bump webpack-bundle-analyzer to ^4.9.1 (#38775) --- docs/package.json | 2 +- package.json | 2 +- yarn.lock | 54 +++++++++++++++++++++++++++++++++-------------- 3 files changed, 40 insertions(+), 18 deletions(-) diff --git a/docs/package.json b/docs/package.json index 7ef6dd4563129a..767f02cb87d957 100644 --- a/docs/package.json +++ b/docs/package.json @@ -119,7 +119,7 @@ "stylis-plugin-rtl": "^2.1.1", "stylis-plugin-rtl-sc": "npm:stylis-plugin-rtl@^1.1.0", "webfontloader": "^1.6.28", - "webpack-bundle-analyzer": "^4.9.0", + "webpack-bundle-analyzer": "^4.9.1", "use-count-up": "^3.0.1" }, "devDependencies": { diff --git a/package.json b/package.json index a0b611d0adb7ce..31a915df5af423 100644 --- a/package.json +++ b/package.json @@ -204,7 +204,7 @@ "unist-util-visit": "^2.0.3", "util": "^0.12.5", "webpack": "^5.88.2", - "webpack-bundle-analyzer": "^4.9.0", + "webpack-bundle-analyzer": "^4.9.1", "webpack-cli": "^4.10.0", "yargs": "^17.7.2", "yarn-deduplicate": "^6.0.2" diff --git a/yarn.lock b/yarn.lock index 78a097135e5b78..bc91c520a35bf8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11065,6 +11065,11 @@ lodash.includes@^4.3.0: resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== +lodash.invokemap@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.invokemap/-/lodash.invokemap-4.6.0.tgz#1748cda5d8b0ef8369c4eb3ec54c21feba1f2d62" + integrity sha512-CfkycNtMqgUlfjfdh2BhKO/ZXrP8ePOX5lEU/g0R3ItJcnuxWDwokMGKx1hWcfOikmyOVx6X9IwWnDGlgKl61w== + lodash.isboolean@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" @@ -11145,6 +11150,11 @@ lodash.omit@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" integrity sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg== +lodash.pullall@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.pullall/-/lodash.pullall-4.2.0.tgz#9d98b8518b7c965b0fae4099bd9fb7df8bbf38ba" + integrity sha512-VhqxBKH0ZxPpLhiu68YD1KnHmbhQJQctcipvmFnqIBDYzcIHzf3Zpu0tpeOKtR4x76p9yohc506eGdOjTmyIBg== + lodash.snakecase@4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" @@ -11165,6 +11175,11 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== +lodash.uniqby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" + integrity sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww== + lodash.upperfirst@4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" @@ -15025,14 +15040,14 @@ sinon@^15.2.0: nise "^5.1.4" supports-color "^7.2.0" -sirv@^1.0.7: - version "1.0.19" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49" - integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ== +sirv@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.3.tgz#ca5868b87205a74bef62a469ed0296abceccd446" + integrity sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA== dependencies: "@polka/url" "^1.0.0-next.20" mrmime "^1.0.0" - totalist "^1.0.0" + totalist "^3.0.0" slash@3.0.0, slash@^3.0.0: version "3.0.0" @@ -16015,10 +16030,10 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -totalist@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" - integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== +totalist@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" + integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== tough-cookie@^4.1.2: version "4.1.2" @@ -16774,20 +16789,27 @@ webidl-conversions@^7.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -webpack-bundle-analyzer@^4.9.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.0.tgz#fc093c4ab174fd3dcbd1c30b763f56d10141209d" - integrity sha512-+bXGmO1LyiNx0i9enBu3H8mv42sj/BJWhZNFwjz92tVnBa9J3JMGo2an2IXlEleoDOPn/Hofl5hr/xCpObUDtw== +webpack-bundle-analyzer@^4.9.1: + version "4.9.1" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.1.tgz#d00bbf3f17500c10985084f22f1a2bf45cb2f09d" + integrity sha512-jnd6EoYrf9yMxCyYDPj8eutJvtjQNp8PHmni/e/ulydHBWhT5J3menXt3HEkScsu9YqMAcG4CfFjs3rj5pVU1w== dependencies: "@discoveryjs/json-ext" "0.5.7" acorn "^8.0.4" acorn-walk "^8.0.0" - chalk "^4.1.0" commander "^7.2.0" + escape-string-regexp "^4.0.0" gzip-size "^6.0.0" - lodash "^4.17.20" + is-plain-object "^5.0.0" + lodash.debounce "^4.0.8" + lodash.escape "^4.0.1" + lodash.flatten "^4.4.0" + lodash.invokemap "^4.6.0" + lodash.pullall "^4.2.0" + lodash.uniqby "^4.7.0" opener "^1.5.2" - sirv "^1.0.7" + picocolors "^1.0.0" + sirv "^2.0.3" ws "^7.3.1" webpack-cli@^4.10.0: From 45f7e73e24d2b8939c85eb7d50fc4475f0fc9fa1 Mon Sep 17 00:00:00 2001 From: Olivier Tassinari Date: Mon, 4 Sep 2023 22:35:25 +0200 Subject: [PATCH 07/30] [core] Use immutable refs (#38762) --- docs/src/modules/components/DemoEditor.tsx | 4 ++-- packages/mui-base/src/Popper/Popper.tsx | 2 +- packages/mui-base/src/Select/Select.tsx | 2 +- packages/mui-base/src/useMenu/useMenu.ts | 2 +- packages/mui-base/src/useSelect/useSelect.ts | 2 +- packages/mui-joy/src/Button/Button.tsx | 2 +- packages/mui-joy/src/Chip/Chip.tsx | 2 +- packages/mui-joy/src/ChipDelete/ChipDelete.tsx | 2 +- packages/mui-joy/src/FormHelperText/FormHelperText.tsx | 2 +- packages/mui-joy/src/IconButton/IconButton.tsx | 2 +- packages/mui-joy/src/ListItemButton/ListItemButton.tsx | 2 +- packages/mui-joy/src/Select/Select.tsx | 6 +++--- 12 files changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/src/modules/components/DemoEditor.tsx b/docs/src/modules/components/DemoEditor.tsx index 766becb31bbcce..fb658c44ac5460 100644 --- a/docs/src/modules/components/DemoEditor.tsx +++ b/docs/src/modules/components/DemoEditor.tsx @@ -81,8 +81,8 @@ export default function DemoEditor(props: DemoEditorProps) { const { language, value, onChange, copyButtonProps, children, id, ...other } = props; const t = useTranslate(); const contextTheme = useTheme(); - const wrapperRef = React.useRef(null); - const enterRef = React.useRef(null); + const wrapperRef = React.useRef(null); + const enterRef = React.useRef(null); const handlers = useCodeCopy(); React.useEffect(() => { diff --git a/packages/mui-base/src/Popper/Popper.tsx b/packages/mui-base/src/Popper/Popper.tsx index 7ae7898921b13a..b7a44861a4fcf6 100644 --- a/packages/mui-base/src/Popper/Popper.tsx +++ b/packages/mui-base/src/Popper/Popper.tsx @@ -96,7 +96,7 @@ const PopperTooltip = React.forwardRef(function PopperTooltip< ...other } = props; - const tooltipRef = React.useRef(null); + const tooltipRef = React.useRef(null); const ownRef = useForkRef(tooltipRef, forwardedRef); const popperRef = React.useRef(null); diff --git a/packages/mui-base/src/Select/Select.tsx b/packages/mui-base/src/Select/Select.tsx index 07f41eb6f9ea31..a74e8ba2fcf6d8 100644 --- a/packages/mui-base/src/Select/Select.tsx +++ b/packages/mui-base/src/Select/Select.tsx @@ -96,7 +96,7 @@ const Select = React.forwardRef(function Select< renderValueProp ?? defaultRenderValue; const [buttonDefined, setButtonDefined] = React.useState(false); - const buttonRef = React.useRef(null); + const buttonRef = React.useRef(null); const listboxRef = React.useRef(null); const Button = slots.root ?? 'button'; diff --git a/packages/mui-base/src/useMenu/useMenu.ts b/packages/mui-base/src/useMenu/useMenu.ts index dbed403af6df12..11064c9b3830aa 100644 --- a/packages/mui-base/src/useMenu/useMenu.ts +++ b/packages/mui-base/src/useMenu/useMenu.ts @@ -38,7 +38,7 @@ const FALLBACK_MENU_CONTEXT: DropdownContextValue = { export function useMenu(parameters: UseMenuParameters = {}): UseMenuReturnValue { const { listboxRef: listboxRefProp, onItemsChange, id: idParam } = parameters; - const rootRef = React.useRef(null); + const rootRef = React.useRef(null); const handleRef = useForkRef(rootRef, listboxRefProp); const listboxId = useId(idParam) ?? ''; diff --git a/packages/mui-base/src/useSelect/useSelect.ts b/packages/mui-base/src/useSelect/useSelect.ts index 14ddc5db7966db..03fb06affc6a99 100644 --- a/packages/mui-base/src/useSelect/useSelect.ts +++ b/packages/mui-base/src/useSelect/useSelect.ts @@ -107,7 +107,7 @@ function useSelect( const buttonRef = React.useRef(null); const handleButtonRef = useForkRef(buttonRefProp, buttonRef); - const listboxRef = React.useRef(null); + const listboxRef = React.useRef(null); const listboxId = useId(listboxIdProp); let defaultValue: OptionValue[] | undefined; diff --git a/packages/mui-joy/src/Button/Button.tsx b/packages/mui-joy/src/Button/Button.tsx index 4c5ab66482fb96..3d8649e709bc99 100644 --- a/packages/mui-joy/src/Button/Button.tsx +++ b/packages/mui-joy/src/Button/Button.tsx @@ -217,7 +217,7 @@ const Button = React.forwardRef(function Button(inProps, ref) { const color = getColor(inProps.color, buttonGroup.color || colorProp); const disabled = inProps.disabled ?? (buttonGroup.disabled || disabledProp || loading); - const buttonRef = React.useRef(null); + const buttonRef = React.useRef(null); const handleRef = useForkRef(buttonRef, ref); const { focusVisible, setFocusVisible, getRootProps } = useButton({ diff --git a/packages/mui-joy/src/Chip/Chip.tsx b/packages/mui-joy/src/Chip/Chip.tsx index 3d6d99d0dea6fd..f35a558d540138 100644 --- a/packages/mui-joy/src/Chip/Chip.tsx +++ b/packages/mui-joy/src/Chip/Chip.tsx @@ -248,7 +248,7 @@ const Chip = React.forwardRef(function Chip(inProps, ref) { const resolvedActionProps = typeof slotProps.action === 'function' ? slotProps.action(ownerState) : slotProps.action; - const actionRef = React.useRef(null); + const actionRef = React.useRef(null); const { focusVisible, getRootProps } = useButton({ ...resolvedActionProps, disabled, diff --git a/packages/mui-joy/src/ChipDelete/ChipDelete.tsx b/packages/mui-joy/src/ChipDelete/ChipDelete.tsx index 0eb1f0f189c433..72648ede7bb177 100644 --- a/packages/mui-joy/src/ChipDelete/ChipDelete.tsx +++ b/packages/mui-joy/src/ChipDelete/ChipDelete.tsx @@ -82,7 +82,7 @@ const ChipDelete = React.forwardRef(function ChipDelete(inProps, ref) { const color = getColor(inProps.color, inheritedColor); const disabled = disabledProp ?? chipContext.disabled; - const buttonRef = React.useRef(null); + const buttonRef = React.useRef(null); const handleRef = useForkRef(buttonRef, ref); const { focusVisible, getRootProps } = useButton({ diff --git a/packages/mui-joy/src/FormHelperText/FormHelperText.tsx b/packages/mui-joy/src/FormHelperText/FormHelperText.tsx index aa65cc813517a3..a58a9c7be802b3 100644 --- a/packages/mui-joy/src/FormHelperText/FormHelperText.tsx +++ b/packages/mui-joy/src/FormHelperText/FormHelperText.tsx @@ -58,7 +58,7 @@ const FormHelperText = React.forwardRef(function FormHelperText(inProps, ref) { }); const { children, component, slots = {}, slotProps = {}, ...other } = props; - const rootRef = React.useRef(null); + const rootRef = React.useRef(null); const handleRef = useForkRef(rootRef, ref); const formControl = React.useContext(FormControlContext); const setHelperText = formControl?.setHelperText; diff --git a/packages/mui-joy/src/IconButton/IconButton.tsx b/packages/mui-joy/src/IconButton/IconButton.tsx index 4f58b7cc481afa..fe092f39d82baf 100644 --- a/packages/mui-joy/src/IconButton/IconButton.tsx +++ b/packages/mui-joy/src/IconButton/IconButton.tsx @@ -147,7 +147,7 @@ const IconButton = React.forwardRef(function IconButton(inProps, ref) { const color = getColor(inProps.color, buttonGroup.color || colorProp); const disabled = inProps.disabled ?? (buttonGroup.disabled || disabledProp); - const buttonRef = React.useRef(null); + const buttonRef = React.useRef(null); const handleRef = useForkRef(buttonRef, ref); const { focusVisible, setFocusVisible, getRootProps } = useButton({ diff --git a/packages/mui-joy/src/ListItemButton/ListItemButton.tsx b/packages/mui-joy/src/ListItemButton/ListItemButton.tsx index c4e390afeaf8f0..0463696dac13a6 100644 --- a/packages/mui-joy/src/ListItemButton/ListItemButton.tsx +++ b/packages/mui-joy/src/ListItemButton/ListItemButton.tsx @@ -154,7 +154,7 @@ const ListItemButton = React.forwardRef(function ListItemButton(inProps, ref) { const { getColor } = useColorInversion(variant); const color = getColor(inProps.color, colorProp); - const buttonRef = React.useRef(null); + const buttonRef = React.useRef(null); const handleRef = useForkRef(buttonRef, ref); const { focusVisible, setFocusVisible, getRootProps } = useButton({ diff --git a/packages/mui-joy/src/Select/Select.tsx b/packages/mui-joy/src/Select/Select.tsx index 8870f2827c8813..d27104fec683f5 100644 --- a/packages/mui-joy/src/Select/Select.tsx +++ b/packages/mui-joy/src/Select/Select.tsx @@ -386,9 +386,9 @@ const Select = React.forwardRef(function Select( const renderValue = renderValueProp ?? defaultRenderSingleValue; const [anchorEl, setAnchorEl] = React.useState(null); - const rootRef = React.useRef(null); - const buttonRef = React.useRef(null); - const listboxRef = React.useRef(null); + const rootRef = React.useRef(null); + const buttonRef = React.useRef(null); + const listboxRef = React.useRef(null); const handleRef = useForkRef(ref, rootRef); From f0e94e63593467d3b393edf68d8e858069a814e5 Mon Sep 17 00:00:00 2001 From: Olivier Tassinari Date: Mon, 4 Sep 2023 22:40:14 +0200 Subject: [PATCH 08/30] [docs] Trim trailing whitespace (#38793) --- .../AutocompleteIntroduction/system/index.js | 6 +- .../AutocompleteIntroduction/system/index.tsx | 6 +- .../components/button/UnstyledButtonCustom.js | 4 +- .../button/UnstyledButtonCustom.tsx | 4 +- .../button/UnstyledButtonsSimple/css/index.js | 5 +- .../UnstyledButtonsSimple/css/index.tsx | 5 +- .../BasicFormControl/system/index.js | 2 +- .../BasicFormControl/system/index.tsx | 2 +- .../form-control/FormControlFunctionChild.js | 1 - .../form-control/FormControlFunctionChild.tsx | 1 - .../input/UnstyledInputBasic/css/index.js | 6 +- .../input/UnstyledInputBasic/css/index.tsx | 6 +- .../UnstyledInputIntroduction/css/index.js | 4 +- .../UnstyledInputIntroduction/css/index.tsx | 4 +- .../components/menu/MenuSimple/css/index.js | 3 +- .../components/menu/MenuSimple/css/index.tsx | 3 +- docs/data/base/components/menu/UseMenu.js | 5 +- docs/data/base/components/menu/UseMenu.tsx | 5 +- .../NumberInputBasic/system/index.js | 3 +- .../NumberInputBasic/system/index.tsx | 3 +- .../number-input/NumberInputIntroduction.js | 3 +- .../number-input/NumberInputIntroduction.tsx | 3 +- .../QuantityInput/system/index.js | 3 - .../QuantityInput/system/index.tsx | 3 - .../popper/UnstyledPopperBasic/css/index.js | 5 +- .../popper/UnstyledPopperBasic/css/index.tsx | 5 +- .../UnstyledPopperBasic/system/index.js | 4 +- .../UnstyledPopperBasic/system/index.tsx | 4 +- .../UnstyledPopupIntroduction/css/index.js | 60 +++++++++---------- .../UnstyledPopupIntroduction/css/index.tsx | 60 +++++++++---------- .../UnstyledSelectIntroduction/css/index.js | 4 -- .../UnstyledSelectIntroduction/css/index.tsx | 4 -- .../snackbar/UnstyledSnackbar/css/index.js | 2 +- .../snackbar/UnstyledSnackbar/css/index.tsx | 2 +- .../UnstyledSnackbarIntroduction/css/index.js | 2 +- .../css/index.tsx | 2 +- .../UnstyledSwitchIntroduction/css/index.js | 3 +- .../UnstyledSwitchIntroduction/css/index.tsx | 3 +- .../system/index.js | 1 - .../system/index.tsx | 1 - .../components/switch/UnstyledSwitches.js | 1 - .../components/switch/UnstyledSwitches.tsx | 1 - .../TableCustomized/css/index.js | 2 +- .../TableCustomized/css/index.tsx | 2 +- .../css/index.js | 6 +- .../css/index.tsx | 6 +- .../textarea-autosize/EmptyTextarea.js | 6 +- .../textarea-autosize/EmptyTextarea.tsx | 6 +- .../textarea-autosize/MaxHeightTextarea.js | 6 +- .../textarea-autosize/MaxHeightTextarea.tsx | 6 +- .../textarea-autosize/MinHeightTextarea.js | 6 +- .../textarea-autosize/MinHeightTextarea.tsx | 6 +- .../UnstyledTextarea/css/index.js | 4 +- .../UnstyledTextarea/css/index.tsx | 4 +- .../UnstyledTextarea/system/index.js | 6 +- .../UnstyledTextarea/system/index.tsx | 6 +- .../material-icons/material-icons-pt.md | 2 +- .../material-icons/material-icons-zh.md | 2 +- .../interoperability/interoperability-pt.md | 2 +- .../interoperability/interoperability-zh.md | 2 +- docs/pages/experiments/base/listbox.tsx | 2 +- .../productBaseUI/BaseUIThemesDemo.tsx | 3 +- .../productMaterial/MaterialComponents.tsx | 2 +- .../modules/components/JoyThemeBuilder.tsx | 2 +- .../src/LinearProgress/LinearProgress.tsx | 2 +- 65 files changed, 155 insertions(+), 190 deletions(-) diff --git a/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.js b/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.js index 9aa53294a34be7..73c984e5efc078 100644 --- a/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.js +++ b/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.js @@ -155,7 +155,7 @@ const StyledAutocompleteRoot = styled('div')( padding-right: 5px; overflow: hidden; width: 320px; - + &.focused { border-color: ${blue[400]}; box-shadow: 0 0 0 3px ${theme.palette.mode === 'dark' ? blue[500] : blue[200]}; @@ -264,7 +264,7 @@ const StyledPopupIndicator = styled(Button)( background-color: transparent; align-self: center; padding: 0 2px; - + &:hover { background-color: ${theme.palette.mode === 'dark' ? grey[700] : blue[100]}; cursor: pointer; @@ -289,7 +289,7 @@ const StyledClearIndicator = styled(Button)( background-color: transparent; align-self: center; padding: 0 2px; - + &:hover { background-color: ${theme.palette.mode === 'dark' ? grey[700] : blue[100]}; cursor: pointer; diff --git a/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.tsx b/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.tsx index 1d465838034b49..394748ee3e017d 100644 --- a/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.tsx +++ b/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.tsx @@ -138,7 +138,7 @@ const StyledAutocompleteRoot = styled('div')( padding-right: 5px; overflow: hidden; width: 320px; - + &.focused { border-color: ${blue[400]}; box-shadow: 0 0 0 3px ${theme.palette.mode === 'dark' ? blue[500] : blue[200]}; @@ -247,7 +247,7 @@ const StyledPopupIndicator = styled(Button)( background-color: transparent; align-self: center; padding: 0 2px; - + &:hover { background-color: ${theme.palette.mode === 'dark' ? grey[700] : blue[100]}; cursor: pointer; @@ -272,7 +272,7 @@ const StyledClearIndicator = styled(Button)( background-color: transparent; align-self: center; padding: 0 2px; - + &:hover { background-color: ${theme.palette.mode === 'dark' ? grey[700] : blue[100]}; cursor: pointer; diff --git a/docs/data/base/components/button/UnstyledButtonCustom.js b/docs/data/base/components/button/UnstyledButtonCustom.js index f24ea77300da7e..4f4e2399fafeaf 100644 --- a/docs/data/base/components/button/UnstyledButtonCustom.js +++ b/docs/data/base/components/button/UnstyledButtonCustom.js @@ -53,7 +53,7 @@ const CustomButtonRoot = styled(ButtonRoot)( transition: all 800ms ease; pointer-events: none; } - + & .bg { stroke: var(--main-color); stroke-width: 1; @@ -86,7 +86,7 @@ const CustomButtonRoot = styled(ButtonRoot)( outline-offset: 2px; } - &.${buttonClasses.active} { + &.${buttonClasses.active} { & .bg { fill: var(--active-color); transition: fill 300ms ease-out; diff --git a/docs/data/base/components/button/UnstyledButtonCustom.tsx b/docs/data/base/components/button/UnstyledButtonCustom.tsx index 6733dee6f7e020..72413739662779 100644 --- a/docs/data/base/components/button/UnstyledButtonCustom.tsx +++ b/docs/data/base/components/button/UnstyledButtonCustom.tsx @@ -54,7 +54,7 @@ const CustomButtonRoot = styled(ButtonRoot)( transition: all 800ms ease; pointer-events: none; } - + & .bg { stroke: var(--main-color); stroke-width: 1; @@ -87,7 +87,7 @@ const CustomButtonRoot = styled(ButtonRoot)( outline-offset: 2px; } - &.${buttonClasses.active} { + &.${buttonClasses.active} { & .bg { fill: var(--active-color); transition: fill 300ms ease-out; diff --git a/docs/data/base/components/button/UnstyledButtonsSimple/css/index.js b/docs/data/base/components/button/UnstyledButtonsSimple/css/index.js index 1caf7cb2550212..f7cdde1f0fd0be 100644 --- a/docs/data/base/components/button/UnstyledButtonsSimple/css/index.js +++ b/docs/data/base/components/button/UnstyledButtonsSimple/css/index.js @@ -54,12 +54,11 @@ function Styles() { .CustomButton:active:not(.${buttonClasses.disabled}) { background-color: ${cyan[700]}; } - + .${buttonClasses.disabled} { opacity: 0.5; cursor: not-allowed; - - + } `} ); diff --git a/docs/data/base/components/button/UnstyledButtonsSimple/css/index.tsx b/docs/data/base/components/button/UnstyledButtonsSimple/css/index.tsx index 1caf7cb2550212..f7cdde1f0fd0be 100644 --- a/docs/data/base/components/button/UnstyledButtonsSimple/css/index.tsx +++ b/docs/data/base/components/button/UnstyledButtonsSimple/css/index.tsx @@ -54,12 +54,11 @@ function Styles() { .CustomButton:active:not(.${buttonClasses.disabled}) { background-color: ${cyan[700]}; } - + .${buttonClasses.disabled} { opacity: 0.5; cursor: not-allowed; - - + } `} ); diff --git a/docs/data/base/components/form-control/BasicFormControl/system/index.js b/docs/data/base/components/form-control/BasicFormControl/system/index.js index 74956e018b87b0..f2b89b5af1061b 100644 --- a/docs/data/base/components/form-control/BasicFormControl/system/index.js +++ b/docs/data/base/components/form-control/BasicFormControl/system/index.js @@ -16,7 +16,7 @@ export default function BasicFormControl() { const StyledInput = styled(Input)( ({ theme }) => ` - + .${inputClasses.input} { width: 320px; font-size: 0.875rem; diff --git a/docs/data/base/components/form-control/BasicFormControl/system/index.tsx b/docs/data/base/components/form-control/BasicFormControl/system/index.tsx index 3b3d38e15c2cd4..a76d389e9f983c 100644 --- a/docs/data/base/components/form-control/BasicFormControl/system/index.tsx +++ b/docs/data/base/components/form-control/BasicFormControl/system/index.tsx @@ -16,7 +16,7 @@ export default function BasicFormControl() { const StyledInput = styled(Input)( ({ theme }) => ` - + .${inputClasses.input} { width: 320px; font-size: 0.875rem; diff --git a/docs/data/base/components/form-control/FormControlFunctionChild.js b/docs/data/base/components/form-control/FormControlFunctionChild.js index 2710be182fb482..1d15c03b3e2ff4 100644 --- a/docs/data/base/components/form-control/FormControlFunctionChild.js +++ b/docs/data/base/components/form-control/FormControlFunctionChild.js @@ -18,7 +18,6 @@ export default function FormControlFunctionChild() { const StyledInput = styled(Input)( ({ theme }) => ` - display: inline-block; .${inputClasses.input} { diff --git a/docs/data/base/components/form-control/FormControlFunctionChild.tsx b/docs/data/base/components/form-control/FormControlFunctionChild.tsx index 0ec778fa20ae5a..2ec9f57b26b993 100644 --- a/docs/data/base/components/form-control/FormControlFunctionChild.tsx +++ b/docs/data/base/components/form-control/FormControlFunctionChild.tsx @@ -18,7 +18,6 @@ export default function FormControlFunctionChild() { const StyledInput = styled(Input)( ({ theme }) => ` - display: inline-block; .${inputClasses.input} { diff --git a/docs/data/base/components/input/UnstyledInputBasic/css/index.js b/docs/data/base/components/input/UnstyledInputBasic/css/index.js index f115837b61c88c..a64877d635bed1 100644 --- a/docs/data/base/components/input/UnstyledInputBasic/css/index.js +++ b/docs/data/base/components/input/UnstyledInputBasic/css/index.js @@ -65,16 +65,16 @@ function Styles() { background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; box-shadow: 0px 2px 2px ${isDarkMode ? grey[900] : grey[50]}; - + &:hover { border-color: ${cyan[400]}; } - + &:focus { border-color: ${cyan[400]}; box-shadow: 0 0 0 3px ${isDarkMode ? cyan[500] : cyan[200]}; } - + &:focus-visible { outline: 0; } diff --git a/docs/data/base/components/input/UnstyledInputBasic/css/index.tsx b/docs/data/base/components/input/UnstyledInputBasic/css/index.tsx index f115837b61c88c..a64877d635bed1 100644 --- a/docs/data/base/components/input/UnstyledInputBasic/css/index.tsx +++ b/docs/data/base/components/input/UnstyledInputBasic/css/index.tsx @@ -65,16 +65,16 @@ function Styles() { background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; box-shadow: 0px 2px 2px ${isDarkMode ? grey[900] : grey[50]}; - + &:hover { border-color: ${cyan[400]}; } - + &:focus { border-color: ${cyan[400]}; box-shadow: 0 0 0 3px ${isDarkMode ? cyan[500] : cyan[200]}; } - + &:focus-visible { outline: 0; } diff --git a/docs/data/base/components/input/UnstyledInputIntroduction/css/index.js b/docs/data/base/components/input/UnstyledInputIntroduction/css/index.js index ddf9d9f8f09a9b..7db613fae34b34 100644 --- a/docs/data/base/components/input/UnstyledInputIntroduction/css/index.js +++ b/docs/data/base/components/input/UnstyledInputIntroduction/css/index.js @@ -65,11 +65,11 @@ function Styles() { background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; box-shadow: 0px 2px 24px ${isDarkMode ? cyan[800] : cyan[100]}; - + &:hover { border-color: ${cyan[400]}; } - + &:focus { border-color: ${cyan[400]}; box-shadow: 0 0 0 3px ${isDarkMode ? cyan[600] : cyan[200]}; diff --git a/docs/data/base/components/input/UnstyledInputIntroduction/css/index.tsx b/docs/data/base/components/input/UnstyledInputIntroduction/css/index.tsx index ddf9d9f8f09a9b..7db613fae34b34 100644 --- a/docs/data/base/components/input/UnstyledInputIntroduction/css/index.tsx +++ b/docs/data/base/components/input/UnstyledInputIntroduction/css/index.tsx @@ -65,11 +65,11 @@ function Styles() { background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; box-shadow: 0px 2px 24px ${isDarkMode ? cyan[800] : cyan[100]}; - + &:hover { border-color: ${cyan[400]}; } - + &:focus { border-color: ${cyan[400]}; box-shadow: 0 0 0 3px ${isDarkMode ? cyan[600] : cyan[200]}; diff --git a/docs/data/base/components/menu/MenuSimple/css/index.js b/docs/data/base/components/menu/MenuSimple/css/index.js index 817e9ec525430f..0c5e3c2730567f 100644 --- a/docs/data/base/components/menu/MenuSimple/css/index.js +++ b/docs/data/base/components/menu/MenuSimple/css/index.js @@ -140,7 +140,6 @@ function Styles() { cursor: pointer; border: 1px solid ${isDarkMode ? grey[800] : grey[200]}; color: ${isDarkMode ? cyan[300] : cyan[400]}; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; @@ -150,7 +149,7 @@ function Styles() { background: ${isDarkMode ? grey[800] : grey[50]}; border-color: ${isDarkMode ? grey[600] : grey[300]}; } - + .TriggerButton:focus-visible { border-color: ${cyan[400]}; outline: 3px solid ${isDarkMode ? cyan[500] : cyan[200]}; diff --git a/docs/data/base/components/menu/MenuSimple/css/index.tsx b/docs/data/base/components/menu/MenuSimple/css/index.tsx index 7941a093d09e0a..90749a10a77fd2 100644 --- a/docs/data/base/components/menu/MenuSimple/css/index.tsx +++ b/docs/data/base/components/menu/MenuSimple/css/index.tsx @@ -140,7 +140,6 @@ function Styles() { cursor: pointer; border: 1px solid ${isDarkMode ? grey[800] : grey[200]}; color: ${isDarkMode ? cyan[300] : cyan[400]}; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; @@ -150,7 +149,7 @@ function Styles() { background: ${isDarkMode ? grey[800] : grey[50]}; border-color: ${isDarkMode ? grey[600] : grey[300]}; } - + .TriggerButton:focus-visible { border-color: ${cyan[400]}; outline: 3px solid ${isDarkMode ? cyan[500] : cyan[200]}; diff --git a/docs/data/base/components/menu/UseMenu.js b/docs/data/base/components/menu/UseMenu.js index 1120423f829f3e..2053fb5680b27c 100644 --- a/docs/data/base/components/menu/UseMenu.js +++ b/docs/data/base/components/menu/UseMenu.js @@ -188,16 +188,15 @@ const styles = ` border: 1px solid ${grey[200]}; color: ${grey[900]}; cursor: pointer; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; - + &:hover { background: ${grey[50]}; border-color: ${grey[300]}; } - + &:focus-visible { border-color: ${blue[400]}; outline: 3px solid ${blue[200]}; diff --git a/docs/data/base/components/menu/UseMenu.tsx b/docs/data/base/components/menu/UseMenu.tsx index a512bc2d2bab3e..129b7b2615f71b 100644 --- a/docs/data/base/components/menu/UseMenu.tsx +++ b/docs/data/base/components/menu/UseMenu.tsx @@ -187,16 +187,15 @@ const styles = ` border: 1px solid ${grey[200]}; color: ${grey[900]}; cursor: pointer; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; - + &:hover { background: ${grey[50]}; border-color: ${grey[300]}; } - + &:focus-visible { border-color: ${blue[400]}; outline: 3px solid ${blue[200]}; diff --git a/docs/data/base/components/number-input/NumberInputBasic/system/index.js b/docs/data/base/components/number-input/NumberInputBasic/system/index.js index b5920b72210369..2a708e438c961e 100644 --- a/docs/data/base/components/number-input/NumberInputBasic/system/index.js +++ b/docs/data/base/components/number-input/NumberInputBasic/system/index.js @@ -126,7 +126,6 @@ const StyledButton = styled('button')( background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 0; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; @@ -141,7 +140,7 @@ const StyledButton = styled('button')( grid-column: 2/3; grid-row: 1/2; } - + &.${numberInputClasses.decrementButton} { grid-column: 2/3; grid-row: 2/3; diff --git a/docs/data/base/components/number-input/NumberInputBasic/system/index.tsx b/docs/data/base/components/number-input/NumberInputBasic/system/index.tsx index 0c6d88aa426446..57e0b14b9cbf23 100644 --- a/docs/data/base/components/number-input/NumberInputBasic/system/index.tsx +++ b/docs/data/base/components/number-input/NumberInputBasic/system/index.tsx @@ -130,7 +130,6 @@ const StyledButton = styled('button')( background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 0; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; @@ -145,7 +144,7 @@ const StyledButton = styled('button')( grid-column: 2/3; grid-row: 1/2; } - + &.${numberInputClasses.decrementButton} { grid-column: 2/3; grid-row: 2/3; diff --git a/docs/data/base/components/number-input/NumberInputIntroduction.js b/docs/data/base/components/number-input/NumberInputIntroduction.js index d0518191dbbbd2..08b7d982256a42 100644 --- a/docs/data/base/components/number-input/NumberInputIntroduction.js +++ b/docs/data/base/components/number-input/NumberInputIntroduction.js @@ -121,7 +121,6 @@ const StyledButton = styled('button')( background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 0; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; @@ -136,7 +135,7 @@ const StyledButton = styled('button')( grid-column: 2/3; grid-row: 1/2; } - + &.${numberInputClasses.decrementButton} { grid-column: 2/3; grid-row: 2/3; diff --git a/docs/data/base/components/number-input/NumberInputIntroduction.tsx b/docs/data/base/components/number-input/NumberInputIntroduction.tsx index fbab0df46eda37..41c83fc1a34bbe 100644 --- a/docs/data/base/components/number-input/NumberInputIntroduction.tsx +++ b/docs/data/base/components/number-input/NumberInputIntroduction.tsx @@ -125,7 +125,6 @@ const StyledButton = styled('button')( background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 0; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]}; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; @@ -140,7 +139,7 @@ const StyledButton = styled('button')( grid-column: 2/3; grid-row: 1/2; } - + &.${numberInputClasses.decrementButton} { grid-column: 2/3; grid-row: 2/3; diff --git a/docs/data/base/components/number-input/QuantityInput/system/index.js b/docs/data/base/components/number-input/QuantityInput/system/index.js index bb48c57411a7a8..d6e947347003a6 100644 --- a/docs/data/base/components/number-input/QuantityInput/system/index.js +++ b/docs/data/base/components/number-input/QuantityInput/system/index.js @@ -60,7 +60,6 @@ const StyledInputRoot = styled('div')( font-family: IBM Plex Sans, sans-serif; font-weight: 400; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[500]}; - display: flex; flex-flow: row nowrap; justify-content: center; @@ -110,14 +109,12 @@ const StyledButton = styled('button')( border-radius: 999px; color: ${theme.palette.mode === 'dark' ? blue[300] : blue[600]}; background: transparent; - width: 40px; height: 40px; display: flex; flex-flow: row nowrap; justify-content: center; align-items: center; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; diff --git a/docs/data/base/components/number-input/QuantityInput/system/index.tsx b/docs/data/base/components/number-input/QuantityInput/system/index.tsx index 4cd346988c5225..a9ef7fcfa7dc1b 100644 --- a/docs/data/base/components/number-input/QuantityInput/system/index.tsx +++ b/docs/data/base/components/number-input/QuantityInput/system/index.tsx @@ -66,7 +66,6 @@ const StyledInputRoot = styled('div')( font-family: IBM Plex Sans, sans-serif; font-weight: 400; color: ${theme.palette.mode === 'dark' ? grey[300] : grey[500]}; - display: flex; flex-flow: row nowrap; justify-content: center; @@ -116,14 +115,12 @@ const StyledButton = styled('button')( border-radius: 999px; color: ${theme.palette.mode === 'dark' ? blue[300] : blue[600]}; background: transparent; - width: 40px; height: 40px; display: flex; flex-flow: row nowrap; justify-content: center; align-items: center; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; diff --git a/docs/data/base/components/popper/UnstyledPopperBasic/css/index.js b/docs/data/base/components/popper/UnstyledPopperBasic/css/index.js index 2139fc1f221472..707d9c7aa48701 100644 --- a/docs/data/base/components/popper/UnstyledPopperBasic/css/index.js +++ b/docs/data/base/components/popper/UnstyledPopperBasic/css/index.js @@ -66,7 +66,6 @@ function Styles() { const isDarkMode = useIsDarkMode(); return ( ); diff --git a/docs/data/base/components/popup/UnstyledPopupIntroduction/css/index.tsx b/docs/data/base/components/popup/UnstyledPopupIntroduction/css/index.tsx index afaeb697b58c9f..be870592eddfaf 100644 --- a/docs/data/base/components/popup/UnstyledPopupIntroduction/css/index.tsx +++ b/docs/data/base/components/popup/UnstyledPopupIntroduction/css/index.tsx @@ -62,40 +62,38 @@ function Styles() { // Replace this with your app logic for determining dark mode const isDarkMode = useIsDarkMode(); return ( - ); diff --git a/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.js b/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.js index c85a1bacb30954..16f99ef827b9ae 100644 --- a/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.js +++ b/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.js @@ -101,9 +101,6 @@ function Styles() { color: ${isDarkMode ? grey[300] : grey[900]}; position: relative; box-shadow: 0px 2px 24px ${isDarkMode ? cyan[800] : cyan[100]}; - - - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; @@ -118,7 +115,6 @@ function Styles() { outline: 3px solid ${isDarkMode ? cyan[500] : cyan[200]}; } - & > svg { font-size: 1rem; position: absolute; diff --git a/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.tsx b/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.tsx index 00c6ae2d818f05..f67e0106e645ab 100644 --- a/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.tsx +++ b/docs/data/base/components/select/UnstyledSelectIntroduction/css/index.tsx @@ -101,9 +101,6 @@ function Styles() { color: ${isDarkMode ? grey[300] : grey[900]}; position: relative; box-shadow: 0px 2px 24px ${isDarkMode ? cyan[800] : cyan[100]}; - - - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; @@ -118,7 +115,6 @@ function Styles() { outline: 3px solid ${isDarkMode ? cyan[500] : cyan[200]}; } - & > svg { font-size: 1rem; position: absolute; diff --git a/docs/data/base/components/snackbar/UnstyledSnackbar/css/index.js b/docs/data/base/components/snackbar/UnstyledSnackbar/css/index.js index eec5c0e0c3291a..bb36790e37b6ec 100644 --- a/docs/data/base/components/snackbar/UnstyledSnackbar/css/index.js +++ b/docs/data/base/components/snackbar/UnstyledSnackbar/css/index.js @@ -77,7 +77,7 @@ function Styles() { from { transform: translateX(100%); } - + to { transform: translateX(0); } diff --git a/docs/data/base/components/snackbar/UnstyledSnackbar/css/index.tsx b/docs/data/base/components/snackbar/UnstyledSnackbar/css/index.tsx index eec5c0e0c3291a..bb36790e37b6ec 100644 --- a/docs/data/base/components/snackbar/UnstyledSnackbar/css/index.tsx +++ b/docs/data/base/components/snackbar/UnstyledSnackbar/css/index.tsx @@ -77,7 +77,7 @@ function Styles() { from { transform: translateX(100%); } - + to { transform: translateX(0); } diff --git a/docs/data/base/components/snackbar/UnstyledSnackbarIntroduction/css/index.js b/docs/data/base/components/snackbar/UnstyledSnackbarIntroduction/css/index.js index 79f7b301d975af..f78872f16b33bf 100644 --- a/docs/data/base/components/snackbar/UnstyledSnackbarIntroduction/css/index.js +++ b/docs/data/base/components/snackbar/UnstyledSnackbarIntroduction/css/index.js @@ -137,7 +137,7 @@ function Styles() { from { transform: translateX(100%); } - + to { transform: translateX(0); } diff --git a/docs/data/base/components/snackbar/UnstyledSnackbarIntroduction/css/index.tsx b/docs/data/base/components/snackbar/UnstyledSnackbarIntroduction/css/index.tsx index 547ae8229d9ba8..b7828d6d12f200 100644 --- a/docs/data/base/components/snackbar/UnstyledSnackbarIntroduction/css/index.tsx +++ b/docs/data/base/components/snackbar/UnstyledSnackbarIntroduction/css/index.tsx @@ -138,7 +138,7 @@ function Styles() { from { transform: translateX(100%); } - + to { transform: translateX(0); } diff --git a/docs/data/base/components/switch/UnstyledSwitchIntroduction/css/index.js b/docs/data/base/components/switch/UnstyledSwitchIntroduction/css/index.js index 47b8a3082e0ff0..bb919c7d2e33ad 100644 --- a/docs/data/base/components/switch/UnstyledSwitchIntroduction/css/index.js +++ b/docs/data/base/components/switch/UnstyledSwitchIntroduction/css/index.js @@ -112,7 +112,6 @@ function Styles() { border-radius: 16px; background-color: #fff; position: relative; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; @@ -150,7 +149,7 @@ function Styles() { z-index: 1; margin: 0; } - + `} ); diff --git a/docs/data/base/components/switch/UnstyledSwitchIntroduction/css/index.tsx b/docs/data/base/components/switch/UnstyledSwitchIntroduction/css/index.tsx index 47b8a3082e0ff0..bb919c7d2e33ad 100644 --- a/docs/data/base/components/switch/UnstyledSwitchIntroduction/css/index.tsx +++ b/docs/data/base/components/switch/UnstyledSwitchIntroduction/css/index.tsx @@ -112,7 +112,6 @@ function Styles() { border-radius: 16px; background-color: #fff; position: relative; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; @@ -150,7 +149,7 @@ function Styles() { z-index: 1; margin: 0; } - + `} ); diff --git a/docs/data/base/components/switch/UnstyledSwitchIntroduction/system/index.js b/docs/data/base/components/switch/UnstyledSwitchIntroduction/system/index.js index b8e5ab6425583e..331b17a4a60c57 100644 --- a/docs/data/base/components/switch/UnstyledSwitchIntroduction/system/index.js +++ b/docs/data/base/components/switch/UnstyledSwitchIntroduction/system/index.js @@ -81,7 +81,6 @@ const Root = styled('span')( border-radius: 16px; background-color: #fff; position: relative; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; diff --git a/docs/data/base/components/switch/UnstyledSwitchIntroduction/system/index.tsx b/docs/data/base/components/switch/UnstyledSwitchIntroduction/system/index.tsx index b8e5ab6425583e..331b17a4a60c57 100644 --- a/docs/data/base/components/switch/UnstyledSwitchIntroduction/system/index.tsx +++ b/docs/data/base/components/switch/UnstyledSwitchIntroduction/system/index.tsx @@ -81,7 +81,6 @@ const Root = styled('span')( border-radius: 16px; background-color: #fff; position: relative; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; diff --git a/docs/data/base/components/switch/UnstyledSwitches.js b/docs/data/base/components/switch/UnstyledSwitches.js index 38edba2147b0c4..23c54478e38776 100644 --- a/docs/data/base/components/switch/UnstyledSwitches.js +++ b/docs/data/base/components/switch/UnstyledSwitches.js @@ -81,7 +81,6 @@ const Root = styled('span')( border-radius: 16px; background-color: #fff; position: relative; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; diff --git a/docs/data/base/components/switch/UnstyledSwitches.tsx b/docs/data/base/components/switch/UnstyledSwitches.tsx index 38edba2147b0c4..23c54478e38776 100644 --- a/docs/data/base/components/switch/UnstyledSwitches.tsx +++ b/docs/data/base/components/switch/UnstyledSwitches.tsx @@ -81,7 +81,6 @@ const Root = styled('span')( border-radius: 16px; background-color: #fff; position: relative; - transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; diff --git a/docs/data/base/components/table-pagination/TableCustomized/css/index.js b/docs/data/base/components/table-pagination/TableCustomized/css/index.js index 01d52b207f299a..9c4d968a0688d6 100644 --- a/docs/data/base/components/table-pagination/TableCustomized/css/index.js +++ b/docs/data/base/components/table-pagination/TableCustomized/css/index.js @@ -164,7 +164,7 @@ function Styles() { .TablePaginationDemo th { background-color: ${isDarkMode ? cyan[800] : cyan[50]}; } - + .CustomTablePagination .${classes.spacer} { display: none; } diff --git a/docs/data/base/components/table-pagination/TableCustomized/css/index.tsx b/docs/data/base/components/table-pagination/TableCustomized/css/index.tsx index c3f9fae825ca22..c924d1d72ffb2a 100644 --- a/docs/data/base/components/table-pagination/TableCustomized/css/index.tsx +++ b/docs/data/base/components/table-pagination/TableCustomized/css/index.tsx @@ -169,7 +169,7 @@ function Styles() { .TablePaginationDemo th { background-color: ${isDarkMode ? cyan[800] : cyan[50]}; } - + .CustomTablePagination .${classes.spacer} { display: none; } diff --git a/docs/data/base/components/table-pagination/UnstyledPaginationIntroduction/css/index.js b/docs/data/base/components/table-pagination/UnstyledPaginationIntroduction/css/index.js index b11fa85653c4a4..b576613dc8e31b 100644 --- a/docs/data/base/components/table-pagination/UnstyledPaginationIntroduction/css/index.js +++ b/docs/data/base/components/table-pagination/UnstyledPaginationIntroduction/css/index.js @@ -93,10 +93,12 @@ function Styles() { .TablePaginationIntroductionDemo { width: 500px; max-width: 100%; - } + } + th { background-color: ${isDarkMode ? grey[900] : '#fff'}; } + .TablePaginationIntroductionDemo table { font-family: IBM Plex Sans, sans-serif; font-size: 0.875rem; @@ -116,7 +118,7 @@ function Styles() { .TablePaginationIntroductionDemo th { background-color: ${isDarkMode ? grey[900] : '#fff'}; } - + .CustomTablePagination .${classes.spacer} { display: none; } diff --git a/docs/data/base/components/table-pagination/UnstyledPaginationIntroduction/css/index.tsx b/docs/data/base/components/table-pagination/UnstyledPaginationIntroduction/css/index.tsx index 658aa2b87d49a8..43b582907026ed 100644 --- a/docs/data/base/components/table-pagination/UnstyledPaginationIntroduction/css/index.tsx +++ b/docs/data/base/components/table-pagination/UnstyledPaginationIntroduction/css/index.tsx @@ -98,10 +98,12 @@ function Styles() { .TablePaginationIntroductionDemo { width: 500px; max-width: 100%; - } + } + th { background-color: ${isDarkMode ? grey[900] : '#fff'}; } + .TablePaginationIntroductionDemo table { font-family: IBM Plex Sans, sans-serif; font-size: 0.875rem; @@ -121,7 +123,7 @@ function Styles() { .TablePaginationIntroductionDemo th { background-color: ${isDarkMode ? grey[900] : '#fff'}; } - + .CustomTablePagination .${classes.spacer} { display: none; } diff --git a/docs/data/base/components/textarea-autosize/EmptyTextarea.js b/docs/data/base/components/textarea-autosize/EmptyTextarea.js index 1b69b87b439a68..48d27659bfde96 100644 --- a/docs/data/base/components/textarea-autosize/EmptyTextarea.js +++ b/docs/data/base/components/textarea-autosize/EmptyTextarea.js @@ -38,16 +38,16 @@ export default function EmptyTextarea() { background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; box-shadow: 0px 2px 2px ${theme.palette.mode === 'dark' ? grey[900] : grey[50]}; - + &:hover { border-color: ${blue[400]}; } - + &:focus { border-color: ${blue[400]}; box-shadow: 0 0 0 3px ${theme.palette.mode === 'dark' ? blue[500] : blue[200]}; } - + // firefox &:focus-visible { outline: 0; diff --git a/docs/data/base/components/textarea-autosize/EmptyTextarea.tsx b/docs/data/base/components/textarea-autosize/EmptyTextarea.tsx index 1b69b87b439a68..48d27659bfde96 100644 --- a/docs/data/base/components/textarea-autosize/EmptyTextarea.tsx +++ b/docs/data/base/components/textarea-autosize/EmptyTextarea.tsx @@ -38,16 +38,16 @@ export default function EmptyTextarea() { background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; box-shadow: 0px 2px 2px ${theme.palette.mode === 'dark' ? grey[900] : grey[50]}; - + &:hover { border-color: ${blue[400]}; } - + &:focus { border-color: ${blue[400]}; box-shadow: 0 0 0 3px ${theme.palette.mode === 'dark' ? blue[500] : blue[200]}; } - + // firefox &:focus-visible { outline: 0; diff --git a/docs/data/base/components/textarea-autosize/MaxHeightTextarea.js b/docs/data/base/components/textarea-autosize/MaxHeightTextarea.js index 4a851b38eae588..01b8b5dee5199e 100644 --- a/docs/data/base/components/textarea-autosize/MaxHeightTextarea.js +++ b/docs/data/base/components/textarea-autosize/MaxHeightTextarea.js @@ -38,16 +38,16 @@ export default function MaxHeightTextarea() { background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; box-shadow: 0px 2px 2px ${theme.palette.mode === 'dark' ? grey[900] : grey[50]}; - + &:hover { border-color: ${blue[400]}; } - + &:focus { border-color: ${blue[400]}; box-shadow: 0 0 0 3px ${theme.palette.mode === 'dark' ? blue[500] : blue[200]}; } - + // firefox &:focus-visible { outline: 0; diff --git a/docs/data/base/components/textarea-autosize/MaxHeightTextarea.tsx b/docs/data/base/components/textarea-autosize/MaxHeightTextarea.tsx index 4a851b38eae588..01b8b5dee5199e 100644 --- a/docs/data/base/components/textarea-autosize/MaxHeightTextarea.tsx +++ b/docs/data/base/components/textarea-autosize/MaxHeightTextarea.tsx @@ -38,16 +38,16 @@ export default function MaxHeightTextarea() { background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; box-shadow: 0px 2px 2px ${theme.palette.mode === 'dark' ? grey[900] : grey[50]}; - + &:hover { border-color: ${blue[400]}; } - + &:focus { border-color: ${blue[400]}; box-shadow: 0 0 0 3px ${theme.palette.mode === 'dark' ? blue[500] : blue[200]}; } - + // firefox &:focus-visible { outline: 0; diff --git a/docs/data/base/components/textarea-autosize/MinHeightTextarea.js b/docs/data/base/components/textarea-autosize/MinHeightTextarea.js index abb9bb169098f4..1324d251d63b04 100644 --- a/docs/data/base/components/textarea-autosize/MinHeightTextarea.js +++ b/docs/data/base/components/textarea-autosize/MinHeightTextarea.js @@ -38,16 +38,16 @@ export default function MinHeightTextarea() { background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; box-shadow: 0px 2px 2px ${theme.palette.mode === 'dark' ? grey[900] : grey[50]}; - + &:hover { border-color: ${blue[400]}; } - + &:focus { border-color: ${blue[400]}; box-shadow: 0 0 0 3px ${theme.palette.mode === 'dark' ? blue[500] : blue[200]}; } - + // firefox &:focus-visible { outline: 0; diff --git a/docs/data/base/components/textarea-autosize/MinHeightTextarea.tsx b/docs/data/base/components/textarea-autosize/MinHeightTextarea.tsx index abb9bb169098f4..1324d251d63b04 100644 --- a/docs/data/base/components/textarea-autosize/MinHeightTextarea.tsx +++ b/docs/data/base/components/textarea-autosize/MinHeightTextarea.tsx @@ -38,16 +38,16 @@ export default function MinHeightTextarea() { background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; box-shadow: 0px 2px 2px ${theme.palette.mode === 'dark' ? grey[900] : grey[50]}; - + &:hover { border-color: ${blue[400]}; } - + &:focus { border-color: ${blue[400]}; box-shadow: 0 0 0 3px ${theme.palette.mode === 'dark' ? blue[500] : blue[200]}; } - + // firefox &:focus-visible { outline: 0; diff --git a/docs/data/base/components/textarea-autosize/UnstyledTextarea/css/index.js b/docs/data/base/components/textarea-autosize/UnstyledTextarea/css/index.js index ad68709ff1f1b2..8f6344393c8e47 100644 --- a/docs/data/base/components/textarea-autosize/UnstyledTextarea/css/index.js +++ b/docs/data/base/components/textarea-autosize/UnstyledTextarea/css/index.js @@ -75,10 +75,10 @@ function Styles() { box-shadow: 0 0 0 3px ${isDarkMode ? cyan[500] : cyan[200]}; outline: none; } - + // firefox .CustomTextarea:focus-visible { - outline: 0; + outline: 0; } `} diff --git a/docs/data/base/components/textarea-autosize/UnstyledTextarea/css/index.tsx b/docs/data/base/components/textarea-autosize/UnstyledTextarea/css/index.tsx index ad68709ff1f1b2..8f6344393c8e47 100644 --- a/docs/data/base/components/textarea-autosize/UnstyledTextarea/css/index.tsx +++ b/docs/data/base/components/textarea-autosize/UnstyledTextarea/css/index.tsx @@ -75,10 +75,10 @@ function Styles() { box-shadow: 0 0 0 3px ${isDarkMode ? cyan[500] : cyan[200]}; outline: none; } - + // firefox .CustomTextarea:focus-visible { - outline: 0; + outline: 0; } `} diff --git a/docs/data/base/components/textarea-autosize/UnstyledTextarea/system/index.js b/docs/data/base/components/textarea-autosize/UnstyledTextarea/system/index.js index e26d0f61e51de2..ae355fd760a508 100644 --- a/docs/data/base/components/textarea-autosize/UnstyledTextarea/system/index.js +++ b/docs/data/base/components/textarea-autosize/UnstyledTextarea/system/index.js @@ -38,16 +38,16 @@ export default function EmptyTextarea() { background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; box-shadow: 0px 2px 2px ${theme.palette.mode === 'dark' ? grey[900] : grey[50]}; - + &:hover { border-color: ${blue[400]}; } - + &:focus { border-color: ${blue[400]}; box-shadow: 0 0 0 3px ${theme.palette.mode === 'dark' ? blue[500] : blue[200]}; } - + // firefox &:focus-visible { outline: 0; diff --git a/docs/data/base/components/textarea-autosize/UnstyledTextarea/system/index.tsx b/docs/data/base/components/textarea-autosize/UnstyledTextarea/system/index.tsx index e26d0f61e51de2..ae355fd760a508 100644 --- a/docs/data/base/components/textarea-autosize/UnstyledTextarea/system/index.tsx +++ b/docs/data/base/components/textarea-autosize/UnstyledTextarea/system/index.tsx @@ -38,16 +38,16 @@ export default function EmptyTextarea() { background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'}; border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]}; box-shadow: 0px 2px 2px ${theme.palette.mode === 'dark' ? grey[900] : grey[50]}; - + &:hover { border-color: ${blue[400]}; } - + &:focus { border-color: ${blue[400]}; box-shadow: 0 0 0 3px ${theme.palette.mode === 'dark' ? blue[500] : blue[200]}; } - + // firefox &:focus-visible { outline: 0; diff --git a/docs/data/material/components/material-icons/material-icons-pt.md b/docs/data/material/components/material-icons/material-icons-pt.md index 7aa84683f9e623..ce3156b026d3e1 100644 --- a/docs/data/material/components/material-icons/material-icons-pt.md +++ b/docs/data/material/components/material-icons/material-icons-pt.md @@ -15,7 +15,7 @@ O pacote npm, [@mui/icons-material](https://www.npmjs.com/package/@mui/icons-mat :::info The `@mui/icons-material` package depends on `@mui/material`, which requires Emotion packages. -If you don't use Material UI in your project yet, install the icons package with `npm install @mui/icons-material @mui/material @emotion/styled @emotion/react`. +If you don't use Material UI in your project yet, install the icons package with `npm install @mui/icons-material @mui/material @emotion/styled @emotion/react`. See the [Installation](/material-ui/getting-started/installation/) page for additional docs about how to make sure everything is set up correctly. ::: diff --git a/docs/data/material/components/material-icons/material-icons-zh.md b/docs/data/material/components/material-icons/material-icons-zh.md index ad8519706fffc8..1c6ff7930028a5 100644 --- a/docs/data/material/components/material-icons/material-icons-zh.md +++ b/docs/data/material/components/material-icons/material-icons-zh.md @@ -15,7 +15,7 @@ The following npm package, [@mui/icons-material](https://www.npmjs.com/package/@ :::info The `@mui/icons-material` package depends on `@mui/material`, which requires Emotion packages. -If you don't use Material UI in your project yet, install the icons package with `npm install @mui/icons-material @mui/material @emotion/styled @emotion/react`. +If you don't use Material UI in your project yet, install the icons package with `npm install @mui/icons-material @mui/material @emotion/styled @emotion/react`. See the [Installation](/material-ui/getting-started/installation/) page for additional docs about how to make sure everything is set up correctly. ::: diff --git a/docs/data/material/guides/interoperability/interoperability-pt.md b/docs/data/material/guides/interoperability/interoperability-pt.md index b7049cf7b744a3..6c93cf1de96afa 100644 --- a/docs/data/material/guides/interoperability/interoperability-pt.md +++ b/docs/data/material/guides/interoperability/interoperability-pt.md @@ -861,6 +861,6 @@ There is [an ESLint plugin](https://docs.tss-react.dev/detecting-unused-classes) ::: :::warning -For [Storybook](https://storybook.js.org): At the time of this writing, Storybook still uses Emotion 10 by default. +For [Storybook](https://storybook.js.org): At the time of this writing, Storybook still uses Emotion 10 by default. Material UI and TSS use Emotion 11, so you must make [some changes](https://github.com/InseeFrLab/onyxia-ui/blob/324de62248074582b227e584c53fb2e123f5325f/.storybook/main.js#L31-L32) to `.storybook/main.js` in order to use Storybook with Material UI. ::: diff --git a/docs/data/material/guides/interoperability/interoperability-zh.md b/docs/data/material/guides/interoperability/interoperability-zh.md index 74d8dccb415c6d..2e4a50485eb227 100644 --- a/docs/data/material/guides/interoperability/interoperability-zh.md +++ b/docs/data/material/guides/interoperability/interoperability-zh.md @@ -855,6 +855,6 @@ There is [an ESLint plugin](https://docs.tss-react.dev/detecting-unused-classes) ::: :::warning -For [Storybook](https://storybook.js.org): At the time of this writing, Storybook still uses Emotion 10 by default. +For [Storybook](https://storybook.js.org): At the time of this writing, Storybook still uses Emotion 10 by default. Material UI and TSS use Emotion 11, so you must make [some changes](https://github.com/InseeFrLab/onyxia-ui/blob/324de62248074582b227e584c53fb2e123f5325f/.storybook/main.js#L31-L32) to `.storybook/main.js` in order to use Storybook with Material UI. ::: diff --git a/docs/pages/experiments/base/listbox.tsx b/docs/pages/experiments/base/listbox.tsx index acdb62766465c4..fbdfc67412e677 100644 --- a/docs/pages/experiments/base/listbox.tsx +++ b/docs/pages/experiments/base/listbox.tsx @@ -27,7 +27,7 @@ const styles = ` .list:focus-visible { outline: none; } - + .item { width: 50px; height: 50px; diff --git a/docs/src/components/productBaseUI/BaseUIThemesDemo.tsx b/docs/src/components/productBaseUI/BaseUIThemesDemo.tsx index dc6785b06694f5..1de1bb4a9a5099 100644 --- a/docs/src/components/productBaseUI/BaseUIThemesDemo.tsx +++ b/docs/src/components/productBaseUI/BaseUIThemesDemo.tsx @@ -505,7 +505,6 @@ const StyledSwitch = styled('span')(` border-radius: max(2px, var(--border-radius)); background-color: #fff; position: relative; - transition-property: left; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 120ms; @@ -625,7 +624,7 @@ const StyledBadge = styled(Badge)( list-style: none; font-family: IBM Plex Sans, sans-serif; position: relative; - display: inline-block; + display: inline-block; & .${badgeClasses.badge} { --_scale: 1.5em; diff --git a/docs/src/components/productMaterial/MaterialComponents.tsx b/docs/src/components/productMaterial/MaterialComponents.tsx index e2d5a1afd97f2a..b651e77e429d3e 100644 --- a/docs/src/components/productMaterial/MaterialComponents.tsx +++ b/docs/src/components/productMaterial/MaterialComponents.tsx @@ -68,7 +68,7 @@ const CODES = { Add item `, 'Text field': ` diff --git a/docs/src/modules/components/JoyThemeBuilder.tsx b/docs/src/modules/components/JoyThemeBuilder.tsx index e99209473b0552..51da85ac1ac359 100644 --- a/docs/src/modules/components/JoyThemeBuilder.tsx +++ b/docs/src/modules/components/JoyThemeBuilder.tsx @@ -349,7 +349,7 @@ const theme = extendTheme(${JSON.stringify( (k, v) => (v === undefined ? '__undefined' : v), 2, ).replace(/"__undefined"/g, 'undefined')}) - + export default theme;`; function getPaletteFormProps(colorSchemes: any, colorMode: string, node: string) { diff --git a/packages/mui-joy/src/LinearProgress/LinearProgress.tsx b/packages/mui-joy/src/LinearProgress/LinearProgress.tsx index a0974408418a53..af9fa127fda8a0 100644 --- a/packages/mui-joy/src/LinearProgress/LinearProgress.tsx +++ b/packages/mui-joy/src/LinearProgress/LinearProgress.tsx @@ -38,7 +38,7 @@ const progressKeyframe = keyframes` 75% { width: var(--LinearProgress-progressMaxWidth); } - + 100% { left: var(--_LinearProgress-progressInset); width: var(--LinearProgress-progressMinWidth); From e561b9d38d57d1003b9551aab17833a72de7ea83 Mon Sep 17 00:00:00 2001 From: Olivier Tassinari Date: Mon, 4 Sep 2023 23:58:23 +0200 Subject: [PATCH 09/30] [core] Remove dead code seoTitle This creates noise in the dev tools console. --- docs/src/modules/components/MarkdownDocsV2.js | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/src/modules/components/MarkdownDocsV2.js b/docs/src/modules/components/MarkdownDocsV2.js index 7a87ab3a632988..a6073d25d266bc 100644 --- a/docs/src/modules/components/MarkdownDocsV2.js +++ b/docs/src/modules/components/MarkdownDocsV2.js @@ -246,7 +246,6 @@ export default function MarkdownDocsV2(props) { disableToc={disableToc} location={localizedDoc.location} title={localizedDoc.title} - seoTitle={localizedDoc.seoTitle} toc={activeToc} disableLayout hasTabs={hasTabs} From 696b710f48b2ad4b6f3d0a893763e681669617d2 Mon Sep 17 00:00:00 2001 From: Lukas Ruflair Date: Mon, 4 Sep 2023 15:44:50 -0700 Subject: [PATCH 10/30] [docs] Fix broken links to Next.js docs (#38764) Signed-off-by: Lukas Ruflair --- .../data/base/guides/next-js-app-router/next-js-app-router.md | 4 ++-- .../joy/integrations/next-js-app-router/next-js-app-router.md | 4 ++-- .../material/guides/next-js-app-router/next-js-app-router.md | 4 ++-- examples/base-ui-nextjs-tailwind-ts/src/app/components.tsx | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/data/base/guides/next-js-app-router/next-js-app-router.md b/docs/data/base/guides/next-js-app-router/next-js-app-router.md index 060e3366eee2bc..7fe0a39569e9f4 100644 --- a/docs/data/base/guides/next-js-app-router/next-js-app-router.md +++ b/docs/data/base/guides/next-js-app-router/next-js-app-router.md @@ -195,5 +195,5 @@ export default function Page() { } ``` -Unfortunately, **this does not work in a Server Component** since function props are [non-serializable](https://nextjs.org/docs/getting-started/react-essentials#passing-props-from-server-to-client-components-serialization). -Instead, the Next.js team recommend moving components like these ["to the leaves"](https://nextjs.org/docs/getting-started/react-essentials#moving-client-components-to-the-leaves) to avoid this issue and improve overall performance. +Unfortunately, **this does not work in a Server Component** since function props are [non-serializable](https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns#passing-props-from-server-to-client-components-serialization). +Instead, the Next.js team recommend moving components like these ["down the tree"](https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns#moving-client-components-down-the-tree) to avoid this issue and improve overall performance. diff --git a/docs/data/joy/integrations/next-js-app-router/next-js-app-router.md b/docs/data/joy/integrations/next-js-app-router/next-js-app-router.md index 6665d12ed3d4f4..7a537e5260897d 100644 --- a/docs/data/joy/integrations/next-js-app-router/next-js-app-router.md +++ b/docs/data/joy/integrations/next-js-app-router/next-js-app-router.md @@ -106,7 +106,7 @@ export default function RootLayout(props) { ## Function props -Props passed from server components—for example `page.js` or other routing files—must be [serializable](https://nextjs.org/docs/getting-started/react-essentials#passing-props-from-server-to-client-components-serialization). +Props passed from server components-for example `page.js` or other routing files-must be [serializable](https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns#passing-props-from-server-to-client-components-serialization). This works without any additional directives: @@ -149,5 +149,5 @@ export default function Page() { } ``` -Instead, the Next.js team recommend moving components like these ["to the leaves"](https://nextjs.org/docs/getting-started/react-essentials#moving-client-components-to-the-leaves) to avoid this issue and improve overall performance. +Instead, the Next.js team recommend moving components like these ["down the tree"](https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns#moving-client-components-down-the-tree) to avoid this issue and improve overall performance. ::: diff --git a/docs/data/material/guides/next-js-app-router/next-js-app-router.md b/docs/data/material/guides/next-js-app-router/next-js-app-router.md index c4771423e0d8d0..83c10c030dfd2e 100644 --- a/docs/data/material/guides/next-js-app-router/next-js-app-router.md +++ b/docs/data/material/guides/next-js-app-router/next-js-app-router.md @@ -178,7 +178,7 @@ Currently, `prepend` does not work reliably with the App Router, but you can wor ## Function props -Props passed from Server Components—for example `page.js` or other routing files—must be [serializable](https://nextjs.org/docs/getting-started/react-essentials#passing-props-from-server-to-client-components-serialization). +Props passed from Server Components—for example `page.js` or other routing files—must be [serializable](https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns#passing-props-from-server-to-client-components-serialization). This works without any additional directives: @@ -227,5 +227,5 @@ export default function Page() { } ``` -Instead, the Next.js team recommend moving components like these ["to the leaves"](https://nextjs.org/docs/getting-started/react-essentials#moving-client-components-to-the-leaves) to avoid this issue and improve overall performance. +Instead, the Next.js team recommend moving components like these ["down the tree"](https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns#moving-client-components-down-the-tree) to avoid this issue and improve overall performance. ::: diff --git a/examples/base-ui-nextjs-tailwind-ts/src/app/components.tsx b/examples/base-ui-nextjs-tailwind-ts/src/app/components.tsx index a8751131922a31..86c63cae795749 100644 --- a/examples/base-ui-nextjs-tailwind-ts/src/app/components.tsx +++ b/examples/base-ui-nextjs-tailwind-ts/src/app/components.tsx @@ -34,7 +34,7 @@ const SelectButton = React.forwardRef(function SelectButton< // the components exported from this file have function props which are non-serializable // therefore they are additionally wrapped with 'use client' here -// https://nextjs.org/docs/getting-started/react-essentials#passing-props-from-server-to-client-components-serialization +// https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns#passing-props-from-server-to-client-components-serialization export function SelectOption(props: OptionProps) { const { From 6aabcd0d6bf98ff60fffeac5557b389516ccce49 Mon Sep 17 00:00:00 2001 From: sai chand <60743144+sai6855@users.noreply.github.com> Date: Tue, 5 Sep 2023 10:31:05 +0530 Subject: [PATCH 11/30] [joy-ui][Accordion] Fix incorrect display of classname (#38695) --- docs/pages/joy-ui/api/accordion-group.json | 3 ++- .../accordion-group/accordion-group.json | 19 ++++++++++++++++++- .../AccordionGroup/AccordionGroup.test.tsx | 19 +++++++++++++++++++ .../src/AccordionGroup/AccordionGroup.tsx | 2 +- .../AccordionGroup/accordionGroupClasses.ts | 9 +++++++++ 5 files changed, 49 insertions(+), 3 deletions(-) diff --git a/docs/pages/joy-ui/api/accordion-group.json b/docs/pages/joy-ui/api/accordion-group.json index 4b02e45dc7425f..15517683f2ae85 100644 --- a/docs/pages/joy-ui/api/accordion-group.json +++ b/docs/pages/joy-ui/api/accordion-group.json @@ -53,7 +53,7 @@ "import AccordionGroup from '@mui/joy/AccordionGroup';", "import { AccordionGroup } from '@mui/joy';" ], - "styles": { "classes": ["root"], "globalClasses": {}, "name": "MuiAccordionGroup" }, + "styles": { "classes": [], "globalClasses": {}, "name": "MuiAccordionGroup" }, "slots": [ { "name": "root", @@ -62,6 +62,7 @@ "class": ".MuiAccordionGroup-root" } ], + "classes": { "classes": ["sizeLg", "sizeMd", "sizeSm"], "globalClasses": {} }, "spread": true, "themeDefaultProps": true, "muiName": "JoyAccordionGroup", diff --git a/docs/translations/api-docs-joy/accordion-group/accordion-group.json b/docs/translations/api-docs-joy/accordion-group/accordion-group.json index 5d0ba0be29f2cd..880f29343d65ef 100644 --- a/docs/translations/api-docs-joy/accordion-group/accordion-group.json +++ b/docs/translations/api-docs-joy/accordion-group/accordion-group.json @@ -24,6 +24,23 @@ "description": "The global variant to use." } }, - "classDescriptions": { "root": { "description": "Class name applied to the root element." } }, + "classDescriptions": { + "root": { "description": "Class name applied to the root element." }, + "sizeSm": { + "description": "Class name applied to {{nodeName}} if {{conditions}}.", + "nodeName": "the root element", + "conditions": "size=\"sm\"" + }, + "sizeMd": { + "description": "Class name applied to {{nodeName}} if {{conditions}}.", + "nodeName": "the root element", + "conditions": "size=\"md\"" + }, + "sizeLg": { + "description": "Class name applied to {{nodeName}} if {{conditions}}.", + "nodeName": "the root element", + "conditions": "size=\"lg\"" + } + }, "slotDescriptions": { "root": "The component that renders the root." } } diff --git a/packages/mui-joy/src/AccordionGroup/AccordionGroup.test.tsx b/packages/mui-joy/src/AccordionGroup/AccordionGroup.test.tsx index fcb6aaf45d5ed5..40b605bb372a9c 100644 --- a/packages/mui-joy/src/AccordionGroup/AccordionGroup.test.tsx +++ b/packages/mui-joy/src/AccordionGroup/AccordionGroup.test.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; +import { expect } from 'chai'; import { createRenderer, describeConformance } from 'test/utils'; import { ThemeProvider } from '@mui/joy/styles'; import AccordionGroup, { accordionGroupClasses as classes } from '@mui/joy/AccordionGroup'; @@ -21,4 +22,22 @@ describe('', () => { }, }, })); + + describe('classes', () => { + ( + [ + { size: 'sm', class: classes.sizeSm }, + { size: 'md', class: classes.sizeMd }, + { size: 'lg', class: classes.sizeLg }, + ] as const + ).forEach((sizeConfig) => { + it(`should have ${sizeConfig.class} class for ${sizeConfig.size} size `, () => { + const { getByTestId } = render( + , + ); + + expect(getByTestId('root')).to.have.class(sizeConfig.class); + }); + }); + }); }); diff --git a/packages/mui-joy/src/AccordionGroup/AccordionGroup.tsx b/packages/mui-joy/src/AccordionGroup/AccordionGroup.tsx index 6ce32712ea8e44..66f57b0845664a 100644 --- a/packages/mui-joy/src/AccordionGroup/AccordionGroup.tsx +++ b/packages/mui-joy/src/AccordionGroup/AccordionGroup.tsx @@ -25,7 +25,7 @@ const useUtilityClasses = (ownerState: AccordionGroupOwnerState) => { 'root', variant && `variant${capitalize(variant)}`, color && `color${capitalize(color)}`, - size && `size${capitalize(size)}}`, + size && `size${capitalize(size)}`, ], }; diff --git a/packages/mui-joy/src/AccordionGroup/accordionGroupClasses.ts b/packages/mui-joy/src/AccordionGroup/accordionGroupClasses.ts index d559f8b5c4d2f9..346d24a87f6675 100644 --- a/packages/mui-joy/src/AccordionGroup/accordionGroupClasses.ts +++ b/packages/mui-joy/src/AccordionGroup/accordionGroupClasses.ts @@ -3,6 +3,12 @@ import { generateUtilityClass, generateUtilityClasses } from '../className'; export interface AccordionGroupClasses { /** Class name applied to the root element. */ root: string; + /** Class name applied to the root element if `size="sm"`. */ + sizeSm: string; + /** Class name applied to the root element if `size="md"`. */ + sizeMd: string; + /** Class name applied to the root element if `size="lg"`. */ + sizeLg: string; } export type AccordionGroupClassKey = keyof AccordionGroupClasses; @@ -13,6 +19,9 @@ export function getAccordionGroupUtilityClass(slot: string): string { const accordionGroupClasses: AccordionGroupClasses = generateUtilityClasses('MuiAccordionGroup', [ 'root', + 'sizeSm', + 'sizeMd', + 'sizeLg', ]); export default accordionGroupClasses; From feb5cd99dde321f5cfd642ac5aa4f5cce699c094 Mon Sep 17 00:00:00 2001 From: sai chand <60743144+sai6855@users.noreply.github.com> Date: Tue, 5 Sep 2023 10:31:18 +0530 Subject: [PATCH 12/30] [joy-ui][Button] Fix disablity of button (#38673) --- packages/mui-joy/src/Button/Button.test.tsx | 12 ++++++++++++ packages/mui-joy/src/Button/Button.tsx | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/mui-joy/src/Button/Button.test.tsx b/packages/mui-joy/src/Button/Button.test.tsx index a1271e18fc3d6f..0770d8664f43b2 100644 --- a/packages/mui-joy/src/Button/Button.test.tsx +++ b/packages/mui-joy/src/Button/Button.test.tsx @@ -113,6 +113,18 @@ describe('Joy ); diff --git a/packages/mui-joy/src/Button/Button.tsx b/packages/mui-joy/src/Button/Button.tsx index 3d8649e709bc99..98937099ec0141 100644 --- a/packages/mui-joy/src/Button/Button.tsx +++ b/packages/mui-joy/src/Button/Button.tsx @@ -215,7 +215,8 @@ const Button = React.forwardRef(function Button(inProps, ref) { const size = inProps.size || buttonGroup.size || sizeProp; const { getColor } = useColorInversion(variant); const color = getColor(inProps.color, buttonGroup.color || colorProp); - const disabled = inProps.disabled ?? (buttonGroup.disabled || disabledProp || loading); + const disabled = + (inProps.disabled || inProps.loading) ?? (buttonGroup.disabled || disabledProp || loading); const buttonRef = React.useRef(null); const handleRef = useForkRef(buttonRef, ref); From d8d7b63307412c851bf416947d495e54f9cdf56f Mon Sep 17 00:00:00 2001 From: Evan Charalampidis <96417438+imevanc@users.noreply.github.com> Date: Tue, 5 Sep 2023 07:01:26 +0100 Subject: [PATCH 13/30] [system] Fix the inconsistent types of the `mergeBreakpointsInOrder` function (#38749) Co-authored-by: imevanc Co-authored-by: ZeeshanTamboli --- packages/mui-system/src/index.d.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/mui-system/src/index.d.ts b/packages/mui-system/src/index.d.ts index d8476ed22a34ac..7f24359229a63d 100644 --- a/packages/mui-system/src/index.d.ts +++ b/packages/mui-system/src/index.d.ts @@ -32,7 +32,7 @@ export type BordersProps = PropsFor; // breakpoints.js type DefaultBreakPoints = 'xs' | 'sm' | 'md' | 'lg' | 'xl'; -export { handleBreakpoints } from './breakpoints'; +export { handleBreakpoints, mergeBreakpointsInOrder } from './breakpoints'; /** * @returns An enhanced stylefunction that considers breakpoints @@ -41,12 +41,6 @@ export function breakpoints, ): StyleFunction> & Props>; -// restructures the breakpoints in the in the correct order and merges all styles args -export function mergeBreakpointsInOrder( - breakpointsInput: { keys: string[]; up: (key: string) => string }, - ...styles: object[] -): object; - export function compose>>(...args: T): ComposedStyleFunction; export type DisplayProps = PropsFor; From 04b4d98a31341b0c13c44c0df745463894a368d0 Mon Sep 17 00:00:00 2001 From: Brijesh Bittu Date: Tue, 5 Sep 2023 11:52:13 +0530 Subject: [PATCH 14/30] [core] Re-add nx and setup build caching (#38752) --- apps/zero-runtime-vite-app/README.md | 2 +- nx.json | 12 ++++++++++++ package.json | 4 ++-- 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 nx.json diff --git a/apps/zero-runtime-vite-app/README.md b/apps/zero-runtime-vite-app/README.md index 225a4c1bd28553..5b2a039de9e679 100644 --- a/apps/zero-runtime-vite-app/README.md +++ b/apps/zero-runtime-vite-app/README.md @@ -13,7 +13,7 @@ You can either run `yarn release:build` command to build all the packages, or yo Make sure you have also run `yarn release:build` at least once because we also use `@mui/material` and `@mui/system` packages. On subsequent runs, you can only build the above 2 packages using - ```bash -yarn build:zero +yarn build ``` After building, you can run the project by changing into the directory and then diff --git a/nx.json b/nx.json new file mode 100644 index 00000000000000..bcba7dd2f0b563 --- /dev/null +++ b/nx.json @@ -0,0 +1,12 @@ +{ + "$schema": "./node_modules/nx/schemas/nx-schema.json", + "extends": "nx/presets/npm.json", + "tasksRunnerOptions": { + "default": { + "runner": "nx/tasks-runners/default", + "options": { + "cacheableOperations": ["build"] + } + } + } +} diff --git a/package.json b/package.json index 31a915df5af423..f722436ce0143b 100644 --- a/package.json +++ b/package.json @@ -6,10 +6,10 @@ "proptypes": "cross-env BABEL_ENV=development babel-node --extensions \".tsx,.ts,.js\" ./scripts/generateProptypes.ts", "deduplicate": "node scripts/deduplicate.mjs", "benchmark:browser": "yarn workspace benchmark browser", + "build": "lerna run --parallel --scope \"@mui/*\" build", "build:codesandbox": "NODE_OPTIONS=\"–max_old_space_size=4096\" lerna run --concurrency 8 --scope \"@mui/*\" build", - "build:zero": "lerna run --parallel --scope \"@mui/zero*\" build", "release:version": "lerna version --no-changelog --no-push --no-git-tag-version --force-publish=@mui/core-downloads-tracker", - "release:build": "lerna run --parallel --scope \"@mui/*\" build", + "release:build": "lerna run --parallel --scope \"@mui/*\" build --skip-nx-cache", "release:changelog": "node scripts/releaseChangelog.mjs", "release:publish": "lerna publish from-package --dist-tag latest --contents build", "release:publish:dry-run": "lerna publish from-package --dist-tag latest --contents build --registry=\"http://localhost:4873/\"", From 846bc16fb3f02e9b64573a4aaaa0bd5aea2be36f Mon Sep 17 00:00:00 2001 From: Siriwat K Date: Tue, 5 Sep 2023 14:31:27 +0700 Subject: [PATCH 15/30] [Typography] Added position only when Skeleton is a direct child (#38799) --- .../mui-joy/src/Typography/Typography.tsx | 8 ++++-- .../mui-joy/src/Typography/TypographyProps.ts | 5 ++++ test/regressions/fixtures/LinkJoy/LinkCard.js | 26 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 test/regressions/fixtures/LinkJoy/LinkCard.js diff --git a/packages/mui-joy/src/Typography/Typography.tsx b/packages/mui-joy/src/Typography/Typography.tsx index 6001aa8e639ad8..e1485cbbbcf4e6 100644 --- a/packages/mui-joy/src/Typography/Typography.tsx +++ b/packages/mui-joy/src/Typography/Typography.tsx @@ -87,7 +87,9 @@ const TypographyRoot = styled('span', { } : { display: 'block', // don't rely on user agent, always `block`. - position: 'relative', + ...(ownerState.unstable_hasSkeleton && { + position: 'relative', + }), }), ...((ownerState.startDecorator || ownerState.endDecorator) && { display: 'flex', @@ -189,6 +191,7 @@ const Typography = React.forwardRef(function Typography(inProps, ref) { const level = nesting || inheriting ? inProps.level || 'inherit' : levelProp; + const hasSkeleton = isMuiElement(children, ['Skeleton']); const component = componentProp || ((nesting @@ -204,6 +207,7 @@ const Typography = React.forwardRef(function Typography(inProps, ref) { noWrap, nesting, variant, + unstable_hasSkeleton: hasSkeleton, }; const classes = useUtilityClasses(ownerState); @@ -238,7 +242,7 @@ const Typography = React.forwardRef(function Typography(inProps, ref) { {startDecorator} )} - {isMuiElement(children, ['Skeleton']) + {hasSkeleton ? React.cloneElement(children as React.ReactElement, { variant: (children as React.ReactElement).props.variant || 'inline', }) diff --git a/packages/mui-joy/src/Typography/TypographyProps.ts b/packages/mui-joy/src/Typography/TypographyProps.ts index 40f2cfe2187192..e2f962ca98de4b 100644 --- a/packages/mui-joy/src/Typography/TypographyProps.ts +++ b/packages/mui-joy/src/Typography/TypographyProps.ts @@ -130,4 +130,9 @@ export interface TypographyOwnerState extends ApplyColorInversion + + + + Joy UI + Components that spark joy! + + + + ); +} From 74c58dabc2cf5ed2242fb08e4781d26088d06b12 Mon Sep 17 00:00:00 2001 From: Brijesh Bittu Date: Tue, 5 Sep 2023 18:00:26 +0530 Subject: [PATCH 16/30] v5.14.8 (#38809) --- CHANGELOG.md | 91 +++++++++++++++++++ benchmark/package.json | 4 +- docs/package.json | 22 ++--- package.json | 2 +- packages/mui-base/package.json | 4 +- packages/mui-codemod/package.json | 2 +- .../mui-core-downloads-tracker/package.json | 2 +- packages/mui-docs/package.json | 2 +- packages/mui-icons-material/package.json | 2 +- packages/mui-joy/package.json | 10 +- packages/mui-lab/package.json | 8 +- packages/mui-material-next/package.json | 10 +- packages/mui-material/package.json | 10 +- packages/mui-private-theming/package.json | 4 +- packages/mui-styled-engine-sc/package.json | 2 +- packages/mui-styled-engine/package.json | 2 +- packages/mui-styles/package.json | 2 +- packages/mui-system/package.json | 8 +- packages/mui-utils/package.json | 2 +- packages/zero-tag-processor/package.json | 6 +- 20 files changed, 143 insertions(+), 52 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b30ed05a9c9cf..c86117cc0809ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,96 @@ # [Versions](https://mui.com/versions/) +## 5.14.8 + + + +_Sep 5, 2023_ + +A big thanks to the 25 contributors who made this release possible. + +### `@mui/material@5.14.8` + +- ​ImageItemList fix incorrect (below) rendering (#38452) @omriklein +- ​[Button] Add demo for file upload (#38786) @anle9650 +- ​[Slider] Add missing classes for `Slider` `InputLabel` `InputBase` `Radio` (#38401) @sai6855 +- ​[Select] Merge slotProps.paper with internal Paper props (#38703) @michaldudak +- ​[Tabs] Fix `ref` type (#38717) @ZeeshanTamboli +- ​[TabScrollButton] Extend ButtonBase types (#38719) @ZeeshanTamboli + +### `@mui/base@5.0.0-beta.14` + +- ​[Autocomplete] Type multiple values with readonly arrays. (#38253) @pcorpet +- ​[TextField] Fix unstable height of memoized multiline TextField component (#37135) @amal-qb + +### `@mui/joy@5.0.0-beta.5` + +- ​[Accordion] Fix incorrect display of classname (#38695) @sai6855 +- ​[AspectRatio] Correct `ratio` prop description (#38743) @sai6855 +- ​[Button] Fix disablity of button (#38673) @sai6855 +- ​[design] Stray design tweaks to components (#38476) @zanivan +- ​[Typography] Added position only when Skeleton is a direct child (#38799) @siriwatknp + +### `@mui/lab@5.0.0-alpha.143` + +- ​[TreeView] Use Tree View from MUI X in the lab (#38261) @flaviendelangle +- ​[LoadingButton] Fix HTML rule button > div forbidden nesting (#38584) @oliviertassinari + +### `@mui/system@5.14.8` + +- ​[system] Fix the inconsistent types of the `mergeBreakpointsInOrder` function (#38749) @imevanc +- ​[system] Fix maxWidth incorrectly resolving breakpoints with non-pixel units (#38633) @mj12albert +- ​[typescript] Introduce \*OwnProps interfaces for components (#36798) @szalonna + +### Docs + +- ​Update changelog (#38704) @mj12albert +- ​[docs][Autocomplete] Require referentially stable value (#38734) @michaldudak +- ​[docs][base-ui] Add type parameter to the button in prepareForSlot demo (#38640) @michaldudak +- ​[docs][base-ui] Fix the broken image in the Tailwind CSS guide (#38721) @michaldudak +- ​[docs][base-ui]: Working With Tailwind Guide - revises example code to avoid import errors (#38693) @christophermorin +- ​[docs][base] Add Tailwind CSS + plain CSS demo on the Menu page (#38618) @alisasanib +- ​[blog] Clearer blog release title @oliviertassinari +- ​[blog] Add a post for the Tree View migration (#38407) @flaviendelangle +- ​[docs] Fix broken links to Next.js docs (#38764) @ruflair +- ​[docs] Trim trailing whitespace (#38793) @oliviertassinari +- ​[docs] Fix a typo in lab-tree-view-to-mui-x.md @mbrookes +- ​[docs] Clean up not used Usage files (#38715) @danilo-leal +- ​[docs] Improve theme builder exceptions (#38709) @jyash97 +- ​[docs] Polish Slider demos (#38759) @oliviertassinari +- ​[docs] Fix Joy UI docs link regression (#38761) @oliviertassinari +- ​[docs] Fix typo @oliviertassinari +- ​[docs] Fix e.g. typo (#38748) @oliviertassinari +- ​[docs] Fix Next.js pages router example redirect link (#38750) @sai6855 +- ​[docs] Fix SEO issue broken links @oliviertassinari +- ​[docs] Improve SSR example reference (#38651) @oliviertassinari +- ​[docs][joy-ui] Integrate a count-up feature to the Linear Progress (#38738) @anon-phantom +- ​[docs][joy-ui] Fix Link's `overlay` prop demo (#38702) @danilo-leal +- ​[docs][joy-ui] Polish the Stack page (#38623) @danilo-leal +- ​[docs][material-ui] Adjust simple Slide demo (#38646) @rajgop1 + +### Core + +- ​[core] Re-add nx and setup build caching (#38752) @brijeshb42 +- ​[core] Remove dead code seoTitle @oliviertassinari +- ​[core] Use immutable refs (#38762) @oliviertassinari +- ​[core] Rework `typescript-to-proptypes` to share the AST parsing with `parseStyles` (#38517) @flaviendelangle +- ​[core] Fix CI @oliviertassinari +- ​[core] Remove unnecessary `@types/webpack` package (#38720) @ZeeshanTamboli +- ​[core] Remove duplicate prop @oliviertassinari + +- ​[docs-infra] Fix mobile display in CodeSandbox (#38767) @oliviertassinari +- ​[docs-infra] Remove legacy GA (#37579) @alexfauquette +- ​[docs-infra] Fix emotion :first-child console log (#38690) @oliviertassinari +- ​[docs-infra] Fix leaking callout content (#38712) @danilo-leal +- ​[docs-infra] Remove emoji from callouts (#38694) @danilo-leal + +- ​[website] Fix out of date discount value @oliviertassinari +- ​[website] Fix out-of-date label on Toolpad (#38744) @bharatkashyap +- ​[website] Fine-tune branding buttons box shadows (#38731) @danilo-leal +- ​[website] Fix pricing table style (#38681) @alexfauquette + +All contributors of this release in alphabetical order: @alexfauquette, @alisasanib, @amal-qb, @anle9650, @anon-phantom, @bharatkashyap, @brijeshb42, @christophermorin, @danilo-leal, @flaviendelangle, @imevanc, @jyash97, @mbrookes, @michaldudak, @mj12albert, @oliviertassinari, @omriklein, @pcorpet, @rajgop1, @ruflair, @sai6855, @siriwatknp, @szalonna, @zanivan, @ZeeshanTamboli + ## 5.14.7 diff --git a/benchmark/package.json b/benchmark/package.json index 8e9155fbd62995..e0f0b52cfa85f9 100644 --- a/benchmark/package.json +++ b/benchmark/package.json @@ -15,9 +15,9 @@ "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@mdx-js/react": "^2.3.0", - "@mui/material": "^5.14.7", + "@mui/material": "^5.14.8", "@mui/styles": "^5.14.7", - "@mui/system": "^5.14.7", + "@mui/system": "^5.14.8", "@styled-system/css": "^5.1.5", "benchmark": "^2.1.4", "playwright": "^1.37.1", diff --git a/docs/package.json b/docs/package.json index 767f02cb87d957..9b115b72a45cd2 100644 --- a/docs/package.json +++ b/docs/package.json @@ -31,18 +31,18 @@ "@fortawesome/fontawesome-svg-core": "^6.4.2", "@fortawesome/free-solid-svg-icons": "^6.4.2", "@fortawesome/react-fontawesome": "^0.2.0", - "@mui/base": "5.0.0-beta.13", + "@mui/base": "5.0.0-beta.14", "@mui/docs": "^5.14.7", - "@mui/icons-material": "^5.14.7", - "@mui/joy": "5.0.0-beta.4", - "@mui/lab": "5.0.0-alpha.142", + "@mui/icons-material": "^5.14.8", + "@mui/joy": "5.0.0-beta.5", + "@mui/lab": "5.0.0-alpha.143", "@mui/markdown": "^5.0.0", - "@mui/material": "^5.14.7", - "@mui/material-next": "6.0.0-alpha.99", - "@mui/styled-engine": "^5.14.7", - "@mui/styled-engine-sc": "^5.14.7", + "@mui/material": "^5.14.8", + "@mui/material-next": "6.0.0-alpha.100", + "@mui/styled-engine": "^5.14.8", + "@mui/styled-engine-sc": "^5.14.8", "@mui/styles": "^5.14.7", - "@mui/system": "^5.14.7", + "@mui/system": "^5.14.8", "@mui/types": "^7.2.4", "@mui/x-charts": "^6.0.0-alpha.8", "@mui/x-data-grid": "6.12.0", @@ -118,9 +118,9 @@ "stylis": "^4.2.0", "stylis-plugin-rtl": "^2.1.1", "stylis-plugin-rtl-sc": "npm:stylis-plugin-rtl@^1.1.0", + "use-count-up": "^3.0.1", "webfontloader": "^1.6.28", - "webpack-bundle-analyzer": "^4.9.1", - "use-count-up": "^3.0.1" + "webpack-bundle-analyzer": "^4.9.1" }, "devDependencies": { "@babel/plugin-transform-react-constant-elements": "^7.22.5", diff --git a/package.json b/package.json index f722436ce0143b..5fac6c74a038cf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@mui/monorepo", - "version": "5.14.7", + "version": "5.14.8", "private": true, "scripts": { "proptypes": "cross-env BABEL_ENV=development babel-node --extensions \".tsx,.ts,.js\" ./scripts/generateProptypes.ts", diff --git a/packages/mui-base/package.json b/packages/mui-base/package.json index 6a6abea84c3992..95a71cf6bede7d 100644 --- a/packages/mui-base/package.json +++ b/packages/mui-base/package.json @@ -1,6 +1,6 @@ { "name": "@mui/base", - "version": "5.0.0-beta.13", + "version": "5.0.0-beta.14", "private": false, "author": "MUI Team", "description": "A library of headless ('unstyled') React UI components and low-level hooks.", @@ -55,7 +55,7 @@ "@emotion/is-prop-valid": "^1.2.1", "@floating-ui/react-dom": "^2.0.1", "@mui/types": "^7.2.4", - "@mui/utils": "^5.14.7", + "@mui/utils": "^5.14.8", "@popperjs/core": "^2.11.8", "clsx": "^2.0.0", "prop-types": "^15.8.1", diff --git a/packages/mui-codemod/package.json b/packages/mui-codemod/package.json index a5a88f43002339..ca8ba5c4f3fa2b 100644 --- a/packages/mui-codemod/package.json +++ b/packages/mui-codemod/package.json @@ -1,6 +1,6 @@ { "name": "@mui/codemod", - "version": "5.14.7", + "version": "5.14.8", "bin": "./codemod.js", "private": false, "author": "MUI Team", diff --git a/packages/mui-core-downloads-tracker/package.json b/packages/mui-core-downloads-tracker/package.json index a9b46dc19b45d5..786c271d20a7e5 100644 --- a/packages/mui-core-downloads-tracker/package.json +++ b/packages/mui-core-downloads-tracker/package.json @@ -1,6 +1,6 @@ { "name": "@mui/core-downloads-tracker", - "version": "5.14.7", + "version": "5.14.8", "private": false, "author": "MUI Team", "description": "Internal package to track number of downloads of our design system libraries", diff --git a/packages/mui-docs/package.json b/packages/mui-docs/package.json index 9b816668718e77..56995571752cff 100644 --- a/packages/mui-docs/package.json +++ b/packages/mui-docs/package.json @@ -45,7 +45,7 @@ }, "dependencies": { "@babel/runtime": "^7.22.10", - "@mui/utils": "^5.14.7", + "@mui/utils": "^5.14.8", "nprogress": "^0.2.0" }, "publishConfig": { diff --git a/packages/mui-icons-material/package.json b/packages/mui-icons-material/package.json index 42a24787175b2a..5b0892a26413da 100644 --- a/packages/mui-icons-material/package.json +++ b/packages/mui-icons-material/package.json @@ -1,6 +1,6 @@ { "name": "@mui/icons-material", - "version": "5.14.7", + "version": "5.14.8", "private": false, "author": "MUI Team", "description": "Material Design icons distributed as SVG React components.", diff --git a/packages/mui-joy/package.json b/packages/mui-joy/package.json index fad42740d8ec56..930c6bd677458b 100644 --- a/packages/mui-joy/package.json +++ b/packages/mui-joy/package.json @@ -1,6 +1,6 @@ { "name": "@mui/joy", - "version": "5.0.0-beta.4", + "version": "5.0.0-beta.5", "private": false, "author": "MUI Team", "description": "A library of beautifully designed React UI components.", @@ -57,11 +57,11 @@ }, "dependencies": { "@babel/runtime": "^7.22.10", - "@mui/base": "5.0.0-beta.13", - "@mui/core-downloads-tracker": "^5.14.7", - "@mui/system": "^5.14.7", + "@mui/base": "5.0.0-beta.14", + "@mui/core-downloads-tracker": "^5.14.8", + "@mui/system": "^5.14.8", "@mui/types": "^7.2.4", - "@mui/utils": "^5.14.7", + "@mui/utils": "^5.14.8", "clsx": "^2.0.0", "csstype": "^3.1.2", "prop-types": "^15.8.1", diff --git a/packages/mui-lab/package.json b/packages/mui-lab/package.json index 1c17af3557ae94..c1de61d817782e 100644 --- a/packages/mui-lab/package.json +++ b/packages/mui-lab/package.json @@ -1,6 +1,6 @@ { "name": "@mui/lab", - "version": "5.0.0-alpha.142", + "version": "5.0.0-alpha.143", "private": false, "author": "MUI Team", "description": "Laboratory for new MUI modules.", @@ -61,10 +61,10 @@ }, "dependencies": { "@babel/runtime": "^7.22.10", - "@mui/base": "5.0.0-beta.13", - "@mui/system": "^5.14.7", + "@mui/base": "5.0.0-beta.14", + "@mui/system": "^5.14.8", "@mui/types": "^7.2.4", - "@mui/utils": "^5.14.7", + "@mui/utils": "^5.14.8", "@mui/x-tree-view": "https://pkg.csb.dev/mui/mui-x/commit/1f23b33d/@mui/x-tree-view", "clsx": "^2.0.0", "prop-types": "^15.8.1", diff --git a/packages/mui-material-next/package.json b/packages/mui-material-next/package.json index a4f3d42eab80f8..4d86a746dc39b8 100644 --- a/packages/mui-material-next/package.json +++ b/packages/mui-material-next/package.json @@ -1,6 +1,6 @@ { "name": "@mui/material-next", - "version": "6.0.0-alpha.99", + "version": "6.0.0-alpha.100", "private": false, "author": "MUI Team", "description": "v6-alpha: React components that implement Google's Material Design", @@ -59,11 +59,11 @@ }, "dependencies": { "@babel/runtime": "^7.22.10", - "@mui/base": "5.0.0-beta.13", - "@mui/material": "^5.14.7", - "@mui/system": "^5.14.7", + "@mui/base": "5.0.0-beta.14", + "@mui/material": "^5.14.8", + "@mui/system": "^5.14.8", "@mui/types": "^7.2.4", - "@mui/utils": "^5.14.7", + "@mui/utils": "^5.14.8", "@popperjs/core": "^2.11.8", "@types/react-transition-group": "^4.4.6", "clsx": "^2.0.0", diff --git a/packages/mui-material/package.json b/packages/mui-material/package.json index 7de75791783109..d40e5da3d28204 100644 --- a/packages/mui-material/package.json +++ b/packages/mui-material/package.json @@ -1,6 +1,6 @@ { "name": "@mui/material", - "version": "5.14.7", + "version": "5.14.8", "private": false, "author": "MUI Team", "description": "React components that implement Google's Material Design.", @@ -61,11 +61,11 @@ }, "dependencies": { "@babel/runtime": "^7.22.10", - "@mui/base": "5.0.0-beta.13", - "@mui/core-downloads-tracker": "^5.14.7", - "@mui/system": "^5.14.7", + "@mui/base": "5.0.0-beta.14", + "@mui/core-downloads-tracker": "^5.14.8", + "@mui/system": "^5.14.8", "@mui/types": "^7.2.4", - "@mui/utils": "^5.14.7", + "@mui/utils": "^5.14.8", "@types/react-transition-group": "^4.4.6", "clsx": "^2.0.0", "csstype": "^3.1.2", diff --git a/packages/mui-private-theming/package.json b/packages/mui-private-theming/package.json index 6b0517c1887ee9..67d71436523df4 100644 --- a/packages/mui-private-theming/package.json +++ b/packages/mui-private-theming/package.json @@ -1,6 +1,6 @@ { "name": "@mui/private-theming", - "version": "5.14.7", + "version": "5.14.8", "private": false, "author": "MUI Team", "description": "Private - The React theme context to be shared between `@mui/styles` and `@mui/material`.", @@ -48,7 +48,7 @@ }, "dependencies": { "@babel/runtime": "^7.22.10", - "@mui/utils": "^5.14.7", + "@mui/utils": "^5.14.8", "prop-types": "^15.8.1" }, "sideEffects": false, diff --git a/packages/mui-styled-engine-sc/package.json b/packages/mui-styled-engine-sc/package.json index 60b795f08364b0..9e47b9f0245755 100644 --- a/packages/mui-styled-engine-sc/package.json +++ b/packages/mui-styled-engine-sc/package.json @@ -1,6 +1,6 @@ { "name": "@mui/styled-engine-sc", - "version": "5.14.7", + "version": "5.14.8", "private": false, "author": "MUI Team", "description": "styled() API wrapper package for styled-components.", diff --git a/packages/mui-styled-engine/package.json b/packages/mui-styled-engine/package.json index 18dad0ebb9e31f..2b342983a45cfc 100644 --- a/packages/mui-styled-engine/package.json +++ b/packages/mui-styled-engine/package.json @@ -1,6 +1,6 @@ { "name": "@mui/styled-engine", - "version": "5.14.7", + "version": "5.14.8", "private": false, "author": "MUI Team", "description": "styled() API wrapper package for emotion.", diff --git a/packages/mui-styles/package.json b/packages/mui-styles/package.json index edd6fa73dd21ce..e9d453250954d1 100644 --- a/packages/mui-styles/package.json +++ b/packages/mui-styles/package.json @@ -51,7 +51,7 @@ "@emotion/hash": "^0.9.1", "@mui/private-theming": "^5.14.7", "@mui/types": "^7.2.4", - "@mui/utils": "^5.14.7", + "@mui/utils": "^5.14.8", "clsx": "^2.0.0", "csstype": "^3.1.2", "hoist-non-react-statics": "^3.3.2", diff --git a/packages/mui-system/package.json b/packages/mui-system/package.json index 35b9a80a8a3bc3..0b1dae9945161e 100644 --- a/packages/mui-system/package.json +++ b/packages/mui-system/package.json @@ -1,6 +1,6 @@ { "name": "@mui/system", - "version": "5.14.7", + "version": "5.14.8", "private": false, "author": "MUI Team", "description": "CSS utilities for rapidly laying out custom designs.", @@ -58,10 +58,10 @@ }, "dependencies": { "@babel/runtime": "^7.22.10", - "@mui/private-theming": "^5.14.7", - "@mui/styled-engine": "^5.14.7", + "@mui/private-theming": "^5.14.8", + "@mui/styled-engine": "^5.14.8", "@mui/types": "^7.2.4", - "@mui/utils": "^5.14.7", + "@mui/utils": "^5.14.8", "clsx": "^2.0.0", "csstype": "^3.1.2", "prop-types": "^15.8.1" diff --git a/packages/mui-utils/package.json b/packages/mui-utils/package.json index f5921c8bc8e602..4aab08375b7766 100644 --- a/packages/mui-utils/package.json +++ b/packages/mui-utils/package.json @@ -1,6 +1,6 @@ { "name": "@mui/utils", - "version": "5.14.7", + "version": "5.14.8", "private": false, "author": "MUI Team", "description": "Utility functions for React components.", diff --git a/packages/zero-tag-processor/package.json b/packages/zero-tag-processor/package.json index 612ea4ff1a972f..d9a9816c7add2f 100644 --- a/packages/zero-tag-processor/package.json +++ b/packages/zero-tag-processor/package.json @@ -1,6 +1,6 @@ { "name": "@mui/zero-tag-processor", - "version": "0.0.1-alpha.1", + "version": "0.0.1-alpha.2", "private": true, "author": "MUI Team", "description": "Linaria tag processors for custom styled implementation.", @@ -46,11 +46,11 @@ "@emotion/css": "^11.11.2", "@linaria/tags": "^4.5.4", "@linaria/utils": "^4.5.3", - "@mui/system": "^5.14.7", + "@mui/system": "^5.14.8", "lodash.get": "^4.4.2" }, "devDependencies": { - "@mui/material": "^5.14.7", + "@mui/material": "^5.14.8", "@types/babel__core": "^7.20.1", "@types/babel__helper-module-imports": "^7.18.0", "@types/babel__helper-plugin-utils": "^7.10.0", From 69aa1c7d2a17f668b589539e1a3ce6e45bdf84ec Mon Sep 17 00:00:00 2001 From: Michel Engelen <32863416+michelengelen@users.noreply.github.com> Date: Tue, 5 Sep 2023 20:22:26 +0200 Subject: [PATCH 17/30] [website] add Michel Engelen to the about us page (#38818) --- docs/data/about/teamMembers.json | 9 +++++++++ .../static/branding/about/michel-engelen.png | Bin 0 -> 174601 bytes 2 files changed, 9 insertions(+) create mode 100644 docs/public/static/branding/about/michel-engelen.png diff --git a/docs/data/about/teamMembers.json b/docs/data/about/teamMembers.json index fcd1526e63c50c..20c314ad768c0d 100644 --- a/docs/data/about/teamMembers.json +++ b/docs/data/about/teamMembers.json @@ -262,5 +262,14 @@ "locationCountry": "ro", "about": "Art enthusiast 🎨 outdoor person 🌳 animal lover 🐾", "github": "noraleonte" + }, + { + "name": "Michel Engelen", + "title": "React Community Engineer - X", + "location": "Zeven, Germany", + "locationCountry": "de", + "about": "Geeking out on Badminton 🏸, everything Japan 🇯🇵 and Pizza 🍕", + "twitter": "jsNerdic", + "github": "michelengelen" } ] diff --git a/docs/public/static/branding/about/michel-engelen.png b/docs/public/static/branding/about/michel-engelen.png new file mode 100644 index 0000000000000000000000000000000000000000..360b5a61015e11f302ae4046d786a3264acb3614 GIT binary patch literal 174601 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