styled-components 6.3.12 → 6.4.0-prerelease.0

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 (62) hide show
  1. package/README.md +35 -104
  2. package/dist/constructors/constructWithOptions.d.ts +6 -6
  3. package/dist/constructors/css.d.ts +1 -1
  4. package/dist/constructors/styled.d.ts +1 -1
  5. package/dist/models/ServerStyleSheet.d.ts +3 -1
  6. package/dist/models/StyleSheetManager.d.ts +6 -0
  7. package/dist/native/index.d.ts +1 -1
  8. package/dist/sheet/Sheet.d.ts +1 -0
  9. package/dist/sheet/Tag.d.ts +3 -3
  10. package/dist/sheet/dom.d.ts +1 -1
  11. package/dist/sheet/types.d.ts +1 -0
  12. package/dist/styled-components.browser.cjs.js +1 -1
  13. package/dist/styled-components.browser.cjs.js.map +1 -1
  14. package/dist/styled-components.browser.esm.js +1 -1
  15. package/dist/styled-components.browser.esm.js.map +1 -1
  16. package/dist/styled-components.cjs.js +1 -1
  17. package/dist/styled-components.cjs.js.map +1 -1
  18. package/dist/styled-components.esm.js +1 -1
  19. package/dist/styled-components.esm.js.map +1 -1
  20. package/dist/styled-components.js +48 -20
  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/types.d.ts +15 -3
  25. package/dist/utils/nonce.d.ts +3 -1
  26. package/native/dist/bench/run.d.ts +5 -0
  27. package/native/dist/constructors/constructWithOptions.d.ts +6 -6
  28. package/native/dist/constructors/css.d.ts +1 -1
  29. package/native/dist/constructors/styled.d.ts +1 -1
  30. package/native/dist/dist/bench/run.d.ts +5 -0
  31. package/native/dist/dist/constructors/constructWithOptions.d.ts +6 -6
  32. package/native/dist/dist/constructors/css.d.ts +1 -1
  33. package/native/dist/dist/constructors/styled.d.ts +1 -1
  34. package/native/dist/dist/models/ServerStyleSheet.d.ts +3 -1
  35. package/native/dist/dist/models/StyleSheetManager.d.ts +6 -0
  36. package/native/dist/dist/native/index.d.ts +1 -1
  37. package/native/dist/dist/sheet/Sheet.d.ts +1 -0
  38. package/native/dist/dist/sheet/Tag.d.ts +3 -3
  39. package/native/dist/dist/sheet/dom.d.ts +1 -1
  40. package/native/dist/dist/sheet/types.d.ts +1 -0
  41. package/native/dist/dist/test/globals.d.ts +2 -0
  42. package/native/dist/dist/test/utils.d.ts +163 -0
  43. package/native/dist/dist/test/veryLargeUnionType.d.ts +1 -0
  44. package/native/dist/dist/types.d.ts +15 -3
  45. package/native/dist/dist/utils/nonce.d.ts +3 -1
  46. package/native/dist/dist/utils/rawElement.d.ts +11 -0
  47. package/native/dist/models/ServerStyleSheet.d.ts +3 -1
  48. package/native/dist/models/StyleSheetManager.d.ts +6 -0
  49. package/native/dist/native/index.d.ts +1 -1
  50. package/native/dist/sheet/Sheet.d.ts +1 -0
  51. package/native/dist/sheet/Tag.d.ts +3 -3
  52. package/native/dist/sheet/dom.d.ts +1 -1
  53. package/native/dist/sheet/types.d.ts +1 -0
  54. package/native/dist/styled-components.native.cjs.js.map +1 -1
  55. package/native/dist/styled-components.native.esm.js.map +1 -1
  56. package/native/dist/test/globals.d.ts +2 -0
  57. package/native/dist/test/utils.d.ts +163 -0
  58. package/native/dist/test/veryLargeUnionType.d.ts +1 -0
  59. package/native/dist/types.d.ts +15 -3
  60. package/native/dist/utils/nonce.d.ts +3 -1
  61. package/native/dist/utils/rawElement.d.ts +11 -0
  62. package/package.json +23 -17
@@ -0,0 +1 @@
1
+ export type VeryLargeUnionType = 'add-clip' | 'add-column-left' | 'add-column-right' | 'add-location' | 'add-row-bottom' | 'add-row-top' | 'add-to-artifact' | 'add-to-folder' | 'add' | 'aimpoints-target' | 'airplane' | 'align-center' | 'align-justify' | 'align-left' | 'align-right' | 'alignment-bottom' | 'alignment-horizontal-center' | 'alignment-left' | 'alignment-right' | 'alignment-top' | 'alignment-vertical-center' | 'anchor' | 'annotation' | 'antenna' | 'app-header' | 'application' | 'applications' | 'archive' | 'area-of-interest' | 'array-boolean' | 'array-date' | 'array-floating-point' | 'array-numeric' | 'array-string' | 'array-timestamp' | 'array' | 'arrow-bottom-left' | 'arrow-bottom-right' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-top-left' | 'arrow-top-right' | 'arrow-up' | 'arrows-horizontal' | 'arrows-vertical' | 'asterisk' | 'at' | 'automatic-updates' | 'axle' | 'backlink' | 'badge' | 'ban-circle' | 'bank-account' | 'barcode' | 'blank' | 'blocked-person' | 'bold' | 'book' | 'bookmark' | 'box' | 'briefcase' | 'bring-data' | 'bug' | 'buggy' | 'build' | 'calculator' | 'calendar' | 'camera' | 'caret-down' | 'caret-left' | 'caret-right' | 'caret-up' | 'cargo-ship' | 'cell-tower' | 'changes' | 'chart' | 'chat' | 'chevron-backward' | 'chevron-down' | 'chevron-forward' | 'chevron-left' | 'chevron-right' | 'chevron-up' | 'circle-arrow-down' | 'circle-arrow-left' | 'circle-arrow-right' | 'circle-arrow-up' | 'circle' | 'citation' | 'clean' | 'clip' | 'clipboard' | 'cloud-download' | 'cloud-upload' | 'cloud' | 'code-block' | 'code' | 'cog' | 'collapse-all' | 'color-fill' | 'column-layout' | 'comment' | 'comparison' | 'compass' | 'compressed' | 'confirm' | 'console' | 'contrast' | 'control' | 'credit-card' | 'cross-circle' | 'cross' | 'crown' | 'cube-add' | 'cube-remove' | 'cube' | 'curved-range-chart' | 'cut' | 'cycle' | 'dashboard' | 'data-connection' | 'data-lineage' | 'database' | 'delete' | 'delta' | 'derive-column' | 'desktop' | 'diagnosis' | 'diagram-tree' | 'direction-left' | 'direction-right' | 'disable' | 'divide' | 'document-open' | 'document-share' | 'document' | 'dollar' | 'dot' | 'double-caret-horizontal' | 'double-caret-vertical' | 'double-chevron-down' | 'double-chevron-left' | 'double-chevron-right' | 'double-chevron-up' | 'doughnut-chart' | 'download' | 'drag-handle-horizontal' | 'drag-handle-vertical' | 'draw' | 'drawer-left-filled' | 'drawer-left' | 'drawer-right-filled' | 'drawer-right' | 'drive-time' | 'duplicate' | 'edit' | 'eject' | 'emoji' | 'endorsed' | 'envelope' | 'equals' | 'eraser' | 'error' | 'euro' | 'exchange' | 'exclude-row' | 'expand-all' | 'export' | 'eye-off' | 'eye-on' | 'eye-open' | 'fast-backward' | 'fast-forward' | 'feed-subscribed' | 'feed' | 'film' | 'filter-keep' | 'filter-list' | 'filter-open' | 'filter-remove' | 'filter' | 'flag' | 'flame' | 'flash' | 'floating-point' | 'floppy-disk' | 'flow-branch' | 'flow-end' | 'flow-linear' | 'flow-review-branch' | 'flow-review' | 'flows' | 'folder-close' | 'folder-new' | 'folder-open' | 'folder-shared-open' | 'folder-shared' | 'follower' | 'following' | 'font' | 'fork' | 'form' | 'fuel' | 'full-circle' | 'full-stacked-chart' | 'fullscreen' | 'function' | 'gantt-chart' | 'geofence' | 'geolocation' | 'geosearch' | 'git-branch' | 'git-commit' | 'git-merge' | 'git-new-branch' | 'git-pull' | 'git-push' | 'git-repo' | 'glass' | 'globe-network' | 'globe' | 'graph-remove' | 'graph' | 'greater-than-or-equal-to' | 'greater-than' | 'grid-view' | 'grid' | 'group-objects' | 'grouped-bar-chart' | 'hand-down' | 'hand-left' | 'hand-right' | 'hand-up' | 'hand' | 'hat' | 'header-one' | 'header-three' | 'header-two' | 'header' | 'headset' | 'heart-broken' | 'heart' | 'heat-grid' | 'heatmap' | 'helicopter' | 'help' | 'helper-management' | 'high-priority' | 'high-voltage-pole' | 'highlight' | 'history' | 'home' | 'horizontal-bar-chart-asc' | 'horizontal-bar-chart-desc' | 'horizontal-bar-chart' | 'horizontal-distribution' | 'horizontal-inbetween' | 'hurricane' | 'id-number' | 'image-rotate-left' | 'image-rotate-right' | 'import' | 'inbox-filtered' | 'inbox-geo' | 'inbox-search' | 'inbox-update' | 'inbox' | 'info-sign' | 'inheritance' | 'inherited-group' | 'inner-join' | 'insert' | 'intelligence' | 'intersection' | 'ip-address' | 'issue-closed' | 'issue-new' | 'issue' | 'italic' | 'join-table' | 'key-backspace' | 'key-command' | 'key-control' | 'key-delete' | 'key-enter' | 'key-escape' | 'key-option' | 'key-shift' | 'key-tab' | 'key' | 'known-vehicle' | 'lab-test' | 'label' | 'layer-outline' | 'layer' | 'layers' | 'layout-auto' | 'layout-balloon' | 'layout-circle' | 'layout-grid' | 'layout-group-by' | 'layout-hierarchy' | 'layout-linear' | 'layout-skew-grid' | 'layout-sorted-clusters' | 'layout' | 'learning' | 'left-join' | 'less-than-or-equal-to' | 'less-than' | 'lifesaver' | 'lightbulb' | 'lightning' | 'link' | 'list-columns' | 'list-detail-view' | 'list' | 'locate' | 'lock' | 'locomotive' | 'log-in' | 'log-out' | 'low-voltage-pole' | 'manual' | 'manually-entered-data' | 'many-to-many' | 'many-to-one' | 'map-create' | 'map-marker' | 'map' | 'maximize' | 'media' | 'menu-closed' | 'menu-open' | 'menu' | 'merge-columns' | 'merge-links' | 'minimize' | 'minus' | 'mobile-phone' | 'mobile-video' | 'modal-filled' | 'modal' | 'model' | 'moon' | 'more' | 'mountain' | 'move' | 'mugshot' | 'multi-select' | 'music' | 'nest' | 'new-drawing' | 'new-grid-item' | 'new-layer' | 'new-layers' | 'new-link' | 'new-object' | 'new-person' | 'new-prescription' | 'new-text-box' | 'ninja' | 'not-equal-to' | 'notifications-snooze' | 'notifications-updated' | 'notifications' | 'numbered-list' | 'numerical' | 'office' | 'offline' | 'oil-field' | 'one-column' | 'one-to-many' | 'one-to-one' | 'open-application' | 'outdated' | 'page-layout' | 'panel-stats' | 'panel-table' | 'paperclip' | 'paragraph' | 'path-search' | 'path' | 'pause' | 'people' | 'percentage' | 'person' | 'phone' | 'pie-chart' | 'pin' | 'pivot-table' | 'pivot' | 'play' | 'playbook' | 'plus' | 'polygon-filter' | 'power' | 'predictive-analysis' | 'prescription' | 'presentation' | 'print' | 'projects' | 'properties' | 'property' | 'publish-function' | 'pulse' | 'rain' | 'random' | 'record' | 'rect-height' | 'rect-width' | 'rectangle' | 'redo' | 'refresh' | 'regex' | 'regression-chart' | 'remove-column-left' | 'remove-column-right' | 'remove-column' | 'remove-row-bottom' | 'remove-row-top' | 'remove' | 'repeat' | 'reset' | 'resolve' | 'rig' | 'right-join' | 'ring' | 'rocket-slant' | 'rocket' | 'rotate-document' | 'rotate-page' | 'route' | 'satellite' | 'saved' | 'scatter-plot' | 'search-around' | 'search-template' | 'search-text' | 'search' | 'segmented-control' | 'select' | 'selection' | 'send-message' | 'send-to-graph' | 'send-to-map' | 'send-to' | 'sensor' | 'series-add' | 'series-configuration' | 'series-derived' | 'series-filtered' | 'series-search' | 'settings' | 'shapes' | 'share' | 'shared-filter' | 'shield' | 'ship' | 'shop' | 'shopping-cart' | 'signal-search' | 'sim-card' | 'slash' | 'small-cross' | 'small-info-sign' | 'small-minus' | 'small-plus' | 'small-square' | 'small-tick' | 'snowflake' | 'social-media' | 'sort-alphabetical-desc' | 'sort-alphabetical' | 'sort-asc' | 'sort-desc' | 'sort-numerical-desc' | 'sort-numerical' | 'sort' | 'split-columns' | 'square' | 'stacked-chart' | 'stadium-geometry' | 'star-empty' | 'star' | 'step-backward' | 'step-chart' | 'step-forward' | 'stop' | 'stopwatch' | 'strikethrough' | 'style' | 'subscript' | 'superscript' | 'swap-horizontal' | 'swap-vertical' | 'switch' | 'symbol-circle' | 'symbol-cross' | 'symbol-diamond' | 'symbol-rectangle' | 'symbol-square' | 'symbol-triangle-down' | 'symbol-triangle-up' | 'syringe' | 'tag' | 'take-action' | 'tank' | 'target' | 'taxi' | 'temperature' | 'text-highlight' | 'th-derived' | 'th-disconnect' | 'th-filtered' | 'th-list' | 'th' | 'third-party' | 'thumbs-down' | 'thumbs-up' | 'tick-circle' | 'tick' | 'time' | 'timeline-area-chart' | 'timeline-bar-chart' | 'timeline-events' | 'timeline-line-chart' | 'tint' | 'torch' | 'tractor' | 'train' | 'translate' | 'trash' | 'tree' | 'trending-down' | 'trending-up' | 'truck' | 'two-columns' | 'unarchive' | 'underline' | 'undo' | 'ungroup-objects' | 'unknown-vehicle' | 'unlock' | 'unpin' | 'unresolve' | 'updated' | 'upload' | 'user' | 'variable' | 'vertical-bar-chart-asc' | 'vertical-bar-chart-desc' | 'vertical-distribution' | 'vertical-inbetween' | 'video' | 'virus' | 'volume-down' | 'volume-off' | 'volume-up' | 'walk' | 'warning-sign' | 'waterfall-chart' | 'waves' | 'widget-button' | 'widget-footer' | 'widget-header' | 'widget' | 'wind' | 'wrench' | 'zoom-in' | 'zoom-out' | 'zoom-to-fit';
@@ -132,8 +132,11 @@ export type PolymorphicComponentProps<R extends Runtime, BaseProps extends BaseO
132
132
  * props from the given rendering target to get proper typing for
133
133
  * any specialized props in the target component.
134
134
  */
135
- export interface PolymorphicComponent<R extends Runtime, BaseProps extends BaseObject> extends React.ForwardRefExoticComponent<BaseProps> {
136
- <AsTarget extends StyledTarget<R> | void = void, ForwardedAsTarget extends StyledTarget<R> | void = void>(props: PolymorphicComponentProps<R, BaseProps, AsTarget, ForwardedAsTarget>): React.JSX.Element;
135
+ export interface PolymorphicComponent<R extends Runtime, BaseProps extends BaseObject> extends React.ForwardRefExoticComponent<BaseProps & {
136
+ as?: StyledTarget<R> | undefined;
137
+ forwardedAs?: StyledTarget<R> | undefined;
138
+ }> {
139
+ <AsTarget extends StyledTarget<R> | void = void, ForwardedAsTarget extends StyledTarget<R> | void = void>(props: PolymorphicComponentProps<R, BaseProps, AsTarget, ForwardedAsTarget> & React.RefAttributes<any>): React.JSX.Element;
137
140
  }
138
141
  export interface IStyledComponentBase<R extends Runtime, Props extends BaseObject = BaseObject> extends PolymorphicComponent<R, Props>, IStyledStatics<R, Props>, StyledComponentBrand {
139
142
  defaultProps?: (ExecutionProps & Partial<Props>) | undefined;
@@ -210,6 +213,15 @@ export interface StyledObject<Props extends BaseObject = BaseObject> extends CSS
210
213
  * {@link DefaultTheme}.
211
214
  */
212
215
  export type CSSProp = Interpolation<any>;
216
+ /**
217
+ * @deprecated Use the built-in NoInfer from TypeScript 5.4+ directly.
218
+ * Kept for backward compatibility.
219
+ */
213
220
  export type NoInfer<T> = [T][T extends any ? 0 : never];
214
- export type Substitute<A extends BaseObject, B extends BaseObject> = FastOmit<A, keyof B> & B;
221
+ export type Substitute<A extends BaseObject, B extends BaseObject> = keyof B extends never ? A : FastOmit<A, keyof B> & B;
222
+ /**
223
+ * Makes keys in K optional while keeping all others required.
224
+ * Used to make attrs-provided props optional on the final component.
225
+ */
226
+ export type MakeAttrsOptional<P extends BaseObject, K extends keyof any> = keyof K extends never ? P : FastOmit<P, K & keyof P> & Partial<Pick<P, K & keyof P>>;
215
227
  export type InsertionTarget = HTMLElement | ShadowRoot;
@@ -1 +1,3 @@
1
- export default function getNonce(): string | null;
1
+ /** @internal Reset the nonce cache (for testing only). */
2
+ export declare function resetNonceCache(): void;
3
+ export default function getNonce(): string | undefined;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ /**
3
+ * Creates a React element as a raw object, bypassing React.createElement.
4
+ * ~60-120x faster than React.createElement for the same output.
5
+ *
6
+ * Compatibility: React 16.8+. The $$typeof symbol is auto-detected.
7
+ * - React 16-18: reads ref from element.ref
8
+ * - React 19: reads ref from element.props.ref
9
+ * Both are set correctly when ref is in props AND on the element.
10
+ */
11
+ export declare function rawElement(type: any, props: any, ref?: any, key?: any): React.ReactElement;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "styled-components",
3
- "version": "6.3.12",
3
+ "version": "6.4.0-prerelease.0",
4
4
  "description": "CSS for the <Component> Age. Style components your way with speed, strong typing, and flexibility.",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -14,6 +14,22 @@
14
14
  "./dist/styled-components.esm.js": "./dist/styled-components.browser.esm.js"
15
15
  },
16
16
  "sideEffects": false,
17
+ "scripts": {
18
+ "generateErrors": "node scripts/generateErrorMap.js",
19
+ "typecheck": "tsc --noEmit",
20
+ "prebuild": "rimraf dist && pnpm run generateErrors && pnpm run typecheck",
21
+ "build": "rollup -c",
22
+ "postbuild": "pnpm run size",
23
+ "pretest": "pnpm run generateErrors",
24
+ "test": "pnpm run test:web && pnpm run test:native && pnpm run test:types",
25
+ "test:types": "tsc --noEmit --project tsconfig.test-types.json",
26
+ "test:web": "jest -c jest.config.main.js",
27
+ "test:native": "jest -c jest.config.native.js --forceExit",
28
+ "size": "bundlewatch",
29
+ "prettier": "prettier src --write",
30
+ "prettier:check": "prettier src --check",
31
+ "prepublishOnly": "cp ../../README.md . && pnpm run build"
32
+ },
17
33
  "repository": {
18
34
  "type": "git",
19
35
  "url": "git+https://github.com/styled-components/styled-components.git"
@@ -51,11 +67,15 @@
51
67
  },
52
68
  "peerDependencies": {
53
69
  "react": ">= 16.8.0",
54
- "react-dom": ">= 16.8.0"
70
+ "react-dom": ">= 16.8.0",
71
+ "react-native": ">= 0.68.0"
55
72
  },
56
73
  "peerDependenciesMeta": {
57
74
  "react-dom": {
58
75
  "optional": true
76
+ },
77
+ "react-native": {
78
+ "optional": true
59
79
  }
60
80
  },
61
81
  "devDependencies": {
@@ -129,19 +149,5 @@
129
149
  },
130
150
  "engines": {
131
151
  "node": ">= 16"
132
- },
133
- "scripts": {
134
- "generateErrors": "node scripts/generateErrorMap.js",
135
- "typecheck": "tsc --noEmit",
136
- "prebuild": "rimraf dist && pnpm run generateErrors && pnpm run typecheck",
137
- "build": "rollup -c",
138
- "postbuild": "pnpm run size",
139
- "pretest": "pnpm run generateErrors",
140
- "test": "pnpm run test:web && pnpm run test:native",
141
- "test:web": "jest -c jest.config.main.js",
142
- "test:native": "jest -c jest.config.native.js --forceExit",
143
- "size": "bundlewatch",
144
- "prettier": "prettier src --write",
145
- "prettier:check": "prettier src --check"
146
152
  }
147
- }
153
+ }