From 613171e7c8a43f174b6bda73c924a022ecfb5b9b Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Wed, 12 Oct 2022 11:36:26 +0200 Subject: [PATCH 1/2] CSF3 react templates for storybook init --- .vscode/settings.json | 3 +- code/addons/a11y/package.json | 2 +- code/addons/actions/package.json | 2 +- code/addons/backgrounds/package.json | 2 +- code/addons/docs/package.json | 2 +- code/addons/essentials/package.json | 2 +- code/addons/highlight/package.json | 2 +- code/addons/interactions/package.json | 2 +- code/addons/jest/package.json | 2 +- code/addons/links/package.json | 2 +- code/addons/measure/package.json | 2 +- code/addons/outline/package.json | 2 +- code/addons/storysource/package.json | 2 +- code/addons/toolbars/package.json | 2 +- code/addons/viewport/package.json | 2 +- code/examples/angular-cli/package.json | 2 +- code/examples/doc-blocks/package.json | 2 +- code/examples/external-docs/package.json | 2 +- code/frameworks/angular/package.json | 2 +- code/frameworks/ember/package.json | 2 +- code/frameworks/html-webpack5/package.json | 2 +- code/frameworks/preact-webpack5/package.json | 2 +- code/frameworks/react-vite/package.json | 2 +- code/frameworks/react-webpack5/package.json | 2 +- code/frameworks/server-webpack5/package.json | 2 +- code/frameworks/svelte-vite/package.json | 2 +- code/frameworks/svelte-webpack5/package.json | 2 +- code/frameworks/vue-vite/package.json | 2 +- code/frameworks/vue-webpack5/package.json | 2 +- code/frameworks/vue3-vite/package.json | 2 +- code/frameworks/vue3-webpack5/package.json | 2 +- .../web-components-vite/package.json | 2 +- .../web-components-webpack5/package.json | 2 +- code/lib/api/package.json | 2 +- code/lib/builder-manager/package.json | 2 +- code/lib/builder-vite/package.json | 2 +- code/lib/builder-webpack5/package.json | 2 +- code/lib/channel-postmessage/package.json | 2 +- code/lib/channel-websocket/package.json | 2 +- code/lib/channels/package.json | 2 +- code/lib/cli-sb/package.json | 2 +- code/lib/cli-storybook/package.json | 2 +- code/lib/cli/package.json | 4 +- .../rendererAssets/html/ts/Header.stories.ts | 2 +- .../react/ts-legacy/Button.stories.tsx | 42 ++++ .../rendererAssets/react/ts-legacy/Button.tsx | 48 ++++ .../react/ts-legacy/Header.stories.tsx | 22 ++ .../rendererAssets/react/ts-legacy/Header.tsx | 56 +++++ .../react/ts-legacy/Page.stories.tsx | 27 +++ .../rendererAssets/react/ts-legacy/Page.tsx | 73 ++++++ .../react/ts/Button.stories.tsx | 58 +++-- .../react/ts/Header.stories.tsx | 26 ++- .../rendererAssets/react/ts/Page.stories.tsx | 34 +-- code/lib/cli/src/add.ts | 9 +- .../src/automigrate/fixes/angular12.test.ts | 11 +- .../automigrate/fixes/builder-vite.test.ts | 11 +- .../cli/src/automigrate/fixes/cra5.test.ts | 11 +- .../automigrate/fixes/eslint-plugin.test.ts | 8 +- .../automigrate/fixes/new-frameworks.test.ts | 11 +- .../cli/src/automigrate/fixes/npm7.test.ts | 2 +- .../src/automigrate/fixes/sb-scripts.test.ts | 6 +- .../cli/src/automigrate/fixes/vue3.test.ts | 4 +- .../src/automigrate/fixes/webpack5.test.ts | 11 +- code/lib/cli/src/detect.test.ts | 43 ++-- code/lib/cli/src/detect.ts | 23 +- code/lib/cli/src/helpers.ts | 29 ++- .../src/js-package-manager/NPMProxy.test.ts | 2 + .../src/js-package-manager/Yarn1Proxy.test.ts | 2 + .../src/js-package-manager/Yarn2Proxy.test.ts | 2 + code/lib/cli/src/project_types.ts | 3 +- code/lib/cli/tsconfig.json | 19 +- code/lib/client-api/package.json | 2 +- code/lib/client-logger/package.json | 2 +- code/lib/codemod/package.json | 4 +- code/lib/components/package.json | 4 +- code/lib/core-client/package.json | 2 +- code/lib/core-common/package.json | 2 +- code/lib/core-events/package.json | 2 +- code/lib/core-server/package.json | 2 +- code/lib/core-webpack/package.json | 2 +- code/lib/csf-tools/package.json | 2 +- code/lib/docs-tools/package.json | 2 +- code/lib/instrumenter/package.json | 2 +- code/lib/node-logger/package.json | 2 +- code/lib/postinstall/package.json | 2 +- code/lib/preview-web/package.json | 2 +- code/lib/router/package.json | 2 +- code/lib/source-loader/package.json | 4 +- code/lib/store/package.json | 2 +- code/lib/telemetry/package.json | 2 +- code/lib/theming/package.json | 2 +- code/lib/ui/package.json | 2 +- code/package.json | 6 +- code/presets/html-webpack/package.json | 2 +- code/presets/preact-webpack/package.json | 2 +- code/presets/react-webpack/package.json | 2 +- code/presets/server-webpack/package.json | 2 +- code/presets/svelte-webpack/package.json | 2 +- code/presets/vue-webpack/package.json | 2 +- code/presets/vue3-webpack/package.json | 2 +- .../web-components-webpack/package.json | 2 +- code/renderers/html/package.json | 2 +- code/renderers/preact/package.json | 2 +- code/renderers/react/package.json | 2 +- code/renderers/server/package.json | 2 +- code/renderers/svelte/package.json | 2 +- code/renderers/vue/package.json | 2 +- code/renderers/vue3/package.json | 2 +- code/renderers/web-components/package.json | 2 +- code/yarn.lock | 218 ++++++++++-------- scripts/package.json | 12 +- scripts/yarn.lock | 28 +-- 112 files changed, 714 insertions(+), 314 deletions(-) create mode 100644 code/lib/cli/rendererAssets/react/ts-legacy/Button.stories.tsx create mode 100644 code/lib/cli/rendererAssets/react/ts-legacy/Button.tsx create mode 100644 code/lib/cli/rendererAssets/react/ts-legacy/Header.stories.tsx create mode 100644 code/lib/cli/rendererAssets/react/ts-legacy/Header.tsx create mode 100644 code/lib/cli/rendererAssets/react/ts-legacy/Page.stories.tsx create mode 100644 code/lib/cli/rendererAssets/react/ts-legacy/Page.tsx diff --git a/.vscode/settings.json b/.vscode/settings.json index 6534f373734d..e4831db738b6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,4 @@ { - "deepscan.enable": true + "deepscan.enable": true, + "typescript.tsdk": "./code/node_modules/typescript/lib" } diff --git a/code/addons/a11y/package.json b/code/addons/a11y/package.json index 2b11c8b508ae..88837ab3f7a1 100644 --- a/code/addons/a11y/package.json +++ b/code/addons/a11y/package.json @@ -80,7 +80,7 @@ }, "devDependencies": { "@testing-library/react": "^11.2.2", - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", diff --git a/code/addons/actions/package.json b/code/addons/actions/package.json index 76ad995c95e4..502f5a15250b 100644 --- a/code/addons/actions/package.json +++ b/code/addons/actions/package.json @@ -78,7 +78,7 @@ }, "devDependencies": { "@types/lodash": "^4.14.167", - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", diff --git a/code/addons/backgrounds/package.json b/code/addons/backgrounds/package.json index 112e3b8fd838..962aa4d22cc2 100644 --- a/code/addons/backgrounds/package.json +++ b/code/addons/backgrounds/package.json @@ -75,7 +75,7 @@ "util-deprecate": "^1.0.2" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", diff --git a/code/addons/docs/package.json b/code/addons/docs/package.json index 77b763ca5156..56dfea15b9d0 100644 --- a/code/addons/docs/package.json +++ b/code/addons/docs/package.json @@ -82,7 +82,7 @@ "@babel/core": "^7.12.10", "@storybook/mdx2-csf": "0.0.4-canary.14.04ffbe8.0", "@types/util-deprecate": "^1.0.0", - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "@storybook/mdx2-csf": "0.0.4-canary.14.04ffbe8.0", diff --git a/code/addons/essentials/package.json b/code/addons/essentials/package.json index 7534d457e4bd..8834c1c9605f 100644 --- a/code/addons/essentials/package.json +++ b/code/addons/essentials/package.json @@ -60,7 +60,7 @@ "@babel/core": "^7.12.10", "@storybook/vue": "7.0.0-alpha.35", "@types/jest": "^26.0.16", - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "@babel/core": "^7.9.6" diff --git a/code/addons/highlight/package.json b/code/addons/highlight/package.json index 54a5f9ce7ad9..322ea7a131ea 100644 --- a/code/addons/highlight/package.json +++ b/code/addons/highlight/package.json @@ -43,7 +43,7 @@ }, "devDependencies": { "@types/webpack-env": "^1.16.0", - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "publishConfig": { "access": "public" diff --git a/code/addons/interactions/package.json b/code/addons/interactions/package.json index 6b44b3b2d83f..d4390cd7f484 100644 --- a/code/addons/interactions/package.json +++ b/code/addons/interactions/package.json @@ -78,7 +78,7 @@ "@storybook/testing-library": "0.0.14-next.0", "@types/node": "^14.14.20 || ^16.0.0", "formik": "^2.2.9", - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", diff --git a/code/addons/jest/package.json b/code/addons/jest/package.json index 088924236633..d9c483f32e4e 100644 --- a/code/addons/jest/package.json +++ b/code/addons/jest/package.json @@ -70,7 +70,7 @@ "upath": "^1.2.0" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", diff --git a/code/addons/links/package.json b/code/addons/links/package.json index e3f53dc369cf..ed5694f8ad3b 100644 --- a/code/addons/links/package.json +++ b/code/addons/links/package.json @@ -73,7 +73,7 @@ "ts-dedent": "^2.0.0" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", diff --git a/code/addons/measure/package.json b/code/addons/measure/package.json index 0a8ff9f37396..f9199ffad09b 100644 --- a/code/addons/measure/package.json +++ b/code/addons/measure/package.json @@ -70,7 +70,7 @@ "global": "^4.4.0" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", diff --git a/code/addons/outline/package.json b/code/addons/outline/package.json index c7db804caac2..13768fb637ed 100644 --- a/code/addons/outline/package.json +++ b/code/addons/outline/package.json @@ -74,7 +74,7 @@ "ts-dedent": "^2.0.0" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", diff --git a/code/addons/storysource/package.json b/code/addons/storysource/package.json index 739393c05219..640545d71691 100644 --- a/code/addons/storysource/package.json +++ b/code/addons/storysource/package.json @@ -49,7 +49,7 @@ "devDependencies": { "@types/react": "^16.14.23", "@types/react-syntax-highlighter": "11.0.5", - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", diff --git a/code/addons/toolbars/package.json b/code/addons/toolbars/package.json index fcc857e301d3..f2ce21bf59ba 100644 --- a/code/addons/toolbars/package.json +++ b/code/addons/toolbars/package.json @@ -64,7 +64,7 @@ "@storybook/theming": "7.0.0-alpha.35" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", diff --git a/code/addons/viewport/package.json b/code/addons/viewport/package.json index b03e7a8153e1..042dd88cfd94 100644 --- a/code/addons/viewport/package.json +++ b/code/addons/viewport/package.json @@ -70,7 +70,7 @@ "prop-types": "^15.7.2" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", diff --git a/code/examples/angular-cli/package.json b/code/examples/angular-cli/package.json index 7ad07149ae93..6fb6c04a510e 100644 --- a/code/examples/angular-cli/package.json +++ b/code/examples/angular-cli/package.json @@ -74,7 +74,7 @@ "storybook-addon-angular-ivy": "^0.0.1", "ts-jest": "^26.4.4", "ts-node": "^10.4.0", - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "storybook": { "chromatic": { diff --git a/code/examples/doc-blocks/package.json b/code/examples/doc-blocks/package.json index 182bd90e3986..d144b0a8d1f5 100644 --- a/code/examples/doc-blocks/package.json +++ b/code/examples/doc-blocks/package.json @@ -29,7 +29,7 @@ "cross-env": "^7.0.3", "lodash": "^4.17.21", "sb": "7.0.0-alpha.35", - "typescript": "~4.6.3", + "typescript": "4.9.0-dev.20221011", "webpack": "5" }, "storybook": { diff --git a/code/examples/external-docs/package.json b/code/examples/external-docs/package.json index 61782ecb0ac6..18c7c8a70706 100644 --- a/code/examples/external-docs/package.json +++ b/code/examples/external-docs/package.json @@ -39,7 +39,7 @@ "eslint": "8.7.0", "eslint-config-next": "12.0.8", "storybook": "7.0.0-alpha.35", - "typescript": "~4.6.3", + "typescript": "4.9.0-dev.20221011", "webpack": "5" } } diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json index 563d3e1aa783..15d9bfb3d476 100644 --- a/code/frameworks/angular/package.json +++ b/code/frameworks/angular/package.json @@ -94,7 +94,7 @@ "jest-preset-angular": "^12.0.0", "jest-specific-snapshot": "^5.0.0", "tmp": "^0.2.1", - "typescript": "~4.6.3", + "typescript": "4.9.0-dev.20221011", "webpack": "5" }, "peerDependencies": { diff --git a/code/frameworks/ember/package.json b/code/frameworks/ember/package.json index 0ca2bef180a3..856d2a2c8ee7 100644 --- a/code/frameworks/ember/package.json +++ b/code/frameworks/ember/package.json @@ -42,7 +42,7 @@ "ts-dedent": "^2.0.0" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "@babel/core": "*", diff --git a/code/frameworks/html-webpack5/package.json b/code/frameworks/html-webpack5/package.json index fd53eb660e1c..547c912c7513 100644 --- a/code/frameworks/html-webpack5/package.json +++ b/code/frameworks/html-webpack5/package.json @@ -60,7 +60,7 @@ "react-dom": "16.14.0" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "@babel/core": "*" diff --git a/code/frameworks/preact-webpack5/package.json b/code/frameworks/preact-webpack5/package.json index 1b11b2ddfad4..80a1e1c653a9 100644 --- a/code/frameworks/preact-webpack5/package.json +++ b/code/frameworks/preact-webpack5/package.json @@ -60,7 +60,7 @@ }, "devDependencies": { "preact": "^10.5.13", - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "@babel/core": "*", diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index a9b8ef09e1a3..86400597ae22 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -68,7 +68,7 @@ }, "devDependencies": { "@types/node": "^14.14.20 || ^16.0.0", - "typescript": "~4.6.3", + "typescript": "4.9.0-dev.20221011", "vite": "^3.1.3" }, "peerDependencies": { diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json index db990dab3045..3e2616542d93 100644 --- a/code/frameworks/react-webpack5/package.json +++ b/code/frameworks/react-webpack5/package.json @@ -58,7 +58,7 @@ }, "devDependencies": { "jest-specific-snapshot": "^4.0.0", - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "@babel/core": "^7.11.5", diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json index 26889e59ed39..81fc8fbda510 100644 --- a/code/frameworks/server-webpack5/package.json +++ b/code/frameworks/server-webpack5/package.json @@ -59,7 +59,7 @@ "react-dom": "16.14.0" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "engines": { "node": ">=10.13.0" diff --git a/code/frameworks/svelte-vite/package.json b/code/frameworks/svelte-vite/package.json index 1222d220e903..90ce2636e997 100644 --- a/code/frameworks/svelte-vite/package.json +++ b/code/frameworks/svelte-vite/package.json @@ -68,7 +68,7 @@ }, "devDependencies": { "@types/node": "^14.14.20 || ^16.0.0", - "typescript": "~4.6.3", + "typescript": "4.9.0-dev.20221011", "vite": "^3.1.3" }, "peerDependencies": { diff --git a/code/frameworks/svelte-webpack5/package.json b/code/frameworks/svelte-webpack5/package.json index 924b6b4b16ed..6f63ec3938c6 100644 --- a/code/frameworks/svelte-webpack5/package.json +++ b/code/frameworks/svelte-webpack5/package.json @@ -61,7 +61,7 @@ "devDependencies": { "svelte": "^3.48.0", "svelte-loader": "^3.1.2", - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "@babel/core": "*", diff --git a/code/frameworks/vue-vite/package.json b/code/frameworks/vue-vite/package.json index 02eb7f501ef1..8a32df4fb4bc 100644 --- a/code/frameworks/vue-vite/package.json +++ b/code/frameworks/vue-vite/package.json @@ -64,7 +64,7 @@ "vue-docgen-api": "^4.40.0" }, "devDependencies": { - "typescript": "~4.6.3", + "typescript": "4.9.0-dev.20221011", "vue": "^2.7.10" }, "peerDependencies": { diff --git a/code/frameworks/vue-webpack5/package.json b/code/frameworks/vue-webpack5/package.json index 3cb6521256bd..75a28774db85 100644 --- a/code/frameworks/vue-webpack5/package.json +++ b/code/frameworks/vue-webpack5/package.json @@ -59,7 +59,7 @@ "react-dom": "16.14.0" }, "devDependencies": { - "typescript": "~4.6.3", + "typescript": "4.9.0-dev.20221011", "vue": "^2.6.12", "vue-loader": "^15.7.0", "vue-template-compiler": "^2.6.14" diff --git a/code/frameworks/vue3-vite/package.json b/code/frameworks/vue3-vite/package.json index 4d8b865e55e7..a5d14393af0d 100644 --- a/code/frameworks/vue3-vite/package.json +++ b/code/frameworks/vue3-vite/package.json @@ -66,7 +66,7 @@ }, "devDependencies": { "@types/node": "^14.14.20 || ^16.0.0", - "typescript": "~4.6.3", + "typescript": "4.9.0-dev.20221011", "vite": "^3.1.3" }, "engines": { diff --git a/code/frameworks/vue3-webpack5/package.json b/code/frameworks/vue3-webpack5/package.json index fed71e848757..1919ccb56519 100644 --- a/code/frameworks/vue3-webpack5/package.json +++ b/code/frameworks/vue3-webpack5/package.json @@ -60,7 +60,7 @@ }, "devDependencies": { "@vue/compiler-sfc": "3.0.0", - "typescript": "~4.6.3", + "typescript": "4.9.0-dev.20221011", "vue": "3.0.0" }, "peerDependencies": { diff --git a/code/frameworks/web-components-vite/package.json b/code/frameworks/web-components-vite/package.json index 6c4a4a54cf89..cdab13d6a3a6 100644 --- a/code/frameworks/web-components-vite/package.json +++ b/code/frameworks/web-components-vite/package.json @@ -66,7 +66,7 @@ }, "devDependencies": { "@types/node": "^14.14.20 || ^16.0.0", - "typescript": "~4.6.3", + "typescript": "4.9.0-dev.20221011", "vite": "^3.1.0" }, "engines": { diff --git a/code/frameworks/web-components-webpack5/package.json b/code/frameworks/web-components-webpack5/package.json index cb44b38eb155..1ca23a2f9bb2 100644 --- a/code/frameworks/web-components-webpack5/package.json +++ b/code/frameworks/web-components-webpack5/package.json @@ -63,7 +63,7 @@ }, "devDependencies": { "lit-html": "2.0.2", - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "lit-html": "^1.4.1 || ^2.0.0" diff --git a/code/lib/api/package.json b/code/lib/api/package.json index 55d1e533ce78..d64bdc1c7e29 100644 --- a/code/lib/api/package.json +++ b/code/lib/api/package.json @@ -68,7 +68,7 @@ "@types/qs": "^6", "flush-promises": "^1.0.2", "qs": "^6.10.1", - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", diff --git a/code/lib/builder-manager/package.json b/code/lib/builder-manager/package.json index 23152f468c11..78f6cb411d3c 100644 --- a/code/lib/builder-manager/package.json +++ b/code/lib/builder-manager/package.json @@ -57,7 +57,7 @@ "util": "^0.12.4" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "publishConfig": { "access": "public" diff --git a/code/lib/builder-vite/package.json b/code/lib/builder-vite/package.json index a4a4525282fd..e715272b29fe 100644 --- a/code/lib/builder-vite/package.json +++ b/code/lib/builder-vite/package.json @@ -39,7 +39,7 @@ "@storybook/mdx2-csf": "^0.0.3", "@types/express": "^4.17.13", "@types/node": "^17.0.23", - "typescript": "~4.6.3", + "typescript": "4.9.0-dev.20221011", "vite": "^3.1.3" }, "peerDependencies": { diff --git a/code/lib/builder-webpack5/package.json b/code/lib/builder-webpack5/package.json index 8fa91559f0bc..42745be12bbc 100644 --- a/code/lib/builder-webpack5/package.json +++ b/code/lib/builder-webpack5/package.json @@ -79,7 +79,7 @@ "@types/webpack-dev-middleware": "^5.3.0", "@types/webpack-hot-middleware": "^2.25.6", "@types/webpack-virtual-modules": "^0.1.1", - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", diff --git a/code/lib/channel-postmessage/package.json b/code/lib/channel-postmessage/package.json index d55cb646db9a..21f3e6d8ade5 100644 --- a/code/lib/channel-postmessage/package.json +++ b/code/lib/channel-postmessage/package.json @@ -42,7 +42,7 @@ "telejson": "^6.0.8" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "publishConfig": { "access": "public" diff --git a/code/lib/channel-websocket/package.json b/code/lib/channel-websocket/package.json index bbe3d09ba5ce..2766321e16de 100644 --- a/code/lib/channel-websocket/package.json +++ b/code/lib/channel-websocket/package.json @@ -40,7 +40,7 @@ "telejson": "^6.0.8" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "publishConfig": { "access": "public" diff --git a/code/lib/channels/package.json b/code/lib/channels/package.json index 489f3a585ec4..30bda3bb1d38 100644 --- a/code/lib/channels/package.json +++ b/code/lib/channels/package.json @@ -42,7 +42,7 @@ "prep": "../../../scripts/prepare/bundle.ts" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "publishConfig": { "access": "public" diff --git a/code/lib/cli-sb/package.json b/code/lib/cli-sb/package.json index da4f374a25c6..46bf9f1dd3a2 100644 --- a/code/lib/cli-sb/package.json +++ b/code/lib/cli-sb/package.json @@ -28,7 +28,7 @@ "@storybook/cli": "7.0.0-alpha.35" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "publishConfig": { "access": "public" diff --git a/code/lib/cli-storybook/package.json b/code/lib/cli-storybook/package.json index 2918ce25ce30..376cb72c2421 100644 --- a/code/lib/cli-storybook/package.json +++ b/code/lib/cli-storybook/package.json @@ -31,7 +31,7 @@ "@storybook/cli": "7.0.0-alpha.35" }, "devDependencies": { - "typescript": "~4.6.3" + "typescript": "4.9.0-dev.20221011" }, "publishConfig": { "access": "public" diff --git a/code/lib/cli/package.json b/code/lib/cli/package.json index a2b2e68f876b..df2e838fbb54 100644 --- a/code/lib/cli/package.json +++ b/code/lib/cli/package.json @@ -77,13 +77,15 @@ "@storybook/client-api": "7.0.0-alpha.35", "@types/cross-spawn": "^6.0.2", "@types/degit": "^2.8.3", + "@types/invariant": "^2", "@types/prompts": "^2.0.9", "@types/puppeteer-core": "^2.1.0", "@types/semver": "^7.3.4", "@types/shelljs": "^0.8.7", "@types/update-notifier": "^5.0.0", "strip-json-comments": "^3.1.1", - "typescript": "~4.6.3", + "tiny-invariant": "^1.3.1", + "typescript": "4.9.0-dev.20221011", "update-notifier": "^5.0.1" }, "publishConfig": { diff --git a/code/lib/cli/rendererAssets/html/ts/Header.stories.ts b/code/lib/cli/rendererAssets/html/ts/Header.stories.ts index 23596519d38b..f3dfac31fc8c 100644 --- a/code/lib/cli/rendererAssets/html/ts/Header.stories.ts +++ b/code/lib/cli/rendererAssets/html/ts/Header.stories.ts @@ -19,7 +19,7 @@ const Template: StoryFn = (args) => createHeader(args); export const LoggedIn = Template.bind({}); LoggedIn.args = { - user: {}, + user: { name: 'John Doe' }, }; export const LoggedOut = Template.bind({}); diff --git a/code/lib/cli/rendererAssets/react/ts-legacy/Button.stories.tsx b/code/lib/cli/rendererAssets/react/ts-legacy/Button.stories.tsx new file mode 100644 index 000000000000..381d89678c93 --- /dev/null +++ b/code/lib/cli/rendererAssets/react/ts-legacy/Button.stories.tsx @@ -0,0 +1,42 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import { Button } from './Button'; + +// More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export +const meta: Meta = { + title: 'Example/Button', + component: Button, + // More on argTypes: https://storybook.js.org/docs/react/api/argtypes + argTypes: { + backgroundColor: { control: 'color' }, + }, +}; + +export default meta; + +export const Primary: StoryObj = { + // More on args: https://storybook.js.org/docs/react/writing-stories/args + args: { + primary: true, + label: 'Button', + }, +}; + +export const Secondary: StoryObj = { + args: { + label: 'Button', + }, +}; + +export const Large: StoryObj = { + args: { + size: 'large', + label: 'Button', + }, +}; + +export const Small: StoryObj = { + args: { + size: 'small', + label: 'Button', + }, +}; diff --git a/code/lib/cli/rendererAssets/react/ts-legacy/Button.tsx b/code/lib/cli/rendererAssets/react/ts-legacy/Button.tsx new file mode 100644 index 000000000000..c33be6ec52c4 --- /dev/null +++ b/code/lib/cli/rendererAssets/react/ts-legacy/Button.tsx @@ -0,0 +1,48 @@ +import React from 'react'; +import './button.css'; + +interface ButtonProps { + /** + * Is this the principal call to action on the page? + */ + primary?: boolean; + /** + * What background color to use + */ + backgroundColor?: string; + /** + * How large should the button be? + */ + size?: 'small' | 'medium' | 'large'; + /** + * Button contents + */ + label: string; + /** + * Optional click handler + */ + onClick?: () => void; +} + +/** + * Primary UI component for user interaction + */ +export const Button = ({ + primary = false, + size = 'medium', + backgroundColor, + label, + ...props +}: ButtonProps) => { + const mode = primary ? 'storybook-button--primary' : 'storybook-button--secondary'; + return ( + + ); +}; diff --git a/code/lib/cli/rendererAssets/react/ts-legacy/Header.stories.tsx b/code/lib/cli/rendererAssets/react/ts-legacy/Header.stories.tsx new file mode 100644 index 000000000000..0e429250da22 --- /dev/null +++ b/code/lib/cli/rendererAssets/react/ts-legacy/Header.stories.tsx @@ -0,0 +1,22 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import React from 'react'; +import { Header } from './Header'; + +const meta: Meta = { + title: 'Example/Header', + component: Header, + parameters: { + // More on Story layout: https://storybook.js.org/docs/react/configure/story-layout + layout: 'fullscreen', + }, +}; + +export default meta; + +export const LoggedIn: StoryObj = { + args: { + user: { name: 'Jane Doe' }, + }, +}; + +export const LoggedOut: StoryObj = {}; diff --git a/code/lib/cli/rendererAssets/react/ts-legacy/Header.tsx b/code/lib/cli/rendererAssets/react/ts-legacy/Header.tsx new file mode 100644 index 000000000000..dc3f3c19c31a --- /dev/null +++ b/code/lib/cli/rendererAssets/react/ts-legacy/Header.tsx @@ -0,0 +1,56 @@ +import React from 'react'; + +import { Button } from './Button'; +import './header.css'; + +type User = { + name: string; +}; + +interface HeaderProps { + user?: User; + onLogin: () => void; + onLogout: () => void; + onCreateAccount: () => void; +} + +export const Header = ({ user, onLogin, onLogout, onCreateAccount }: HeaderProps) => ( +
+
+
+ + + + + + + +

Acme

+
+
+ {user ? ( + <> + + Welcome, {user.name}! + +
+
+
+); diff --git a/code/lib/cli/rendererAssets/react/ts-legacy/Page.stories.tsx b/code/lib/cli/rendererAssets/react/ts-legacy/Page.stories.tsx new file mode 100644 index 000000000000..f9fcc3863c97 --- /dev/null +++ b/code/lib/cli/rendererAssets/react/ts-legacy/Page.stories.tsx @@ -0,0 +1,27 @@ +import type { Meta } from '@storybook/react'; +import { StoryObj } from '@storybook/react/src'; +import { userEvent, within } from '@storybook/testing-library'; +import React from 'react'; +import { Page } from './Page'; + +const meta: Meta = { + title: 'Example/Page', + component: Page, + parameters: { + // More on Story layout: https://storybook.js.org/docs/react/configure/story-layout + layout: 'fullscreen', + }, +}; + +export default meta; + +export const LoggedOut: StoryObj = {}; + +export const LoggedIn: StoryObj = { + // More on interaction testing: https://storybook.js.org/docs/react/writing-tests/interaction-testing + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + const loginButton = await canvas.getByRole('button', { name: /Log in/i }); + await userEvent.click(loginButton); + }, +}; diff --git a/code/lib/cli/rendererAssets/react/ts-legacy/Page.tsx b/code/lib/cli/rendererAssets/react/ts-legacy/Page.tsx new file mode 100644 index 000000000000..522d34294ae2 --- /dev/null +++ b/code/lib/cli/rendererAssets/react/ts-legacy/Page.tsx @@ -0,0 +1,73 @@ +import React from 'react'; + +import { Header } from './Header'; +import './page.css'; + +type User = { + name: string; +}; + +export const Page: React.VFC = () => { + const [user, setUser] = React.useState(); + + return ( +
+
setUser({ name: 'Jane Doe' })} + onLogout={() => setUser(undefined)} + onCreateAccount={() => setUser({ name: 'Jane Doe' })} + /> + +
+

Pages in Storybook

+

+ We recommend building UIs with a{' '} + + component-driven + {' '} + process starting with atomic components and ending with pages. +

+

+ Render pages with mock data. This makes it easy to build and review page states without + needing to navigate to them in your app. Here are some handy patterns for managing page + data in Storybook: +

+
    +
  • + Use a higher-level connected component. Storybook helps you compose such data from the + "args" of child component stories +
  • +
  • + Assemble data in the page component from your services. You can mock these services out + using Storybook. +
  • +
+

+ Get a guided tutorial on component-driven development at{' '} + + Storybook tutorials + + . Read more in the{' '} + + docs + + . +

+
+ Tip Adjust the width of the canvas with the{' '} + + + + + + Viewports addon in the toolbar +
+
+
+ ); +}; diff --git a/code/lib/cli/rendererAssets/react/ts/Button.stories.tsx b/code/lib/cli/rendererAssets/react/ts/Button.stories.tsx index 435f55a9ef58..fd3cb062d7bf 100644 --- a/code/lib/cli/rendererAssets/react/ts/Button.stories.tsx +++ b/code/lib/cli/rendererAssets/react/ts/Button.stories.tsx @@ -1,41 +1,53 @@ -import React from 'react'; -import type { ComponentStoryFn, ComponentMeta } from '@storybook/react'; - +import type { Meta, StoryObj } from '@storybook/react'; import { Button } from './Button'; // More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export -export default { +const meta = { title: 'Example/Button', component: Button, // More on argTypes: https://storybook.js.org/docs/react/api/argtypes argTypes: { backgroundColor: { control: 'color' }, }, -} as ComponentMeta; +}; +satisfies; +Meta; -// More on component templates: https://storybook.js.org/docs/react/writing-stories/introduction#using-args -const Template: ComponentStoryFn = (args) =>