Skip to content
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

Update emotion monorepo to v11 (major) #1639

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jul 22, 2021

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@emotion/core (source) 10.3.1 -> 11.0.0 age adoption passing confidence
@emotion/styled (source) 10.3.0 -> 11.13.0 age adoption passing confidence
jest-emotion (source) 10.0.32 -> 11.0.0 age adoption passing confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

emotion-js/emotion (@​emotion/core)

v11.0.0

Compare Source

Major Changes
  • b8476e08 #​1675 Thanks @​mitchellhamilton! - Rename @emotion/core to @emotion/react. Please change any imports of @emotion/core to import @emotion/react or use the @emotion/pkg-renaming ESLint rule from @emotion/eslint-plugin.
emotion-js/emotion (@​emotion/styled)

v11.13.0

Compare Source

v11.12.0

Compare Source

v11.11.5

Compare Source

v11.11.0

Compare Source

Patch Changes

v11.10.8

Compare Source

Patch Changes

v11.10.6

Compare Source

Patch Changes

v11.10.5

Compare Source

Patch Changes

v11.10.4

Compare Source

Patch Changes
  • #​2867 89b6dbb3 Thanks @​Andarist! - Externalized code referencing React.useInsertionEffect to a separate @emotion/use-insertion-effect-with-fallbacks package. This package should be used in your defined externals if you bundle Emotion for whatever reason. It references useInsertionEffect in a very specific way that allows us to use it conditionally. However, if the code consuming Emotion is bundled as a library with Emotion in it then some bundlers might change the way in which we reference useInsertionEffect and that might create problems for bundlers used to consume the said library code. By externalizing this new package you can still bundle Emotion if you want to without running into this problem as you won't "destroy" the carefully crafted reference to useInsertionEffect in the process.

    Note that we don't recommend bundling Emotion. You should have very specific reasons to do so.

  • Updated dependencies [89b6dbb3]:

v11.10.0

Compare Source

Minor Changes
  • #​2819 bbad8c79 Thanks @​nicksrandall! - exports field has been added to the package.json manifest. It limits what files can be imported from a package but we've tried our best to allow importing all the files that were considered to be a part of the public API.
Patch Changes

v11.9.3

Compare Source

Patch Changes

v11.8.1

Compare Source

Patch Changes
  • #​2651 39ac5b99 Thanks @​Andarist! - Fixed a transpilation issue that caused useInsertionEffect to be referenced directly in the specifiers list of the import statement. This has caused build errors in the consuming tools since the import statement can only reference known exports of a module.

v11.8.0

Compare Source

Minor Changes
  • #​2600 2f27156a Thanks @​Andarist! - Refactored code to use the upcoming React.useInsertionEffect when it's available (this is a new hook that is going to be introduced in React 18). This shouldn't have any effect on existing codebases and the change should be transparent.
Patch Changes
  • #​2609 242f7d8c Thanks @​Andarist! - Added @emotion/babel-plugin as a dependency - this is an actual dependency of the @emotion/react/macro entrypoint and it has to be explicitly declared to fix compatibility with strict package managers.

  • #​2615 3d672acd Thanks @​srmagura! - Fix an edge case where runtime label extraction in class components led to invalid class names in Firefox. This only affected the development build of Emotion.

  • Updated dependencies [2f27156a]:

v11.6.0

Compare Source

Minor Changes
  • #​2542 eb013d25 Thanks @​eps1lon! - Fixed hydration mismatches if React.useId (an upcoming API in React 18) is used within a tree below our components.
Patch Changes

v11.3.0

Compare Source

Patch Changes

v11.1.5

Compare Source

Patch Changes
  • d0293508 #​2240 Thanks @​wolszczak96! - as prop has been removed from TypeScript declarations for composite components. This prop has not actually been handled by default by styled for those components - to make styled handle it you need to provide a custom shouldForwardProp that doesn't forward the as prop.

  • Updated dependencies [f3c2e81d]:

v11.0.0

Compare Source

Major Changes
  • f9feab1a #​1575 Thanks @​mitchellhamilton! - Removed support for @emotion/styled-base package. It has been moved to @emotion/styled and is available as @emotion/styled/base. This simplifies how the regular and base versions relate to each other and eliminates problems with stricter package managers when @emotion/styled-base was not installed explicitly by a user.

  • 79036056 #​967 Thanks @​mitchellhamilton! - Remove support for deprecated innerRef prop

  • a72e6dc #​1501 Thanks @​JakeGinnivan! - TypeScript types have been significantly restructured. These changes:

    • reduce build times when using Emotion, especially in larger projects
    • it's no longer necessary to manually specify generic parameters for your Emotion components in many cases
    • union types as props are better supported and should be inferred properly
    • the css function has been restricted to prevent passing invalid types
    • styled's generic parameter has been changed, if you were specifying the ComponentType you will need to remove that generic parameter
    • styled no longer takes a second ExtraProps parameter - instead of that move it to after the styled call. So instead of writing styled<typeof MyComponent, ExtraProps>(MyComponent)({}) you should now be writing styled(MyComponent)<ExtraProps>({})

    If you encounter build issues after upgrade, try removing any manually specified generic types and let them be inferred.

  • c6431074 #​1609 Thanks @​tomsseisums! - It's now easier to provide a type for Theme. Instead of creating custom instances (like before) you can augment the builtin Theme interface like this:

    import '@&#8203;emotion/react'
    
    declare module '@&#8203;emotion/react' {
      export interface Theme {
        primaryColor: string
        secondaryColor: string
      }
    }
  • 105de5c8 #​1572 Thanks @​Andarist! - [data-emotion] attribute on SSRed styled has changed. You should never rely on it though.

  • 79036056 #​967 Thanks @​mitchellhamilton! - Use hooks internally for improved bundle size and a better tree in React DevTools

  • 9e998e37 #​1817 Thanks @​Andarist! - The parser we use (Stylis) got upgraded. It fixes some long-standing parsing edge cases while being smaller and faster 🚀

    It has been completely rewritten and comes with some breaking changes. The most notable ones that might affect Emotion users are:

    • plugins written for the former Stylis v3 are not compatible with the new version. To learn more on how to write a plugin for Stylis v4 you can check out its README and the source code of core plugins.
    • vendor-prefixing was previously customizable using prefix option. This was always limited to turning off all of some of the prefixes as all available prefixes were on by default. The prefix option is gone and to customize which prefixes are applied you need to fork (copy-paste) the prefixer plugin and adjust it to your needs. While this being somewhat more problematic to setup at first we believe that the vast majority of users were not customizing this anyway. By not including the possibility to customize this through an extra option the final solution is more performant because there is no extra overhead of checking if a particular property should be prefixed or not.
    • the prefixer is now just a plugin which happens to be included in the default stylisPlugins. If you plan to use custom stylisPlugins and you want to have your styles prefixed automatically you must include prefixer in your custom stylisPlugins. You can import prefixer from the stylis module to do that.
    • @import rules are no longer special-cased. The responsibility to put them first has been moved to the author of the styles. They also can't be nested within other rules now. It's only possible to write them at the top level of global styles.
  • cf56694 #​2088 Thanks @​Andarist! - UMD filenames have been changed.

Minor Changes
  • 4d3b60d0 #​1874 Thanks @​connor-baer! - Added basic TS type support for as prop on styled components. It's possible to pass any component to it but it has no effect on other accepted props. This means that it's not 100% type-safe so use it sparingly and with care.

  • ad77ed24 #​1624 Thanks @​JakeGinnivan! - Added CreateStyled overload to handle when shouldForwardProp is a custom type guard for intrinsic props.

    As an example, if you want to override the type of the color prop:

    export const Box = styled('div', {
      shouldForwardProp: (
        propName
      ): propName is Exclude<keyof JSX.IntrinsicElements['div'], 'color'> =>
        propName !== 'color'
    })<{ color: Array<string> }>(props => ({
      color: props.color[0]
    }))
    ;<Box color={['green']} />
  • 18c0d5f4 #​1668 Thanks @​animecyc! - Custom shouldForwardProp is being preserved now when using .withComponent. Also, when passing an additional shouldForwardProp in .withComponent's options (like this: SomeComponent.withComponent('span', { shouldForwardProp })) it's being composed with the potentially existing shouldForwardProp.

  • 5d692a6a #​1956 Thanks @​eps1lon! - Upgraded csstype dependency to its v3. This is what we use to provide TypeScript typings for object styles. The upgrade should not affect any consuming code but it's worth mentioning if any edge case scenarios arise.

Patch Changes

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/major-emotion-monorepo branch 8 times, most recently from df324cc to 0dc5e2d Compare July 27, 2021 18:46
@renovate renovate bot force-pushed the renovate/major-emotion-monorepo branch 8 times, most recently from 2c29d26 to b82760a Compare August 5, 2021 06:37
@renovate renovate bot force-pushed the renovate/major-emotion-monorepo branch 8 times, most recently from 0ddd7c1 to 8150fd3 Compare August 11, 2021 09:19
@renovate renovate bot force-pushed the renovate/major-emotion-monorepo branch 6 times, most recently from f54282e to 4877b2a Compare August 20, 2021 05:45
@renovate renovate bot force-pushed the renovate/major-emotion-monorepo branch 20 times, most recently from caa7870 to 0f2b32b Compare April 17, 2024 01:03
@renovate renovate bot force-pushed the renovate/major-emotion-monorepo branch 7 times, most recently from 6de0567 to 79087b2 Compare April 24, 2024 02:08
@renovate renovate bot force-pushed the renovate/major-emotion-monorepo branch from 79087b2 to d55e7e6 Compare July 22, 2024 08:07
@renovate renovate bot force-pushed the renovate/major-emotion-monorepo branch from d55e7e6 to a17ee48 Compare July 23, 2024 12:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants