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
@@ -8,7 +8,7 @@ var SC_ATTR = (typeof process !== 'undefined' && (process.env.REACT_APP_SC_ATTR
8
8
  'data-styled';
9
9
  var SC_ATTR_ACTIVE = 'active';
10
10
  var SC_ATTR_VERSION = 'data-styled-version';
11
- var SC_VERSION = "6.0.0-beta.2";
11
+ var SC_VERSION = "6.0.0-beta.3";
12
12
  var SPLITTER = '/*!sc*/\n';
13
13
  var IS_BROWSER = typeof undefined !== 'undefined' ;
14
14
  var DISABLE_SPEEDY = Boolean(typeof SC_DISABLE_SPEEDY === 'boolean'
@@ -1130,8 +1130,8 @@ function addUnitIfNeeded(name, value) {
1130
1130
  * inlined version of
1131
1131
  * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/hyphenateStyleName.js
1132
1132
  */
1133
- var uppercaseCheck = /([A-Z])/;
1134
- var uppercasePattern = /([A-Z])/g;
1133
+ var uppercaseCheck = /[A-Z]/;
1134
+ var uppercasePattern = /[A-Z]/g;
1135
1135
  var msPattern = /^ms-/;
1136
1136
  var prefixAndLowerCase = function (char) { return "-".concat(char.toLowerCase()); };
1137
1137
  /**
@@ -1148,7 +1148,7 @@ var prefixAndLowerCase = function (char) { return "-".concat(char.toLowerCase())
1148
1148
  * is converted to `-ms-`.
1149
1149
  */
1150
1150
  function hyphenateStyleName(string) {
1151
- return uppercaseCheck.test(string)
1151
+ return uppercaseCheck.test(string) && !string.startsWith('--')
1152
1152
  ? string.replace(uppercasePattern, prefixAndLowerCase).replace(msPattern, '-ms-')
1153
1153
  : string;
1154
1154
  }
@@ -1238,8 +1238,7 @@ function flatten(chunk, executionContext, styleSheet, stylisInstance) {
1238
1238
  function isStaticRules(rules) {
1239
1239
  for (var i = 0; i < rules.length; i += 1) {
1240
1240
  var rule = rules[i];
1241
- if (isFunction(rule) &&
1242
- !isStyledComponent(rule)) {
1241
+ if (isFunction(rule) && !isStyledComponent(rule)) {
1243
1242
  // functions are allowed to be static if they're just being
1244
1243
  // used to get the classname of a nested styled component
1245
1244
  return false;
@@ -1373,35 +1372,10 @@ function generateId(displayName, parentComponentId) {
1373
1372
  SC_VERSION + name + identifiers[name]));
1374
1373
  return parentComponentId ? "".concat(parentComponentId, "-").concat(componentId) : componentId;
1375
1374
  }
1376
- function useResolvedAttrs(theme, props, attrs) {
1377
- if (theme === void 0) { theme = EMPTY_OBJECT; }
1378
- // NOTE: can't memoize this
1379
- // returns [context, resolvedAttrs]
1380
- // where resolvedAttrs is only the things injected by the attrs themselves
1381
- var context = __assign(__assign({}, props), { theme: theme });
1382
- attrs.forEach(function (attrDef) {
1383
- // @ts-expect-error narrowing isn't working properly for some reason
1384
- var resolvedAttrDef = typeof attrDef === 'function' ? attrDef(context) : attrDef;
1385
- var key;
1386
- /* eslint-disable guard-for-in */
1387
- for (key in resolvedAttrDef) {
1388
- // @ts-expect-error bad types
1389
- context[key] =
1390
- key === 'className'
1391
- ? joinStrings(context[key], resolvedAttrDef[key])
1392
- : key === 'style'
1393
- ? __assign(__assign({}, context[key]), resolvedAttrDef[key]) : resolvedAttrDef[key];
1394
- }
1395
- /* eslint-enable guard-for-in */
1396
- });
1397
- return context;
1398
- }
1399
1375
  function useInjectedStyle(componentStyle, isStatic, resolvedAttrs, warnTooManyClasses) {
1400
1376
  var styleSheet = useStyleSheet();
1401
1377
  var stylis = useStylis();
1402
- var className = isStatic
1403
- ? componentStyle.generateAndInjectStyles(EMPTY_OBJECT, styleSheet, stylis)
1404
- : componentStyle.generateAndInjectStyles(resolvedAttrs, styleSheet, stylis);
1378
+ var className = componentStyle.generateAndInjectStyles(isStatic ? EMPTY_OBJECT : resolvedAttrs, styleSheet, stylis);
1405
1379
  // eslint-disable-next-line react-hooks/rules-of-hooks
1406
1380
  if (process.env.NODE_ENV !== 'production')
1407
1381
  useDebugValue(className);
@@ -1418,36 +1392,56 @@ function useStyledComponentImpl(forwardedComponent, props, forwardedRef, isStati
1418
1392
  // NOTE: the non-hooks version only subscribes to this when !componentStyle.isStatic,
1419
1393
  // but that'd be against the rules-of-hooks. We could be naughty and do it anyway as it
1420
1394
  // should be an immutable value, but behave for now.
1421
- var theme = determineTheme(props, useContext(ThemeContext), defaultProps);
1422
- var context = useResolvedAttrs(theme || EMPTY_OBJECT, props, componentAttrs);
1395
+ var theme = determineTheme(props, useContext(ThemeContext), defaultProps) || EMPTY_OBJECT;
1396
+ var context = componentAttrs.reduce(function (p, attrDef) {
1397
+ var resolvedAttrDef = typeof attrDef === 'function' ? attrDef(p) : attrDef;
1398
+ var key;
1399
+ /* eslint-disable guard-for-in */
1400
+ for (key in resolvedAttrDef) {
1401
+ // @ts-expect-error bad types
1402
+ p[key] =
1403
+ key === 'className'
1404
+ ? // @ts-expect-error bad types
1405
+ joinStrings(p[key], resolvedAttrDef[key])
1406
+ : key === 'style'
1407
+ ? // @ts-expect-error bad types
1408
+ __assign(__assign({}, p[key]), resolvedAttrDef[key]) : // @ts-expect-error bad types
1409
+ resolvedAttrDef[key];
1410
+ }
1411
+ /* eslint-enable guard-for-in */
1412
+ return p;
1413
+ }, __assign(__assign({}, props), { theme: theme }));
1423
1414
  var generatedClassName = useInjectedStyle(componentStyle, isStatic, context, process.env.NODE_ENV !== 'production' ? forwardedComponent.warnTooManyClasses : undefined);
1424
1415
  var refToForward = forwardedRef;
1425
- var elementToBeCreated = context.$as || context.as || target;
1416
+ var elementToBeCreated = context.as || target;
1426
1417
  var isTargetTag = isTag(elementToBeCreated);
1427
- var propsForElement = {};
1428
1418
  // eslint-disable-next-line guard-for-in
1429
1419
  for (var key in context) {
1420
+ // @ts-expect-error type narrowing not working properly
1430
1421
  if (key[0] === '$' || key === 'as' || key === 'theme')
1431
- continue;
1422
+ context[key] = undefined;
1432
1423
  else if (key === 'forwardedAs') {
1433
- propsForElement.as = context[key];
1424
+ context.as = context[key];
1425
+ context[key] = undefined;
1434
1426
  }
1435
- else if (shouldForwardProp ? shouldForwardProp(key, elementToBeCreated) : true) {
1427
+ else if (shouldForwardProp ? !shouldForwardProp(key, elementToBeCreated) : false) {
1436
1428
  // Don't pass through non HTML tags through to HTML elements
1437
- propsForElement[key] = context[key];
1429
+ // @ts-expect-error we don't know ahead of time
1430
+ context[key] = undefined;
1438
1431
  }
1439
1432
  }
1440
- propsForElement[
1433
+ context[
1441
1434
  // handle custom elements which React doesn't properly alias
1442
1435
  isTargetTag &&
1443
1436
  domElements.indexOf(elementToBeCreated) === -1
1444
1437
  ? 'class'
1445
1438
  : 'className'] = foldedComponentIds
1446
- .concat(styledComponentId, (generatedClassName !== styledComponentId ? generatedClassName : null), context.className)
1439
+ .concat(styledComponentId, generatedClassName !== styledComponentId ? generatedClassName : '', context.className || '')
1447
1440
  .filter(Boolean)
1448
1441
  .join(' ');
1449
- propsForElement.ref = refToForward;
1450
- return createElement(elementToBeCreated, propsForElement);
1442
+ // @ts-expect-error idk the type is probably wrong in this file
1443
+ context.ref = refToForward;
1444
+ return createElement(elementToBeCreated, context);
1451
1445
  }
1452
1446
  function createStyledComponent(target, options, rules) {
1453
1447
  var isTargetStyledComp = isStyledComponent(target);