-
-
Notifications
You must be signed in to change notification settings - Fork 32.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFC] Avoid or "prefer not to use" default exports #21862
Comments
This is not a problem. It causes problem you later describe:
Types solve this. Q: Why is renaming not a problem? There's a boundary between interface and implementation that default exports naturally expose. Let's say I have a file where I need some list. How this list is implemented does not matter when reading the code (i.e. understand what it does). So what I do is pick one list implementation e.g. a linked list. At the call sites it doesn't matter so default imports solve this easily: The package that exports a function never decides the name for the importee. If I import a This issue is later repeated:
I don't agree. Implementation (code) and interface (name) are separate. I don't want to change every call site just because I switch to a different implementation.
That is already the current state of affairs? If not then we can change this without having to forbid default exports.
In what editor? vscode does this just fine. If I type
I don't think that thought ever came into my mind. If I
You should add that And ultimately: What concrete, current problem are you addressing here? |
Exactly this problem:
It is not about interface and implementation it is different. There is nothing about interface and abstractions at all here, the only name – and this name should be consistent through the codebase.
You don't. And a developer who is working with your file – don't know as well. If you have a function |
@dmtrKovalenko Thanks for taking the time to write this detailed RFC! From my perspective the current filename and export convention on the codebase is free from the problems mentioned for components. For non-components modules, I believe we encourage named exports, but I'm not sure, I have never put it a lot of thoughts as opposed to the components:
We solve this by enforcing the name of the file to match the name of the export and import. It's strict equality between these 3 items, nothing else is allowed. For developers consuming the library, they have the choice to use the barrel index or nested import. We also have an eslint rule that forbids the default export to match the name of a named export.
Implicit rename isn't allowed, so free from this problem, regex works.
We solve this problem by forcing each component to be hosted on a single file. There is only the default export that is relevant.
This argument seems to be a matter of taste, I don't see any pros or cons in any direction? Reading on Twitter a thread on this matter, I find myself to agree with the vision of Jordan Harband: https://twitter.com/ljharb/status/1084131812559843328, which isn't surprising considering he's behind the eslint rules we use (airbnb). These rules ask for a default export when there is only one named export. |
My question is: why we need to invent some conventions, create rules -- if we have an already Regarding imports section: Doesn't this feel strange for you
And this?:
|
@dmtrKovalenko I think that it's worth taking a step back into the history and see why the current structure of the repository. The current structure is designed so developers can find components and navigate the code as easily as possible. We achieved it with a couple of choices:
Regarding the named export vs default exports, in your example, a. vs b. a. import Typography from '@material-ui/core/Typography';
import Typography, { TypographyProps } from '@material-ui/core/Typography'; b. import { Typography } from '@material-ui/core/Typography';
import { Typography, TypographyProps } from '@material-ui/core/Typography'; Things I find valuable from a.:
import { Typography as MuiTypography } from '@material-ui/core/Typography'; and a. import MuiTypography from '@material-ui/core/Typography'; Things I find valuable from b.:
This was for the public API of components. For internal usage and non components, I like how the current eslint rule is pragmatic. If you have a single export: default export. If you have multiple exports, you choose. If one export accounts for 80% of the value of the file, keep a default export, otherwise, flatten it with named exports, no default exports. |
I don't see any concrete problems in this issue. I can only see hypotheticals that I don't agree with. |
then 2 files
At a later stage you decide to refactor something and it becomes As you use the refactoring feature of your IDE, your import in
So you rename import another from 'another';
import something from 'something'; But then
So you would have to go and rename the variable manually. As everything works and compiles without error, you forget and when you come back to the body of if you use named imports, the issue above will not happen as your refactoring tool will automatically rename the variable used in in the import
Thus Default import would allow more discrepancies in the code. Named import is more strict and is more reliable with refactoring tools and IDE.
export {default as something} from 'something'
vs
export {something} from 'something'
export * from 'something' If you rename something, to another, you will still export it as export {default as something} from 'another'
vs
export {another } from 'another'
export * from 'another' I'm in favor of using a really limited amount of
|
In my previous comment, I was trying to cover why the public API looks like what's now. It's the public API that has influenced the current eslint rules. These constraints are quite aligned with Airbnb's rule, so we kept it for internal usage too, so we don't have special treatments. I don't think that we have put special thoughts into using Airbnb's rule outside of the realization that we could trust them and offload the need to have discussions like this one (same value proposition as prettier). Considering that the discussion, at its root, is about the eslint rule that fails (If a file has a single named export, it tells to move to a default export. If you have multiple exports, it's then up to you.). We can look at why this rule exists in the first place, from their creators:
https://github.com/airbnb/javascript#modules--prefer-default-export I have to admit that I still struggle to navigate the codebase of the pickers repository, and I think it's one of the reasons why (different conventions that have the potential to be marginally better but can kill productivity when you are not used to them). I think that we should keep this rule to encourage purposed files, no kitchen sinks by mistake, to ease the exploration of a codebase you don't know (e.g. code you wrote 2 months ago). @dtassone Interesting consideration, I have never used a refactoring tool, and probably why I'm not fully in empathy with the concern. I think that code review can solve the problem. This makes me think of a different file name convention that we need to update: name casing. For instance: https://github.com/mui-org/material-ui-x/blob/master/packages/grid/x-grid-modules/src/components/column-headers.tsx should be So, I think that the rule should be:
|
Still, I think that we should ask everybody as it impacts the whole codebase, across components (we would need to migrate the main repository if we forbid default exports) cc @mui-org/core-team, @DanailH, @PaulSavignano. The vote is between:
|
Refactoring tools are great and are very helpful, that's why I use webstorm :)
it's not the case if you allow 🤔 import Typography, { TypographyProps } from '@material-ui/core/Typography'; If we just want to encourage 1 component per file. Then it can be a practice. A rule could be to default export components that will be consumed by users to avoid breaking changes if we rename them. IMHO inside the component unit of work, exporting as default, hooks or types could result in a big mess for the reasons mentioned in my first comment. This obviously depends on the complexity of the component. |
We refactored all of our internal code and removed default exports almost two years ago. It was a positive change and identified export name conflicts easily (coupled with |
The arguments for this related to refactoring/renaming don't seem very relevant. The vast majority of the components with default exports are part of the public API which means they can only be renamed with the release of a major version -- and even then it is rare. Doesn't seem like something worth optimizing for. |
@dtassone I can understand how renaming considerations would be more important in an application codebase, but given the requirement of stability of names in Material-UI, can you explain more why this would be important in this case. The main time when renaming may have some importance is when developing new components, and even then it would only add much value for complex components with many sub-components. I suppose your current work on the data grid would fall into this category and maybe the future work for enterprise components would have additional things like this, I just don't see it adding value (from a refactoring standpoint) for the existing components and even for new components it only adds value during their initial development stages. Once an initial release of components is in use, I would expect only rare name changes. |
Can somebody explain to me why I have to rename every callsite if I rename the implementation? Doesn't the vscode refactor also keep the import name i.e. // components.tsx
-export function Button() {}
+export function FancyButton() {}
// app.tsx
-import { Button } from './components'
+import { FancyButton as Button } from './components' ? |
@eps1lon Because when you read the code <FancyButton /> You probably would like to search "FancyButton" and open the component source, right? But with default exports, you are doing exactly the same, but 2 times. Default exports work exactly like this // component.js
export const default = FancyButton
import { default as Button } from './component' |
99% of the time the answer is no. The remaining 1% I do CTRL+Click in vscode and it goes to the declaration. |
I have nothing to answer here... 99% of developers would like to have this ability because they are reading code not only in the editor. Moreover, core repo is written in typescript so ctrl+click follows to the typescript declaration file 🤷♂️ |
What other methods are you trying to optimize? |
I have described everything in RFC – I`d like to get rid of unnecessary implicit rename of the exported component in each file in favor of defined, unique, and easy for search/debugging component name. |
I've read it again and I can't find mentions of the way you consume and work with code. Maybe I missed it. Could you explain it again or link/quote it?
I don't understand how named exports ensure a unique name across the codebase. Even with named exports I could still do
Could you explain more about your workflow where checking out the component source is so important to you? Seems like we can improve some areas of our documentation. |
Try exporting duplicate names, your tooling will pick it up and fail the build e.g. tsc or roll-up. Using |
What this seems to come down to is that we are split fairly evenly between developers who work in ways where we don’t experience the problems this is trying to solve and therefore don’t see any benefit to the change, and another group using different habits, tools, refactoring approaches, etc. that see a clear benefit to the change. I don’t think the 🎉 group has much chance of convincing the 👍 group that it will provide these same benefits to the 👍 group who have different work habits than the 🎉 group. So I think the main question should be “are there enough downsides to this change to deny the benefits of this change to the 🎉 group?” My biggest concern is the impact outside of Material-UI. This is a change that would affect every single Material-UI import in many codebases. Obviously there would need to be a codemod to help with the change, but it still will seem — to a large portion of library users — like an arbitrary change with no benefit that forces slightly more verbose syntax. There will also be a portion of users that are pleased with the change (based on the sampling here), but I suspect the annoyed group will be significantly louder than the pleased group. Code samples on hundreds of stackoverflow questions will no longer work in v5 without changing the imports. These aren’t massive problems, but it will be a nuisance to a large number of people and it will be a barrier to upgrading. Upgrading will feel a lot riskier if you have to change nearly every file that uses Material-UI (even if that change is automated). |
I agree with @ryancogswell . If I look at the problem from a user/dev point of view I would like to have as staying forward migration from major to major version as possible. Having to change my exports would definitely be a pain especially if the reason why I'm migration from major to major is to use a specific feature, I would like to deal with the additional hassle of trying to figure out why my code isn't compiling. I'm not saying that this change isn't worth it but rather that we should keep in mind that we will introduce additional effort when migrating. PS: In my current company we solved a similar problem by having a specific file that exposes the public API for our npm modules. In addition, we have an npm barrow collection that combines all those components with their exported public APIs and puts them at the same level basically so you aways export everything from the same location. I'm not saying that this is good but that it can be solved on a packaging level. Basically we have an adaptor that sits between the codebase and the users and ensures that whenever we change something the public API is always respected and we don't introduce breaking changes by renaming files or changing exports. |
This comment was marked as off-topic.
This comment was marked as off-topic.
@hbroer you are touching a different subject: https://mui.com/material-ui/guides/minimizing-bundle-size I'm returning to this issue as the @mui/core team leans toward named exports. Additionally, based on the number of votes on the original comment, it's apparent that the community would also prefer it. ![]() We recently came across guidance from esbuild suggesting not to use default exports: https://esbuild.github.io/content-types/#default-interop Having that in mind, we're considering introducing named exports only in our new, not-yet-stable packages, Base UI and Joy UI, and listening to community feedback. If we go this route, we'll provide a codemod to update the imports in your codebases automatically. |
Here is the issue I found with default export (I have the same issue) codler/react-ga4#23. the library react-ga4 exports the module as default but when I try to import it my project (with type: 'module' in the root package.json), I have to access |
I wonder if #31835 is also related to default exports. |
it is |
Partially yes, but there are other issues there as well I think, for e.g. #31835 (comment) seems like it's not only about default imports. |
[](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---|---|---| | | | lockFileMaintenance | All locks refreshed | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@aws-cdk/aws-apigatewayv2-alpha](https://togithub.com/aws/aws-cdk) | dependencies | minor | [`2.90.0-alpha.0` -> `2.91.0-alpha.0`](https://renovatebot.com/diffs/npm/@aws-cdk%2faws-apigatewayv2-alpha/2.90.0-alpha.0/2.91.0-alpha.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@aws-cdk/aws-apigatewayv2-authorizers-alpha](https://togithub.com/aws/aws-cdk) | dependencies | minor | [`2.90.0-alpha.0` -> `2.91.0-alpha.0`](https://renovatebot.com/diffs/npm/@aws-cdk%2faws-apigatewayv2-authorizers-alpha/2.90.0-alpha.0/2.91.0-alpha.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@aws-cdk/aws-apigatewayv2-integrations-alpha](https://togithub.com/aws/aws-cdk) | dependencies | minor | [`2.90.0-alpha.0` -> `2.91.0-alpha.0`](https://renovatebot.com/diffs/npm/@aws-cdk%2faws-apigatewayv2-integrations-alpha/2.90.0-alpha.0/2.91.0-alpha.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@aws-sdk/client-dynamodb](https://togithub.com/aws/aws-sdk-js-v3/tree/main/clients/client-dynamodb) ([source](https://togithub.com/aws/aws-sdk-js-v3)) | dependencies | minor | [`3.385.0` -> `3.388.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-dynamodb/3.385.0/3.388.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@aws-sdk/client-s3](https://togithub.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3) ([source](https://togithub.com/aws/aws-sdk-js-v3)) | dependencies | minor | [`3.385.0` -> `3.388.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-s3/3.385.0/3.388.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@aws-sdk/client-sesv2](https://togithub.com/aws/aws-sdk-js-v3/tree/main/clients/client-sesv2) ([source](https://togithub.com/aws/aws-sdk-js-v3)) | dependencies | minor | [`3.385.0` -> `3.388.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-sesv2/3.385.0/3.388.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@aws-sdk/client-sfn](https://togithub.com/aws/aws-sdk-js-v3/tree/main/clients/client-sfn) ([source](https://togithub.com/aws/aws-sdk-js-v3)) | dependencies | minor | [`3.385.0` -> `3.388.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-sfn/3.385.0/3.388.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@aws-sdk/s3-request-presigner](https://togithub.com/aws/aws-sdk-js-v3/tree/main/packages/s3-request-presigner) ([source](https://togithub.com/aws/aws-sdk-js-v3)) | dependencies | minor | [`3.385.0` -> `3.388.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fs3-request-presigner/3.385.0/3.388.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@mui/material](https://mui.com/material-ui/getting-started/) ([source](https://togithub.com/mui/material-ui)) | dependencies | patch | [`5.14.3` -> `5.14.4`](https://renovatebot.com/diffs/npm/@mui%2fmaterial/5.14.3/5.14.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@mui/x-date-pickers](https://mui.com/x/react-date-pickers/) ([source](https://togithub.com/mui/mui-x)) | dependencies | patch | [`6.11.0` -> `6.11.1`](https://renovatebot.com/diffs/npm/@mui%2fx-date-pickers/6.11.0/6.11.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) | devDependencies | patch | [`18.17.3` -> `18.17.5`](https://renovatebot.com/diffs/npm/@types%2fnode/18.17.3/18.17.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) | devDependencies | patch | [`18.2.18` -> `18.2.20`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.18/18.2.20) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [aws-cdk](https://togithub.com/aws/aws-cdk) | devDependencies | minor | [`2.90.0` -> `2.91.0`](https://renovatebot.com/diffs/npm/aws-cdk/2.90.0/2.91.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [aws-cdk-lib](https://togithub.com/aws/aws-cdk) | dependencies | minor | [`2.90.0` -> `2.91.0`](https://renovatebot.com/diffs/npm/aws-cdk-lib/2.90.0/2.91.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [aws-sdk](https://togithub.com/aws/aws-sdk-js) | dependencies | minor | [`2.1430.0` -> `2.1435.0`](https://renovatebot.com/diffs/npm/aws-sdk/2.1430.0/2.1435.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [esbuild](https://togithub.com/evanw/esbuild) | dependencies | minor | [`0.18.18` -> `0.19.1`](https://renovatebot.com/diffs/npm/esbuild/0.18.18/0.19.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [eslint](https://eslint.org) ([source](https://togithub.com/eslint/eslint)) | devDependencies | minor | [`8.46.0` -> `8.47.0`](https://renovatebot.com/diffs/npm/eslint/8.46.0/8.47.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [luxon](https://togithub.com/moment/luxon) | dependencies | minor | [`3.3.0` -> `3.4.0`](https://renovatebot.com/diffs/npm/luxon/3.3.0/3.4.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [react-router](https://togithub.com/remix-run/react-router) | dependencies | minor | [`6.14.2` -> `6.15.0`](https://renovatebot.com/diffs/npm/react-router/6.14.2/6.15.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [react-router-dom](https://togithub.com/remix-run/react-router) | dependencies | minor | [`6.14.2` -> `6.15.0`](https://renovatebot.com/diffs/npm/react-router-dom/6.14.2/6.15.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [vite](https://togithub.com/vitejs/vite/tree/main/#readme) ([source](https://togithub.com/vitejs/vite)) | devDependencies | patch | [`4.4.8` -> `4.4.9`](https://renovatebot.com/diffs/npm/vite/4.4.8/4.4.9) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | 🔧 This Pull Request updates lock files to use the latest dependency versions. --- ### Release Notes <details> <summary>aws/aws-sdk-js-v3 (@​aws-sdk/client-dynamodb)</summary> ### [`v3.388.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-dynamodb/CHANGELOG.md#33880-2023-08-09) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.387.0...v3.388.0) **Note:** Version bump only for package [@​aws-sdk/client-dynamodb](https://togithub.com/aws-sdk/client-dynamodb) ### [`v3.387.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-dynamodb/CHANGELOG.md#33870-2023-08-08) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.386.0...v3.387.0) ##### Features - **clients:** allow client creation without configuration ([#​5060](https://togithub.com/aws/aws-sdk-js-v3/issues/5060)) ([a9723dc](https://togithub.com/aws/aws-sdk-js-v3/commit/a9723dcbbf970402a3131a8ff79153a04b2cfb89)) ### [`v3.386.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-dynamodb/CHANGELOG.md#33860-2023-08-07) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.385.0...v3.386.0) **Note:** Version bump only for package [@​aws-sdk/client-dynamodb](https://togithub.com/aws-sdk/client-dynamodb) </details> <details> <summary>aws/aws-sdk-js-v3 (@​aws-sdk/client-s3)</summary> ### [`v3.388.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#33880-2023-08-09) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.387.0...v3.388.0) **Note:** Version bump only for package [@​aws-sdk/client-s3](https://togithub.com/aws-sdk/client-s3) ### [`v3.387.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#33870-2023-08-08) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.386.0...v3.387.0) ##### Features - **clients:** allow client creation without configuration ([#​5060](https://togithub.com/aws/aws-sdk-js-v3/issues/5060)) ([a9723dc](https://togithub.com/aws/aws-sdk-js-v3/commit/a9723dcbbf970402a3131a8ff79153a04b2cfb89)) ### [`v3.386.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#33860-2023-08-07) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.385.0...v3.386.0) **Note:** Version bump only for package [@​aws-sdk/client-s3](https://togithub.com/aws-sdk/client-s3) </details> <details> <summary>aws/aws-sdk-js-v3 (@​aws-sdk/client-sesv2)</summary> ### [`v3.388.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-sesv2/CHANGELOG.md#33880-2023-08-09) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.387.0...v3.388.0) **Note:** Version bump only for package [@​aws-sdk/client-sesv2](https://togithub.com/aws-sdk/client-sesv2) ### [`v3.387.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-sesv2/CHANGELOG.md#33870-2023-08-08) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.386.0...v3.387.0) ##### Features - **clients:** allow client creation without configuration ([#​5060](https://togithub.com/aws/aws-sdk-js-v3/issues/5060)) ([a9723dc](https://togithub.com/aws/aws-sdk-js-v3/commit/a9723dcbbf970402a3131a8ff79153a04b2cfb89)) ### [`v3.386.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-sesv2/CHANGELOG.md#33860-2023-08-07) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.385.0...v3.386.0) **Note:** Version bump only for package [@​aws-sdk/client-sesv2](https://togithub.com/aws-sdk/client-sesv2) </details> <details> <summary>aws/aws-sdk-js-v3 (@​aws-sdk/client-sfn)</summary> ### [`v3.388.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-sfn/CHANGELOG.md#33880-2023-08-09) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.387.0...v3.388.0) **Note:** Version bump only for package [@​aws-sdk/client-sfn](https://togithub.com/aws-sdk/client-sfn) ### [`v3.387.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-sfn/CHANGELOG.md#33870-2023-08-08) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.386.0...v3.387.0) ##### Features - **clients:** allow client creation without configuration ([#​5060](https://togithub.com/aws/aws-sdk-js-v3/issues/5060)) ([a9723dc](https://togithub.com/aws/aws-sdk-js-v3/commit/a9723dcbbf970402a3131a8ff79153a04b2cfb89)) ### [`v3.386.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-sfn/CHANGELOG.md#33860-2023-08-07) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.385.0...v3.386.0) **Note:** Version bump only for package [@​aws-sdk/client-sfn](https://togithub.com/aws-sdk/client-sfn) </details> <details> <summary>aws/aws-sdk-js-v3 (@​aws-sdk/s3-request-presigner)</summary> ### [`v3.388.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/packages/s3-request-presigner/CHANGELOG.md#33880-2023-08-09) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.387.0...v3.388.0) **Note:** Version bump only for package [@​aws-sdk/s3-request-presigner](https://togithub.com/aws-sdk/s3-request-presigner) ### [`v3.387.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/packages/s3-request-presigner/CHANGELOG.md#33870-2023-08-08) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.386.0...v3.387.0) **Note:** Version bump only for package [@​aws-sdk/s3-request-presigner](https://togithub.com/aws-sdk/s3-request-presigner) ### [`v3.386.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/packages/s3-request-presigner/CHANGELOG.md#33860-2023-08-07) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.385.0...v3.386.0) **Note:** Version bump only for package [@​aws-sdk/s3-request-presigner](https://togithub.com/aws-sdk/s3-request-presigner) </details> <details> <summary>mui/material-ui (@​mui/material)</summary> ### [`v5.14.4`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#5144) [Compare Source](https://togithub.com/mui/material-ui/compare/v5.14.3...v5.14.4) *Aug 8, 2023* A big thanks to the 18 contributors who made this release possible. Here are some highlights ✨: - 🎉 Added [Number input](https://mui.com/base-ui/react-number-input) component & [useNumberInput](https://mui.com/base-ui/react-number-input#hook) hook in [Base UI](https://mui.com/base-ui/getting-started/) [@​mj12albert](https://togithub.com/mj12albert) ##### `@mui/material@5.14.4` - \[Checkbox]\[material] Add size classes ([#​38182](https://togithub.com/mui/material-ui/issues/38182)) [@​michaldudak](https://togithub.com/michaldudak) - \[Typography] Improve inherit variant logic ([#​38123](https://togithub.com/mui/material-ui/issues/38123)) [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) ##### `@mui/system@5.14.4` - Revert "\[Box] Remove `component` from TypeMap ([#​38168](https://togithub.com/mui/material-ui/issues/38168))" ([#​38356](https://togithub.com/mui/material-ui/issues/38356)) [@​michaldudak](https://togithub.com/michaldudak) ##### `@mui/base@5.0.0-beta.10` ##### Breaking changes - \[base] Ban default exports ([#​38200](https://togithub.com/mui/material-ui/issues/38200)) [@​michaldudak](https://togithub.com/michaldudak) Base UI default exports were changed to named ones. Previously we had a mix of default and named ones. This was changed to improve consistency and avoid problems some bundlers have with default exports. [https://github.com/mui/material-ui/issues/21862](https://togithub.com/mui/material-ui/issues/21862)es/21862 for more context. ```diff - import Button, { buttonClasses } from '@​mui/base/Button'; + import { Button, buttonClasses } from '@​mui/base/Button'; - import BaseMenu from '@​mui/base/Menu'; + import { Menu as BaseMenu } from '@​mui/base/Menu'; ``` Additionally, the `ClassNameGenerator` has been moved to the directory matching its name: ```diff - import ClassNameGenerator from '@​mui/base/className'; + import { ClassNameGenerator } from '@​mui/base/ClassNameGenerator'; ``` A codemod is provided to help with the migration: ```bash npx @​mui/codemod v5.0.0/base-use-named-imports <path> ``` ##### Changes - \[base] Create useNumberInput and NumberInput ([#​36119](https://togithub.com/mui/material-ui/issues/36119)) [@​mj12albert](https://togithub.com/mj12albert) - \[Select]\[base] Fix flicker on click of controlled Select button ([#​37855](https://togithub.com/mui/material-ui/issues/37855)) [@​VishruthR](https://togithub.com/VishruthR) - \[Dropdown] Fix imports of types ([#​38296](https://togithub.com/mui/material-ui/issues/38296)) [@​yash-thakur](https://togithub.com/yash-thakur) ##### `@mui/joy@5.0.0-beta.1` - \[joy-ui]\[MenuButton] Fix disable of `MenuButton` ([#​38342](https://togithub.com/mui/material-ui/issues/38342)) [@​sai6855](https://togithub.com/sai6855) ##### Docs - \[docs]\[AppBar] Fix `ResponsiveAppBar` demo logo href ([#​38346](https://togithub.com/mui/material-ui/issues/38346)) [@​iownthegame](https://togithub.com/iownthegame) - \[docs]\[base] Add Tailwind CSS + plain CSS demo on the Button page ([#​38240](https://togithub.com/mui/material-ui/issues/38240)) [@​alisasanib](https://togithub.com/alisasanib) - \[docs]\[Menu]\[base] Remove `Unstyled` prefix from demos' function names ([#​38270](https://togithub.com/mui/material-ui/issues/38270)) [@​sai6855](https://togithub.com/sai6855) - \[docs] Add themeable component guide ([#​37908](https://togithub.com/mui/material-ui/issues/37908)) [@​siriwatknp](https://togithub.com/siriwatknp) - \[docs] Fix Joy UI demo background color ([#​38307](https://togithub.com/mui/material-ui/issues/38307)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs] Update API docs for Number Input component ([#​38301](https://togithub.com/mui/material-ui/issues/38301)) [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) - \[docs]\[joy-ui] Revise the theme typography page ([#​38285](https://togithub.com/mui/material-ui/issues/38285)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[docs]\[joy-ui] Add TS demo for Menu Bar ([#​38308](https://togithub.com/mui/material-ui/issues/38308)) [@​sai6855](https://togithub.com/sai6855) - \[docs]\[joy-ui] Updated Typography callout at getting started ([#​38289](https://togithub.com/mui/material-ui/issues/38289)) [@​zanivan](https://togithub.com/zanivan) - \[docs]\[joy-ui] Fix the Inter font installation instructions ([#​38284](https://togithub.com/mui/material-ui/issues/38284)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[docs]\[material] Add note to Autocomplete about ref forwarding ([#​38305](https://togithub.com/mui/material-ui/issues/38305)) [@​samuelsycamore](https://togithub.com/samuelsycamore) - \[docs]\[Skeleton] Make the demos feel more realistic ([#​38212](https://togithub.com/mui/material-ui/issues/38212)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[examples] Swap Next.js examples between App Router and Pages Router; update naming convention ([#​38204](https://togithub.com/mui/material-ui/issues/38204)) [@​samuelsycamore](https://togithub.com/samuelsycamore) - \[examples]\[material-ui] Add Material UI + Next.js (App Router) example in JS ([#​38323](https://togithub.com/mui/material-ui/issues/38323)) [@​samuelsycamore](https://togithub.com/samuelsycamore) - \[blog] Discord announcement blog ([#​38258](https://togithub.com/mui/material-ui/issues/38258)) [@​richbustos](https://togithub.com/richbustos) - \[blog] Fix 301 links to Toolpad [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[website] Updating Charts demo with real charts usage for MUI X marketing page ([#​38317](https://togithub.com/mui/material-ui/issues/38317)) [@​richbustos](https://togithub.com/richbustos) - \[website] Adjust styles of the Product section on the homepage ([#​38366](https://togithub.com/mui/material-ui/issues/38366)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[website] Add Nora teamMember card to 'About' ([#​38358](https://togithub.com/mui/material-ui/issues/38358)) [@​noraleonte](https://togithub.com/noraleonte) - \[website] Fix image layout shift ([#​38326](https://togithub.com/mui/material-ui/issues/38326)) [@​oliviertassinari](https://togithub.com/oliviertassinari) ##### Core - \[core] Fix docs demo export function consistency ([#​38191](https://togithub.com/mui/material-ui/issues/38191)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[core] Fix the link-check script on Windows ([#​38276](https://togithub.com/mui/material-ui/issues/38276)) [@​michaldudak](https://togithub.com/michaldudak) - \[core] Use [@​testing-library/user-event](https://togithub.com/testing-library/user-event) direct API ([#​38325](https://togithub.com/mui/material-ui/issues/38325)) [@​mj12albert](https://togithub.com/mj12albert) - \[core] Port GitHub workflow for ensuring triage label is present ([#​38312](https://togithub.com/mui/material-ui/issues/38312)) [@​DanailH](https://togithub.com/DanailH) - \[docs-infra] Consider files ending with .types.ts as props files ([#​37533](https://togithub.com/mui/material-ui/issues/37533)) [@​mnajdova](https://togithub.com/mnajdova) - \[docs-infra] Fix skip to content design ([#​38304](https://togithub.com/mui/material-ui/issues/38304)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs-infra] Add a general round of polish to the API content display ([#​38282](https://togithub.com/mui/material-ui/issues/38282)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[docs-infra] Make the side nav collapse animation snappier ([#​38259](https://togithub.com/mui/material-ui/issues/38259)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[docs-infra] New Component API design followup ([#​38183](https://togithub.com/mui/material-ui/issues/38183)) [@​cherniavskii](https://togithub.com/cherniavskii) - \[test] Remove unnecessary `async` keyword from test ([#​38373](https://togithub.com/mui/material-ui/issues/38373)) [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) All contributors of this release in alphabetical order: [@​alisasanib](https://togithub.com/alisasanib), [@​cherniavskii](https://togithub.com/cherniavskii), [@​DanailH](https://togithub.com/DanailH), [@​danilo-leal](https://togithub.com/danilo-leal), [@​iownthegame](https://togithub.com/iownthegame), [@​michaldudak](https://togithub.com/michaldudak), [@​mj12albert](https://togithub.com/mj12albert), [@​mnajdova](https://togithub.com/mnajdova), [@​noraleonte](https://togithub.com/noraleonte), [@​oliviertassinari](https://togithub.com/oliviertassinari), [@​richbustos](https://togithub.com/richbustos), [@​sai6855](https://togithub.com/sai6855), [@​samuelsycamore](https://togithub.com/samuelsycamore), [@​siriwatknp](https://togithub.com/siriwatknp), [@​VishruthR](https://togithub.com/VishruthR), [@​yash-thakur](https://togithub.com/yash-thakur), [@​zanivan](https://togithub.com/zanivan), [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) </details> <details> <summary>mui/mui-x (@​mui/x-date-pickers)</summary> ### [`v6.11.1`](https://togithub.com/mui/mui-x/blob/HEAD/CHANGELOG.md#6111) [Compare Source](https://togithub.com/mui/mui-x/compare/v6.11.0...v6.11.1) *Aug 11, 2023* We'd like to offer a big thanks to the 8 contributors who made this release possible. Here are some highlights ✨: - 💫 Add theme augmentation to `@mui/x-tree-view` - 📈 Enable charts customization using `slot` and `slotProps` props - 🌍 Improve Finnish (fi-FI) and Icelandic (is-IS) locales on the pickers - 🐞 Bugfixes - 📚 Documentation improvements ##### Data Grid ##### `@mui/x-data-grid@6.11.1` - \[DataGrid] `getCellAggregationResult`: Handle `null` `rowNode` case ([#​9915](https://togithub.com/mui/mui-x/issues/9915)) [@​romgrk](https://togithub.com/romgrk) ##### `@mui/x-data-grid-pro@6.11.1` [](https://mui.com/r/x-pro-svg-link) Same changes as in `@mui/x-data-grid@6.11.1`. ##### `@mui/x-data-grid-premium@6.11.1` [](https://mui.com/r/x-premium-svg-link) Same changes as in `@mui/x-data-grid-pro@6.11.1`. ##### Date Pickers ##### `@mui/x-date-pickers@6.11.1` - \[fields] Use `numeric` `inputmode` instead of `tel` ([#​9918](https://togithub.com/mui/mui-x/issues/9918)) [@​LukasTy](https://togithub.com/LukasTy) - \[pickers] Always respect locale when formatting meridiem ([#​9979](https://togithub.com/mui/mui-x/issues/9979)) [@​flaviendelangle](https://togithub.com/flaviendelangle) - \[pickers] Call `onChange` when selecting a shortcut with `changeImportance="set"` ([#​9974](https://togithub.com/mui/mui-x/issues/9974)) [@​flaviendelangle](https://togithub.com/flaviendelangle) - \[pickers] Refactor `themeAugmentation` `styleOverrides` ([#​9978](https://togithub.com/mui/mui-x/issues/9978)) [@​LukasTy](https://togithub.com/LukasTy) - \[l10n] Improve Finnish (fi-FI) locale ([#​9795](https://togithub.com/mui/mui-x/issues/9795)) [@​kurkle](https://togithub.com/kurkle) - \[l10n] Improve Icelandic (is-IS) locale ([#​9639](https://togithub.com/mui/mui-x/issues/9639)) [@​magnimarels](https://togithub.com/magnimarels) ##### `@mui/x-date-pickers-pro@6.11.1` [](https://mui.com/r/x-pro-svg-link) Same changes as in `@mui/x-date-pickers@6.11.1`. ##### Charts / `@mui/x-charts@v6.0.0-alpha.7` - \[charts] Fix label and tick alignment ([#​9952](https://togithub.com/mui/mui-x/issues/9952)) [@​LukasTy](https://togithub.com/LukasTy) - \[charts] Remove not functional component `styleOverrides` ([#​9996](https://togithub.com/mui/mui-x/issues/9996)) [@​LukasTy](https://togithub.com/LukasTy) - \[charts] Set custom ticks number ([#​9922](https://togithub.com/mui/mui-x/issues/9922)) [@​alexfauquette](https://togithub.com/alexfauquette) - \[charts] Use `slot`/`slotProps` for customization ([#​9744](https://togithub.com/mui/mui-x/issues/9744)) [@​alexfauquette](https://togithub.com/alexfauquette) - \[charts] Extend cheerful fiesta palette ([#​9980](https://togithub.com/mui/mui-x/issues/9980)) [@​noraleonte](https://togithub.com/noraleonte) ##### Tree View / `@mui/x-tree-view@v6.0.0-alpha.1` - \[TreeView] Add theme augmentation ([#​9967](https://togithub.com/mui/mui-x/issues/9967)) [@​flaviendelangle](https://togithub.com/flaviendelangle) ##### Docs - \[docs] Clarify the `shouldDisableClock` migration code options ([#​9920](https://togithub.com/mui/mui-x/issues/9920)) [@​LukasTy](https://togithub.com/LukasTy) ##### Core - \[core] Port GitHub workflow for ensuring triage label is present ([#​9924](https://togithub.com/mui/mui-x/issues/9924)) [@​DanailH](https://togithub.com/DanailH) - \[docs-infra] Fix the import samples in Api pages ([#​9898](https://togithub.com/mui/mui-x/issues/9898)) [@​alexfauquette](https://togithub.com/alexfauquette) </details> <details> <summary>aws/aws-cdk (aws-cdk)</summary> ### [`v2.91.0`](https://togithub.com/aws/aws-cdk/releases/tag/v2.91.0) [Compare Source](https://togithub.com/aws/aws-cdk/compare/v2.90.0...v2.91.0) ##### Features - **cdk:** `cdk diff --quiet` suppresses progress messages ([#​26652](https://togithub.com/aws/aws-cdk/issues/26652)) ([5777c88](https://togithub.com/aws/aws-cdk/commit/5777c88394e2834bd56d6a20ace41e8d317a0d85)), closes [#​26526](https://togithub.com/aws/aws-cdk/issues/26526) [#​26526](https://togithub.com/aws/aws-cdk/issues/26526) - **core:** Fn.findInMap supports default value ([#​26543](https://togithub.com/aws/aws-cdk/issues/26543)) ([8526feb](https://togithub.com/aws/aws-cdk/commit/8526febc8f4b6bf6b21d80b3acc3fc3a932401a4)), closes [#​26125](https://togithub.com/aws/aws-cdk/issues/26125) - **rds:** support aurora mysql 3.04.0 ([#​26651](https://togithub.com/aws/aws-cdk/issues/26651)) ([6de3344](https://togithub.com/aws/aws-cdk/commit/6de3344a6292daf402d920480961ee6e920fbdca)) - update AWS Service Spec ([#​26658](https://togithub.com/aws/aws-cdk/issues/26658)) ([d865d6c](https://togithub.com/aws/aws-cdk/commit/d865d6ce896b36210aeabdd3f465bbaf4bfa6201)) ##### Bug Fixes - **apigateway:** allowedOrigins are incorrectly interpreted as regexes ([#​26648](https://togithub.com/aws/aws-cdk/issues/26648)) ([cc52e2d](https://togithub.com/aws/aws-cdk/commit/cc52e2dc22df1434d27c38073bcd60421d2ec39e)), closes [#​26623](https://togithub.com/aws/aws-cdk/issues/26623) - **lambda:** Lambda Insights Layer ARN 1.0.229 in us-west-1 on ARM64 incorrect ([#​26626](https://togithub.com/aws/aws-cdk/issues/26626)) ([dabf868](https://togithub.com/aws/aws-cdk/commit/dabf868ed81235174b59d4990157b777ed23be64)), closes [/docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Lambda-Insights-extension-versionsARM.html#Lambda-Insights-extension-ARM-1](https://togithub.com/aws//docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Lambda-Insights-extension-versionsARM.html/issues/Lambda-Insights-extension-ARM-1) [#​26615](https://togithub.com/aws/aws-cdk/issues/26615) - **rds:** `grantConnect` fails to deploy when no user is specified for instances with secret credentials ([#​26647](https://togithub.com/aws/aws-cdk/issues/26647)) ([112b861](https://togithub.com/aws/aws-cdk/commit/112b8619d60dd9082be92cb811cc5c7f36f05fe1)), closes [#​26603](https://togithub.com/aws/aws-cdk/issues/26603) - **sam:** CfnFunction events are not rendered ([#​26679](https://togithub.com/aws/aws-cdk/issues/26679)) ([305a9cc](https://togithub.com/aws/aws-cdk/commit/305a9cc9a5cb18db0c2660c5354a2c43e8d36cf6)), closes [#​26637](https://togithub.com/aws/aws-cdk/issues/26637) - **triggers:** executed on update even when executeOnHandlerChange is false ([#​26676](https://togithub.com/aws/aws-cdk/issues/26676)) ([ed3aaf7](https://togithub.com/aws/aws-cdk/commit/ed3aaf7826884d3fdafd667fe7816fc57772632c)), closes [#​25939](https://togithub.com/aws/aws-cdk/issues/25939) - broken cross-region reference in aws-route53 ([#​26666](https://togithub.com/aws/aws-cdk/issues/26666)) ([ec61b09](https://togithub.com/aws/aws-cdk/commit/ec61b09f6f3f49ace109ec150064fb948635eee1)) *** #### Alpha modules (2.91.0-alpha.0) ##### Features - **appconfig:** L2 constructs ([#​26639](https://togithub.com/aws/aws-cdk/issues/26639)) ([e479bd4](https://togithub.com/aws/aws-cdk/commit/e479bd4353aefa5e48189d2c71f6067489afe141)) - **glue:** Job construct does not honor SparkUIProps S3 prefix when granting S3 access ([#​26696](https://togithub.com/aws/aws-cdk/issues/26696)) ([42250f1](https://togithub.com/aws/aws-cdk/commit/42250f1df04b7c2ffb637c8943444ed8c0dab2df)), closes [#​19862](https://togithub.com/aws/aws-cdk/issues/19862) ##### Bug Fixes - **glue:** synth time validation does not work in Python/Java/C#/Go ([#​26650](https://togithub.com/aws/aws-cdk/issues/26650)) ([dba8cf3](https://togithub.com/aws/aws-cdk/commit/dba8cf3877663b3911c6da724f2cc5906ea60159)), closes [#​26620](https://togithub.com/aws/aws-cdk/issues/26620) </details> <details> <summary>aws/aws-sdk-js (aws-sdk)</summary> ### [`v2.1435.0`](https://togithub.com/aws/aws-sdk-js/blob/HEAD/CHANGELOG.md#214350) [Compare Source](https://togithub.com/aws/aws-sdk-js/compare/v2.1434.0...v2.1435.0) - feature: AmplifyBackend: Adds sensitive trait to required input shapes. - feature: ConfigService: Updated ResourceType enum with new resource types onboarded by AWS Config in July 2023. - feature: EC2: Amazon EC2 P5 instances, powered by the latest NVIDIA H100 Tensor Core GPUs, deliver the highest performance in EC2 for deep learning (DL) and HPC applications. M7i-flex and M7i instances are next-generation general purpose instances powered by custom 4th Generation Intel Xeon Scalable processors. - feature: QuickSight: New Authentication method for Account subscription - IAM Identity Center. Hierarchy layout support, default column width support and related style properties for pivot table visuals. Non-additive topic field aggregations for Topic API - feature: SWF: This release adds new API parameters to override workflow task list for workflow executions. ### [`v2.1434.0`](https://togithub.com/aws/aws-sdk-js/blob/HEAD/CHANGELOG.md#214340) [Compare Source](https://togithub.com/aws/aws-sdk-js/compare/v2.1433.0...v2.1434.0) - feature: Connect: This release adds APIs to provision agents that are global / available in multiple AWS regions and distribute them across these regions by percentage. - feature: ELBv2: This release enables configuring security groups for Network Load Balancers - feature: Omics: This release adds instanceType to GetRunTask & ListRunTasks responses. - feature: SecretsManager: Add additional InvalidRequestException to list of possible exceptions for ListSecret. ### [`v2.1433.0`](https://togithub.com/aws/aws-sdk-js/blob/HEAD/CHANGELOG.md#214330) [Compare Source](https://togithub.com/aws/aws-sdk-js/compare/v2.1432.0...v2.1433.0) - feature: ChimeSDKVoice: Updating CreatePhoneNumberOrder, UpdatePhoneNumber and BatchUpdatePhoneNumbers APIs, adding phone number name - feature: FSx: For FSx for Lustre, add new data repository task type, RELEASE_DATA_FROM_FILESYSTEM, to release files that have been archived to S3. For FSx for Windows, enable support for configuring and updating SSD IOPS, and for updating storage type. For FSx for OpenZFS, add new deployment type, MULTI_AZ\_1. - feature: GuardDuty: Added autoEnable ALL to UpdateOrganizationConfiguration and DescribeOrganizationConfiguration APIs. - feature: SageMaker: This release adds support for cross account access for SageMaker Model Cards through AWS RAM. ### [`v2.1432.0`](https://togithub.com/aws/aws-sdk-js/blob/HEAD/CHANGELOG.md#214320) [Compare Source](https://togithub.com/aws/aws-sdk-js/compare/v2.1431.0...v2.1432.0) - feature: Backup: This release introduces a new logically air-gapped vault (Preview) in AWS Backup that stores immutable backup copies, which are locked by default and isolated with encryption using AWS owned keys. Logically air-gapped vault (Preview) allows secure recovery of application data across accounts. - feature: ElastiCache: Added support for cluster mode in online migration and test migration API - feature: ServiceCatalog: Introduce support for HashiCorp Terraform Cloud in Service Catalog by addying TERRAFORM_CLOUD product type in CreateProduct and CreateProvisioningArtifact API. ### [`v2.1431.0`](https://togithub.com/aws/aws-sdk-js/blob/HEAD/CHANGELOG.md#214310) [Compare Source](https://togithub.com/aws/aws-sdk-js/compare/v2.1430.0...v2.1431.0) - feature: Detective: Updated the email validation regex to be in line with the TLD name specifications. - feature: IVSRealTime: Add QUOTA_EXCEEDED and PUBLISHER_NOT_FOUND to EventErrorCode for stage health events. - feature: KinesisVideo: This release enables minimum of Images SamplingInterval to be as low as 200 milliseconds in Kinesis Video Stream Image feature. - feature: KinesisVideoArchivedMedia: This release enables minimum of Images SamplingInterval to be as low as 200 milliseconds in Kinesis Video Stream Image feature. </details> <details> <summary>evanw/esbuild (esbuild)</summary> ### [`v0.19.1`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0191) [Compare Source](https://togithub.com/evanw/esbuild/compare/v0.19.0...v0.19.1) - Fix a regression with `baseURL` in `tsconfig.json` ([#​3307](https://togithub.com/evanw/esbuild/issues/3307)) The previous release moved `tsconfig.json` path resolution before `--packages=external` checks to allow the [`paths` field](https://www.typescriptlang.org/tsconfig#paths) in `tsconfig.json` to avoid a package being marked as external. However, that reordering accidentally broke the behavior of the `baseURL` field from `tsconfig.json`. This release moves these path resolution rules around again in an attempt to allow both of these cases to work. - Parse TypeScript type arguments for JavaScript decorators ([#​3308](https://togithub.com/evanw/esbuild/issues/3308)) When parsing JavaScript decorators in TypeScript (i.e. with `experimentalDecorators` disabled), esbuild previously didn't parse type arguments. Type arguments will now be parsed starting with this release. For example: ```ts @​foo<number> @​bar<number, string>() class Foo {} ``` - Fix glob patterns matching extra stuff at the end ([#​3306](https://togithub.com/evanw/esbuild/issues/3306)) Previously glob patterns such as `./*.js` would incorrectly behave like `./*.js*` during path matching (also matching `.js.map` files, for example). This was never intentional behavior, and has now been fixed. - Change the permissions of esbuild's generated output files ([#​3285](https://togithub.com/evanw/esbuild/issues/3285)) This release changes the permissions of the output files that esbuild generates to align with the default behavior of node's [`fs.writeFileSync`](https://nodejs.org/api/fs.html#fswritefilesyncfile-data-options) function. Since most tools written in JavaScript use `fs.writeFileSync`, this should make esbuild more consistent with how other JavaScript build tools behave. The full Unix-y details: Unix permissions use three-digit octal notation where the three digits mean "user, group, other" in that order. Within a digit, 4 means "read" and 2 means "write" and 1 means "execute". So 6 == 4 + 2 == read + write. Previously esbuild uses 0644 permissions (the leading 0 means octal notation) but the permissions for `fs.writeFileSync` defaults to 0666, so esbuild will now use 0666 permissions. This does not necessarily mean that the files esbuild generates will end up having 0666 permissions, however, as there is another Unix feature called "umask" where the operating system masks out some of these bits. If your umask is set to 0022 then the generated files will have 0644 permissions, and if your umask is set to 0002 then the generated files will have 0664 permissions. - Fix a subtle CSS ordering issue with `@import` and `@layer` With this release, esbuild may now introduce additional `@layer` rules when bundling CSS to better preserve the layer ordering of the input code. Here's an example of an edge case where this matters: ```css /* entry.css */ @​import "a.css"; @​import "b.css"; @​import "a.css"; ``` ```css /* a.css */ @​layer a { body { background: red; } } ``` ```css /* b.css */ @​layer b { body { background: green; } } ``` This CSS should set the body background to `green`, which is what happens in the browser. Previously esbuild generated the following output which incorrectly sets the body background to `red`: ```css /* b.css */ @​layer b { body { background: green; } } /* a.css */ @​layer a { body { background: red; } } ``` This difference in behavior is because the browser evaluates `a.css` + `b.css` + `a.css` (in CSS, each `@import` is replaced with a copy of the imported file) while esbuild was only writing out `b.css` + `a.css`. The first copy of `a.css` wasn't being written out by esbuild for two reasons: 1) bundlers care about code size and try to avoid emitting duplicate CSS and 2) when there are multiple copies of a CSS file, normally only the *last* copy matters since the last declaration with equal specificity wins in CSS. However, `@layer` was recently added to CSS and for `@layer` the *first* copy matters because layers are ordered using their first location in source code order. This introduction of `@layer` means esbuild needs to change its bundling algorithm. An easy solution would be for esbuild to write out `a.css` twice, but that would be inefficient. So what I'm going to try to have esbuild do with this release is to write out an abbreviated form of the first copy of a CSS file that only includes the `@layer` information, and then still only write out the full CSS file once for the last copy. So esbuild's output for this edge case now looks like this: ```css /* a.css */ @​layer a; /* b.css */ @​layer b { body { background: green; } } /* a.css */ @​layer a { body { background: red; } } ``` The behavior of the bundled CSS now matches the behavior of the unbundled CSS. You may be wondering why esbuild doesn't just write out `a.css` first followed by `b.css`. That would work in this case but it doesn't work in general because for any rules outside of a `@layer` rule, the last copy shold still win instead of the first copy. - Fix a bug with esbuild's TypeScript type definitions ([#​3299](https://togithub.com/evanw/esbuild/pull/3299)) This release fixes a copy/paste error with the TypeScript type definitions for esbuild's JS API: ```diff export interface TsconfigRaw { compilerOptions?: { - baseUrl?: boolean + baseUrl?: string ... } } ``` This fix was contributed by [@​privatenumber](https://togithub.com/privatenumber). ### [`v0.19.0`](https://togithub.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0190) [Compare Source](https://togithub.com/evanw/esbuild/compare/v0.18.20...v0.19.0) **This release deliberately contains backwards-incompatible changes.** To avoid automatically picking up releases like this, you should either be pinning the exact version of `esbuild` in your `package.json` file (recommended) or be using a version range syntax that only accepts patch upgrades such as `^0.18.0` or `~0.18.0`. See npm's documentation about [semver](https://docs.npmjs.com/cli/v6/using-npm/semver/) for more information. - Handle import paths containing wildcards ([#​56](https://togithub.com/evanw/esbuild/issues/56), [#​700](https://togithub.com/evanw/esbuild/issues/700), [#​875](https://togithub.com/evanw/esbuild/issues/875), [#​976](https://togithub.com/evanw/esbuild/issues/976), [#​2221](https://togithub.com/evanw/esbuild/issues/2221), [#​2515](https://togithub.com/evanw/esbuild/issues/2515)) This release introduces wildcards in import paths in two places: - **Entry points** You can now pass a string containing glob-style wildcards such as `./src/*.ts` as an entry point and esbuild will search the file system for files that match the pattern. This can be used to easily pass esbuild all files with a certain extension on the command line in a cross-platform way. Previously you had to rely on the shell to perform glob expansion, but that is obviously shell-dependent and didn't work at all on Windows. Note that to use this feature on the command line you will have to quote the pattern so it's passed verbatim to esbuild without any expansion by the shell. Here's an example: ```sh esbuild --minify "./src/*.ts" --outdir=out ``` Specifically the `*` character will match any character except for the `/` character, and the `/**/` character sequence will match a path separator followed by zero or more path elements. Other wildcard operators found in glob patterns such as `?` and `[...]` are not supported. - **Run-time import paths** Import paths that are evaluated at run-time can now be bundled in certain limited situations. The import path expression must be a form of string concatenation and must start with either `./` or `../`. Each non-string expression in the string concatenation chain becomes a wildcard. The `*` wildcard is chosen unless the previous character is a `/`, in which case the `/**/*` character sequence is used. Some examples: ```js // These two forms are equivalent const json1 = await import('./data/' + kind + '.json') const json2 = await import(`./data/${kind}.json`) ``` This feature works with `require(...)` and `import(...)` because these can all accept run-time expressions. It does not work with `import` and `export` statements because these cannot accept run-time expressions. If you want to prevent esbuild from trying to bundle these imports, you should move the string concatenation expression outside of the `require(...)` or `import(...)`. For example: ```js // This will be bundled const json1 = await import('./data/' + kind + '.json') // This will not be bundled const path = './data/' + kind + '.json' const json2 = await import(path) ``` Note that using this feature means esbuild will potentially do a lot of file system I/O to find all possible files that might match the pattern. This is by design, and is not a bug. If this is a concern, I recommend either avoiding the `/**/` pattern (e.g. by not putting a `/` before a wildcard) or using this feature only in directory subtrees which do not have many files that don't match the pattern (e.g. making a subdirectory for your JSON files and explicitly including that subdirectory in the pattern). - Path aliases in `tsconfig.json` no longer count as packages ([#​2792](https://togithub.com/evanw/esbuild/issues/2792), [#​3003](https://togithub.com/evanw/esbuild/issues/3003), [#​3160](https://togithub.com/evanw/esbuild/issues/3160), [#​3238](https://togithub.com/evanw/esbuild/issues/3238)) Setting `--packages=external` tells esbuild to make all import paths external when they look like a package path. For example, an import of `./foo/bar` is not a package path and won't be external while an import of `foo/bar` is a package path and will be external. However, the [`paths` field](https://www.typescriptlang.org/tsconfig#paths) in `tsconfig.json` allows you to create import paths that look like package paths but that do not resolve to packages. People do not want these paths to count as package paths. So with this release, the behavior of `--packages=external` has been changed to happen after the `tsconfig.json` path remapping step. - Use the `local-css` loader for `.module.css` files by default ([#​20](https://togithub.com/evanw/esbuild/issues/20)) With this release the `css` loader is still used for `.css` files except that `.module.css` files now use the `local-css` loader. This is a common convention in the web development community. </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 5am on sunday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/SvenKirschbaum/share.kirschbaum.cloud).
That comment might actually be related to a different problem with imports. |
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | Type | Update | |---|---|---|---|---|---|---|---| | [@mui/lab](https://mui.com/material-ui/about-the-lab/) ([source](https://togithub.com/mui/material-ui)) | [`5.0.0-alpha.134` -> `5.0.0-alpha.142`](https://renovatebot.com/diffs/npm/@mui%2flab/5.0.0-alpha.134/5.0.0-alpha.142) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@mui/material](https://mui.com/material-ui/getting-started/) ([source](https://togithub.com/mui/material-ui)) | [`5.13.6` -> `5.14.7`](https://renovatebot.com/diffs/npm/@mui%2fmaterial/5.13.6/5.14.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@testing-library/jest-dom](https://togithub.com/testing-library/jest-dom) | [`6.0.1` -> `6.1.2`](https://renovatebot.com/diffs/npm/@testing-library%2fjest-dom/6.0.1/6.1.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@types/jest](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jest) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) | [`29.5.2` -> `29.5.4`](https://renovatebot.com/diffs/npm/@types%2fjest/29.5.2/29.5.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/plotly.js](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/plotly.js) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) | [`2.12.18` -> `2.12.26`](https://renovatebot.com/diffs/npm/@types%2fplotly.js/2.12.18/2.12.26) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) | [`18.2.14` -> `18.2.21`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.14/18.2.21) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/react-dom](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-dom) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) | [`18.2.6` -> `18.2.7`](https://renovatebot.com/diffs/npm/@types%2freact-dom/18.2.6/18.2.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [jest-canvas-mock](https://togithub.com/hustcc/jest-canvas-mock) | [`2.5.1` -> `2.5.2`](https://renovatebot.com/diffs/npm/jest-canvas-mock/2.5.1/2.5.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [katex](https://katex.org) ([source](https://togithub.com/KaTeX/KaTeX)) | [`0.16.7` -> `0.16.8`](https://renovatebot.com/diffs/npm/katex/0.16.7/0.16.8) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [mathjs](https://mathjs.org) ([source](https://togithub.com/josdejong/mathjs)) | [`11.8.2` -> `11.10.0`](https://renovatebot.com/diffs/npm/mathjs/11.8.2/11.10.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [node](https://togithub.com/nodejs/node) | `18.16.1` -> `18.17.1` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | minor | | [plotly.js](https://togithub.com/plotly/plotly.js) | [`2.24.2` -> `2.26.0`](https://renovatebot.com/diffs/npm/plotly.js/2.24.2/2.26.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [typescript](https://www.typescriptlang.org/) ([source](https://togithub.com/Microsoft/TypeScript)) | [`5.1.3` -> `5.2.2`](https://renovatebot.com/diffs/npm/typescript/5.1.3/5.2.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | --- ### Release Notes <details> <summary>mui/material-ui (@​mui/lab)</summary> ### [`v5.0.0-alpha.142`](https://togithub.com/mui/material-ui/compare/a1f511dd6ed9adba561e2ba00e1348136ed656db...8a09d535f101aac98935f82b76345ca9691b5e2b) [Compare Source](https://togithub.com/mui/material-ui/compare/a1f511dd6ed9adba561e2ba00e1348136ed656db...8a09d535f101aac98935f82b76345ca9691b5e2b) ### [`v5.0.0-alpha.139`](https://togithub.com/mui/material-ui/compare/2deea341c9abfb640f22520e0c277027f3f91cd0...40f4b275022f03e48cf4809cd53d0d0dabb40424) [Compare Source](https://togithub.com/mui/material-ui/compare/2deea341c9abfb640f22520e0c277027f3f91cd0...40f4b275022f03e48cf4809cd53d0d0dabb40424) ### [`v5.0.0-alpha.138`](https://togithub.com/mui/material-ui/compare/f2e5ded80e94407f63a27eadb018139d6f967313...2deea341c9abfb640f22520e0c277027f3f91cd0) [Compare Source](https://togithub.com/mui/material-ui/compare/f2e5ded80e94407f63a27eadb018139d6f967313...2deea341c9abfb640f22520e0c277027f3f91cd0) ### [`v5.0.0-alpha.137`](https://togithub.com/mui/material-ui/compare/2529e3aaaaec2c9f8e8cf669e58bb9c81db5a6d8...f2e5ded80e94407f63a27eadb018139d6f967313) [Compare Source](https://togithub.com/mui/material-ui/compare/2529e3aaaaec2c9f8e8cf669e58bb9c81db5a6d8...f2e5ded80e94407f63a27eadb018139d6f967313) ### [`v5.0.0-alpha.135`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#muilab500-alpha135) - \[Timeline] Fix position `alternate-reverse` generated classname ([#​37678](https://togithub.com/mui/material-ui/issues/37678)) [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) </details> <details> <summary>mui/material-ui (@​mui/material)</summary> ### [`v5.14.7`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#5147) [Compare Source](https://togithub.com/mui/material-ui/compare/v5.14.6...v5.14.7) <!-- generated comparing v5.14.6..master --> *Aug 29, 2023* A big thanks to the 11 contributors who made this release possible. This release focuses primarily on 🐛 bug fixes, 📚 documentation, and ⚙️ infrastructure improvements. ##### `@mui/material@5.14.7` - <!-- 17 -->\[Autocomplete] Fix listbox opened unexpectedly when component is `disabled` ([#​38611](https://togithub.com/mui/material-ui/issues/38611)) [@​mj12albert](https://togithub.com/mj12albert) - <!-- 03 -->\[Select]\[material-ui] Fix select menu moving on scroll when disableScrollLock is true ([#​37773](https://togithub.com/mui/material-ui/issues/37773)) [@​VishruthR](https://togithub.com/VishruthR) ##### `@mui/base@5.0.0-beta.13` - <!-- 16 -->\[useButton]\[base-ui] Accept arbitrary props in getRootProps and forward them ([#​38475](https://togithub.com/mui/material-ui/issues/38475)) [@​DiegoAndai](https://togithub.com/DiegoAndai) ##### `@mui/zero-runtime@0.0.1-alpha.1` - <!-- 02 -->\[system]\[zero]\[tag] Add support for sx prop ([#​38535](https://togithub.com/mui/material-ui/issues/38535)) [@​brijeshb42](https://togithub.com/brijeshb42) ##### Docs - <!-- 10 -->\[docs] Number Input docs fixes ([#​38521](https://togithub.com/mui/material-ui/issues/38521)) [@​mj12albert](https://togithub.com/mj12albert) - <!-- 09 -->\[docs] Show all the code in the usage section ([#​38691](https://togithub.com/mui/material-ui/issues/38691)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 06 -->\[docs]\[joy-ui] Change the customization and how-to guides docs tree ([#​38396](https://togithub.com/mui/material-ui/issues/38396)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 05 -->\[docs]\[lab]\[LoadingButton] Improve `loading` prop documentation ([#​38625](https://togithub.com/mui/material-ui/issues/38625)) [@​sai6855](https://togithub.com/sai6855) - <!-- 04 -->\[docs]\[material-ui] Format `key` prop JSDoc description in `Snackbar` component code correctly ([#​38603](https://togithub.com/mui/material-ui/issues/38603)) [@​jaydenseric](https://togithub.com/jaydenseric) ##### Core - <!-- 15 -->\[core] Add use-client to custom icons ([#​38132](https://togithub.com/mui/material-ui/issues/38132)) [@​mj12albert](https://togithub.com/mj12albert) - <!-- 14 -->\[core] Remove unnecessary `@types/jsdom` ([#​38657](https://togithub.com/mui/material-ui/issues/38657)) [@​renovate](https://togithub.com/renovate)\[bot] - <!-- 13 -->\[core] Improve sponsors GA labels ([#​38649](https://togithub.com/mui/material-ui/issues/38649)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 12 -->\[core] Fix ESM issues with regression tests ([#​37963](https://togithub.com/mui/material-ui/issues/37963)) [@​Janpot](https://togithub.com/Janpot) - <!-- 11 -->\[core] Potential fix for intermittent ci crashes in e2e test ([#​38614](https://togithub.com/mui/material-ui/issues/38614)) [@​Janpot](https://togithub.com/Janpot) - <!-- 08 -->\[docs-infra] Adjust the Material You playground demo design ([#​38636](https://togithub.com/mui/material-ui/issues/38636)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 07 -->\[docs-infra] Hide the SkipLink button if user prefers reduced motion ([#​38632](https://togithub.com/mui/material-ui/issues/38632)) [@​DerTimonius](https://togithub.com/DerTimonius) - <!-- 01 -->\[website] Add tiny fixes the homepage Sponsors section ([#​38635](https://togithub.com/mui/material-ui/issues/38635)) [@​danilo-leal](https://togithub.com/danilo-leal) All contributors of this release in alphabetical order: [@​brijeshb42](https://togithub.com/brijeshb42), [@​danilo-leal](https://togithub.com/danilo-leal), [@​DerTimonius](https://togithub.com/DerTimonius), [@​DiegoAndai](https://togithub.com/DiegoAndai), [@​Janpot](https://togithub.com/Janpot), [@​jaydenseric](https://togithub.com/jaydenseric), [@​mj12albert](https://togithub.com/mj12albert), [@​oliviertassinari](https://togithub.com/oliviertassinari), [@​renovate](https://togithub.com/renovate)\[bot], [@​sai6855](https://togithub.com/sai6855), [@​VishruthR](https://togithub.com/VishruthR) ### [`v5.14.6`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#5146) [Compare Source](https://togithub.com/mui/material-ui/compare/v5.14.5...v5.14.6) <!-- generated comparing v5.14.5..master --> *Aug 23, 2023* A big thanks to the 21 contributors who made this release possible. Here are some highlights ✨: - 🚀 Added the [Popup](https://mui.com/base-ui/react-popup/) component to Base UI ([#​37960](https://togithub.com/mui/material-ui/issues/37960)) [@​michaldudak](https://togithub.com/michaldudak) It's intended to replace the Popper component, which uses the deprecated Popper JS library. The Popup is built on top of Floating UI and has a similar API to the Popper. - 🚀 Added the [Accordion](https://mui.com/joy-ui/react-accordion/) component to Joy UI ([#​38164](https://togithub.com/mui/material-ui/issues/38164)) [@​siriwatknp](https://togithub.com/siriwatknp) - 🚀 Added InputBase and ButtonBase components to `material-next` ([#​38319](https://togithub.com/mui/material-ui/issues/38319)) [@​DiegoAndai](https://togithub.com/DiegoAndai) [@​mj12albert](https://togithub.com/mj12albert) - 🔋 First iteration on the zero-runtime styling engine compatible with Server Components ([#​38378](https://togithub.com/mui/material-ui/issues/38378)) [@​brijeshb42](https://togithub.com/brijeshb42) ##### `@mui/material@5.14.6` - \[Modal] Update it to use the useModal hook ([#​38498](https://togithub.com/mui/material-ui/issues/38498)) [@​mnajdova](https://togithub.com/mnajdova) - \[Select] Add `root` class to `SelectClasses` ([#​38424](https://togithub.com/mui/material-ui/issues/38424)) [@​sai6855](https://togithub.com/sai6855) - \[Skeleton] Soften the pulse animation ([#​38506](https://togithub.com/mui/material-ui/issues/38506)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[TextField] Fix onClick regressions handling changes ([#​38474](https://togithub.com/mui/material-ui/issues/38474)) [@​mj12albert](https://togithub.com/mj12albert) - \[TextField] Fix TextField onClick test ([#​38597](https://togithub.com/mui/material-ui/issues/38597)) [@​mj12albert](https://togithub.com/mj12albert) ##### `@mui/base@5.0.0-beta.12` - \[Popup] New component ([#​37960](https://togithub.com/mui/material-ui/issues/37960)) [@​michaldudak](https://togithub.com/michaldudak) ##### `@mui/joy@5.0.0-beta.3` - \[Accordion] Add Joy UI Accordion components ([#​38164](https://togithub.com/mui/material-ui/issues/38164)) [@​siriwatknp](https://togithub.com/siriwatknp) - \[Select] Add `required` prop ([#​38167](https://togithub.com/mui/material-ui/issues/38167)) [@​siriwatknp](https://togithub.com/siriwatknp) - Miscellaneous fixes ([#​38462](https://togithub.com/mui/material-ui/issues/38462)) [@​siriwatknp](https://togithub.com/siriwatknp) ##### `@mui/material-next@6.0.0-alpha.98` - \[ButtonBase] Add ButtonBase component ([#​38319](https://togithub.com/mui/material-ui/issues/38319)) [@​DiegoAndai](https://togithub.com/DiegoAndai) - \[Input] Add InputBase component ([#​38392](https://togithub.com/mui/material-ui/issues/38392)) [@​mj12albert](https://togithub.com/mj12albert) ##### `@mui/zero-runtime@0.0.1-alpha.0` - Implementation of styled tag processor for linaria ([#​38378](https://togithub.com/mui/material-ui/issues/38378)) [@​brijeshb42](https://togithub.com/brijeshb42) ##### Docs - \[blog] Clarify tree view move [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs] Improve the "Understanding MUI packages" page images ([#​38619](https://togithub.com/mui/material-ui/issues/38619)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[docs]\[base-ui] Revise the structure of the Component docs ([#​38529](https://togithub.com/mui/material-ui/issues/38529)) [@​samuelsycamore](https://togithub.com/samuelsycamore) - \[docs]\[base-ui] Fix Menu Hooks demo ([#​38479](https://togithub.com/mui/material-ui/issues/38479)) [@​homerchen19](https://togithub.com/homerchen19) - \[docs]\[base-ui] Correct the MUI System quickstart example ([#​38496](https://togithub.com/mui/material-ui/issues/38496)) [@​michaldudak](https://togithub.com/michaldudak) - \[docs]\[base-ui] Add Tailwind & plain CSS demos for Autocomplete page ([#​38157](https://togithub.com/mui/material-ui/issues/38157)) [@​mj12albert](https://togithub.com/mj12albert) - \[docs]\[base-ui] Add Tailwind CSS + plain CSS demo on the Input page ([#​38302](https://togithub.com/mui/material-ui/issues/38302)) [@​alisasanib](https://togithub.com/alisasanib) - \[docs]\[base-ui] Add Tailwind CSS + plain CSS demo on the Snackbar, Badge, Switch pages ([#​38425](https://togithub.com/mui/material-ui/issues/38425)) [@​alisasanib](https://togithub.com/alisasanib) - \[docs]\[base-ui] Add Tailwind CSS + plain CSS demo on the Slider page ([#​38413](https://togithub.com/mui/material-ui/issues/38413)) [@​alisasanib](https://togithub.com/alisasanib) - \[docs]\[base-ui] Add Tailwind CSS + plain CSS demo on the Select page ([#​38367](https://togithub.com/mui/material-ui/issues/38367)) [@​alisasanib](https://togithub.com/alisasanib) - \[docs]\[joy-ui] Fix typo: Classname -> Class name for consistency ([#​38510](https://togithub.com/mui/material-ui/issues/38510)) [@​alexfauquette](https://togithub.com/alexfauquette) - \[docs]\[joy-ui] Revise the theme color page ([#​38402](https://togithub.com/mui/material-ui/issues/38402)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[docs]\[joy-ui] Sort templates by popularity ([#​38490](https://togithub.com/mui/material-ui/issues/38490)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs]\[joy-ui] Fix the `fullWidth` prop description for the Input ([#​38545](https://togithub.com/mui/material-ui/issues/38545)) [@​0xturner](https://togithub.com/0xturner) - \[docs]\[joy-ui] Updated the List playground demo ([#​38499](https://togithub.com/mui/material-ui/issues/38499)) [@​zanivan](https://togithub.com/zanivan) - \[docs]\[joy-ui] Changed bgcolor of the Playground demo ([#​38502](https://togithub.com/mui/material-ui/issues/38502)) [@​zanivan](https://togithub.com/zanivan) - \[docs]\[material-ui] Fix key warning in SimpleDialog demo ([#​38580](https://togithub.com/mui/material-ui/issues/38580)) [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) - \[docs]\[material-ui] Fixed Google Fonts link for material two-tone icons in CodeSandbox and Stackblitz ([#​38247](https://togithub.com/mui/material-ui/issues/38247)) [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) - \[docs]\[material-ui] Fix the Drawer's `onClose` API docs ([#​38273](https://togithub.com/mui/material-ui/issues/38273)) [@​johnmatthiggins](https://togithub.com/johnmatthiggins) - \[docs]\[material-ui] Improve nav link tab example ([#​38315](https://togithub.com/mui/material-ui/issues/38315)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs]\[material-ui] Fix missing import in the styled engine guide ([#​38450](https://togithub.com/mui/material-ui/issues/38450)) [@​codersjj](https://togithub.com/codersjj) - \[docs]\[material-ui]\[Dialog] Improve screen reader announcement of Customized Dialog ([#​38592](https://togithub.com/mui/material-ui/issues/38592)) [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) - \[docs] Add 3rd party libraries integration examples for Joy Input ([#​38541](https://togithub.com/mui/material-ui/issues/38541)) [@​siriwatknp](https://togithub.com/siriwatknp) - \[docs] Hide translation call to action ([#​38449](https://togithub.com/mui/material-ui/issues/38449)) [@​cristianmacedo](https://togithub.com/cristianmacedo) - \[docs] Fix codemod name in changelog of v5.14.4 ([#​38593](https://togithub.com/mui/material-ui/issues/38593)) [@​GresilleSiffle](https://togithub.com/GresilleSiffle) - \[docs] More space for theme builder ([#​38532](https://togithub.com/mui/material-ui/issues/38532)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs] Fix the math symbol of the width sx prop range [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs] Fix typo on a11y section of Tabs [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs] Clarify System peer dependencies [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs] Fix horizontal scrollbar [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs] Code style convention [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs] Fix typo in Base UI [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs] Update the backers page ([#​38505](https://togithub.com/mui/material-ui/issues/38505)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[docs] Add stray design adjustments to the docs ([#​38501](https://togithub.com/mui/material-ui/issues/38501)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[docs] Use IBM Plex Sans in Tailwind CSS demos ([#​38464](https://togithub.com/mui/material-ui/issues/38464)) [@​mnajdova](https://togithub.com/mnajdova) - \[docs] Fix SEO issues reported by ahrefs ([#​38423](https://togithub.com/mui/material-ui/issues/38423)) [@​oliviertassinari](https://togithub.com/oliviertassinari) ##### Examples - \[examples] Start to remove Gatsby ([#​38567](https://togithub.com/mui/material-ui/issues/38567)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[examples]\[joy-ui] Fix Joy UI example CLI ([#​38531](https://togithub.com/mui/material-ui/issues/38531)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[examples]\[joy-ui] Improve example when using Next Font ([#​38540](https://togithub.com/mui/material-ui/issues/38540)) [@​mwskwong](https://togithub.com/mwskwong) ##### Core - \[CHANGELOG] Fix issues in highlight [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[core] Remove redundant `@material-ui/` aliases from regression test webpack config ([#​38574](https://togithub.com/mui/material-ui/issues/38574)) [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) - \[core] Fix CI error [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[core] Remove unnecessary Box ([#​38461](https://togithub.com/mui/material-ui/issues/38461)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[core] Set GitHub Action top level permission [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs-infra]\[joy-ui] Polish the usage and CSS vars playgrounds ([#​38600](https://togithub.com/mui/material-ui/issues/38600)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[docs-infra] Support link title ([#​38579](https://togithub.com/mui/material-ui/issues/38579)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs-infra] Fix ad layout shift ([#​38622](https://togithub.com/mui/material-ui/issues/38622)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs-infra] Add light tweaks to the ad container ([#​38504](https://togithub.com/mui/material-ui/issues/38504)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[docs-infra] Fix anchor scroll without tabs ([#​38586](https://togithub.com/mui/material-ui/issues/38586)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs-infra] Retain velocity animation speed ([#​38470](https://togithub.com/mui/material-ui/issues/38470)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs-infra] Follow import and CSS token standard ([#​38508](https://togithub.com/mui/material-ui/issues/38508)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs-infra] Add icon to callouts ([#​38525](https://togithub.com/mui/material-ui/issues/38525)) [@​alexfauquette](https://togithub.com/alexfauquette) - \[docs-infra] Fix the anchor link on headings ([#​38528](https://togithub.com/mui/material-ui/issues/38528)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[docs-infra] Cleanup code on demo code block expansion ([#​38522](https://togithub.com/mui/material-ui/issues/38522)) [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) - \[docs-infra] Improve the heading buttons positioning ([#​38428](https://togithub.com/mui/material-ui/issues/38428)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[docs-infra] Customize the blockquote design ([#​38503](https://togithub.com/mui/material-ui/issues/38503)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[docs-infra] Improve the alert before a negative feedback ([#​38500](https://togithub.com/mui/material-ui/issues/38500)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[docs-infra] Fix GoogleAnalytics missing event for code copy ([#​38469](https://togithub.com/mui/material-ui/issues/38469)) [@​alexfauquette](https://togithub.com/alexfauquette) - \[docs-infra] Improve affordance on the code block expansion ([#​38421](https://togithub.com/mui/material-ui/issues/38421)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[website] Fine-tune the branding theme buttons ([#​38588](https://togithub.com/mui/material-ui/issues/38588)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[website] Improve the Base UI hero section demo ([#​38585](https://togithub.com/mui/material-ui/issues/38585)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[website] Add stray design improvements to the Material UI page ([#​38590](https://togithub.com/mui/material-ui/issues/38590)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[website] Fix mobile view Material UI page ([#​38568](https://togithub.com/mui/material-ui/issues/38568)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[website] Fix reference to the data grid [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[website] Configure Apple Pay [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[website] Fix template link on the homepage ([#​38471](https://togithub.com/mui/material-ui/issues/38471)) [@​danilo-leal](https://togithub.com/danilo-leal) All contributors of this release in alphabetical order: [@​0xturner](https://togithub.com/0xturner), [@​alexfauquette](https://togithub.com/alexfauquette), [@​alisasanib](https://togithub.com/alisasanib), [@​brijeshb42](https://togithub.com/brijeshb42), [@​codersjj](https://togithub.com/codersjj), [@​cristianmacedo](https://togithub.com/cristianmacedo), [@​danilo-leal](https://togithub.com/danilo-leal), [@​DiegoAndai](https://togithub.com/DiegoAndai), [@​GresilleSiffle](https://togithub.com/GresilleSiffle), [@​homerchen19](https://togithub.com/homerchen19), [@​johnmatthiggins](https://togithub.com/johnmatthiggins), [@​michaldudak](https://togithub.com/michaldudak), [@​mj12albert](https://togithub.com/mj12albert), [@​mnajdova](https://togithub.com/mnajdova), [@​mwskwong](https://togithub.com/mwskwong), [@​oliviertassinari](https://togithub.com/oliviertassinari), [@​sai6855](https://togithub.com/sai6855), [@​samuelsycamore](https://togithub.com/samuelsycamore), [@​siriwatknp](https://togithub.com/siriwatknp), [@​zanivan](https://togithub.com/zanivan), [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) ### [`v5.14.5`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#5145) [Compare Source](https://togithub.com/mui/material-ui/compare/v5.14.4...v5.14.5) <!-- generated comparing v5.14.4..master --> *Aug 14, 2023* A big thanks to the 17 contributors who made this release possible. Here are some highlights ✨: - [@​mnajdova](https://togithub.com/mnajdova) [made it easier to use third-party components in Base UI slots](https://mui.com/base-ui/getting-started/customization/#overriding-subcomponent-slots) with the introduction of the `prepareForSlot` utility ([#​38138](https://togithub.com/mui/material-ui/issues/38138)) ##### `@mui/material@5.14.5` - <!-- 04 -->\[TextField] Fix to handle `onClick` on root element ([#​38072](https://togithub.com/mui/material-ui/issues/38072)) [@​LukasTy](https://togithub.com/LukasTy) ##### `@mui/codemod@5.14.5` - <!-- 31 -->\[codemod] Add v5.0.0/tree-view-moved-to-x codemod ([#​38248](https://togithub.com/mui/material-ui/issues/38248)) [@​flaviendelangle](https://togithub.com/flaviendelangle) ##### `@mui/joy@5.0.0-beta.2` - <!-- 07 -->\[Input]\[joy-ui] Fix the `FormHelperText` icon color ([#​38387](https://togithub.com/mui/material-ui/issues/38387)) [@​TheNatkat](https://togithub.com/TheNatkat) - <!-- 06 -->\[Skeleton]\[joy-ui] Soften the pulse animation ([#​38384](https://togithub.com/mui/material-ui/issues/38384)) [@​zanivan](https://togithub.com/zanivan) - <!-- 05 -->\[TabPanel]\[joy-ui] Add `keepMounted` prop ([#​38293](https://togithub.com/mui/material-ui/issues/38293)) [@​decadef20](https://togithub.com/decadef20) ##### `@mui/base@5.0.0-beta.11` - <!-- 30 -->\[base-ui] Remove the legacy Extend\* types ([#​38184](https://togithub.com/mui/material-ui/issues/38184)) [@​michaldudak](https://togithub.com/michaldudak) - <!-- 29 -->\[base-ui] Add `useModal` hook ([#​38187](https://togithub.com/mui/material-ui/issues/38187)) [@​mnajdova](https://togithub.com/mnajdova) - <!-- 28 -->\[base-ui] Add `prepareForSlot` util ([#​38138](https://togithub.com/mui/material-ui/issues/38138)) [@​mnajdova](https://togithub.com/mnajdova) - <!-- 26 -->\[useButton]\[base-ui] Fix tabIndex not being forwarded ([#​38417](https://togithub.com/mui/material-ui/issues/38417)) [@​DiegoAndai](https://togithub.com/DiegoAndai) - <!-- 25 -->\[useButton]\[base-ui] Fix onFocusVisible not being handled ([#​38399](https://togithub.com/mui/material-ui/issues/38399)) [@​DiegoAndai](https://togithub.com/DiegoAndai) ##### Docs - <!-- 32 -->\[blog] Blog post for MUI X mid v6. Date Pickers, Data Grid, and Charts ([#​38241](https://togithub.com/mui/material-ui/issues/38241)) [@​richbustos](https://togithub.com/richbustos) - <!-- 35 -->\[docs]\[base-ui] Update number input API docs ([#​38363](https://togithub.com/mui/material-ui/issues/38363)) [@​mj12albert](https://togithub.com/mj12albert) - <!-- 29 -->\[docs] Improve page transition speed ([#​38394](https://togithub.com/mui/material-ui/issues/38394)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 28 -->\[docs] Improve examples ([#​38398](https://togithub.com/mui/material-ui/issues/38398)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 19 -->\[docs]\[docs] Add `FileUpload` demo ([#​38420](https://togithub.com/mui/material-ui/issues/38420)) [@​sai6855](https://togithub.com/sai6855) - <!-- 18 -->\[docs]\[joy-ui] Refine the Order Dashboard template design ([#​38395](https://togithub.com/mui/material-ui/issues/38395)) [@​zanivan](https://togithub.com/zanivan) - <!-- 17 -->\[docs]\[material-ui]\[joy-ui] Simplify the Quickstart section on the Usage page ([#​38385](https://togithub.com/mui/material-ui/issues/38385)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 16 -->\[docs]\[Menu]\[joy] Explain how to control the open state ([#​38355](https://togithub.com/mui/material-ui/issues/38355)) [@​michaldudak](https://togithub.com/michaldudak) - <!-- 15 -->\[docs]\[material] Revise the Support page ([#​38207](https://togithub.com/mui/material-ui/issues/38207)) [@​samuelsycamore](https://togithub.com/samuelsycamore) - <!-- 14 -->\[docs]\[material-ui] Remove incorrect `aria-label`s in extended variant examples of Floating Action Button ([#​37170](https://togithub.com/mui/material-ui/issues/37170)) [@​ashleykolodziej](https://togithub.com/ashleykolodziej) - <!-- 13 -->\[docs]\[material-ui] Adjust slightly the installation page content ([#​38380](https://togithub.com/mui/material-ui/issues/38380)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 12 -->\[docs]\[Switch] Fix the readOnly class name in docs ([#​38277](https://togithub.com/mui/material-ui/issues/38277)) [@​michaldudak](https://togithub.com/michaldudak) - <!-- 11 -->\[docs]\[TablePagination] Add Tailwind CSS & plain CSS introduction demo ([#​38286](https://togithub.com/mui/material-ui/issues/38286)) [@​mnajdova](https://togithub.com/mnajdova) ##### Examples - <!-- 10 -->\[examples] Add Joy UI + Vite.js + TypeScript example app ([#​37406](https://togithub.com/mui/material-ui/issues/37406)) [@​nithins1](https://togithub.com/nithins1) ##### Core - <!-- 30 -->\[core] Consistent URL add leading / [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 27 -->\[docs-infra] Fix rebase issue [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 26 -->\[docs-infra] Fix typo in docs infra docs [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 25 -->\[docs-infra] Fix nested list margin ([#​38456](https://togithub.com/mui/material-ui/issues/38456)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 24 -->\[docs-infra] Move the Diamond Sponsors to the TOC ([#​38410](https://togithub.com/mui/material-ui/issues/38410)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 22 -->\[docs-infra] Move imports into page data ([#​38297](https://togithub.com/mui/material-ui/issues/38297)) [@​alexfauquette](https://togithub.com/alexfauquette) - <!-- 21 -->\[docs-infra] Adjust heading styles ([#​38365](https://togithub.com/mui/material-ui/issues/38365)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 20 -->\[docs-infra] Fix info callout border color ([#​38370](https://togithub.com/mui/material-ui/issues/38370)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 05 -->\[website] Upgrade the homepage hero demos design ([#​38388](https://togithub.com/mui/material-ui/issues/38388)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 04 -->\[website] Improve Base UI hero section demo ([#​38255](https://togithub.com/mui/material-ui/issues/38255)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 03 -->\[website] Fix EmailSubscribe look ([#​38429](https://togithub.com/mui/material-ui/issues/38429)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 02 -->\[website] Link Discord in footer ([#​38369](https://togithub.com/mui/material-ui/issues/38369)) [@​richbustos](https://togithub.com/richbustos) - <!-- 01 -->\[website] Clean up the `GetStartedButtons` component ([#​38256](https://togithub.com/mui/material-ui/issues/38256)) [@​danilo-leal](https://togithub.com/danilo-leal) All contributors of this release in alphabetical order: [@​alexfauquette](https://togithub.com/alexfauquette), [@​ashleykolodziej](https://togithub.com/ashleykolodziej), [@​danilo-leal](https://togithub.com/danilo-leal), [@​decadef20](https://togithub.com/decadef20), [@​DiegoAndai](https://togithub.com/DiegoAndai), [@​flaviendelangle](https://togithub.com/flaviendelangle), [@​LukasTy](https://togithub.com/LukasTy), [@​michaldudak](https://togithub.com/michaldudak), [@​mj12albert](https://togithub.com/mj12albert), [@​mnajdova](https://togithub.com/mnajdova), [@​nithins1](https://togithub.com/nithins1), [@​oliviertassinari](https://togithub.com/oliviertassinari), [@​richbustos](https://togithub.com/richbustos), [@​sai6855](https://togithub.com/sai6855), [@​samuelsycamore](https://togithub.com/samuelsycamore), [@​TheNatkat](https://togithub.com/TheNatkat), [@​zanivan](https://togithub.com/zanivan) ### [`v5.14.4`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#5144) [Compare Source](https://togithub.com/mui/material-ui/compare/v5.14.3...v5.14.4) <!-- generated comparing v5.14.3..master --> *Aug 8, 2023* A big thanks to the 18 contributors who made this release possible. Here are some highlights ✨: - 🎉 Added [Number Input](https://mui.com/base-ui/react-number-input/) component & [useNumberInput](https://mui.com/base-ui/react-number-input/#hook) hook in [Base UI](https://mui.com/base-ui/getting-started/) [@​mj12albert](https://togithub.com/mj12albert) ##### `@mui/material@5.14.4` - <!-- 25 -->\[Checkbox]\[material] Add size classes ([#​38182](https://togithub.com/mui/material-ui/issues/38182)) [@​michaldudak](https://togithub.com/michaldudak) - <!-- 03 -->\[Typography] Improve inherit variant logic ([#​38123](https://togithub.com/mui/material-ui/issues/38123)) [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) ##### `@mui/system@5.14.4` - <!-- 34 -->Revert "\[Box] Remove `component` from TypeMap ([#​38168](https://togithub.com/mui/material-ui/issues/38168))" ([#​38356](https://togithub.com/mui/material-ui/issues/38356)) [@​michaldudak](https://togithub.com/michaldudak) ##### `@mui/base@5.0.0-beta.10` ##### Breaking changes - <!-- 32 -->\[base] Ban default exports ([#​38200](https://togithub.com/mui/material-ui/issues/38200)) [@​michaldudak](https://togithub.com/michaldudak) Base UI default exports were changed to named ones. Previously we had a mix of default and named ones. This was changed to improve consistency and avoid problems some bundlers have with default exports. [https://github.com/mui/material-ui/issues/21862](https://togithub.com/mui/material-ui/issues/21862)es/21862 for more context. ```diff - import Button, { buttonClasses } from '@​mui/base/Button'; + import { Button, buttonClasses } from '@​mui/base/Button'; - import BaseMenu from '@​mui/base/Menu'; + import { Menu as BaseMenu } from '@​mui/base/Menu'; ``` Additionally, the `ClassNameGenerator` has been moved to the directory matching its name: ```diff - import ClassNameGenerator from '@​mui/base/className'; + import { ClassNameGenerator } from '@​mui/base/ClassNameGenerator'; ``` A codemod is provided to help with the migration: ```bash npx @​mui/codemod v5.0.0/base-use-named-exports <path> ``` ##### Changes - <!-- 31 -->\[base] Create useNumberInput and NumberInput ([#​36119](https://togithub.com/mui/material-ui/issues/36119)) [@​mj12albert](https://togithub.com/mj12albert) - <!-- 28 -->\[Select]\[base] Fix flicker on click of controlled Select button ([#​37855](https://togithub.com/mui/material-ui/issues/37855)) [@​VishruthR](https://togithub.com/VishruthR) - <!-- 09 -->\[Dropdown] Fix imports of types ([#​38296](https://togithub.com/mui/material-ui/issues/38296)) [@​yash-thakur](https://togithub.com/yash-thakur) ##### `@mui/joy@5.0.0-beta.1` - <!-- 06 -->\[joy-ui]\[MenuButton] Fix disable of `MenuButton` ([#​38342](https://togithub.com/mui/material-ui/issues/38342)) [@​sai6855](https://togithub.com/sai6855) ##### Docs - <!-- 33 -->\[docs]\[AppBar] Fix `ResponsiveAppBar` demo logo href ([#​38346](https://togithub.com/mui/material-ui/issues/38346)) [@​iownthegame](https://togithub.com/iownthegame) - <!-- 30 -->\[docs]\[base] Add Tailwind CSS + plain CSS demo on the Button page ([#​38240](https://togithub.com/mui/material-ui/issues/38240)) [@​alisasanib](https://togithub.com/alisasanib) - <!-- 29 -->\[docs]\[Menu]\[base] Remove `Unstyled` prefix from demos' function names ([#​38270](https://togithub.com/mui/material-ui/issues/38270)) [@​sai6855](https://togithub.com/sai6855) - <!-- 22 -->\[docs] Add themeable component guide ([#​37908](https://togithub.com/mui/material-ui/issues/37908)) [@​siriwatknp](https://togithub.com/siriwatknp) - <!-- 21 -->\[docs] Fix Joy UI demo background color ([#​38307](https://togithub.com/mui/material-ui/issues/38307)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 20 -->\[docs] Update API docs for Number Input component ([#​38301](https://togithub.com/mui/material-ui/issues/38301)) [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) - <!-- 14 -->\[docs]\[joy-ui] Revise the theme typography page ([#​38285](https://togithub.com/mui/material-ui/issues/38285)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 13 -->\[docs]\[joy-ui] Add TS demo for Menu Bar ([#​38308](https://togithub.com/mui/material-ui/issues/38308)) [@​sai6855](https://togithub.com/sai6855) - <!-- 10 -->\[docs]\[joy-ui] Updated Typography callout at getting started ([#​38289](https://togithub.com/mui/material-ui/issues/38289)) [@​zanivan](https://togithub.com/zanivan) - <!-- 12 -->\[docs]\[joy-ui] Fix the Inter font installation instructions ([#​38284](https://togithub.com/mui/material-ui/issues/38284)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 11 -->\[docs]\[material] Add note to Autocomplete about ref forwarding ([#​38305](https://togithub.com/mui/material-ui/issues/38305)) [@​samuelsycamore](https://togithub.com/samuelsycamore) - <!-- 05 -->\[docs]\[Skeleton] Make the demos feel more realistic ([#​38212](https://togithub.com/mui/material-ui/issues/38212)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 08 -->\[examples] Swap Next.js examples between App Router and Pages Router; update naming convention ([#​38204](https://togithub.com/mui/material-ui/issues/38204)) [@​samuelsycamore](https://togithub.com/samuelsycamore) - <!-- 07 -->\[examples]\[material-ui] Add Material UI + Next.js (App Router) example in JS ([#​38323](https://togithub.com/mui/material-ui/issues/38323)) [@​samuelsycamore](https://togithub.com/samuelsycamore) - <!-- 27 -->\[blog] Discord announcement blog ([#​38258](https://togithub.com/mui/material-ui/issues/38258)) [@​richbustos](https://togithub.com/richbustos) - <!-- 26 -->\[blog] Fix 301 links to Toolpad [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 04 -->\[website] Updating Charts demo with real charts usage for MUI X marketing page ([#​38317](https://togithub.com/mui/material-ui/issues/38317)) [@​richbustos](https://togithub.com/richbustos) - <!-- 03 -->\[website] Adjust styles of the Product section on the homepage ([#​38366](https://togithub.com/mui/material-ui/issues/38366)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 02 -->\[website] Add Nora teamMember card to 'About' ([#​38358](https://togithub.com/mui/material-ui/issues/38358)) [@​noraleonte](https://togithub.com/noraleonte) - <!-- 01 -->\[website] Fix image layout shift ([#​38326](https://togithub.com/mui/material-ui/issues/38326)) [@​oliviertassinari](https://togithub.com/oliviertassinari) ##### Core - <!-- 24 -->\[core] Fix docs demo export function consistency ([#​38191](https://togithub.com/mui/material-ui/issues/38191)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 23 -->\[core] Fix the link-check script on Windows ([#​38276](https://togithub.com/mui/material-ui/issues/38276)) [@​michaldudak](https://togithub.com/michaldudak) - <!-- 26 -->\[core] Use [@​testing-library/user-event](https://togithub.com/testing-library/user-event) direct API ([#​38325](https://togithub.com/mui/material-ui/issues/38325)) [@​mj12albert](https://togithub.com/mj12albert) - <!-- 29 -->\[core] Port GitHub workflow for ensuring triage label is present ([#​38312](https://togithub.com/mui/material-ui/issues/38312)) [@​DanailH](https://togithub.com/DanailH) - <!-- 19 -->\[docs-infra] Consider files ending with .types.ts as props files ([#​37533](https://togithub.com/mui/material-ui/issues/37533)) [@​mnajdova](https://togithub.com/mnajdova) - <!-- 18 -->\[docs-infra] Fix skip to content design ([#​38304](https://togithub.com/mui/material-ui/issues/38304)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 17 -->\[docs-infra] Add a general round of polish to the API content display ([#​38282](https://togithub.com/mui/material-ui/issues/38282)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 16 -->\[docs-infra] Make the side nav collapse animation snappier ([#​38259](https://togithub.com/mui/material-ui/issues/38259)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 15 -->\[docs-infra] New Component API design followup ([#​38183](https://togithub.com/mui/material-ui/issues/38183)) [@​cherniavskii](https://togithub.com/cherniavskii) - <!-- 06 -->\[test] Remove unnecessary `async` keyword from test ([#​38373](https://togithub.com/mui/material-ui/issues/38373)) [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) All contributors of this release in alphabetical order: [@​alisasanib](https://togithub.com/alisasanib), [@​cherniavskii](https://togithub.com/cherniavskii), [@​DanailH](https://togithub.com/DanailH), [@​danilo-leal](https://togithub.com/danilo-leal), [@​iownthegame](https://togithub.com/iownthegame), [@​michaldudak](https://togithub.com/michaldudak), [@​mj12albert](https://togithub.com/mj12albert), [@​mnajdova](https://togithub.com/mnajdova), [@​noraleonte](https://togithub.com/noraleonte), [@​oliviertassinari](https://togithub.com/oliviertassinari), [@​richbustos](https://togithub.com/richbustos), [@​sai6855](https://togithub.com/sai6855), [@​samuelsycamore](https://togithub.com/samuelsycamore), [@​siriwatknp](https://togithub.com/siriwatknp), [@​VishruthR](https://togithub.com/VishruthR), [@​yash-thakur](https://togithub.com/yash-thakur), [@​zanivan](https://togithub.com/zanivan), [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) ### [`v5.14.3`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#5143) [Compare Source](https://togithub.com/mui/material-ui/compare/v5.14.2...v5.14.3) <!-- generated comparing v5.14.2..master --> *Jul 31, 2023* A big thanks to the 17 contributors who made this release possible. Here are some highlights ✨: - 🚀 [Joy UI](https://mui.com/joy-ui/getting-started/) is now in Beta - ✨ Refine [Joy UI](https://mui.com/joy-ui/getting-started/)'s default theme [@​siriwatknp](https://togithub.com/siriwatknp) [@​zanivan](https://togithub.com/zanivan) - 🎉 Added Dropdown higher-level menu component [Base UI](https://mui.com/base-ui/getting-started/) [@​michaldudak](https://togithub.com/michaldudak) - 💫 Added Material You [Badge](https://mui.com/material-ui/react-badge/#material-you-version) to `material-next` ([#​37850](https://togithub.com/mui/material-ui/issues/37850)) [@​DiegoAndai](https://togithub.com/DiegoAndai) ##### `@mui/material@5.14.3` - <!-- 36 -->\[Autocomplete]\[material]\[joy] Add default `getOptionLabel` prop in ownerState ([#​38100](https://togithub.com/mui/material-ui/issues/38100)) [@​DSK9012](https://togithub.com/DSK9012) - <!-- 26 -->\[Menu]\[Divider]\[material] Do not allow focus on Divider when inside Menu list ([#​38102](https://togithub.com/mui/material-ui/issues/38102)) [@​divyammadhok](https://togithub.com/divyammadhok) - <!-- 06 -->\[typescript]\[material] Rename one letter type parameters ([#​38155](https://togithub.com/mui/material-ui/issues/38155)) [@​michaldudak](https://togithub.com/michaldudak) - <!-- 08 -->\[Menu]\[material] Fixes slots and slotProps overriding defaults completely ([#​37902](https://togithub.com/mui/material-ui/issues/37902)) [@​gitstart](https://togithub.com/gitstart) - <!-- 07 -->\[Theme]\[material] Add missing styleOverrides type for theme MuiStack ([#​38189](https://togithub.com/mui/material-ui/issues/38189)) [@​DiegoAndai](https://togithub.com/DiegoAndai) - <!-- 04 -->\[typescript]\[material] Add `component` field to `*Props` types ([#​38084](https://togithub.com/mui/material-ui/issues/38084)) [@​michaldudak](https://togithub.com/michaldudak) ##### `@mui/base@5.0.0-beta.9` ##### Breaking changes - <!-- 11 -->\[Dropdown]\[base]\[joy] Introduce higher-level menu component ([#​37667](https://togithub.com/mui/material-ui/issues/37667)) [@​michaldudak](https://togithub.com/michaldudak) ##### Other changes - <!-- 33 -->\[typescript]\[base] Rename one letter type parameters ([#​38171](https://togithub.com/mui/material-ui/issues/38171)) [@​michaldudak](https://togithub.com/michaldudak) ##### `@mui/joy@5.0.0-beta.0` - <!-- 10 -->\[joy] Refine the default theme ([#​36843](https://togithub.com/mui/material-ui/issues/36843)) [@​siriwatknp](https://togithub.com/siriwatknp) ##### `@mui/material-next@6.0.0-alpha.95` - <!-- 35 -->\[Badge]\[material-next] Add Badge component ([#​37850](https://togithub.com/mui/material-ui/issues/37850)) [@​DiegoAndai](https://togithub.com/DiegoAndai) - <!-- 30 -->\[Chip]\[material-next] Copy chip component from material ([#​38053](https://togithub.com/mui/material-ui/issues/38053)) [@​DiegoAndai](https://togithub.com/DiegoAndai) - <!-- 09 -->\[typescript]\[material-next] Rename one letter type parameters ([#​38172](https://togithub.com/mui/material-ui/issues/38172)) [@​michaldudak](https://togithub.com/michaldudak) ##### `@mui/system@5.14.3` - <!-- 32 -->\[Box]\[system] Remove `component` from TypeMap ([#​38168](https://togithub.com/mui/material-ui/issues/38168)) [@​michaldudak](https://togithub.com/michaldudak) - <!-- 05 -->\[Stack]\[system] Fix CSS selector ([#​37525](https://togithub.com/mui/material-ui/issues/37525)) [@​sai6855](https://togithub.com/sai6855) ##### Docs - <!-- 49 -->\[docs] Update Joy UI's package README ([#​38262](https://togithub.com/mui/material-ui/issues/38262)) [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) - <!-- 48 -->\[docs]\[base-ui] Add new batch of coming soon pages ([#​38025](https://togithub.com/mui/material-ui/issues/38025)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 44 -->\[docs] fix links to standardized examples ([#​38193](https://togithub.com/mui/material-ui/issues/38193)) [@​emmanuel-ferdman](https://togithub.com/emmanuel-ferdman) - <!-- 43 -->\[docs-infra] Small design polish to the Diamond Sponsor container ([#​38257](https://togithub.com/mui/material-ui/issues/38257)) [@​danilo-leal](https://togithub.com/danilo-leal) - <!-- 42 -->\[docs-infra] Show props in the table of content ([#​38173](https://togithub.com/mui/material-ui/issues/38173)) [@​alexfauquette](https://togithub.com/alexfauquette) - <!-- 41 -->\[docs-infra] Polish API page design ([#​38196](https://togithub.com/mui/material-ui/issues/38196)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 40 -->\[docs-infra] Search with productCategory when product is missing ([#​38239](https://togithub.com/mui/material-ui/issues/38239)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - <!-- 39 -->\[docs]\[material] Revise and update Examples doc ([#​38205](https://togithub.com/mui/material-ui/issues/38205)) [@​samuelsycamore](https://togithub.com/samuelsycamore) - <!-- 38 -->\[docs] Fix typo in notifications.json [@​mbrookes](https://togithub.com/mbrookes) - <!-- 37 -->\[docs-infra] Remove leftover standardNavIcon ([#​38252](https://togithub.com/mui/material-ui/issues/38252)) [@​DiegoAndai](https://togithub.com/DiegoAndai) - <!-- 34 -->\[docs]\[base] Add Tailwind CSS & plain CSS demos on the Popper page ([#​37953](https://togithub.com/mui/material-ui/issues/37953)) [@​zanivan](https://togithub.com/zanivan) - <!-- 31 -->\[docs]\[Button]\[joy] Improve `loading` prop documentation ([#​38156](https://togithub.com/mui/material-ui/issues/38156)) [@​sai6855](https://togithub.com/sai6855) - <!-- 25 -->\[docs] Prepare docs infra for Tree View migration to X ([#​38202](https://togithub.com/mui/material-ui/issues/38202)) [@​flaviendelangle](https://togithub.com/flaviendelangle) - <!-- 24 -->\[docs] Fix SEO issues reported by ahrefs [@​oliviertassinari](https://togithub.com/oliviertassinari </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 3am on Saturday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/rparini/cxroots-app). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuNjguMSIsInRhcmdldEJyYW5jaCI6Im1hc3RlciJ9--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Robert Parini <robert.parini@gmail.com>
The current plan to deal with this is:
Whoever starts to work on this, please create separate issues for each step. |
@oliviertassinari do you have any recommendations around this upcoming potential change in relation to the current suggestions here? We are currently migrating from Webpack to Vite, so we can't use the Babel plugin. I was considering migrating to path imports, as we currently only use named imports from the root. I prefer named imports as they prevent issues with using incorrect names when importing via default imports. That's what led me to discover this RFC. I'm wondering if the current docs are still the recommended approach until this change is implemented, or if you have a different recommendation. It seems like this would be the ideal syntax: import { TextField } from '@mui/material/TextField' But I understand this isn't available yet. We have 1000s of imports so I'd prefer not to update them twice. |
Introduction
This discussion was initiated during the migration of eslint configs of
material-ui/pickers
and convention and code style consolidation. (mui/material-ui-pickers#2004)The problem
The core repository is using
export default
everywhere as a primary way to export React components. This RFC is about why it is not the best approach – the main problem of the default exports is implicit renames. And this unexpected renames leads to the following problems:Consistent naming between all files
When
export default
is used it allows anonymous renames on the importing side:Here it appeared that the component that has
displayName="Modal"
and actually is aModal
in the code reads likeDialog
which is weird because it has its own defined name. This can also lead to the discrepancy between the component name in the component and display name in the dev tools.Problems with refactoring
If we have an allowed implicit rename it could be tricky to find all the places when the component is used. And automated refactoring will also do nothing because rename is totally allowed
Poor importing experience
Discoverability is very poor for default exports. You cannot explore a module with IntelliSense to see if it has a default export or not. With export default, you get nothing here (maybe it does export default / maybe it doesn't (¯_(ツ)_/¯). And also it doesn't autocomplete by the component name, while for named exports – it does.
Without export default you get a nice intellisense here:
More solid imports section
When there are no
default
exports through the codebaseWithout
And as huge bonus for typescript users: Props importing experience will be much clearer
For now, the only way to import props is:
Normal flow of things
Originally the goal of export default (I am 99% sure) was intended to export something when we don't really know what we exporting. The best case of
default export
power is dynamic examples – when we don't really know which component we need to import and render. Or for examplenext.js
's page loader – when it also doesn't know which pages it needs to process exactly.When we have a specific object that we need to export – we should name it and use this name consistently through the codebase.
Potential problems
Default exports were loved by react community because of
HOC
. It was really useful to doIt is not possible with named exports, but we could have a convention about naming private components in the file
The text was updated successfully, but these errors were encountered: