Skip to content
This repository has been archived by the owner on Aug 29, 2023. It is now read-only.

Update dependency styled-components to v6 #31

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 3, 2023

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
styled-components (source) 4.4.1 -> 6.0.7 age adoption passing confidence

Release Notes

styled-components/styled-components (styled-components)

v6.0.7

Compare Source

What's Changed

New Contributors

Full Changelog: styled-components/styled-components@v6.0.6...v6.0.7

v6.0.6

Compare Source

What's Changed
New Contributors

Full Changelog: styled-components/styled-components@v6.0.5...v6.0.6

v6.0.5

Compare Source

What's Changed

New Contributors

Full Changelog: styled-components/styled-components@v6.0.4...v6.0.5

v6.0.4

Compare Source

What's Changed
New Contributors

Full Changelog: styled-components/styled-components@v6.0.3...v6.0.4

v6.0.3

Compare Source

What's Changed

New Contributors

Full Changelog: styled-components/styled-components@v6.0.2...v6.0.3

v6.0.2

Compare Source

What's Changed
New Contributors

Full Changelog: styled-components/styled-components@v6.0.1...v6.0.2

v6.0.1

Compare Source

Fixed an issue where a dev-time warning was being triggered too eagerly.

Full Changelog: styled-components/styled-components@v6.0.0...v6.0.1

v6.0.0

Compare Source

yarn add styled-components

Changed in this version

  • fix(types): prevent prop bleed on styling properties (fixes #​4053, c0f8015)
  • feat(types): ship csstype via "CSS" namespace (e6c4f0a)
  • chore: bump stylis to 4.3 (fixes #​4007, fa58875)
  • reduced some sources of unnecessary branching logic

Breaking changes in v6

Migration guide → https://styled-components.com/docs/faqs#what-do-i-need-to-do-to-migrate-to-v6

  • now using stylis v4 (if using stylis-plugin-rtl you'll need to upgrade to the newer version)
  • styled-components now provides its own types; if you installed @types/styled-components in the past, you'll want to remove it
  • dropped $as and $forwardedAs props (use as or forwardedAs)
  • dropped automatic prop filtering; use transient props ($ prefix) for stuff you don't want to be passed to child component / HTML
  • StyleSheetManager
    • replaced disableVendorPrefixes with enableVendorPrefixes prop
    • dropped automatic vendor prefixing; if you need to support older browsers, you can re-enable it easily with the above prop
      <StyleSheetManager enableVendorPrefixes>
        {/* your React tree and ThemeProvider goes here */}
      </StyleSheetManager>
  • dropped deprecated withComponent API (87f511a); use "as" prop instead
  • node >= 14 needed

Full Changelog: styled-components/styled-components@v5.3.7...v6.0.0

v5.3.11

Compare Source

v5.3.10

Compare Source

What's Changed

Full Changelog: styled-components/styled-components@v5.3.9...v5.3.10

v5.3.9

Compare Source

What's Changed

Full Changelog: styled-components/styled-components@v5.3.8...v5.3.9

v5.3.8

Compare Source

What's Changed

fix(constants): rework process env guard

Full Changelog: styled-components/styled-components@v5.3.7-fixed...v5.3.8

v5.3.7

Compare Source

v5.3.6

Compare Source

What's Changed

Deprecations

  • $as and $forwardedAs will be removed in the next major version, use the unprefixed props instead

New Contributors

Full Changelog: styled-components/styled-components@v5.3.5...v5.3.6

v5.3.5

Add statement of solidarity against the war on Ukraine 🇺🇦

v5.3.3

What's Changed

New Contributors

Full Changelog: styled-components/styled-components@v5.3.1...v5.3.3

v5.3.1

Compare Source

  • Fix forced server-side mode not triggering global styles (See #​3566)

  • Fix SSR collisions caused by insufficient hash inputs and reordering of groups on the client, which is a regression in v5.2.0 (See #​3563)

  • Fix dynamic creation React warning for React v18, backported to v5 by @​lynndylanhurley (See #​3564)

  • Add missing typeof window check when checking for duplicate instances of styled-components (See #​3553)

  • Prevent ServerStyleSheet from emitting empty style tags, which would cause issues in IE11 (See #​3555)

  • Support css tagged templates inside style objects, by @​roginfarrer and @​dvingo (See #​3469)

v5.3.0

Compare Source

  • Pass elementToBeCreated as a third parameter to shouldForwardProp so that the user-specified function can decide whether to pass through props based on whether the created element will be a tag or another component. (see #​3436)

  • Fix React Native components accepts function as style prop. (see #​3389)

v5.2.3

Compare Source

fix an issue with an unguarded window accessor in a SSR path (see #​3446)

v5.2.2

Compare Source

  • For React Native based components, pass testID down to the native component if specified for an easier time testing. (see #​3365)

  • Enable users of the babel macro to customize the styled-components import with importModuleName (see #​3422)

  • [fix] COMPLEX_SELECTOR_PREFIX.includes wasn't transpiled (see #​3397)

v5.2.1

Compare Source

Tweak server-side build settings to resolve an issue with jest-dom not being able to pick up generated styles (see #​3308) thanks @​Lazyuki

v5.2.0

Compare Source

  • Make sure StyleSheetManager renders all styles in iframe / child windows (see #​3159) thanks @​eramdam!

  • Rework how components self-reference in extension scenarios (see #​3236); should fix a bunch of subtle bugs around patterns like & + &

  • Fix keyframes not receiving a modified stylis instance when using something like stylis-plugin-rtl (see #​3239)

  • Big performance gain for components using style objects (see #​3239)

  • We no longer emit dynamic classNames for empty rulesets, so some className churn may occur in snapshots

  • Preallocate global style placement to ensure cGS is consistently inserted at the top of the stylesheet; note that this is done in runtime order so, if you have multiple cGS that have overlapping styles, ensure they're defined in code in the sequence you would want them injected (see #​3239)

  • Add "engines" to package.json (currently set to Node 10, the oldest supported LTS distribution) (see #​3201) thanks @​MichaelDeBoey!

Finally, special thanks to @​willheslam for testing and some last minute fixes on this release!

v5.1.1

Compare Source

New Functionality
  • Implement shouldForwardProp API for native and primitive platforms, which was previously missing in [v5.1.0] (see #​3093)
    This has been released under a patch bump instead of a minor, since it's only been missing from Native-support.
Bugfixes
  • Added useTheme hook to named exports for react-primitives entrypoint (see #​2982) thanks @​jladuval!
  • Escape every CSS ident character necessary when converting component display names to class names (see #​3102) thanks @​kripod!

v5.1.0

Compare Source

New Functionality

  • Add shouldForwardProp API (almost the same as emotion's, just a slightly different usage pattern); https://github.com/styled-components/styled-components/pull/3006

    Sometimes when composing multiple higher-order components together, it's possible to get into scenarios when multiple layers consume props by the same name. In the past we've introduced various workarounds for popular props like "as" but this power-user API allows for more granular customization of what props are passed down to descendant component children when using the styled() HOC wrapper.

    When combined with other APIs like .attrs() this becomes a very powerful constellation of abilities.

    Here's how you use it:

    const Comp = styled('div').withConfig({
      shouldForwardProp: (prop, defaultValidatorFn) => !['filterThis'].includes(prop),
    })`
      color: red;
    `;
    
    render(<Comp filterThis="abc" passThru="def" />);

Renders:


The second argument `defaultValidatorFn` is what we use internally to validate props based on known HTML attributes. It's provided so you can filter exactly what props you don't wish to pass and then fall-back to the default filtering mechanism if desired.

Other methods on the `styled` HOC like `.attrs` can be chained after `withConfig()`, and before opening your template literal:

```jsx
const Comp = styled('div').withConfig({
  shouldForwardProp: (prop, defaultValidatorFn) => !['filterThis'].includes(prop),
}).attrs({ className: 'foo' })`
  color: red;
`;

render(<Comp filterThis="abc" passThru="def" />);

### Renders: <div className="[generated] foo" passThru="def"></div>

Thanks @​stevesims and all that contributed!

  • Add "transient props" API; https://github.com/styled-components/styled-components/pull/3052

    Think of transient props as a lightweight, but complementary API to shouldForwardProp. Because styled-components allows any kind of prop to be used for styling (a trait shared by most CSS-in-JS libraries, but not the third party library ecosystem in general), adding a filter for every possible prop you might use can get cumbersome.

    Transient props are a new pattern to pass props that are explicitly consumed only by styled components and are not meant to be passed down to deeper component layers. Here's how you use them:

    const Comp = styled.div`
      color: ${props => props.$fg || 'black'};
    `;
    
    render(<Comp $fg="red">I'm red!</Comp>);

    Note the dollar sign ($) prefix on the prop; this marks it as transient and styled-components knows not to add it to the rendered DOM element or pass it further down the component hierarchy.

Bugfixes

  • Fix slow SSR Rehydration for malformed CSS and increase fault-tolerance (see #​3018)

  • Change isPlainObject (internal method) to support objects created in a different context (see #​3068) thanks @​keeganstreet!

  • Add support for the <video disablePictureInPicture> (see #​3058) thanks @​egdbear!

v5.0.1

Compare Source

  • Added useTheme hook to named exports for react native (#​2982)

  • Performance enhancements

    • Refactored hashing function that is a bit faster in benchmarks (#​2983)
    • Fixed a bitwise math issue that was causing SSR performance degradations due to how we allocate typed arrays under the hood (#​2996)
  • Added some helpful new dev-time warnings for antipatterns

    • Recommending against usage of css @import inside createGlobalStyle and what to do instead (#​2997)
    • Catching and warning against dynamic creation of styled-components inside other component render paths (#​2998)

v5.0.0

Compare Source

It's finally here!!! 🚀See the migrating to v5 FAQ page for easy upgrade instructions!

Read the v5 release announcement!

TL;DR:

  • 19% smaller bundle size
  • 18% faster client-side mounting
  • 17% faster updating of dynamic styles
  • 45% faster server-side rendering
  • RTL support

...and much more all, with no breaking changes!

NOTE: At this time we recommend not using @import inside of createGlobalStyle. We're working on better behavior for this functionality but it just doesn't really work at the moment and it's better if you just embed these imports in your HTML index file, etc.

Changes
  • StyleSheetManager enhancements

    • you can now supply stylis plugins like stylis-plugin-rtl; <StyleSheetManager stylisPlugins={[]}>...</StyleSheetManager>
    • disableVendorPrefixes removes autoprefixing if you don't need legacy browser support; <StyleSheetManager disableVendorPrefixes>...</StyleSheetManager>
    • disableCSSOMInjection forces using the slower injection mode if other integrations in your runtime environment can't parse CSSOM-injected styles; <StyleSheetManager disableCSSOMInjection>...</StyleSheetManager>
  • Removed the "subfunction" attrs syntax that was deprecated in v4

    styled.div.attrs({ role: p => p.onClick ? 'button' : '' })`
      color: red;
    `

    becomes

    styled.div.attrs(p => ({ role: p.onClick ? 'button' : '' }))`
      color: red;
    `
  • Update css-to-react-native to v3.0.0 (#​2811); the one breaking change noted is that unitless line height is no longer allowed when setting font properties

  • disallow /ad/i in generated class names (#​2837); this change primarily helps to avoid some overly aggressive ad blockers that will mangle generated classnames containing the substring "ad"

  • if you use styled-components from CDN, in v5 the "react-is" dependency was added (make sure you add this to your project)


Configuration

📅 Schedule: Branch creation - "before 4am on Monday" (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.

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


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

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot force-pushed the renovate/styled-components-6.x branch 2 times, most recently from 2f80e74 to e3cd7d0 Compare July 7, 2023 23:23
@renovate renovate bot force-pushed the renovate/styled-components-6.x branch from e3cd7d0 to 12203d6 Compare July 13, 2023 04:48
@renovate renovate bot force-pushed the renovate/styled-components-6.x branch 2 times, most recently from f2cfddd to 599a314 Compare July 24, 2023 02:00
@renovate renovate bot force-pushed the renovate/styled-components-6.x branch 2 times, most recently from a1cce7d to b254422 Compare August 3, 2023 13:26
@renovate renovate bot force-pushed the renovate/styled-components-6.x branch from b254422 to 5db1c45 Compare August 28, 2023 05:12
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants