Skip to content

Commit b751b83

Browse files
authored
Merge branch 'next' into shilman/add-tag-exclusion
2 parents bdbd332 + 8648002 commit b751b83

File tree

133 files changed

+2902
-1268
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

133 files changed

+2902
-1268
lines changed

.circleci/config.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -768,30 +768,30 @@ workflows:
768768
requires:
769769
- build
770770
- create-sandboxes:
771-
parallelism: 35
771+
parallelism: 37
772772
requires:
773773
- build
774774
# - smoke-test-sandboxes: # disabled for now
775775
# requires:
776776
# - create-sandboxes
777777
- build-sandboxes:
778-
parallelism: 35
778+
parallelism: 37
779779
requires:
780780
- create-sandboxes
781781
- chromatic-sandboxes:
782-
parallelism: 32
782+
parallelism: 34
783783
requires:
784784
- build-sandboxes
785785
- e2e-production:
786-
parallelism: 30
786+
parallelism: 32
787787
requires:
788788
- build-sandboxes
789789
- e2e-dev:
790790
parallelism: 2
791791
requires:
792792
- create-sandboxes
793793
- test-runner-production:
794-
parallelism: 30
794+
parallelism: 32
795795
requires:
796796
- build-sandboxes
797797
- test-portable-stories:

MIGRATION.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -3899,7 +3899,7 @@ export default {
38993899
We are replacing `@storybook/addon-knobs` with `@storybook/addon-controls`.
39003900
39013901
- [Rationale & discussion](https://github.com/storybookjs/storybook/discussions/15060)
3902-
- [Migration notes](https://github.com/storybookjs/storybook/blob/next/addons/controls/README.md#how-do-i-migrate-from-addon-knobs)
3902+
- [Migration notes](https://github.com/storybookjs/storybook/blob/next/code/addons/controls/README.md#how-do-i-migrate-from-addon-knobs)
39033903
39043904
#### Deprecated scoped blocks imports
39053905

code/addons/docs/template/stories/docs2/resolved-react.stories.ts

+2
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ export default {
4444
docs: {
4545
name: 'ResolvedReact',
4646
},
47+
// the version string changes with every release of React/Next.js/Preact, not worth snapshotting
48+
chromatic: { disable: true },
4749
},
4850
};
4951

code/addons/links/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282
"typescript": "^5.3.2"
8383
},
8484
"peerDependencies": {
85-
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
85+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta"
8686
},
8787
"peerDependenciesMeta": {
8888
"react": {

code/e2e-tests/addon-docs.spec.ts

+5
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,11 @@ test.describe('addon-docs', () => {
200200
expectedReactVersionRange = /^17/;
201201
} else if (templateName.includes('react16')) {
202202
expectedReactVersionRange = /^16/;
203+
} else if (
204+
templateName.includes('react-vite/prerelease') ||
205+
templateName.includes('react-webpack/prerelease')
206+
) {
207+
expectedReactVersionRange = /^19/;
203208
}
204209

205210
// Arrange - Get the actual versions

code/frameworks/nextjs/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,8 @@
173173
},
174174
"peerDependencies": {
175175
"next": "^13.5.0 || ^14.0.0",
176-
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
177-
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
176+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
177+
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
178178
"webpack": "^5.0.0"
179179
},
180180
"peerDependenciesMeta": {

code/frameworks/react-vite/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@
6464
"vite": "^4.0.0"
6565
},
6666
"peerDependencies": {
67-
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
68-
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
67+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
68+
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
6969
"vite": "^4.0.0 || ^5.0.0"
7070
},
7171
"engines": {

code/frameworks/react-webpack5/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@
5353
"@types/node": "^18.0.0"
5454
},
5555
"peerDependencies": {
56-
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
57-
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
56+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
57+
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
5858
"typescript": ">= 4.2.x"
5959
},
6060
"peerDependenciesMeta": {

code/lib/cli/src/sandbox-templates.ts

+44
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,28 @@ const baseTemplates = {
201201
},
202202
skipTasks: ['bench'],
203203
},
204+
'react-vite/prerelease-ts': {
205+
name: 'React Prerelease (Vite | TypeScript)',
206+
/**
207+
* 1. Create a Vite project with the React template
208+
* 2. Add React beta versions
209+
* 3. Add resolutions for @types/react and @types/react-dom, see https://react.dev/blog/2024/04/25/react-19-upgrade-guide#installing
210+
* 4. Add @types/react and @types/react-dom pointing to the beta packages
211+
*/
212+
script: `
213+
npm create vite --yes {{beforeDir}} -- --template react-ts && \
214+
cd {{beforeDir}} && \
215+
yarn add react@beta react-dom@beta && \
216+
jq '.resolutions += {"@types/react": "npm:types-react@beta", "@types/react-dom": "npm:types-react-dom@beta"}' package.json > tmp.json && mv tmp.json package.json && \
217+
yarn add --dev @types/react@npm:types-react@beta @types/react-dom@npm:types-react-dom@beta
218+
`,
219+
expected: {
220+
framework: '@storybook/react-vite',
221+
renderer: '@storybook/react',
222+
builder: '@storybook/builder-vite',
223+
},
224+
skipTasks: ['e2e-tests-dev', 'bench'],
225+
},
204226
'react-webpack/18-ts': {
205227
name: 'React Latest (Webpack | TypeScript)',
206228
script: 'yarn create webpack5-react {{beforeDir}}',
@@ -222,6 +244,26 @@ const baseTemplates = {
222244
},
223245
skipTasks: ['e2e-tests-dev', 'bench'],
224246
},
247+
'react-webpack/prerelease-ts': {
248+
name: 'React Prerelease (Webpack | TypeScript)',
249+
/**
250+
* 1. Create a Webpack project with React beta versions
251+
* 3. Add resolutions for @types/react and @types/react-dom, see https://react.dev/blog/2024/04/25/react-19-upgrade-guide#installing
252+
* 4. Add @types/react and @types/react-dom pointing to the beta packages
253+
*/
254+
script: `
255+
yarn create webpack5-react {{beforeDir}} --version-react="beta" --version-react-dom="beta" && \
256+
cd {{beforeDir}} && \
257+
jq '.resolutions += {"@types/react": "npm:types-react@beta", "@types/react-dom": "npm:types-react-dom@beta"}' package.json > tmp.json && mv tmp.json package.json && \
258+
yarn add --dev @types/react@npm:types-react@beta @types/react-dom@npm:types-react-dom@beta
259+
`,
260+
expected: {
261+
framework: '@storybook/react-webpack5',
262+
renderer: '@storybook/react',
263+
builder: '@storybook/builder-webpack5',
264+
},
265+
skipTasks: ['e2e-tests-dev', 'bench'],
266+
},
225267
'solid-vite/default-js': {
226268
name: 'SolidJS Latest (Vite | JavaScript)',
227269
script: 'npx degit solidjs/templates/js {{beforeDir}}',
@@ -628,6 +670,8 @@ export const daily: TemplateKey[] = [
628670
'angular-cli/prerelease',
629671
'cra/default-js',
630672
'react-vite/default-js',
673+
'react-vite/prerelease-ts',
674+
'react-webpack/prerelease-ts',
631675
'vue3-vite/default-js',
632676
'vue-cli/default-js',
633677
'lit-vite/default-js',

code/lib/react-dom-shim/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@
5858
"typescript": "^5.3.2"
5959
},
6060
"peerDependencies": {
61-
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
62-
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
61+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
62+
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta"
6363
},
6464
"publishConfig": {
6565
"access": "public"

code/lib/theming/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@
6868
"typescript": "^5.3.2"
6969
},
7070
"peerDependencies": {
71-
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
72-
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
71+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
72+
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta"
7373
},
7474
"peerDependenciesMeta": {
7575
"react": {

code/presets/react-webpack/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@
8484
"typescript": "^5.3.2"
8585
},
8686
"peerDependencies": {
87-
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
88-
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
87+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
88+
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta"
8989
},
9090
"peerDependenciesMeta": {
9191
"typescript": {

code/renderers/react/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@
8686
"require-from-string": "^2.0.2"
8787
},
8888
"peerDependencies": {
89-
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
90-
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
89+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
90+
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
9191
"typescript": ">= 4.2.x"
9292
},
9393
"peerDependenciesMeta": {

code/ui/blocks/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@
7575
"@types/color-convert": "^2.0.0"
7676
},
7777
"peerDependencies": {
78-
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
79-
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
78+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
79+
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta"
8080
},
8181
"peerDependenciesMeta": {
8282
"react": {

code/ui/blocks/src/components/Source.tsx

+1-4
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ const Source: FunctionComponent<SourceProps> = ({
9898
language,
9999
code,
100100
dark,
101-
format,
101+
format = false,
102102
...rest
103103
}) => {
104104
const { typography } = useTheme();
@@ -138,7 +138,4 @@ const Source: FunctionComponent<SourceProps> = ({
138138
);
139139
};
140140

141-
Source.defaultProps = {
142-
format: false,
143-
};
144141
export { Source, StyledSyntaxHighlighter };

code/ui/components/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,8 @@
8787
"use-resize-observer": "^9.1.0"
8888
},
8989
"peerDependencies": {
90-
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
91-
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
90+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
91+
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta"
9292
},
9393
"publishConfig": {
9494
"access": "public"

code/ui/components/src/components/form/field/field.tsx

-4
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,3 @@ export const Field = ({ label, children, ...props }: FieldProps) => (
3838
{children}
3939
</Wrapper>
4040
);
41-
42-
Field.defaultProps = {
43-
label: undefined,
44-
};

code/ui/components/src/components/tabs/tabs.tsx

+6-15
Original file line numberDiff line numberDiff line change
@@ -134,14 +134,14 @@ export interface TabsProps {
134134
export const Tabs: FC<TabsProps> = memo(
135135
({
136136
children,
137-
selected,
137+
selected = null,
138138
actions,
139-
absolute,
140-
bordered,
141-
tools,
139+
absolute = false,
140+
bordered = false,
141+
tools = null,
142142
backgroundColor,
143-
id: htmlId,
144-
menuName,
143+
id: htmlId = null,
144+
menuName = 'Tabs',
145145
emptyState,
146146
showToolsWhenEmpty,
147147
}) => {
@@ -206,15 +206,6 @@ export const Tabs: FC<TabsProps> = memo(
206206
}
207207
);
208208
Tabs.displayName = 'Tabs';
209-
Tabs.defaultProps = {
210-
id: null,
211-
children: null,
212-
tools: null,
213-
selected: null,
214-
absolute: false,
215-
bordered: false,
216-
menuName: 'Tabs',
217-
};
218209

219210
export interface TabsStateProps {
220211
children: TabsProps['children'];

code/ui/components/src/components/tooltip/ListItem.tsx

+11-22
Original file line numberDiff line numberDiff line change
@@ -186,17 +186,18 @@ export interface ListItemProps extends Omit<ComponentProps<typeof Item>, 'href'
186186
}
187187

188188
const ListItem = ({
189-
loading,
190-
title,
191-
center,
192-
right,
193-
icon,
194-
active,
195-
disabled,
189+
loading = false,
190+
title = <span>Loading state</span>,
191+
center = null,
192+
right = null,
193+
194+
active = false,
195+
disabled = false,
196196
isIndented,
197-
href,
198-
onClick,
199-
LinkWrapper,
197+
href = null,
198+
onClick = null,
199+
icon,
200+
LinkWrapper = null,
200201
...rest
201202
}: ListItemProps) => {
202203
const itemProps = getItemProps(onClick, href, LinkWrapper);
@@ -220,16 +221,4 @@ const ListItem = ({
220221
);
221222
};
222223

223-
ListItem.defaultProps = {
224-
loading: false,
225-
title: <span>Loading state</span>,
226-
center: null,
227-
right: null,
228-
active: false,
229-
disabled: false,
230-
href: null,
231-
LinkWrapper: null,
232-
onClick: null,
233-
};
234-
235224
export default ListItem;

code/ui/components/src/components/tooltip/Tooltip.tsx

+10-8
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,16 @@ export interface TooltipProps {
126126

127127
export const Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>(
128128
(
129-
{ placement, hasChrome, children, arrowProps, tooltipRef, color, withArrows, ...props },
129+
{
130+
placement = 'top',
131+
hasChrome = true,
132+
children,
133+
arrowProps = {},
134+
tooltipRef,
135+
color,
136+
withArrows,
137+
...props
138+
},
130139
ref
131140
) => {
132141
return (
@@ -139,10 +148,3 @@ export const Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>(
139148
);
140149

141150
Tooltip.displayName = 'Tooltip';
142-
Tooltip.defaultProps = {
143-
color: undefined,
144-
tooltipRef: undefined,
145-
hasChrome: true,
146-
placement: 'top',
147-
arrowProps: {},
148-
};

code/ui/components/src/components/tooltip/TooltipLinkList.tsx

+1-5
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export interface TooltipLinkListProps {
5858
LinkWrapper?: LinkWrapperType;
5959
}
6060

61-
export const TooltipLinkList = ({ links, LinkWrapper }: TooltipLinkListProps) => {
61+
export const TooltipLinkList = ({ links, LinkWrapper = null }: TooltipLinkListProps) => {
6262
const hasIcon = links.some((link) => link.icon);
6363
return (
6464
<List>
@@ -68,7 +68,3 @@ export const TooltipLinkList = ({ links, LinkWrapper }: TooltipLinkListProps) =>
6868
</List>
6969
);
7070
};
71-
72-
TooltipLinkList.defaultProps = {
73-
LinkWrapper: ListItem.defaultProps.LinkWrapper,
74-
};

0 commit comments

Comments
 (0)