Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
70f2bb9
fix(cli): update package.json homepage and directory paths
ryomaejii Jun 17, 2025
ec24ff1
fix(cli): update cli-sub package.json homepage and directory paths
ryomaejii Jun 17, 2025
4953a3e
fix(docs): update cli-sub homepage
ryomaejii Jun 18, 2025
d3c2e78
fix(docs): update cli-sub homepage
ryomaejii Jun 18, 2025
13775d1
chore: Updated links and documentation for SolidJS framework/renderer…
kachurun Jul 2, 2025
d23822d
Fix linting
shilman Jul 2, 2025
7e91f9e
Merge branch 'next' into fix/storybook-cli-package-homepage
ryomaejii Jul 2, 2025
860f5fb
Fix addon detection in automigrations on windows
mrginglymus Jul 2, 2025
8f45122
Merge branch 'next' into SolidJS
shilman Jul 3, 2025
df23f7a
Merge branch 'next' into SolidJS
shilman Jul 6, 2025
435638b
Merge branch 'next' into SolidJS
shilman Jul 8, 2025
e0e4a3d
Merge branch 'next' into fix-addon-detection-windows
valentinpalkovic Jul 8, 2025
720324e
Merge branch 'next' into fix/storybook-cli-package-homepage
ryomaejii Jul 11, 2025
2a3b6e1
Merge branch 'next' into SolidJS
kachurun Jul 11, 2025
74aa9d0
fix: Angular framework properly inherits stylePreprocessorOptions fro…
gingeekrishna Jul 23, 2025
635f853
fix: address PR feedback - export deepMerge for testing
gingeekrishna Jul 23, 2025
94d72fc
fix: remove unused vi import from test file
gingeekrishna Jul 23, 2025
cac9c08
Fix: return mocked router instead of actual router in useRouter
JulioJ11 Jul 27, 2025
dc48cc9
Merge branch 'next' into fix/storybook-cli-package-homepage
ryomaejii Jul 29, 2025
fb9ecf2
Update ./docs/versions/next.json for v9.2.0-alpha.0
storybook-bot Jul 31, 2025
34cdc3c
Update ./docs/versions/next.json for v9.2.0-alpha.1
storybook-bot Aug 1, 2025
2e1f6c5
Merge latest upstream main into fix-storybook-webpack-32105
gingeekrishna Aug 4, 2025
273f4f5
Merge branch 'next' into fix-storybook-webpack-32105
valentinpalkovic Aug 6, 2025
1ff2f6e
Refactor Angular CLI framework tests and enhance getBuilderOptions fu…
valentinpalkovic Aug 6, 2025
d5a6a59
Addon Docs: Fix aria-labels Symbol conversion issue in docs page and …
yannbf Aug 6, 2025
c1e5cf5
Update CHANGELOG.md - fix a dead link
matmilbury Aug 6, 2025
b22e888
Merge branch 'next' into fix-storybook-webpack-32105
gingeekrishna Aug 7, 2025
b0f9e0d
Merge pull request #32108 from gingeekrishna/fix-storybook-webpack-32105
valentinpalkovic Aug 7, 2025
94d37f2
Mock: Catch errors when transforming preview files
valentinpalkovic Aug 7, 2025
a475b33
Update code/core/src/core-server/presets/vitePlugins/vite-mock/plugin.ts
valentinpalkovic Aug 7, 2025
1e2ff7b
Enhance error logging in storybook-mock-transform-loader to include f…
valentinpalkovic Aug 7, 2025
906ad72
Merge pull request #32216 from storybookjs/valentin/add-error-handlin…
valentinpalkovic Aug 7, 2025
378d79a
add E2E tests
yannbf Aug 7, 2025
1904c91
fix tests
yannbf Aug 7, 2025
525e532
Telemetry: Fix dev cancellation handling
shilman Aug 8, 2025
02a2b54
Merge branch 'next' into yann/fix-jsx-issue-2
yannbf Aug 8, 2025
ce6a1e4
Kill Cache
valentinpalkovic Aug 8, 2025
583a4e3
update gitHead
yannbf Aug 8, 2025
8471b60
Docs: Fix essentials addon references
jonniebigodes Aug 8, 2025
db20b91
Merge branch 'next' into docs_fix_essentials_references
jonniebigodes Aug 8, 2025
ee184ba
Merge pull request #32224 from storybookjs/docs_fix_essentials_refere…
jonniebigodes Aug 8, 2025
fef67c8
Merge pull request #32220 from storybookjs/yann/fix-jsx-issue-2
yannbf Aug 8, 2025
e0d33e3
Merge pull request #32212 from matmilbury/patch-1
yannbf Aug 8, 2025
a65cd6b
Merge pull request #32218 from storybookjs/shilman/fix-cancel-telemetry
shilman Aug 8, 2025
5279bbe
Merge branch 'next' into SolidJS
kachurun Aug 8, 2025
c96efcb
Fix "Cannot read properties of undefined (reading 'push')"
sk-pub Aug 9, 2025
9f75bbb
Merge pull request #32230 from sk-pub/bugfix/32229
valentinpalkovic Aug 11, 2025
70fff63
Merge pull request #31937 from mrginglymus/fix-addon-detection-windows
valentinpalkovic Aug 11, 2025
dfa44c7
Merge pull request #31799 from ryomaejii/fix/storybook-cli-package-ho…
valentinpalkovic Aug 11, 2025
f0d9efe
Merge pull request #32131 from JulioJ11/fix/nextjs-15-link-component
valentinpalkovic Aug 11, 2025
0232855
Merge branch 'next' into SolidJS
shilman Aug 11, 2025
f763c86
Merge pull request #31928 from kachurun/SolidJS
shilman Aug 11, 2025
8023f88
make RN sandboxes use src/stories directory
yannbf Aug 11, 2025
383baef
Merge pull request #32240 from storybookjs/yann/fix-e2e-tests
yannbf Aug 11, 2025
3d08384
Write changelog for 9.2.0-alpha.3 [skip ci]
storybook-bot Aug 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ This is a huge release focused on testing and bundle size.
- 🌐 Story globals
- 🏗️ Major upgrades: Svelte, Next, React Native, Angular

Please checkout our [Migration guide](https://storybook.js.org/docs/9/migration-guide) to upgrade from earlier versions of Storybook. To see a comprehensive list of changes that went into 9.0, you can refer to the [9.0 prerelease changelogs](./CHANGELOG.prerelease.md)
Please checkout our [Migration guide](https://storybook.js.org/docs/releases/migration-guide) to upgrade from earlier versions of Storybook. To see a comprehensive list of changes that went into 9.0, you can refer to the [9.0 prerelease changelogs](./CHANGELOG.prerelease.md)

<details>
<summary>List of all updates</summary>
Expand Down
10 changes: 10 additions & 0 deletions CHANGELOG.prerelease.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
## 9.2.0-alpha.3

- Addon Docs: Fix Symbol conversion issue in docs page and controls panel - [#32220](https://github.com/storybookjs/storybook/pull/32220), thanks @yannbf!
- Angular: Fix `entry.polyfills` undefined error - [#32230](https://github.com/storybookjs/storybook/pull/32230), thanks @sk-pub!
- Angular: Inherit options from browserTarget - [#32108](https://github.com/storybookjs/storybook/pull/32108), thanks @gingeekrishna!
- Core: Improve addon detection in automigrations on windows - [#31937](https://github.com/storybookjs/storybook/pull/31937), thanks @mrginglymus!
- Mock: Catch errors when transforming preview files - [#32216](https://github.com/storybookjs/storybook/pull/32216), thanks @valentinpalkovic!
- Next.js: Return mocked router instead of actual router in useRouter - [#32131](https://github.com/storybookjs/storybook/pull/32131), thanks @JulioJ11!
- Telemetry: Improve dev cancellation handling - [#32218](https://github.com/storybookjs/storybook/pull/32218), thanks @shilman!

## 9.2.0-alpha.2

- Onboarding: Tweak referral wording in survey - [#32185](https://github.com/storybookjs/storybook/pull/32185), thanks @shilman!
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ For additional help, share your issue in [the repo's GitHub Discussions](https:/
| [Svelte](code/renderers/svelte) | [![Storybook demo](https://img.shields.io/npm/v/@storybook/svelte/latest?style=flat-square&color=blue&label)](https://next--630873996e4e3557791c069c.chromatic.com/) | [![Svelte](https://img.shields.io/npm/dm/@storybook/svelte?style=flat-square&color=eee)](code/renderers/svelte) |
| [Preact](code/renderers/preact) | [![Storybook demo](https://img.shields.io/npm/v/@storybook/preact/latest?style=flat-square&color=blue&label)](https://next--63b588a512565bfaace15e7c.chromatic.com/) | [![Preact](https://img.shields.io/npm/dm/@storybook/preact?style=flat-square&color=eee)](code/renderers/preact) |
| [Qwik](https://github.com/literalpie/storybook-framework-qwik) | [![](https://img.shields.io/npm/v/storybook-framework-qwik/latest?style=flat-square&color=blue&label)](/) | [![Qwik](https://img.shields.io/npm/dm/storybook-framework-qwik?style=flat-square&color=eee)](https://github.com/literalpie/storybook-framework-qwik) |
| [SolidJS](https://github.com/storybookjs/solidjs) | [![](https://img.shields.io/npm/v/storybook-solidjs/latest?style=flat-square&color=blue&label)](/) | [![SolidJS](https://img.shields.io/npm/dm/storybook-solidjs?style=flat-square&color=eee)](https://github.com/storybookjs/solidjs) |
| [SolidJS](https://github.com/solidjs-community/storybook) | [![](https://img.shields.io/npm/v/storybook-solidjs-vite/latest?style=flat-square&color=blue&label)](/) | [![SolidJS](https://img.shields.io/npm/dm/storybook-solidjs-vite?style=flat-square&color=eee)](https://github.com/solidjs-community/storybook) |
| [Android, iOS, Flutter](https://github.com/storybookjs/native) | [![](https://img.shields.io/npm/v/@storybook/native/latest?style=flat-square&color=blue&label)](/) | [![Native](https://img.shields.io/npm/dm/@storybook/native?style=flat-square&color=eee)](https://github.com/storybookjs/native) |

### Addons
Expand Down
2 changes: 1 addition & 1 deletion code/addons/a11y/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@
"./src/postinstall.ts"
]
},
"gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae16",
"gitHead": "ce6a1e4a8d5ad69c699021a0b183df89cfc7b684",
"storybook": {
"displayName": "Accessibility",
"icon": "https://user-images.githubusercontent.com/263385/101991665-47042f80-3c7c-11eb-8f00-64b5a18f498a.png",
Expand Down
2 changes: 1 addition & 1 deletion code/addons/docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@
"./src/manager.tsx"
]
},
"gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae16",
"gitHead": "ce6a1e4a8d5ad69c699021a0b183df89cfc7b684",
"storybook": {
"displayName": "Docs",
"icon": "https://user-images.githubusercontent.com/263385/101991672-48355c80-3c7c-11eb-82d9-95fa12438f64.png",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@ export class JsonArray extends Component<JsonArrayProps, JsonArrayState> {
onClick: handleRemove,
className: 'rejt-minus-menu',
style: minus,
'aria-label': `remove the array '${name}'`,
'aria-label': `remove the array '${String(name)}'`,
});

return (
Expand Down Expand Up @@ -379,15 +379,15 @@ export class JsonArray extends Component<JsonArrayProps, JsonArrayState> {
onClick: this.handleAddMode,
className: 'rejt-plus-menu',
style: plus,
'aria-label': `add a new item to the '${name}' array`,
'aria-label': `add a new item to the '${String(name)}' array`,
});
const removeItemButton =
minusMenuElement &&
cloneElement(minusMenuElement, {
onClick: handleRemove,
className: 'rejt-minus-menu',
style: minus,
'aria-label': `remove the array '${name}'`,
'aria-label': `remove the array '${String(name)}'`,
});

const onlyValue = true;
Expand Down Expand Up @@ -670,8 +670,8 @@ export class JsonFunctionValue extends Component<JsonFunctionValueProps, JsonFun
onClick: handleRemove,
className: 'rejt-minus-menu',
style: style.minus,
'aria-label': `remove the function '${name}'${
parentPropertyName ? ` from '${parentPropertyName}'` : ''
'aria-label': `remove the function '${String(name)}'${
String(parentPropertyName) ? ` from '${String(parentPropertyName)}'` : ''
}`,
});
minusElement = resultOnlyResult ? null : minusMenuLayout;
Expand Down Expand Up @@ -1222,7 +1222,7 @@ export class JsonObject extends Component<JsonObjectProps, JsonObjectState> {
onClick: handleRemove,
className: 'rejt-minus-menu',
style: minus,
'aria-label': `remove the object '${name}'`,
'aria-label': `remove the object '${String(name)}'`,
});

return (
Expand Down Expand Up @@ -1268,15 +1268,15 @@ export class JsonObject extends Component<JsonObjectProps, JsonObjectState> {
onClick: this.handleAddMode,
className: 'rejt-plus-menu',
style: plus,
'aria-label': `add a new property to the object '${name}'`,
'aria-label': `add a new property to the object '${String(name)}'`,
});
const removeItemButton =
minusMenuElement &&
cloneElement(minusMenuElement, {
onClick: handleRemove,
className: 'rejt-minus-menu',
style: minus,
'aria-label': `remove the object '${name}'`,
'aria-label': `remove the object '${String(name)}'`,
});

const list = keyList.map((key) => (
Expand Down Expand Up @@ -1540,8 +1540,8 @@ export class JsonValue extends Component<JsonValueProps, JsonValueState> {
onClick: handleRemove,
className: 'rejt-minus-menu',
style: style.minus,
'aria-label': `remove the property '${name}' with value '${originalValue}'${
parentPropertyName ? ` from '${parentPropertyName}'` : ''
'aria-label': `remove the property '${String(name)}' with value '${String(originalValue)}'${
String(parentPropertyName) ? ` from '${String(parentPropertyName)}'` : ''
}`,
});

Expand Down
2 changes: 1 addition & 1 deletion code/addons/jest/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
"./src/manager.tsx"
]
},
"gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae16",
"gitHead": "ce6a1e4a8d5ad69c699021a0b183df89cfc7b684",
"storybook": {
"displayName": "Jest",
"icon": "https://pbs.twimg.com/profile_images/821713465245102080/mMtKIMax_400x400.jpg",
Expand Down
2 changes: 1 addition & 1 deletion code/addons/links/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@
],
"post": "./scripts/fix-preview-api-reference.ts"
},
"gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae16",
"gitHead": "ce6a1e4a8d5ad69c699021a0b183df89cfc7b684",
"storybook": {
"displayName": "Links",
"icon": "https://user-images.githubusercontent.com/263385/101991673-48355c80-3c7c-11eb-9b6e-b627c96a75f6.png",
Expand Down
2 changes: 1 addition & 1 deletion code/addons/themes/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@
"./src/preview.tsx"
]
},
"gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae16",
"gitHead": "ce6a1e4a8d5ad69c699021a0b183df89cfc7b684",
"storybook": {
"displayName": "Themes",
"unsupportedFrameworks": [
Expand Down
2 changes: 1 addition & 1 deletion code/builders/builder-vite/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,5 +71,5 @@
],
"platform": "node"
},
"gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae16"
"gitHead": "ce6a1e4a8d5ad69c699021a0b183df89cfc7b684"
}
2 changes: 1 addition & 1 deletion code/builders/builder-webpack5/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -108,5 +108,5 @@
],
"platform": "node"
},
"gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae16"
"gitHead": "ce6a1e4a8d5ad69c699021a0b183df89cfc7b684"
}
7 changes: 6 additions & 1 deletion code/core/src/cli/project_types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,12 @@ export type ExternalFramework = {

export const externalFrameworks: ExternalFramework[] = [
{ name: 'qwik', packageName: 'storybook-framework-qwik' },
{ name: 'solid', frameworks: ['storybook-solidjs-vite'], renderer: 'storybook-solidjs' },
{
name: 'solid',
packageName: 'storybook-solidjs-vite',
frameworks: ['storybook-solidjs-vite'],
renderer: 'storybook-solidjs-vite',
},
{
name: 'nuxt',
packageName: '@storybook-vue/nuxt',
Expand Down
12 changes: 12 additions & 0 deletions code/core/src/common/utils/get-addon-names.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,18 @@ describe('getAddonNames', () => {
expect(result).toEqual(['@storybook/addon-highlight', '@storybook/addon-outline']);
});

it('should extract addon names from windows absolute paths', () => {
const config = {
stories: [],
addons: [
'\\sandbox\\react-vite-default-ts\\node_modules\\@storybook\\addon-highlight',
'\\sandbox\\react-vite-default-ts\\node_modules\\@storybook\\addon-outline',
],
};
const result = getAddonNames(config);
expect(result).toEqual(['@storybook/addon-highlight', '@storybook/addon-outline']);
});

it('should extract addon names from pnpm paths', () => {
const config = {
stories: [],
Expand Down
5 changes: 5 additions & 0 deletions code/core/src/common/utils/get-addon-names.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import type { StorybookConfig } from 'storybook/internal/types';

import { normalizePath } from './normalize-path';

export const getAddonNames = (mainConfig: StorybookConfig): string[] => {
const addons = mainConfig.addons || [];
const addonList = addons.map((addon) => {
Expand All @@ -14,6 +16,9 @@ export const getAddonNames = (mainConfig: StorybookConfig): string[] => {
return undefined;
}

// Ensure posix paths for plugin name sniffing
name = normalizePath(name);

// For absolute paths, pnpm and yarn pnp,
// Remove everything before and including "node_modules/"
name = name.replace(/.*node_modules\//, '');
Expand Down
2 changes: 1 addition & 1 deletion code/core/src/common/utils/get-storybook-info.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export const rendererPackages: Record<string, string> = {

// community (outside of monorepo)
'storybook-framework-qwik': 'qwik',
'storybook-solidjs': 'solid',
'storybook-solidjs-vite': 'solid',

/** @deprecated This is deprecated. */
'@storybook/vue': 'vue',
Expand Down
1 change: 1 addition & 0 deletions code/core/src/core-server/dev-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ export async function storybookDevServer(options: Options) {

if (!core?.disableTelemetry) {
process.on('SIGINT', cancelTelemetry);
process.on('SIGTERM', cancelTelemetry);
}

return { previewResult, managerResult, address, networkAddress };
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,12 @@ export function viteMockPlugin(options: MockPluginOptions): Plugin[] {
name: 'storybook:mock-loader-preview',
transform(code, id) {
if (id === normalizedPreviewConfigPath) {
return rewriteSbMockImportCalls(code);
try {
return rewriteSbMockImportCalls(code);
} catch (e) {
logger.debug(`Could not transform sb.mock(import(...)) calls in ${id}: ${e}`);
return null;
}
}
return null;
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,30 @@
import type { LoaderContext } from 'webpack';
import { logger } from 'storybook/internal/node-logger';

import type { LoaderDefinition } from 'webpack';

import { rewriteSbMockImportCalls } from '../../../mocking-utils/extract';

/**
* A Webpack loader that normalize sb.mock(import(...)) calls to sb.mock(...)
*
* @param {string} source The original source code of the preview config file.
* @this {LoaderContext<{}>} The Webpack loader context.
* @param source The original source code of the preview config file.
* @this The Webpack loader context.
*/
export default function storybookMockTransformLoader(this: LoaderContext<{}>, source: string) {
const result = rewriteSbMockImportCalls(source);
const storybookMockTransformLoader: LoaderDefinition = function mockTransformLoaderFn(
source,
sourceMap,
meta
) {
const callback = this.async();
callback(null, result.code, result.map || undefined);
}

try {
const result = rewriteSbMockImportCalls(source);
callback(null, result.code, result.map || undefined, meta);
} catch (error) {
const filePath = this.resourcePath;
logger.debug(`Could not transform sb.mock(import(...)) calls in ${filePath}: ${error}`);
callback(null, source, sourceMap, meta);
}
};

export default storybookMockTransformLoader;
13 changes: 12 additions & 1 deletion code/e2e-tests/addon-controls.spec.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { expect, test } from '@playwright/test';
import process from 'process';

import { SbPage } from './util';
import { SbPage, isReactSandbox } from './util';

const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001';
const templateName = process.env.STORYBOOK_TEMPLATE_NAME || '';
Expand Down Expand Up @@ -103,4 +103,15 @@ test.describe('addon-controls', () => {

await expect(page).toHaveURL(/.*multiSelect\[0]:double\+\+space.*/);
});

// We want to avoid the controls panel crashing when JSX elements are part of args table
test('should show JSX elements in controls panel', async ({ page }) => {
test.skip(!isReactSandbox(templateName), 'This is a React only feature');
await page.goto(`${storybookUrl}?path=/story/stories-renderers-react-jsx-docgen--default`);

const sbPage = new SbPage(page, expect);
await sbPage.waitUntilLoaded();
await sbPage.viewAddonPanel('Controls');
await expect(sbPage.panelContent().getByText('children').first()).toBeVisible();
});
});
12 changes: 11 additions & 1 deletion code/e2e-tests/addon-docs.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { expect, test } from '@playwright/test';
import process from 'process';
import { dedent } from 'ts-dedent';

import { SbPage } from './util';
import { SbPage, isReactSandbox } from './util';

const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001';
const templateName = process.env.STORYBOOK_TEMPLATE_NAME || '';
Expand Down Expand Up @@ -280,4 +280,14 @@ test.describe('addon-docs', () => {
'H 2 Content',
]);
});

// We want to avoid the docs page crashing when JSX elements are part of args table
test('should show JSX elements in docs page', async ({ page }) => {
test.skip(!isReactSandbox(templateName), 'This is a React only feature');

const sbPage = new SbPage(page, expect);
await sbPage.navigateToStory('/stories/renderers/react/jsx-docgen', 'docs');
const root = sbPage.previewRoot();
await expect(root.getByText('children').first()).toBeVisible();
});
});
4 changes: 4 additions & 0 deletions code/e2e-tests/util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,10 @@ export class SbPage {
const templateName: keyof typeof allTemplates = process.env.STORYBOOK_TEMPLATE_NAME || ('' as any);

const templates = allTemplates;

export const isReactSandbox = (templateName: string) =>
templates[templateName as keyof typeof templates]?.expected.renderer === '@storybook/react';

export const hasVitestIntegration =
!templates[templateName]?.skipTasks?.includes('vitest-integration');

Expand Down
2 changes: 1 addition & 1 deletion code/frameworks/angular/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -169,5 +169,5 @@
"./src/builders/build-storybook/index.ts"
]
},
"gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae16"
"gitHead": "ce6a1e4a8d5ad69c699021a0b183df89cfc7b684"
}
1 change: 1 addition & 0 deletions code/frameworks/angular/src/server/angular-cli-webpack.js
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ exports.getWebpackConfig = async (baseConfig, { builderOptions, builderContext }
);

if (!builderOptions.experimentalZoneless && !cliConfig.entry.polyfills?.includes('zone.js')) {
cliConfig.entry.polyfills ??= [];
cliConfig.entry.polyfills.push('zone.js');
}

Expand Down
Loading