styled-components 6.0.0-beta.2 → 6.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/constructors/constructWithOptions.d.ts +26 -25
  2. package/dist/constructors/createGlobalStyle.d.ts +2 -2
  3. package/dist/constructors/css.d.ts +1 -1
  4. package/dist/constructors/keyframes.d.ts +1 -1
  5. package/dist/constructors/styled.d.ts +176 -180
  6. package/dist/hoc/withTheme.d.ts +2 -2
  7. package/dist/models/GlobalStyle.d.ts +1 -1
  8. package/dist/models/InlineStyle.d.ts +1 -1
  9. package/dist/models/StyledComponent.d.ts +1 -1
  10. package/dist/models/StyledNativeComponent.d.ts +2 -2
  11. package/dist/native/index.d.ts +25 -29
  12. package/dist/styled-components.browser.cjs.js +38 -44
  13. package/dist/styled-components.browser.cjs.js.map +1 -1
  14. package/dist/styled-components.browser.esm.js +38 -44
  15. package/dist/styled-components.browser.esm.js.map +1 -1
  16. package/dist/styled-components.cjs.js +38 -44
  17. package/dist/styled-components.cjs.js.map +1 -1
  18. package/dist/styled-components.esm.js +38 -44
  19. package/dist/styled-components.esm.js.map +1 -1
  20. package/dist/styled-components.js +38 -44
  21. package/dist/styled-components.js.map +1 -1
  22. package/dist/styled-components.min.js +1 -1
  23. package/dist/styled-components.min.js.map +1 -1
  24. package/dist/test/utils.d.ts +176 -180
  25. package/dist/tsconfig.tsbuildinfo +1 -1
  26. package/dist/types.d.ts +45 -39
  27. package/dist/utils/determineTheme.d.ts +2 -2
  28. package/dist/utils/empties.d.ts +2 -2
  29. package/dist/utils/flatten.d.ts +3 -3
  30. package/dist/utils/interleave.d.ts +1 -1
  31. package/dist/utils/isStaticRules.d.ts +1 -1
  32. package/dist/utils/isStyledComponent.d.ts +1 -1
  33. package/dist/utils/mixinDeep.d.ts +2 -2
  34. package/native/dist/constructors/constructWithOptions.d.ts +26 -25
  35. package/native/dist/constructors/createGlobalStyle.d.ts +2 -2
  36. package/native/dist/constructors/css.d.ts +1 -1
  37. package/native/dist/constructors/keyframes.d.ts +1 -1
  38. package/native/dist/constructors/styled.d.ts +176 -180
  39. package/native/dist/hoc/withTheme.d.ts +2 -2
  40. package/native/dist/models/GlobalStyle.d.ts +1 -1
  41. package/native/dist/models/InlineStyle.d.ts +1 -1
  42. package/native/dist/models/StyledComponent.d.ts +1 -1
  43. package/native/dist/models/StyledNativeComponent.d.ts +2 -2
  44. package/native/dist/native/index.d.ts +25 -29
  45. package/native/dist/styled-components.native.cjs.js +10 -17
  46. package/native/dist/styled-components.native.cjs.js.map +1 -1
  47. package/native/dist/styled-components.native.esm.js +10 -17
  48. package/native/dist/styled-components.native.esm.js.map +1 -1
  49. package/native/dist/test/utils.d.ts +176 -180
  50. package/native/dist/types.d.ts +45 -39
  51. package/native/dist/utils/determineTheme.d.ts +2 -2
  52. package/native/dist/utils/empties.d.ts +2 -2
  53. package/native/dist/utils/flatten.d.ts +3 -3
  54. package/native/dist/utils/interleave.d.ts +1 -1
  55. package/native/dist/utils/isStaticRules.d.ts +1 -1
  56. package/native/dist/utils/isStyledComponent.d.ts +1 -1
  57. package/native/dist/utils/mixinDeep.d.ts +2 -2
  58. package/package.json +2 -2
@@ -12,7 +12,7 @@
12
12
  'data-styled';
13
13
  var SC_ATTR_ACTIVE = 'active';
14
14
  var SC_ATTR_VERSION = 'data-styled-version';
15
- var SC_VERSION = "6.0.0-beta.2";
15
+ var SC_VERSION = "6.0.0-beta.3";
16
16
  var SPLITTER = '/*!sc*/\n';
17
17
  var IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;
18
18
  var DISABLE_SPEEDY = Boolean(typeof SC_DISABLE_SPEEDY === 'boolean'
@@ -924,8 +924,8 @@
924
924
  * inlined version of
925
925
  * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js
926
926
  */
927
- var uppercaseCheck = /([A-Z])/;
928
- var uppercasePattern = /([A-Z])/g;
927
+ var uppercaseCheck = /[A-Z]/;
928
+ var uppercasePattern = /[A-Z]/g;
929
929
  var msPattern = /^ms-/;
930
930
  var prefixAndLowerCase = function (char) { return "-".concat(char.toLowerCase()); };
931
931
  /**
@@ -942,7 +942,7 @@
942
942
  * is converted to `-ms-`.
943
943
  */
944
944
  function hyphenateStyleName(string) {
945
- return uppercaseCheck.test(string)
945
+ return uppercaseCheck.test(string) && !string.startsWith('--')
946
946
  ? string.replace(uppercasePattern, prefixAndLowerCase).replace(msPattern, '-ms-')
947
947
  : string;
948
948
  }
@@ -1046,8 +1046,7 @@
1046
1046
  function isStaticRules(rules) {
1047
1047
  for (var i = 0; i < rules.length; i += 1) {
1048
1048
  var rule = rules[i];
1049
- if (isFunction(rule) &&
1050
- !isStyledComponent(rule)) {
1049
+ if (isFunction(rule) && !isStyledComponent(rule)) {
1051
1050
  // functions are allowed to be static if they're just being
1052
1051
  // used to get the classname of a nested styled component
1053
1052
  return false;
@@ -1855,35 +1854,10 @@
1855
1854
  SC_VERSION + name + identifiers[name]));
1856
1855
  return parentComponentId ? "".concat(parentComponentId, "-").concat(componentId) : componentId;
1857
1856
  }
1858
- function useResolvedAttrs(theme, props, attrs) {
1859
- if (theme === void 0) { theme = EMPTY_OBJECT; }
1860
- // NOTE: can't memoize this
1861
- // returns [context, resolvedAttrs]
1862
- // where resolvedAttrs is only the things injected by the attrs themselves
1863
- var context = __assign(__assign({}, props), { theme: theme });
1864
- attrs.forEach(function (attrDef) {
1865
- // @ts-expect-error narrowing isn't working properly for some reason
1866
- var resolvedAttrDef = typeof attrDef === 'function' ? attrDef(context) : attrDef;
1867
- var key;
1868
- /* eslint-disable guard-for-in */
1869
- for (key in resolvedAttrDef) {
1870
- // @ts-expect-error bad types
1871
- context[key] =
1872
- key === 'className'
1873
- ? joinStrings(context[key], resolvedAttrDef[key])
1874
- : key === 'style'
1875
- ? __assign(__assign({}, context[key]), resolvedAttrDef[key]) : resolvedAttrDef[key];
1876
- }
1877
- /* eslint-enable guard-for-in */
1878
- });
1879
- return context;
1880
- }
1881
1857
  function useInjectedStyle(componentStyle, isStatic, resolvedAttrs, warnTooManyClasses) {
1882
1858
  var styleSheet = useStyleSheet();
1883
1859
  var stylis = useStylis();
1884
- var className = isStatic
1885
- ? componentStyle.generateAndInjectStyles(EMPTY_OBJECT, styleSheet, stylis)
1886
- : componentStyle.generateAndInjectStyles(resolvedAttrs, styleSheet, stylis);
1860
+ var className = componentStyle.generateAndInjectStyles(isStatic ? EMPTY_OBJECT : resolvedAttrs, styleSheet, stylis);
1887
1861
  // eslint-disable-next-line react-hooks/rules-of-hooks
1888
1862
  React.useDebugValue(className);
1889
1863
  if (!isStatic && warnTooManyClasses) {
@@ -1898,36 +1872,56 @@
1898
1872
  // NOTE: the non-hooks version only subscribes to this when !componentStyle.isStatic,
1899
1873
  // but that'd be against the rules-of-hooks. We could be naughty and do it anyway as it
1900
1874
  // should be an immutable value, but behave for now.
1901
- var theme = determineTheme(props, React.useContext(ThemeContext), defaultProps);
1902
- var context = useResolvedAttrs(theme || EMPTY_OBJECT, props, componentAttrs);
1875
+ var theme = determineTheme(props, React.useContext(ThemeContext), defaultProps) || EMPTY_OBJECT;
1876
+ var context = componentAttrs.reduce(function (p, attrDef) {
1877
+ var resolvedAttrDef = typeof attrDef === 'function' ? attrDef(p) : attrDef;
1878
+ var key;
1879
+ /* eslint-disable guard-for-in */
1880
+ for (key in resolvedAttrDef) {
1881
+ // @ts-expect-error bad types
1882
+ p[key] =
1883
+ key === 'className'
1884
+ ? // @ts-expect-error bad types
1885
+ joinStrings(p[key], resolvedAttrDef[key])
1886
+ : key === 'style'
1887
+ ? // @ts-expect-error bad types
1888
+ __assign(__assign({}, p[key]), resolvedAttrDef[key]) : // @ts-expect-error bad types
1889
+ resolvedAttrDef[key];
1890
+ }
1891
+ /* eslint-enable guard-for-in */
1892
+ return p;
1893
+ }, __assign(__assign({}, props), { theme: theme }));
1903
1894
  var generatedClassName = useInjectedStyle(componentStyle, isStatic, context, forwardedComponent.warnTooManyClasses );
1904
1895
  var refToForward = forwardedRef;
1905
- var elementToBeCreated = context.$as || context.as || target;
1896
+ var elementToBeCreated = context.as || target;
1906
1897
  var isTargetTag = isTag(elementToBeCreated);
1907
- var propsForElement = {};
1908
1898
  // eslint-disable-next-line guard-for-in
1909
1899
  for (var key in context) {
1900
+ // @ts-expect-error type narrowing not working properly
1910
1901
  if (key[0] === '$' || key === 'as' || key === 'theme')
1911
- continue;
1902
+ context[key] = undefined;
1912
1903
  else if (key === 'forwardedAs') {
1913
- propsForElement.as = context[key];
1904
+ context.as = context[key];
1905
+ context[key] = undefined;
1914
1906
  }
1915
- else if (shouldForwardProp ? shouldForwardProp(key, elementToBeCreated) : true) {
1907
+ else if (shouldForwardProp ? !shouldForwardProp(key, elementToBeCreated) : false) {
1916
1908
  // Don't pass through non HTML tags through to HTML elements
1917
- propsForElement[key] = context[key];
1909
+ // @ts-expect-error we don't know ahead of time
1910
+ context[key] = undefined;
1918
1911
  }
1919
1912
  }
1920
- propsForElement[
1913
+ context[
1921
1914
  // handle custom elements which React doesn't properly alias
1922
1915
  isTargetTag &&
1923
1916
  domElements.indexOf(elementToBeCreated) === -1
1924
1917
  ? 'class'
1925
1918
  : 'className'] = foldedComponentIds
1926
- .concat(styledComponentId, (generatedClassName !== styledComponentId ? generatedClassName : null), context.className)
1919
+ .concat(styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : '', context.className || '')
1927
1920
  .filter(Boolean)
1928
1921
  .join(' ');
1929
- propsForElement.ref = refToForward;
1930
- return React.createElement(elementToBeCreated, propsForElement);
1922
+ // @ts-expect-error idk the type is probably wrong in this file
1923
+ context.ref = refToForward;
1924
+ return React.createElement(elementToBeCreated, context);
1931
1925
  }
1932
1926
  function createStyledComponent(target, options, rules) {
1933
1927
  var isTargetStyledComp = isStyledComponent(target);