diff --git a/code/core/src/common/versions.ts b/code/core/src/common/versions.ts index 8385a1335d15..2c37803f16ac 100644 --- a/code/core/src/common/versions.ts +++ b/code/core/src/common/versions.ts @@ -33,8 +33,6 @@ export default { 'eslint-plugin-storybook': '10.4.0-alpha.10', '@storybook/react-dom-shim': '10.4.0-alpha.10', '@storybook/preset-create-react-app': '10.4.0-alpha.10', - '@storybook/preset-react-webpack': '10.4.0-alpha.10', - '@storybook/preset-server-webpack': '10.4.0-alpha.10', '@storybook/html': '10.4.0-alpha.10', '@storybook/preact': '10.4.0-alpha.10', '@storybook/react': '10.4.0-alpha.10', diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index e696e70a7838..6374026e2bfe 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -103,8 +103,8 @@ "@babel/runtime": "^7.28.4", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", "@storybook/builder-webpack5": "workspace:*", - "@storybook/preset-react-webpack": "workspace:*", "@storybook/react": "workspace:*", + "@storybook/react-webpack5": "workspace:*", "@types/semver": "^7.7.1", "babel-loader": "^9.1.3", "css-loader": "^6.7.3", diff --git a/code/frameworks/nextjs/src/preset.ts b/code/frameworks/nextjs/src/preset.ts index 5be71914c778..e57420551995 100644 --- a/code/frameworks/nextjs/src/preset.ts +++ b/code/frameworks/nextjs/src/preset.ts @@ -18,7 +18,7 @@ import type { FrameworkOptions, StorybookConfig } from './types.ts'; import { isNextVersionGte } from './utils.ts'; export const addons: PresetProperty<'addons'> = [ - fileURLToPath(import.meta.resolve('@storybook/preset-react-webpack')), + fileURLToPath(import.meta.resolve('@storybook/react-webpack5/preset')), ]; export const core: PresetProperty<'core'> = async (config, options) => { diff --git a/code/frameworks/nextjs/src/types.ts b/code/frameworks/nextjs/src/types.ts index 03dea988205b..23c46237ba05 100644 --- a/code/frameworks/nextjs/src/types.ts +++ b/code/frameworks/nextjs/src/types.ts @@ -9,7 +9,7 @@ import type { ReactOptions, StorybookConfig as StorybookConfigBase, TypescriptOptions as TypescriptOptionsReact, -} from '@storybook/preset-react-webpack'; +} from '@storybook/react-webpack5'; import type * as NextImage from 'next/image'; import type { NextRouter } from 'next/router'; diff --git a/code/frameworks/react-vite/src/plugins/docgen-resolver.ts b/code/frameworks/react-vite/src/plugins/docgen-resolver.ts index cd17a5d62c4f..f99ca26d4995 100644 --- a/code/frameworks/react-vite/src/plugins/docgen-resolver.ts +++ b/code/frameworks/react-vite/src/plugins/docgen-resolver.ts @@ -14,7 +14,7 @@ export class ReactDocgenResolveError extends Error { /* The below code was copied from: * https://github.com/reactjs/react-docgen/blob/df2daa8b6f0af693ecc3c4dc49f2246f60552bcb/packages/react-docgen/src/importer/makeFsImporter.ts#L14-L63 * because it wasn't exported from the react-docgen package. - * watch out: when updating this code, also update the code in code/presets/react-webpack/src/loaders/docgen-resolver.ts + * watch out: when updating this code, also update the code in code/frameworks/react-webpack5/src/loaders/docgen-resolver.ts */ // These extensions are sorted by priority diff --git a/code/frameworks/react-webpack5/build-config.ts b/code/frameworks/react-webpack5/build-config.ts index 314dd9463b7f..3f16d43c252b 100644 --- a/code/frameworks/react-webpack5/build-config.ts +++ b/code/frameworks/react-webpack5/build-config.ts @@ -14,6 +14,21 @@ const config: BuildEntries = { entryPoint: './src/preset.ts', dts: false, }, + { + exportEntries: ['./preset-cra'], + entryPoint: './src/preset-cra.ts', + dts: false, + }, + { + exportEntries: ['./preset-react-docs'], + entryPoint: './src/preset-react-docs.ts', + dts: false, + }, + { + exportEntries: ['./react-docgen-loader'], + entryPoint: './src/loaders/react-docgen-loader.ts', + dts: false, + }, { exportEntries: ['./node'], entryPoint: './src/node/index.ts', diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json index 7710fdffc5aa..2d272ba9a185 100644 --- a/code/frameworks/react-webpack5/package.json +++ b/code/frameworks/react-webpack5/package.json @@ -37,7 +37,10 @@ "default": "./dist/node/index.js" }, "./package.json": "./package.json", - "./preset": "./dist/preset.js" + "./preset": "./dist/preset.js", + "./preset-cra": "./dist/preset-cra.js", + "./preset-react-docs": "./dist/preset-react-docs.js", + "./react-docgen-loader": "./dist/loaders/react-docgen-loader.js" }, "files": [ "dist/**/*", @@ -49,8 +52,17 @@ ], "dependencies": { "@storybook/builder-webpack5": "workspace:*", - "@storybook/preset-react-webpack": "workspace:*", - "@storybook/react": "workspace:*" + "@storybook/core-webpack": "workspace:*", + "@storybook/react": "workspace:*", + "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.0c3f3b7.0", + "@types/semver": "^7.7.1", + "empathic": "^2.0.0", + "magic-string": "^0.30.5", + "react-docgen": "^7.1.1", + "resolve": "^1.22.8", + "semver": "^7.7.3", + "tsconfig-paths": "^4.2.0", + "webpack": "5" }, "devDependencies": { "@types/node": "^22.19.1" diff --git a/code/presets/react-webpack/src/cra-config.test.ts b/code/frameworks/react-webpack5/src/cra-config.test.ts similarity index 91% rename from code/presets/react-webpack/src/cra-config.test.ts rename to code/frameworks/react-webpack5/src/cra-config.test.ts index ffed31ca2ec3..03343c441ecc 100644 --- a/code/presets/react-webpack/src/cra-config.test.ts +++ b/code/frameworks/react-webpack5/src/cra-config.test.ts @@ -1,11 +1,11 @@ -import fs from 'node:fs'; +import * as fs from 'node:fs'; import { join, sep } from 'node:path'; import { beforeEach, describe, expect, it, vi } from 'vitest'; import { getReactScriptsPath } from './cra-config.ts'; -vi.mock('fs', () => ({ +vi.mock('node:fs', () => ({ realpathSync: vi.fn(() => '/test-project'), readFileSync: vi.fn(), existsSync: vi.fn(() => true), @@ -44,8 +44,6 @@ describe('cra-config', () => { describe('when used with a custom react-scripts package without symlinks in .bin folder', () => { beforeEach(() => { - // In case of .bin/react-scripts is not symlink (like it happens on Windows), - // realpathSync() method does not translate the path. vi.mocked(fs.realpathSync).mockImplementationOnce((filePath) => filePath.toString()); vi.mocked(fs.readFileSync).mockImplementationOnce( diff --git a/code/presets/react-webpack/src/cra-config.ts b/code/frameworks/react-webpack5/src/cra-config.ts similarity index 100% rename from code/presets/react-webpack/src/cra-config.ts rename to code/frameworks/react-webpack5/src/cra-config.ts diff --git a/code/frameworks/react-webpack5/src/loaders/docgen-resolver.ts b/code/frameworks/react-webpack5/src/loaders/docgen-resolver.ts new file mode 100644 index 000000000000..d89b36685168 --- /dev/null +++ b/code/frameworks/react-webpack5/src/loaders/docgen-resolver.ts @@ -0,0 +1,67 @@ +import { extname } from 'node:path'; + +import resolve from 'resolve'; + +export class ReactDocgenResolveError extends Error { + readonly code = 'MODULE_NOT_FOUND'; + + constructor(filename: string) { + super(`'${filename}' was ignored by react-docgen.`); + } +} + +// These extensions are sorted by priority. +export const RESOLVE_EXTENSIONS = [ + '.js', + '.cts', + '.mts', + '.ctsx', + '.mtsx', + '.ts', + '.tsx', + '.mjs', + '.cjs', + '.mts', + '.cts', + '.jsx', +]; + +export function defaultLookupModule(filename: string, basedir: string): string { + const resolveOptions = { + basedir, + extensions: RESOLVE_EXTENSIONS, + includeCoreModules: false, + }; + + try { + return resolve.sync(filename, resolveOptions); + } catch (error) { + const ext = extname(filename); + let newFilename: string; + + switch (ext) { + case '.js': + case '.mjs': + case '.cjs': { + const base = filename.slice(0, -2); + try { + return resolve.sync(`${base}ts`, { ...resolveOptions, extensions: [] }); + } catch { + newFilename = `${base}tsx`; + } + break; + } + + case '.jsx': + newFilename = `${filename.slice(0, -3)}tsx`; + break; + default: + throw error; + } + + return resolve.sync(newFilename, { + ...resolveOptions, + extensions: [], + }); + } +} diff --git a/code/presets/react-webpack/src/loaders/react-docgen-loader.test.ts b/code/frameworks/react-webpack5/src/loaders/react-docgen-loader.test.ts similarity index 87% rename from code/presets/react-webpack/src/loaders/react-docgen-loader.test.ts rename to code/frameworks/react-webpack5/src/loaders/react-docgen-loader.test.ts index c0ed2b3ec36a..5e197cedffc4 100644 --- a/code/presets/react-webpack/src/loaders/react-docgen-loader.test.ts +++ b/code/frameworks/react-webpack5/src/loaders/react-docgen-loader.test.ts @@ -14,8 +14,8 @@ const reactDocgenResolverMock = vi.hoisted(() => { }; }); -vi.mock('./docgen-resolver', async (importOriginal) => { - const actual = await importOriginal(); +vi.mock('./docgen-resolver.ts', async (importOriginal) => { + const actual = await importOriginal(); return { ...actual, defaultLookupModule: reactDocgenResolverMock.defaultLookupModule, @@ -23,7 +23,7 @@ vi.mock('./docgen-resolver', async (importOriginal) => { }); vi.mock('react-docgen', async (importOriginal) => { - const actual = await importOriginal(); + const actual = await importOriginal(); return { ...actual, makeFsImporter: reactDocgenMock.makeFsImporter, diff --git a/code/presets/react-webpack/src/loaders/react-docgen-loader.ts b/code/frameworks/react-webpack5/src/loaders/react-docgen-loader.ts similarity index 99% rename from code/presets/react-webpack/src/loaders/react-docgen-loader.ts rename to code/frameworks/react-webpack5/src/loaders/react-docgen-loader.ts index cbc1a22e5145..d20baaeb2693 100644 --- a/code/presets/react-webpack/src/loaders/react-docgen-loader.ts +++ b/code/frameworks/react-webpack5/src/loaders/react-docgen-loader.ts @@ -56,7 +56,6 @@ const actualNameHandler: Handler = function actualNameHandler(documentation, com currentPath = currentPath.parentPath; } - // Could not find an actual name documentation.set('actualName', ''); } }; @@ -76,7 +75,6 @@ export default async function reactDocgenLoader( map: any ) { const callback = this.async(); - // get options const options = this.getOptions() || {}; const { debug = false } = options; diff --git a/code/presets/react-webpack/src/framework-preset-cra.ts b/code/frameworks/react-webpack5/src/preset-cra.ts similarity index 100% rename from code/presets/react-webpack/src/framework-preset-cra.ts rename to code/frameworks/react-webpack5/src/preset-cra.ts diff --git a/code/presets/react-webpack/src/framework-preset-react-docs.ts b/code/frameworks/react-webpack5/src/preset-react-docs.ts similarity index 86% rename from code/presets/react-webpack/src/framework-preset-react-docs.ts rename to code/frameworks/react-webpack5/src/preset-react-docs.ts index cffac3b53db8..37c68dc7e01a 100644 --- a/code/presets/react-webpack/src/framework-preset-react-docs.ts +++ b/code/frameworks/react-webpack5/src/preset-react-docs.ts @@ -28,7 +28,7 @@ export const webpackFinal: StorybookConfig['webpackFinal'] = async ( test: /\.(cjs|mjs|tsx?|jsx?)$/, enforce: 'pre', loader: fileURLToPath( - import.meta.resolve('@storybook/preset-react-webpack/react-docgen-loader') + import.meta.resolve('@storybook/react-webpack5/react-docgen-loader') ), options: { debug, @@ -52,7 +52,7 @@ export const webpackFinal: StorybookConfig['webpackFinal'] = async ( test: /\.(cjs|mjs|jsx?)$/, enforce: 'pre', loader: fileURLToPath( - import.meta.resolve('@storybook/preset-react-webpack/react-docgen-loader') + import.meta.resolve('@storybook/react-webpack5/react-docgen-loader') ), options: { debug, @@ -65,7 +65,6 @@ export const webpackFinal: StorybookConfig['webpackFinal'] = async ( ...(config.plugins || []), new ReactDocgenTypeScriptPlugin({ ...reactDocgenTypescriptOptions, - // We *need* this set so that RDT returns default values in the same format as react-docgen savePropValueAsString: true, }), ], diff --git a/code/frameworks/react-webpack5/src/preset.ts b/code/frameworks/react-webpack5/src/preset.ts index 4b9182aa5d03..ede46116389c 100644 --- a/code/frameworks/react-webpack5/src/preset.ts +++ b/code/frameworks/react-webpack5/src/preset.ts @@ -7,7 +7,8 @@ import { WebpackDefinePlugin } from '@storybook/builder-webpack5'; import type { StorybookConfig } from './types.ts'; export const addons: PresetProperty<'addons'> = [ - fileURLToPath(import.meta.resolve('@storybook/preset-react-webpack')), + fileURLToPath(import.meta.resolve('@storybook/react-webpack5/preset-cra')), + fileURLToPath(import.meta.resolve('@storybook/react-webpack5/preset-react-docs')), ]; export const core: PresetProperty<'core'> = { diff --git a/code/frameworks/react-webpack5/src/types.ts b/code/frameworks/react-webpack5/src/types.ts index 6366ca3cd857..7b4910182b6c 100644 --- a/code/frameworks/react-webpack5/src/types.ts +++ b/code/frameworks/react-webpack5/src/types.ts @@ -2,14 +2,52 @@ import type { CompatibleString } from 'storybook/internal/types'; import type { BuilderOptions, - StorybookConfigWebpack, TypescriptOptions as TypescriptOptionsBuilder, + StorybookConfigWebpack, } from '@storybook/builder-webpack5'; import type { - ReactOptions, StorybookConfig as StorybookConfigBase, - TypescriptOptions as TypescriptOptionsReact, -} from '@storybook/preset-react-webpack'; + TypescriptOptions as TypescriptOptionsBase, + WebpackConfiguration as WebpackConfigurationBase, +} from '@storybook/core-webpack'; +import type { PluginOptions as ReactDocgenTypescriptOptions } from '@storybook/react-docgen-typescript-plugin'; + +export type { BuilderResult } from '@storybook/core-webpack'; + +export interface ReactOptions { + strictMode?: boolean; + /** + * Use React's legacy root API to mount components + * + * React has introduced a new root API with React 18.x to enable a whole set of new features (e.g. + * concurrent features) If this flag is true, the legacy Root API is used to mount components to + * make it easier to migrate step by step to React 18. + * + * @default false + */ + legacyRootApi?: boolean; +} + +export type TypescriptOptions = TypescriptOptionsBase & { + /** + * Sets the type of Docgen when working with React and TypeScript + * + * @default `'react-docgen'` + */ + reactDocgen: 'react-docgen-typescript' | 'react-docgen' | false; + /** + * Configures `react-docgen-typescript-plugin` + * + * @default + * @see https://github.com/storybookjs/storybook/blob/next/code/builders/builder-webpack5/src/config/defaults.js#L4-L6 + */ + reactDocgenTypescriptOptions: ReactDocgenTypescriptOptions; +}; + +type StorybookConfigBaseWithTypes = + StorybookConfigBase & { + typescript?: Partial; + }; type FrameworkName = CompatibleString<'@storybook/react-webpack5'>; type BuilderName = CompatibleString<'@storybook/builder-webpack5'>; @@ -25,7 +63,7 @@ type StorybookConfigFramework = { name: FrameworkName; options: FrameworkOptions; }; - core?: StorybookConfigBase['core'] & { + core?: StorybookConfigBaseWithTypes['core'] & { builder?: | BuilderName | { @@ -33,13 +71,13 @@ type StorybookConfigFramework = { options: BuilderOptions; }; }; - typescript?: Partial & - StorybookConfigBase['typescript']; + typescript?: Partial & + StorybookConfigBaseWithTypes['typescript']; }; /** The interface for Storybook configuration in `main.ts` files. */ export type StorybookConfig = Omit< - StorybookConfigBase, + StorybookConfigBaseWithTypes, keyof StorybookConfigWebpack | keyof StorybookConfigFramework > & StorybookConfigWebpack & diff --git a/code/frameworks/server-webpack5/build-config.ts b/code/frameworks/server-webpack5/build-config.ts index 314dd9463b7f..9e1d8924cd06 100644 --- a/code/frameworks/server-webpack5/build-config.ts +++ b/code/frameworks/server-webpack5/build-config.ts @@ -14,6 +14,11 @@ const config: BuildEntries = { entryPoint: './src/preset.ts', dts: false, }, + { + exportEntries: ['./loader'], + entryPoint: './src/loader.ts', + dts: false, + }, { exportEntries: ['./node'], entryPoint: './src/node/index.ts', diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json index 29976d11b995..b97f7f14ecd3 100644 --- a/code/frameworks/server-webpack5/package.json +++ b/code/frameworks/server-webpack5/package.json @@ -29,6 +29,7 @@ "code": "./src/index.ts", "default": "./dist/index.js" }, + "./loader": "./dist/loader.js", "./node": { "types": "./dist/node/index.d.ts", "code": "./src/node/index.ts", @@ -47,8 +48,11 @@ ], "dependencies": { "@storybook/builder-webpack5": "workspace:*", - "@storybook/preset-server-webpack": "workspace:*", - "@storybook/server": "workspace:*" + "@storybook/core-webpack": "workspace:*", + "@storybook/server": "workspace:*", + "safe-identifier": "^0.4.2", + "ts-dedent": "^2.0.0", + "yaml-loader": "^0.8.1" }, "devDependencies": { "@types/node": "^22.19.1", diff --git a/code/presets/server-webpack/src/lib/compiler/index.ts b/code/frameworks/server-webpack5/src/lib/compiler/index.ts similarity index 100% rename from code/presets/server-webpack/src/lib/compiler/index.ts rename to code/frameworks/server-webpack5/src/lib/compiler/index.ts diff --git a/code/presets/server-webpack/src/lib/compiler/stringifier.ts b/code/frameworks/server-webpack5/src/lib/compiler/stringifier.ts similarity index 100% rename from code/presets/server-webpack/src/lib/compiler/stringifier.ts rename to code/frameworks/server-webpack5/src/lib/compiler/stringifier.ts diff --git a/code/presets/server-webpack/src/lib/compiler/types.ts b/code/frameworks/server-webpack5/src/lib/compiler/types.ts similarity index 100% rename from code/presets/server-webpack/src/lib/compiler/types.ts rename to code/frameworks/server-webpack5/src/lib/compiler/types.ts diff --git a/code/presets/server-webpack/src/loader.ts b/code/frameworks/server-webpack5/src/loader.ts similarity index 64% rename from code/presets/server-webpack/src/loader.ts rename to code/frameworks/server-webpack5/src/loader.ts index a620d037e666..ddb682520490 100644 --- a/code/presets/server-webpack/src/loader.ts +++ b/code/frameworks/server-webpack5/src/loader.ts @@ -2,10 +2,8 @@ import { compileCsfModule } from './lib/compiler/index.ts'; export default (content: string) => { try { - const after = compileCsfModule(JSON.parse(content)); - return after; + return compileCsfModule(JSON.parse(content)); } catch (e) { - // for debugging console.log(content, e); } return content; diff --git a/code/frameworks/server-webpack5/src/preset.ts b/code/frameworks/server-webpack5/src/preset.ts index c33d16bea137..80a18ffb5367 100644 --- a/code/frameworks/server-webpack5/src/preset.ts +++ b/code/frameworks/server-webpack5/src/preset.ts @@ -1,10 +1,38 @@ +import { fileURLToPath } from 'node:url'; + import type { PresetProperty } from 'storybook/internal/types'; -export const addons: PresetProperty<'addons'> = [ - import.meta.resolve('@storybook/preset-server-webpack'), -]; +import type { StorybookConfig } from './types.ts'; export const core: PresetProperty<'core'> = { builder: import.meta.resolve('@storybook/builder-webpack5'), renderer: import.meta.resolve('@storybook/server/preset'), }; + +export const webpack: StorybookConfig['webpack'] = (config) => { + const rules = [ + ...(config.module?.rules || []), + { + type: 'javascript/auto', + test: /\.stories\.json$/, + use: fileURLToPath(import.meta.resolve('@storybook/server-webpack5/loader')), + }, + + { + type: 'javascript/auto', + test: /\.stories\.ya?ml/, + use: [ + fileURLToPath(import.meta.resolve('@storybook/server-webpack5/loader')), + { + loader: fileURLToPath(import.meta.resolve('yaml-loader')), + options: { asJSON: true }, + }, + ], + }, + ]; + + config.module = config.module || {}; + config.module.rules = rules; + + return config; +}; diff --git a/code/frameworks/server-webpack5/src/types.ts b/code/frameworks/server-webpack5/src/types.ts index 1040a0fea8bb..23a9ddbef263 100644 --- a/code/frameworks/server-webpack5/src/types.ts +++ b/code/frameworks/server-webpack5/src/types.ts @@ -8,7 +8,9 @@ import type { import type { StorybookConfig as StorybookConfigBase, TypescriptOptions as TypescriptOptionsReact, -} from '@storybook/preset-server-webpack'; +} from '@storybook/core-webpack'; + +export type { BuilderResult, TypescriptOptions } from '@storybook/core-webpack'; type FrameworkName = CompatibleString<'@storybook/server-webpack5'>; type BuilderName = CompatibleString<'@storybook/builder-webpack5'>; diff --git a/code/package.json b/code/package.json index 5b625e47a573..40363ee297ac 100644 --- a/code/package.json +++ b/code/package.json @@ -71,8 +71,6 @@ "@storybook/preact": "workspace:*", "@storybook/preact-vite": "workspace:*", "@storybook/preset-create-react-app": "workspace:*", - "@storybook/preset-react-webpack": "workspace:*", - "@storybook/preset-server-webpack": "workspace:*", "@storybook/react": "workspace:*", "@storybook/react-vite": "workspace:*", "@storybook/react-webpack5": "workspace:*", diff --git a/code/presets/react-webpack/README.md b/code/presets/react-webpack/README.md deleted file mode 100644 index 4d1b25e463ef..000000000000 --- a/code/presets/react-webpack/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Storybook Webpack preset for React - -This package is a [preset](https://storybook.js.org/docs/addons/writing-presets?renderer=react&ref=readme) that configures Storybook's webpack settings for handling React. -It's an internal package that's not intended to be used directly by users. - -- More info on [Storybook for React](https://storybook.js.org/docs/get-started/install?renderer=react&ref=readme) - -Learn more about Storybook at [storybook.js.org](https://storybook.js.org/?ref=readme). diff --git a/code/presets/react-webpack/build-config.ts b/code/presets/react-webpack/build-config.ts deleted file mode 100644 index 44be2e8a24c2..000000000000 --- a/code/presets/react-webpack/build-config.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { BuildEntries } from '../../../scripts/build/utils/entry-utils.ts'; - -const config: BuildEntries = { - entries: { - node: [ - { - exportEntries: ['.'], - entryPoint: './src/index.ts', - }, - { - exportEntries: ['./preset-cra'], - entryPoint: './src/framework-preset-cra.ts', - dts: false, - }, - { - exportEntries: ['./preset-react-docs'], - entryPoint: './src/framework-preset-react-docs.ts', - dts: false, - }, - { - exportEntries: ['./react-docgen-loader'], - entryPoint: './src/loaders/react-docgen-loader.ts', - dts: false, - }, - ], - }, -}; - -export default config; diff --git a/code/presets/react-webpack/package.json b/code/presets/react-webpack/package.json deleted file mode 100644 index 556ad555d384..000000000000 --- a/code/presets/react-webpack/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "@storybook/preset-react-webpack", - "version": "10.4.0-alpha.10", - "description": "Storybook for React: Develop React Component in isolation with Hot Reloading", - "keywords": [ - "storybook" - ], - "homepage": "https://github.com/storybookjs/storybook/tree/next/code/presets/react-webpack", - "bugs": { - "url": "https://github.com/storybookjs/storybook/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/storybookjs/storybook.git", - "directory": "code/presets/react-webpack" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "license": "MIT", - "type": "module", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "code": "./src/index.ts", - "default": "./dist/index.js" - }, - "./package.json": "./package.json", - "./preset-cra": "./dist/framework-preset-cra.js", - "./preset-react-docs": "./dist/framework-preset-react-docs.js", - "./react-docgen-loader": "./dist/loaders/react-docgen-loader.js" - }, - "files": [ - "dist/**/*", - "README.md", - "*.js", - "*.d.ts", - "!src/**/*" - ], - "dependencies": { - "@storybook/core-webpack": "workspace:*", - "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.0c3f3b7.0", - "@types/semver": "^7.7.1", - "magic-string": "^0.30.5", - "react-docgen": "^7.1.1", - "resolve": "^1.22.8", - "semver": "^7.7.3", - "tsconfig-paths": "^4.2.0", - "webpack": "5" - }, - "devDependencies": { - "@types/node": "^22.19.1", - "empathic": "^2.0.0", - "typescript": "^5.9.3" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "workspace:^" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - }, - "publishConfig": { - "access": "public" - }, - "gitHead": "a8e7fd8a655c69780bc20b9749d2699e45beae1l" -} diff --git a/code/presets/react-webpack/preset.js b/code/presets/react-webpack/preset.js deleted file mode 100644 index 2b8395cdb631..000000000000 --- a/code/presets/react-webpack/preset.js +++ /dev/null @@ -1 +0,0 @@ -export * from './dist/index.js'; diff --git a/code/presets/react-webpack/project.json b/code/presets/react-webpack/project.json deleted file mode 100644 index abb627f13f18..000000000000 --- a/code/presets/react-webpack/project.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "react-webpack", - "$schema": "../../../node_modules/nx/schemas/project-schema.json", - "projectType": "library", - "targets": { - "compile": {}, - "check": {} - }, - "tags": ["library"] -} diff --git a/code/presets/react-webpack/src/framework-preset-react-docs.test.ts b/code/presets/react-webpack/src/framework-preset-react-docs.test.ts deleted file mode 100644 index 3673113f6212..000000000000 --- a/code/presets/react-webpack/src/framework-preset-react-docs.test.ts +++ /dev/null @@ -1,152 +0,0 @@ -import { describe, expect, it, vi } from 'vitest'; - -import type { TypescriptOptions } from '@storybook/core-webpack'; -import ReactDocgenTypescriptPlugin from '@storybook/react-docgen-typescript-plugin'; - -import type { Configuration } from 'webpack'; - -import * as preset from './framework-preset-react-docs.ts'; - -vi.mock('./requirer', () => ({ - requirer: (resolver: any, path: string) => path, -})); - -describe('framework-preset-react-docgen', () => { - const presetsListWithDocs = [{ name: '@storybook/addon-docs', options: {}, preset: null }]; - - // mock requirer - - describe('react-docgen', () => { - it('should return the webpack config with the extra webpack loader', async () => { - const webpackConfig: Configuration = {}; - - const config = await preset.webpackFinal?.(webpackConfig, { - presets: { - apply: async (name: string) => { - if (name === 'typescript') { - return { - check: false, - reactDocgen: 'react-docgen', - } as Partial; - } - - if (name === 'babel') { - return { - plugins: [], - presets: [], - }; - } - - return undefined; - }, - }, - presetsList: presetsListWithDocs, - } as any); - - expect(config).toEqual({ - module: { - rules: [ - { - exclude: /(\.(stories|story)\.(js|jsx|ts|tsx))|(node_modules)/, - loader: expect.stringContaining('@storybook/preset-react-webpack'), - options: { babelOptions: { plugins: [], presets: [] }, debug: false }, - test: /\.(cjs|mjs|tsx?|jsx?)$/, - }, - ], - }, - }); - }); - }); - - describe('react-docgen-typescript', () => { - it('should return the webpack config with the extra plugin', async () => { - const webpackConfig = { - plugins: [], - }; - - const config = await preset.webpackFinal?.(webpackConfig, { - presets: { - // @ts-expect-error (not strict) - apply: async (name: string) => { - if (name === 'typescript') { - return { - check: false, - reactDocgen: 'react-docgen-typescript', - } as Partial; - } - - if (name === 'babel') { - return { - plugins: [], - presets: [], - }; - } - - return undefined; - }, - }, - presetsList: presetsListWithDocs, - }); - - expect(config).toEqual({ - module: { - rules: [ - { - exclude: /(\.(stories|story)\.(js|jsx|ts|tsx))|(node_modules)/, - loader: expect.stringContaining('@storybook/preset-react-webpack'), - options: { babelOptions: { plugins: [], presets: [] }, debug: false }, - test: /\.(cjs|mjs|jsx?)$/, - }, - ], - }, - plugins: [expect.any(ReactDocgenTypescriptPlugin)], - }); - }); - }); - - describe('no docgen', () => { - it('should not add any extra plugins', async () => { - const webpackConfig = { - plugins: [], - }; - - const outputWebpackconfig = await preset.webpackFinal?.(webpackConfig, { - presets: { - // @ts-expect-error (Converted from ts-ignore) - apply: async () => - ({ - check: false, - reactDocgen: false, - }) as Partial, - }, - presetsList: presetsListWithDocs, - }); - - expect(outputWebpackconfig).toEqual({ plugins: [] }); - }); - }); - - describe('no docs or controls addon used', () => { - it('should not add any extra plugins', async () => { - const webpackConfig = { - plugins: [], - }; - - const outputWebpackconfig = await preset.webpackFinal?.(webpackConfig, { - presets: { - // @ts-expect-error (Converted from ts-ignore) - apply: async () => - ({ - check: false, - reactDocgen: 'react-docgen-typescript', - }) as Partial, - }, - presetsList: [], - }); - - expect(outputWebpackconfig).toEqual({ - plugins: [], - }); - }); - }); -}); diff --git a/code/presets/react-webpack/src/index.ts b/code/presets/react-webpack/src/index.ts deleted file mode 100644 index ca2e4d41e15a..000000000000 --- a/code/presets/react-webpack/src/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { fileURLToPath } from 'node:url'; - -import type { PresetProperty } from 'storybook/internal/types'; - -export * from './types.ts'; - -export const addons: PresetProperty<'addons'> = [ - fileURLToPath(import.meta.resolve('@storybook/preset-react-webpack/preset-cra')), - fileURLToPath(import.meta.resolve('@storybook/preset-react-webpack/preset-react-docs')), -]; diff --git a/code/presets/react-webpack/src/loaders/docgen-resolver.ts b/code/presets/react-webpack/src/loaders/docgen-resolver.ts deleted file mode 100644 index 7a4fa6135b2a..000000000000 --- a/code/presets/react-webpack/src/loaders/docgen-resolver.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { extname } from 'node:path'; - -import resolve from 'resolve'; - -export class ReactDocgenResolveError extends Error { - // the magic string that react-docgen uses to check if a module is ignored - readonly code = 'MODULE_NOT_FOUND'; - - constructor(filename: string) { - super(`'${filename}' was ignored by react-docgen.`); - } -} - -/* The below code was copied from: - * https://github.com/reactjs/react-docgen/blob/df2daa8b6f0af693ecc3c4dc49f2246f60552bcb/packages/react-docgen/src/importer/makeFsImporter.ts#L14-L63 - * because it wasn't exported from the react-docgen package. - * watch out: when updating this code, also update the code in code/frameworks/react-vite/src/plugins/docgen-resolver.ts - */ - -// These extensions are sorted by priority -// resolve() will check for files in the order these extensions are sorted -export const RESOLVE_EXTENSIONS = [ - '.js', - '.cts', // These were originally not in the code, I added them - '.mts', // These were originally not in the code, I added them - '.ctsx', // These were originally not in the code, I added them - '.mtsx', // These were originally not in the code, I added them - '.ts', - '.tsx', - '.mjs', - '.cjs', - '.mts', - '.cts', - '.jsx', -]; - -export function defaultLookupModule(filename: string, basedir: string): string { - const resolveOptions = { - basedir, - extensions: RESOLVE_EXTENSIONS, - // we do not need to check core modules as we cannot import them anyway - includeCoreModules: false, - }; - - try { - return resolve.sync(filename, resolveOptions); - } catch (error) { - const ext = extname(filename); - let newFilename: string; - - // if we try to import a JavaScript file it might be that we are actually pointing to - // a TypeScript file. This can happen in ES modules as TypeScript requires to import other - // TypeScript files with .js extensions - // https://www.typescriptlang.org/docs/handbook/esm-node.html#type-in-packagejson-and-new-extensions - switch (ext) { - case '.js': - case '.mjs': - case '.cjs': { - // Try .ts first, then fall back to .tsx (for React components using ESM-style .js imports) - const base = filename.slice(0, -2); - try { - return resolve.sync(`${base}ts`, { ...resolveOptions, extensions: [] }); - } catch { - newFilename = `${base}tsx`; - } - break; - } - - case '.jsx': - newFilename = `${filename.slice(0, -3)}tsx`; - break; - default: - throw error; - } - - return resolve.sync(newFilename, { - ...resolveOptions, - // we already know that there is an extension at this point, so no need to check other extensions - extensions: [], - }); - } -} diff --git a/code/presets/react-webpack/src/types.ts b/code/presets/react-webpack/src/types.ts deleted file mode 100644 index 047c5ea59509..000000000000 --- a/code/presets/react-webpack/src/types.ts +++ /dev/null @@ -1,43 +0,0 @@ -import type { - StorybookConfig as StorybookConfigBase, - TypescriptOptions as TypescriptOptionsBase, - WebpackConfiguration as WebpackConfigurationBase, -} from '@storybook/core-webpack'; -import type { PluginOptions as ReactDocgenTypescriptOptions } from '@storybook/react-docgen-typescript-plugin'; - -export type { BuilderResult } from '@storybook/core-webpack'; - -export interface ReactOptions { - strictMode?: boolean; - /** - * Use React's legacy root API to mount components - * - * React has introduced a new root API with React 18.x to enable a whole set of new features (e.g. - * concurrent features) If this flag is true, the legacy Root API is used to mount components to - * make it easier to migrate step by step to React 18. - * - * @default false - */ - legacyRootApi?: boolean; -} - -export type TypescriptOptions = TypescriptOptionsBase & { - /** - * Sets the type of Docgen when working with React and TypeScript - * - * @default `'react-docgen'` - */ - reactDocgen: 'react-docgen-typescript' | 'react-docgen' | false; - /** - * Configures `react-docgen-typescript-plugin` - * - * @default - * @see https://github.com/storybookjs/storybook/blob/next/code/builders/builder-webpack5/src/config/defaults.js#L4-L6 - */ - reactDocgenTypescriptOptions: ReactDocgenTypescriptOptions; -}; - -export type StorybookConfig = - StorybookConfigBase & { - typescript?: Partial; - }; diff --git a/code/presets/react-webpack/tsconfig.json b/code/presets/react-webpack/tsconfig.json deleted file mode 100644 index 73a65ef2ef6e..000000000000 --- a/code/presets/react-webpack/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": {}, - "include": ["src/**/*"] -} diff --git a/code/presets/server-webpack/README.md b/code/presets/server-webpack/README.md deleted file mode 100644 index 244cadd8cea1..000000000000 --- a/code/presets/server-webpack/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Storybook Webpack preset for Server - -This package is a [preset](https://storybook.js.org/docs/addons/writing-presets?ref=readme) that configures Storybook's webpack settings for handling React. -It's an internal package that's not intended to be used directly by users. - -- More info on [Storybook for Server](https://github.com/storybookjs/storybook/tree/next/code/frameworks/server-webpack5) - -Learn more about Storybook at [storybook.js.org](https://storybook.js.org/?ref=readme). diff --git a/code/presets/server-webpack/build-config.ts b/code/presets/server-webpack/build-config.ts deleted file mode 100644 index 7d5ba7d7ea44..000000000000 --- a/code/presets/server-webpack/build-config.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { BuildEntries } from '../../../scripts/build/utils/entry-utils.ts'; - -const config: BuildEntries = { - entries: { - node: [ - { - exportEntries: ['.'], - entryPoint: './src/index.ts', - }, - { - exportEntries: ['./loader'], - entryPoint: './src/loader.ts', - dts: false, - }, - ], - }, -}; - -export default config; diff --git a/code/presets/server-webpack/package.json b/code/presets/server-webpack/package.json deleted file mode 100644 index 9ec3f9b7b5ae..000000000000 --- a/code/presets/server-webpack/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "@storybook/preset-server-webpack", - "version": "10.4.0-alpha.10", - "description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.", - "keywords": [ - "storybook" - ], - "homepage": "https://github.com/storybookjs/storybook/tree/next/code/presets/server-webpack", - "bugs": { - "url": "https://github.com/storybookjs/storybook/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/storybookjs/storybook.git", - "directory": "code/presets/server-webpack" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "license": "MIT", - "type": "module", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "code": "./src/index.ts", - "default": "./dist/index.js" - }, - "./loader": "./dist/loader.js", - "./package.json": "./package.json" - }, - "files": [ - "dist/**/*", - "README.md", - "*.js", - "*.d.ts", - "!src/**/*" - ], - "dependencies": { - "@storybook/core-webpack": "workspace:*", - "safe-identifier": "^0.4.2", - "ts-dedent": "^2.0.0", - "yaml-loader": "^0.8.1" - }, - "devDependencies": { - "@types/node": "^22.19.1", - "typescript": "^5.9.3", - "yaml": "^2.8.1" - }, - "peerDependencies": { - "storybook": "workspace:^" - }, - "publishConfig": { - "access": "public" - }, - "gitHead": "a8e7fd8a655c69780bc20b9749d2699e45beae1l" -} diff --git a/code/presets/server-webpack/preset.js b/code/presets/server-webpack/preset.js deleted file mode 100644 index 2b8395cdb631..000000000000 --- a/code/presets/server-webpack/preset.js +++ /dev/null @@ -1 +0,0 @@ -export * from './dist/index.js'; diff --git a/code/presets/server-webpack/project.json b/code/presets/server-webpack/project.json deleted file mode 100644 index ea07969e81f8..000000000000 --- a/code/presets/server-webpack/project.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "server-webpack", - "$schema": "../../../node_modules/nx/schemas/project-schema.json", - "projectType": "library", - "targets": { - "compile": {}, - "check": {} - }, - "tags": ["library"] -} diff --git a/code/presets/server-webpack/src/index.ts b/code/presets/server-webpack/src/index.ts deleted file mode 100644 index a5d9fc4e7855..000000000000 --- a/code/presets/server-webpack/src/index.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { fileURLToPath } from 'node:url'; - -import type { StorybookConfig } from './types.ts'; - -export * from './types.ts'; - -export const webpack: StorybookConfig['webpack'] = (config) => { - const rules = [ - ...(config.module?.rules || []), - { - type: 'javascript/auto', - test: /\.stories\.json$/, - use: fileURLToPath(import.meta.resolve('@storybook/preset-server-webpack/loader')), - }, - - { - type: 'javascript/auto', - test: /\.stories\.ya?ml/, - use: [ - fileURLToPath(import.meta.resolve('@storybook/preset-server-webpack/loader')), - { - loader: fileURLToPath(import.meta.resolve('yaml-loader')), - options: { asJSON: true }, - }, - ], - }, - ]; - - config.module = config.module || {}; - - config.module.rules = rules; - - return config; -}; diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/a11y.json b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/a11y.json deleted file mode 100644 index c4496e6ab403..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/a11y.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "title": "Addons/a11y", - "parameters": { - "options": { "selectedPanel": "storybook/a11y/panel" } - }, - "stories": [ - { - "name": "Label", - "parameters": { - "server": { "id": "addons/a11y/label" } - } - } - ] -} diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/a11y.snapshot b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/a11y.snapshot deleted file mode 100644 index 6d22e73bf022..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/a11y.snapshot +++ /dev/null @@ -1,18 +0,0 @@ - -export default { - title: "Addons/a11y", - parameters: { - options: { - selectedPanel: "storybook/a11y/panel" - } - } -}; - -export const Label = { - name: "Label", - parameters: { - server: { - id: "addons/a11y/label" - } - } -}; diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/actions.json b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/actions.json deleted file mode 100644 index ac94c3527d1f..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/actions.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "title": "Addons/Actions", - "parameters": { - "options": { "selectedPanel": "storybook/actions/panel" } - }, - "stories": [ - { - "name": "Multiple actions + config", - "parameters": { - "actions": ["click", "contextmenu", { "clearOnStoryChange": false }], - "server": { "id": "addons/actions/story3" } - } - } - ] -} diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/actions.snapshot b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/actions.snapshot deleted file mode 100644 index 2317e70d92d2..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/actions.snapshot +++ /dev/null @@ -1,25 +0,0 @@ - -export default { - title: "Addons/Actions", - parameters: { - options: { - selectedPanel: "storybook/actions/panel" - } - } -}; - -export const Multiple_actions_config = { - name: "Multiple actions + config", - parameters: { - actions: [ - "click", - "contextmenu", - { - clearOnStoryChange: false - } - ], - server: { - id: "addons/actions/story3" - } - } -}; diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/backgrounds.json b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/backgrounds.json deleted file mode 100644 index 4c91c4f4c51c..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/backgrounds.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "title": "Addons/Backgrounds", - "parameters": { - "backgrounds": [ - { "name": "light", "value": "#eeeeee" }, - { "name": "dark", "value": "#222222", "default": true } - ] - }, - "stories": [ - { - "name": "Story 1", - "parameters": { - "server": { "id": "addons/backgrounds/story1" } - } - } - ] -} diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/backgrounds.snapshot b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/backgrounds.snapshot deleted file mode 100644 index 40a2bf3524a1..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/backgrounds.snapshot +++ /dev/null @@ -1,26 +0,0 @@ - -export default { - title: "Addons/Backgrounds", - parameters: { - backgrounds: [ - { - name: "light", - value: "#eeeeee" - }, - { - name: "dark", - value: "#222222", - default: true - } - ] - } -}; - -export const Story_1 = { - name: "Story 1", - parameters: { - server: { - id: "addons/backgrounds/story1" - } - } -}; diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/controls.json b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/controls.json deleted file mode 100644 index fb1e0774e694..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/controls.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "title": "Addons/Controls", - "parameters": { - "options": { "selectedPanel": "storybook/controls/panel" } - }, - "stories": [ - { - "name": "Simple", - "parameters": { - "server": { "id": "addons/controls/simple" } - }, - "args": { - "name": "John Doe", - "birthday": "1960-12-25T00:42:03.600Z", - "favorite_color": "red", - "active": true, - "pets": 2, - "sports": ["football", "baseball"], - "favorite_food": "Ice Cream", - "other_things": { "hair": "Brown", "eyes": "Blue" } - }, - "argTypes": { - "birthday": { "control": { "type": "date" } }, - "favorite_color": { "control": { "type": "color" } }, - "favorite_food": { - "control": { - "type": "select", - "options": { - "hot_dog": "Hot Dog", - "pizza": "Pizza", - "burgers": "Burgers", - "ice_cream": "Ice Cream" - } - } - } - } - } - ] -} diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/controls.snapshot b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/controls.snapshot deleted file mode 100644 index 519ae472aca0..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/controls.snapshot +++ /dev/null @@ -1,57 +0,0 @@ - -export default { - title: "Addons/Controls", - parameters: { - options: { - selectedPanel: "storybook/controls/panel" - } - } -}; - -export const Simple = { - name: "Simple", - parameters: { - server: { - id: "addons/controls/simple" - } - }, - args: { - name: "John Doe", - birthday: "1960-12-25T00:42:03.600Z", - favorite_color: "red", - active: true, - pets: 2, - sports: [ - "football", - "baseball" - ], - favorite_food: "Ice Cream", - other_things: { - hair: "Brown", - eyes: "Blue" - } - }, - argTypes: { - birthday: { - control: { - type: "date" - } - }, - favorite_color: { - control: { - type: "color" - } - }, - favorite_food: { - control: { - type: "select", - options: { - hot_dog: "Hot Dog", - pizza: "Pizza", - burgers: "Burgers", - ice_cream: "Ice Cream" - } - } - } - } -}; diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/kitchen_sink.json b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/kitchen_sink.json deleted file mode 100644 index 058f8924d5b4..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/kitchen_sink.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "title": "Kitchen Sink", - "parameters": { - "backgrounds": [ - { "name": "light", "value": "#eeeeee" }, - { "name": "dark", "value": "#222222", "default": true } - ], - "options": { "selectedPanel": "storybook/a11y/panel" }, - "server": { - "params": { "color": "red" } - } - }, - "stories": [ - { - "name": "Heading", - "parameters": { - "actions": ["click", "contextmenu", { "clearOnStoryChange": false }], - "server": { - "id": "demo/heading", - "params": { - "color": "orange" - } - } - }, - "args": { "name": "John Doe", "age": 44 } - }, - { - "name": "Button", - "parameters": { - "server": { "id": "demo/button" } - } - } - ] -} diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/kitchen_sink.snapshot b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/kitchen_sink.snapshot deleted file mode 100644 index c8af3046016c..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/kitchen_sink.snapshot +++ /dev/null @@ -1,57 +0,0 @@ - -export default { - title: "Kitchen Sink", - parameters: { - backgrounds: [ - { - name: "light", - value: "#eeeeee" - }, - { - name: "dark", - value: "#222222", - default: true - } - ], - options: { - selectedPanel: "storybook/a11y/panel" - }, - server: { - params: { - color: "red" - } - } - } -}; - -export const Heading = { - name: "Heading", - parameters: { - actions: [ - "click", - "contextmenu", - { - clearOnStoryChange: false - } - ], - server: { - id: "demo/heading", - params: { - color: "orange" - } - } - }, - args: { - name: "John Doe", - age: 44 - } -}; - -export const Button = { - name: "Button", - parameters: { - server: { - id: "demo/button" - } - } -}; diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/links.json b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/links.json deleted file mode 100644 index ee192f0bec81..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/links.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": "Welcome", - "stories": [ - { - "name": "Welcome", - "parameters": { - "server": { - "id": "welcome/welcome" - } - } - } - ] -} diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/links.snapshot b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/links.snapshot deleted file mode 100644 index 140837fa3c52..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/links.snapshot +++ /dev/null @@ -1,13 +0,0 @@ - -export default { - title: "Welcome", -}; - -export const Welcome = { - name: "Welcome", - parameters: { - server: { - id: "welcome/welcome" - } - } -}; diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/multiple_stories.json b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/multiple_stories.json deleted file mode 100644 index 207332142d29..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/multiple_stories.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "title": "Demo", - "stories": [ - { - "name": "Heading", - "parameters": { - "server": { "id": "demo/heading" } - } - }, - { - "name": "Headings", - "parameters": { - "server": { "id": "demo/headings" } - } - }, - { - "name": "Button", - "parameters": { - "server": { "id": "demo/button" } - } - } - ] -} diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/multiple_stories.snapshot b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/multiple_stories.snapshot deleted file mode 100644 index 1e4c59f1ea35..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/multiple_stories.snapshot +++ /dev/null @@ -1,31 +0,0 @@ - -export default { - title: "Demo", -}; - -export const Heading = { - name: "Heading", - parameters: { - server: { - id: "demo/heading" - } - } -}; - -export const Headings = { - name: "Headings", - parameters: { - server: { - id: "demo/headings" - } - } -}; - -export const Button = { - name: "Button", - parameters: { - server: { - id: "demo/button" - } - } -}; diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/params.json b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/params.json deleted file mode 100644 index 5084fdbe743f..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/params.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "title": "Params", - "parameters": { - "server": { - "params": { "color": "red" }, - "1200x600": { "viewport": { "width": 1200, "height": 600 } } - } - }, - "stories": [ - { - "name": "Story", - "parameters": { - "server": { - "id": "params/story", - "params": { "message": "Hello World" } - } - } - } - ] -} diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/params.snapshot b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/params.snapshot deleted file mode 100644 index 0c6757db5a00..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/params.snapshot +++ /dev/null @@ -1,29 +0,0 @@ - -export default { - title: "Params", - parameters: { - server: { - params: { - color: "red" - }, - 1200x600: { - viewport: { - width: 1200, - height: 600 - } - } - } - } -}; - -export const Story = { - name: "Story", - parameters: { - server: { - id: "params/story", - params: { - message: "Hello World" - } - } - } -}; diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/params_override.json b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/params_override.json deleted file mode 100644 index 717be13a4ad3..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/params_override.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "title": "Params", - "parameters": { - "server": { - "params": { "color": "red" } - } - }, - "stories": [ - { - "name": "Override", - "parameters": { - "server": { - "id": "params/override", - "params": { "message": "Hello World", "color": "green" } - } - } - } - ] -} diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/params_override.snapshot b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/params_override.snapshot deleted file mode 100644 index 7d6396a17ece..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/params_override.snapshot +++ /dev/null @@ -1,24 +0,0 @@ - -export default { - title: "Params", - parameters: { - server: { - params: { - color: "red" - } - } - } -}; - -export const Override = { - name: "Override", - parameters: { - server: { - id: "params/override", - params: { - message: "Hello World", - color: "green" - } - } - } -}; diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/yaml.snapshot b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/yaml.snapshot deleted file mode 100644 index f22f2f5685d5..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/yaml.snapshot +++ /dev/null @@ -1,31 +0,0 @@ - -export default { - title: "Demo YAML", -}; - -export const Heading = { - name: "Heading", - parameters: { - server: { - id: "yaml/heading" - } - } -}; - -export const Headings = { - name: "Headings", - parameters: { - server: { - id: "yaml/headings" - } - } -}; - -export const Button = { - name: "Button", - parameters: { - server: { - id: "yaml/button" - } - } -}; diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/yaml.yaml b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/yaml.yaml deleted file mode 100644 index 1eb8c906e054..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/yaml.yaml +++ /dev/null @@ -1,14 +0,0 @@ -title: Demo YAML -stories: - - name: Heading - parameters: - server: - id: yaml/heading - - name: Headings - parameters: - server: - id: yaml/headings - - name: Button - parameters: - server: - id: yaml/button diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/yml.snapshot b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/yml.snapshot deleted file mode 100644 index c95096f6c85e..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/yml.snapshot +++ /dev/null @@ -1,31 +0,0 @@ - -export default { - title: "Demo YML", -}; - -export const Heading = { - name: "Heading", - parameters: { - server: { - id: "yaml/heading" - } - } -}; - -export const Headings = { - name: "Headings", - parameters: { - server: { - id: "yaml/headings" - } - } -}; - -export const Button = { - name: "Button", - parameters: { - server: { - id: "yaml/button" - } - } -}; diff --git a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/yml.yml b/code/presets/server-webpack/src/lib/compiler/__testfixtures__/yml.yml deleted file mode 100644 index bc334cb8949f..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/__testfixtures__/yml.yml +++ /dev/null @@ -1,14 +0,0 @@ -title: Demo YML -stories: - - name: Heading - parameters: - server: - id: yaml/heading - - name: Headings - parameters: - server: - id: yaml/headings - - name: Button - parameters: - server: - id: yaml/button diff --git a/code/presets/server-webpack/src/lib/compiler/json-to-csf-compiler.test.ts b/code/presets/server-webpack/src/lib/compiler/json-to-csf-compiler.test.ts deleted file mode 100644 index e0069a50511c..000000000000 --- a/code/presets/server-webpack/src/lib/compiler/json-to-csf-compiler.test.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { readdirSync } from 'node:fs'; -import { readFile } from 'node:fs/promises'; -import { join } from 'node:path'; - -import { describe, expect, it } from 'vitest'; - -import YAML from 'yaml'; - -import { compileCsfModule } from './index.ts'; - -async function generate(filePath: string) { - const content = await readFile(filePath, { encoding: 'utf8' }); - const parsed = filePath.endsWith('.json') ? JSON.parse(content) : YAML.parse(content); - return compileCsfModule(parsed); -} - -['json', 'ya?ml'].forEach((fileType) => { - const inputRegExp = new RegExp(`.${fileType}$`); - - describe(`${fileType}-to-csf-compiler`, () => { - const transformFixturesDir = join(__dirname, '__testfixtures__'); - readdirSync(transformFixturesDir) - .filter((fileName: string) => inputRegExp.test(fileName)) - .forEach((fixtureFile: string) => { - it(`${fixtureFile}`, async () => { - const inputPath = join(transformFixturesDir, fixtureFile); - const code = await generate(inputPath); - await expect(code).toMatchFileSnapshot(inputPath.replace(inputRegExp, '.snapshot')); - }); - }); - }); -}); diff --git a/code/presets/server-webpack/src/types.ts b/code/presets/server-webpack/src/types.ts deleted file mode 100644 index 7b5a8352a9e1..000000000000 --- a/code/presets/server-webpack/src/types.ts +++ /dev/null @@ -1 +0,0 @@ -export type { BuilderResult, TypescriptOptions, StorybookConfig } from '@storybook/core-webpack'; diff --git a/code/presets/server-webpack/src/typings.d.ts b/code/presets/server-webpack/src/typings.d.ts deleted file mode 100644 index cbeccdbb15f7..000000000000 --- a/code/presets/server-webpack/src/typings.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -// will be provided by the webpack define plugin -declare var NODE_ENV: string | undefined; diff --git a/code/presets/server-webpack/tsconfig.json b/code/presets/server-webpack/tsconfig.json deleted file mode 100644 index 73a65ef2ef6e..000000000000 --- a/code/presets/server-webpack/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": {}, - "include": ["src/**/*"] -} diff --git a/code/presets/server-webpack/vitest.config.ts b/code/presets/server-webpack/vitest.config.ts deleted file mode 100644 index 25fae90d1f77..000000000000 --- a/code/presets/server-webpack/vitest.config.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { defineConfig, mergeConfig } from 'vitest/config'; - -import { vitestCommonConfig } from '../../vitest.shared.ts'; - -export default mergeConfig( - vitestCommonConfig, - defineConfig({ - // Add custom config here - }) -); diff --git a/scripts/build/entry-configs.ts b/scripts/build/entry-configs.ts index 7414ffcca0f9..c5e1ba043f0b 100644 --- a/scripts/build/entry-configs.ts +++ b/scripts/build/entry-configs.ts @@ -63,10 +63,6 @@ import reactDomShimConfig from '../../../code/lib/react-dom-shim/build-config'; // @ts-ignore import presetCraConfig from '../../../code/presets/create-react-app/build-config'; // @ts-ignore -import presetReactWebpackConfig from '../../../code/presets/react-webpack/build-config'; -// @ts-ignore -import presetServerWebpackConfig from '../../../code/presets/server-webpack/build-config'; -// @ts-ignore import htmlRendererConfig from '../../../code/renderers/html/build-config'; // @ts-ignore import preactRendererConfig from '../../../code/renderers/preact/build-config'; @@ -125,8 +121,6 @@ export const buildEntries = { // presets '@storybook/preset-create-react-app': presetCraConfig, - '@storybook/preset-react-webpack': presetReactWebpackConfig, - '@storybook/preset-server-webpack': presetServerWebpackConfig, // renderers '@storybook/html': htmlRendererConfig, diff --git a/test-storybooks/ember-cli/package.json b/test-storybooks/ember-cli/package.json index 97e2ab74a9f2..d15ecf1122bf 100644 --- a/test-storybooks/ember-cli/package.json +++ b/test-storybooks/ember-cli/package.json @@ -27,8 +27,6 @@ "@storybook/preact": "file:../../code/renderers/preact", "@storybook/preact-vite": "file:../../code/frameworks/preact-vite", "@storybook/preset-create-react-app": "file:../../code/presets/create-react-app", - "@storybook/preset-react-webpack": "file:../../code/presets/react-webpack", - "@storybook/preset-server-webpack": "file:../../code/presets/server-webpack", "@storybook/react": "file:../../code/renderers/react", "@storybook/react-dom-shim": "file:../../code/lib/react-dom-shim", "@storybook/react-vite": "file:../../code/frameworks/react-vite", diff --git a/test-storybooks/external-docs/package.json b/test-storybooks/external-docs/package.json index 239ecc93847e..08899b9a0df0 100644 --- a/test-storybooks/external-docs/package.json +++ b/test-storybooks/external-docs/package.json @@ -27,8 +27,6 @@ "@storybook/preact": "file:../../code/renderers/preact", "@storybook/preact-vite": "file:../../code/frameworks/preact-vite", "@storybook/preset-create-react-app": "file:../../code/presets/create-react-app", - "@storybook/preset-react-webpack": "file:../../code/presets/react-webpack", - "@storybook/preset-server-webpack": "file:../../code/presets/server-webpack", "@storybook/react": "file:../../code/renderers/react", "@storybook/react-dom-shim": "file:../../code/lib/react-dom-shim", "@storybook/react-vite": "file:../../code/frameworks/react-vite", diff --git a/test-storybooks/portable-stories-kitchen-sink/nextjs/package.json b/test-storybooks/portable-stories-kitchen-sink/nextjs/package.json index 62cd3ed2a11a..2f6f57e47e27 100644 --- a/test-storybooks/portable-stories-kitchen-sink/nextjs/package.json +++ b/test-storybooks/portable-stories-kitchen-sink/nextjs/package.json @@ -31,8 +31,6 @@ "@storybook/preact": "file:../../../code/renderers/preact", "@storybook/preact-vite": "file:../../../code/frameworks/preact-vite", "@storybook/preset-create-react-app": "file:../../../code/presets/create-react-app", - "@storybook/preset-react-webpack": "file:../../../code/presets/react-webpack", - "@storybook/preset-server-webpack": "file:../../../code/presets/server-webpack", "@storybook/react": "file:../../../code/renderers/react", "@storybook/react-dom-shim": "file:../../../code/lib/react-dom-shim", "@storybook/react-vite": "file:../../../code/frameworks/react-vite", diff --git a/test-storybooks/portable-stories-kitchen-sink/react-vitest-3/package.json b/test-storybooks/portable-stories-kitchen-sink/react-vitest-3/package.json index 0a6d58169e9d..925dae260850 100644 --- a/test-storybooks/portable-stories-kitchen-sink/react-vitest-3/package.json +++ b/test-storybooks/portable-stories-kitchen-sink/react-vitest-3/package.json @@ -31,8 +31,6 @@ "@storybook/preact": "file:../../../code/renderers/preact", "@storybook/preact-vite": "file:../../../code/frameworks/preact-vite", "@storybook/preset-create-react-app": "file:../../../code/presets/create-react-app", - "@storybook/preset-react-webpack": "file:../../../code/presets/react-webpack", - "@storybook/preset-server-webpack": "file:../../../code/presets/server-webpack", "@storybook/react": "file:../../../code/renderers/react", "@storybook/react-dom-shim": "file:../../../code/lib/react-dom-shim", "@storybook/react-vite": "file:../../../code/frameworks/react-vite", diff --git a/test-storybooks/portable-stories-kitchen-sink/react/package.json b/test-storybooks/portable-stories-kitchen-sink/react/package.json index 59991571370c..f243300f1489 100644 --- a/test-storybooks/portable-stories-kitchen-sink/react/package.json +++ b/test-storybooks/portable-stories-kitchen-sink/react/package.json @@ -34,8 +34,6 @@ "@storybook/preact": "file:../../../code/renderers/preact", "@storybook/preact-vite": "file:../../../code/frameworks/preact-vite", "@storybook/preset-create-react-app": "file:../../../code/presets/create-react-app", - "@storybook/preset-react-webpack": "file:../../../code/presets/react-webpack", - "@storybook/preset-server-webpack": "file:../../../code/presets/server-webpack", "@storybook/react": "file:../../../code/renderers/react", "@storybook/react-dom-shim": "file:../../../code/lib/react-dom-shim", "@storybook/react-vite": "file:../../../code/frameworks/react-vite", diff --git a/test-storybooks/portable-stories-kitchen-sink/svelte/package.json b/test-storybooks/portable-stories-kitchen-sink/svelte/package.json index 5f41275af50f..5ec5445b4741 100644 --- a/test-storybooks/portable-stories-kitchen-sink/svelte/package.json +++ b/test-storybooks/portable-stories-kitchen-sink/svelte/package.json @@ -31,8 +31,6 @@ "@storybook/preact": "portal:../../../code/renderers/preact", "@storybook/preact-vite": "portal:../../../code/frameworks/preact-vite", "@storybook/preset-create-react-app": "portal:../../../code/presets/create-react-app", - "@storybook/preset-react-webpack": "portal:../../../code/presets/react-webpack", - "@storybook/preset-server-webpack": "portal:../../../code/presets/server-webpack", "@storybook/react": "portal:../../../code/renderers/react", "@storybook/react-dom-shim": "portal:../../../code/lib/react-dom-shim", "@storybook/react-vite": "portal:../../../code/frameworks/react-vite", diff --git a/test-storybooks/portable-stories-kitchen-sink/vue3/package.json b/test-storybooks/portable-stories-kitchen-sink/vue3/package.json index 8f7bf135e7de..b77e2eb280a5 100644 --- a/test-storybooks/portable-stories-kitchen-sink/vue3/package.json +++ b/test-storybooks/portable-stories-kitchen-sink/vue3/package.json @@ -32,8 +32,6 @@ "@storybook/preact": "file:../../../code/renderers/preact", "@storybook/preact-vite": "file:../../../code/frameworks/preact-vite", "@storybook/preset-create-react-app": "file:../../../code/presets/create-react-app", - "@storybook/preset-react-webpack": "file:../../../code/presets/react-webpack", - "@storybook/preset-server-webpack": "file:../../../code/presets/server-webpack", "@storybook/react": "file:../../../code/renderers/react", "@storybook/react-dom-shim": "file:../../../code/lib/react-dom-shim", "@storybook/react-vite": "file:../../../code/frameworks/react-vite", diff --git a/test-storybooks/server-kitchen-sink/package.json b/test-storybooks/server-kitchen-sink/package.json index 1dc6ba82e40e..98801a9985b9 100644 --- a/test-storybooks/server-kitchen-sink/package.json +++ b/test-storybooks/server-kitchen-sink/package.json @@ -30,8 +30,6 @@ "@storybook/preact": "file:../../code/renderers/preact", "@storybook/preact-vite": "file:../../code/frameworks/preact-vite", "@storybook/preset-create-react-app": "file:../../code/presets/create-react-app", - "@storybook/preset-react-webpack": "file:../../code/presets/react-webpack", - "@storybook/preset-server-webpack": "file:../../code/presets/server-webpack", "@storybook/react": "file:../../code/renderers/react", "@storybook/react-dom-shim": "file:../../code/lib/react-dom-shim", "@storybook/react-vite": "file:../../code/frameworks/react-vite", diff --git a/test-storybooks/standalone-preview/package.json b/test-storybooks/standalone-preview/package.json index 9d80250b5040..9f9f807a5e96 100644 --- a/test-storybooks/standalone-preview/package.json +++ b/test-storybooks/standalone-preview/package.json @@ -23,8 +23,6 @@ "@storybook/preact": "file:../../code/renderers/preact", "@storybook/preact-vite": "file:../../code/frameworks/preact-vite", "@storybook/preset-create-react-app": "file:../../code/presets/create-react-app", - "@storybook/preset-react-webpack": "file:../../code/presets/react-webpack", - "@storybook/preset-server-webpack": "file:../../code/presets/server-webpack", "@storybook/react": "file:../../code/renderers/react", "@storybook/react-dom-shim": "file:../../code/lib/react-dom-shim", "@storybook/react-vite": "file:../../code/frameworks/react-vite", diff --git a/test-storybooks/yarn-pnp/package.json b/test-storybooks/yarn-pnp/package.json index 2f935ee231e6..c8080521f383 100644 --- a/test-storybooks/yarn-pnp/package.json +++ b/test-storybooks/yarn-pnp/package.json @@ -29,8 +29,6 @@ "@storybook/preact": "file:../../code/renderers/preact", "@storybook/preact-vite": "file:../../code/frameworks/preact-vite", "@storybook/preset-create-react-app": "file:../../code/presets/create-react-app", - "@storybook/preset-react-webpack": "file:../../code/presets/react-webpack", - "@storybook/preset-server-webpack": "file:../../code/presets/server-webpack", "@storybook/react": "file:../../code/renderers/react", "@storybook/react-dom-shim": "file:../../code/lib/react-dom-shim", "@storybook/react-vite": "file:../../code/frameworks/react-vite", @@ -76,4 +74,4 @@ "nx": { "includedScripts": [] } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 46fa9c64723f..32d5dffcd798 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8179,8 +8179,6 @@ __metadata: "@storybook/preact": "workspace:*" "@storybook/preact-vite": "workspace:*" "@storybook/preset-create-react-app": "workspace:*" - "@storybook/preset-react-webpack": "workspace:*" - "@storybook/preset-server-webpack": "workspace:*" "@storybook/react": "workspace:*" "@storybook/react-vite": "workspace:*" "@storybook/react-webpack5": "workspace:*" @@ -8429,8 +8427,8 @@ __metadata: "@babel/types": "npm:^7.28.5" "@pmmmwh/react-refresh-webpack-plugin": "npm:^0.5.11" "@storybook/builder-webpack5": "workspace:*" - "@storybook/preset-react-webpack": "workspace:*" "@storybook/react": "workspace:*" + "@storybook/react-webpack5": "workspace:*" "@types/babel__core": "npm:^7" "@types/babel__plugin-transform-runtime": "npm:^7" "@types/babel__preset-env": "npm:^7" @@ -8516,48 +8514,6 @@ __metadata: languageName: unknown linkType: soft -"@storybook/preset-react-webpack@workspace:*, @storybook/preset-react-webpack@workspace:code/presets/react-webpack": - version: 0.0.0-use.local - resolution: "@storybook/preset-react-webpack@workspace:code/presets/react-webpack" - dependencies: - "@storybook/core-webpack": "workspace:*" - "@storybook/react-docgen-typescript-plugin": "npm:1.0.6--canary.9.0c3f3b7.0" - "@types/node": "npm:^22.19.1" - "@types/semver": "npm:^7.7.1" - empathic: "npm:^2.0.0" - magic-string: "npm:^0.30.5" - react-docgen: "npm:^7.1.1" - resolve: "npm:^1.22.8" - semver: "npm:^7.7.3" - tsconfig-paths: "npm:^4.2.0" - typescript: "npm:^5.9.3" - webpack: "npm:5" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: "workspace:^" - peerDependenciesMeta: - typescript: - optional: true - languageName: unknown - linkType: soft - -"@storybook/preset-server-webpack@workspace:*, @storybook/preset-server-webpack@workspace:code/presets/server-webpack": - version: 0.0.0-use.local - resolution: "@storybook/preset-server-webpack@workspace:code/presets/server-webpack" - dependencies: - "@storybook/core-webpack": "workspace:*" - "@types/node": "npm:^22.19.1" - safe-identifier: "npm:^0.4.2" - ts-dedent: "npm:^2.0.0" - typescript: "npm:^5.9.3" - yaml: "npm:^2.8.1" - yaml-loader: "npm:^0.8.1" - peerDependencies: - storybook: "workspace:^" - languageName: unknown - linkType: soft - "@storybook/react-docgen-typescript-plugin@npm:1.0.6--canary.9.0c3f3b7.0": version: 1.0.6--canary.9.0c3f3b7.0 resolution: "@storybook/react-docgen-typescript-plugin@npm:1.0.6--canary.9.0c3f3b7.0" @@ -8638,9 +8594,18 @@ __metadata: resolution: "@storybook/react-webpack5@workspace:code/frameworks/react-webpack5" dependencies: "@storybook/builder-webpack5": "workspace:*" - "@storybook/preset-react-webpack": "workspace:*" + "@storybook/core-webpack": "workspace:*" "@storybook/react": "workspace:*" + "@storybook/react-docgen-typescript-plugin": "npm:1.0.6--canary.9.0c3f3b7.0" "@types/node": "npm:^22.19.1" + "@types/semver": "npm:^7.7.1" + empathic: "npm:^2.0.0" + magic-string: "npm:^0.30.5" + react-docgen: "npm:^7.1.1" + resolve: "npm:^1.22.8" + semver: "npm:^7.7.3" + tsconfig-paths: "npm:^4.2.0" + webpack: "npm:5" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -8851,10 +8816,13 @@ __metadata: resolution: "@storybook/server-webpack5@workspace:code/frameworks/server-webpack5" dependencies: "@storybook/builder-webpack5": "workspace:*" - "@storybook/preset-server-webpack": "workspace:*" + "@storybook/core-webpack": "workspace:*" "@storybook/server": "workspace:*" "@types/node": "npm:^22.19.1" + safe-identifier: "npm:^0.4.2" + ts-dedent: "npm:^2.0.0" typescript: "npm:^5.9.3" + yaml-loader: "npm:^0.8.1" peerDependencies: storybook: "workspace:^" languageName: unknown