Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
ed3912c
fix: js template aligns with ts template
brettearle May 11, 2025
956c7de
Retry when EBUSY error occurs while writing to the cache
reduckted Nov 7, 2025
4314a6e
Merge branch 'next' into feature/file-system-cache-set-retry
ndelangen Nov 12, 2025
d2f0bec
Moved write retries to a helper function.
reduckted Nov 12, 2025
b89a7e4
Merge branch 'next' into feature/file-system-cache-set-retry
ndelangen Nov 12, 2025
66b19fe
Merge branch 'next' into feature/file-system-cache-set-retry
ndelangen Nov 12, 2025
1dbd1bc
Merge branch 'next' into feature/file-system-cache-set-retry
ndelangen Nov 13, 2025
1e872a9
Fixed bug in test.
reduckted Nov 14, 2025
19c731b
Assert that the promise was rejected with the expected error.
reduckted Nov 14, 2025
c8e375b
Merge branch 'next' into feature/file-system-cache-set-retry
ndelangen Nov 18, 2025
dad75f3
improve mocks
ndelangen Nov 18, 2025
98f908f
Merge branch 'next' into feature/file-system-cache-set-retry
ndelangen Nov 24, 2025
283917b
Merge branch 'next' into feature/file-system-cache-set-retry
ndelangen Nov 24, 2025
60dfbd0
Modernize global unignore recommendation
SamuelT-Beslogic Dec 1, 2025
500e627
Fix typo
SamuelT-Beslogic Dec 1, 2025
80a1d10
Merge branch 'next' into patch-1
SamuelT-Beslogic Dec 1, 2025
e9018f3
Update CHANGELOG.md for v10.1.4 [skip ci]
storybook-bot Dec 3, 2025
a60c55c
Merge branch 'next-release' into next
storybook-bot Dec 3, 2025
a9db713
fix sandbox dir path in ecosystem ci
JReinhold Dec 3, 2025
3517e92
Merge pull request #33270 from storybookjs/fix-ecosystem-ci
JReinhold Dec 3, 2025
edd2cd2
Merge branch 'next' into patch-1
jonniebigodes Dec 3, 2025
7bd55eb
Merge pull request #33238 from SamuelT-Beslogic/patch-1
jonniebigodes Dec 3, 2025
e4773eb
remove test-runner tests in ecosystem-ci
JReinhold Dec 4, 2025
1e10bdf
use shell scripts for ecosystem-ci, fix resolution copying to sandboxes
JReinhold Dec 4, 2025
94747c7
use set for resolution list
JReinhold Dec 4, 2025
81f5768
Wait for composed storybooks to load before continuing
ghengeveld Dec 4, 2025
1366dcc
fix(docs): support Rolldown bundler module namespace objects
akornmeier Dec 4, 2025
baf7766
test(docs-context): update test to match improved error message
akornmeier Dec 4, 2025
8edd8c5
Merge pull request #33278 from storybookjs/fix-composition-e2e
ghengeveld Dec 4, 2025
bfc0763
improve test name
JReinhold Dec 4, 2025
e0a00da
Merge branch 'next' into disable-ecosystem-ci-test-runner
JReinhold Dec 4, 2025
de619c1
Merge pull request #33277 from storybookjs/disable-ecosystem-ci-test-…
JReinhold Dec 4, 2025
9e7805b
Merge pull request #32981 from reduckted/feature/file-system-cache-se…
ndelangen Dec 5, 2025
09e0a73
Add NX check
kasperpeulen Dec 5, 2025
fb89ddc
Add NX check
kasperpeulen Dec 5, 2025
adfdcc6
Fix NX
kasperpeulen Dec 5, 2025
f096ff3
Fix NX
kasperpeulen Dec 5, 2025
5517b86
Fix NX
kasperpeulen Dec 5, 2025
6b85752
Fix NX
kasperpeulen Dec 5, 2025
ef7c2da
Test
kasperpeulen Dec 5, 2025
9e2477c
Test
kasperpeulen Dec 5, 2025
66fc74c
Fix
kasperpeulen Dec 5, 2025
18015cc
Fix
kasperpeulen Dec 5, 2025
9327a32
Fix
kasperpeulen Dec 5, 2025
b28a1e4
Fix
kasperpeulen Dec 5, 2025
98732a1
Fix
kasperpeulen Dec 5, 2025
44e7326
Fix
kasperpeulen Dec 5, 2025
d3e8432
Fix
kasperpeulen Dec 5, 2025
f6dff9b
Fix
kasperpeulen Dec 5, 2025
1969a4c
Fix
kasperpeulen Dec 5, 2025
ad127e9
Fix
kasperpeulen Dec 5, 2025
db5aba0
Fix
kasperpeulen Dec 5, 2025
c832292
Fix
kasperpeulen Dec 5, 2025
73c3a8a
Fix
kasperpeulen Dec 5, 2025
5491067
Fix
kasperpeulen Dec 5, 2025
6a0da58
Fix
kasperpeulen Dec 5, 2025
84169f2
Fix
kasperpeulen Dec 5, 2025
4bedb0d
Make daily job
kasperpeulen Dec 5, 2025
12e8ca3
More pretty
kasperpeulen Dec 5, 2025
d4be2f8
Refactor
kasperpeulen Dec 5, 2025
aa96be0
Merge pull request #33291 from storybookjs/kasper/nx-improvements
kasperpeulen Dec 5, 2025
b6eb30d
Addon-Vitest: Isolate error reasons during postinstall
valentinpalkovic Dec 7, 2025
a3f239e
Docs: Follow up on growth experiment event tracking
Sidnioulz Dec 3, 2025
9548e92
Merge pull request #33273 from storybookjs/sidnioulz/growth-sb-experi…
shilman Dec 8, 2025
fa3ad72
Merge branch 'next' into valentin/addon-vitest-detailed-errors
valentinpalkovic Dec 8, 2025
50ee2cc
React Native: Fix react native template not copying in create cli
dannyhw Dec 8, 2025
91d158e
Merge pull request #33308 from dannyhw/dannyhw/fix/react-native-templ…
valentinpalkovic Dec 9, 2025
2007c78
Merge branch 'next' into sveltekitJS_template_fix_31450
JReinhold Dec 9, 2025
578b5e5
Addon-Vitest: Update error handling in postinstall to use instance ty…
valentinpalkovic Dec 9, 2025
127ad3e
Build: Allow linked mode for react-native-web-expo sandbox
valentinpalkovic Dec 9, 2025
c043a59
Build: Remove rolldown version override
valentinpalkovic Dec 9, 2025
46708d8
Merge pull request #33295 from storybookjs/valentin/addon-vitest-deta…
valentinpalkovic Dec 9, 2025
9bd40eb
Merge pull request #33310 from storybookjs/valentin/allow-linked-mode…
valentinpalkovic Dec 9, 2025
2d46970
Merge pull request #33311 from storybookjs/valentin/remove-rolldown-v…
valentinpalkovic Dec 9, 2025
06dcd57
Merge pull request #31451 from brettearle/sveltekitJS_template_fix_31450
JReinhold Dec 9, 2025
e0d0d04
Merge pull request #33280 from akornmeier/31879-fix-rolldown-meta-of
valentinpalkovic Dec 9, 2025
e3180af
Update CHANGELOG.md for v10.1.5 [skip ci]
storybook-bot Dec 9, 2025
b254385
Write changelog for 10.2.0-alpha.4 [skip ci]
storybook-bot Dec 9, 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
4 changes: 0 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -255,10 +255,6 @@ jobs:
- run:
command: |
yarn
yarn task --task compile --start-from=auto --no-link --debug
name: Compile
- run:
command: |
yarn task --task check --start-from=auto --no-link --debug
name: Check
- run:
Expand Down
6 changes: 1 addition & 5 deletions .circleci/src/jobs/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,10 @@ steps:
name: Restore Yarn cache
keys:
- build-yarn-2-cache-v5--{{ checksum "yarn.lock" }}
- run:
name: Compile
command: |
yarn
yarn task --task compile --start-from=auto --no-link --debug
- run:
name: Check
command: |
yarn
yarn task --task check --start-from=auto --no-link --debug
- run:
name: Ensure no changes pending
Expand Down
126 changes: 110 additions & 16 deletions .github/workflows/nx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@ on:
- next
pull_request:
types: [opened, synchronize, labeled, reopened]
schedule:
- cron: '0 23 * * *'

permissions:
actions: read
contents: read
statuses: write

env:
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
Expand All @@ -21,7 +24,9 @@ jobs:
(contains(github.event.pull_request.labels.*.name, 'ci:normal') ||
contains(github.event.pull_request.labels.*.name, 'ci:merged') ||
contains(github.event.pull_request.labels.*.name, 'ci:daily'))
) || (github.event_name == 'push' && github.ref == 'refs/heads/next')
) || (github.event_name == 'push' && github.ref == 'refs/heads/next') ||
(github.event_name == 'schedule')

runs-on: ubuntu-latest
env:
ALL_TASKS: compile,check,knip,test,pretty-docs,lint,sandbox,build,e2e-tests,e2e-tests-dev,test-runner,vitest-integration,check-sandbox,e2e-ui,jest,vitest,playwright-ct,cypress
Expand All @@ -30,26 +35,115 @@ jobs:
with:
filter: tree:0
fetch-depth: 0
- name: Set Nx tag(s)
id: tag
run: |
tags="normal"
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
if [[ "${{ contains(github.event.pull_request.labels.*.name, 'ci:merged') }}" == "true" ]]; then
tags="merged"
fi
if [[ "${{ contains(github.event.pull_request.labels.*.name, 'ci:daily') }}" == "true" ]]; then
tags="daily"
fi
fi

if [[ "${{ github.event_name }}" == "push" && "${{ github.ref }}" == "refs/heads/next" ]]; then
tags="merged"
fi

if [[ "${{ github.event_name }}" == "schedule" ]]; then
tags="daily"
fi

echo "tag=$tags" >> "$GITHUB_OUTPUT"
- run: npx nx@latest start-ci-run --distribute-on="./.nx/workflows/distribution-config.yaml" --stop-agents-after="$ALL_TASKS"
- name: Create Nx Cloud Status (pending)
uses: actions/github-script@v7
with:
script: |
const tag = ${{ toJson(steps.tag.outputs.tag) }} || 'normal';

await github.rest.repos.createCommitStatus({
owner: context.repo.owner,
repo: context.repo.repo,
sha: context.payload.pull_request?.head?.sha ?? context.sha,
state: 'pending',
target_url: `https://cloud.nx.app/orgs/606dcb5cdc2a2b00059cc0e9/workspaces/6929fbef73e98d8094d2a343/overview?branch=${
context.payload.pull_request?.number ?? 'next'
}`,
description: 'NX Cloud is running your tests',
context: `nx: ${tag}`,
});
- uses: actions/setup-node@v4
with:
node-version: 22
cache: 'yarn'
- run: yarn install --immutable
- uses: nrwl/nx-set-shas@v4
- id: nx
name: 'Run nx'
run: |
echo 'nx_output<<EOF' >> "$GITHUB_OUTPUT"
yarn nx run-many -t $ALL_TASKS -c production -p="tag:library,tag:ci:${{ steps.tag.outputs.tag }}" | tee -a "$GITHUB_OUTPUT"
status=${PIPESTATUS[0]}
echo 'EOF' >> "$GITHUB_OUTPUT"
exit $status

- name: Create per-task Nx statuses
if: always()
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const raw = ${{ toJson(steps.nx.outputs.nx_output) }} || '';
const tag = ${{ toJson(steps.tag.outputs.tag) }} || '';
const lines = raw.split('\n');
const failures = [];

for (const [i, line] of lines.entries()) {
if (!line.includes('✖')) continue;

const task =
line.match(/✖\s+([^│]+?)\s{2,}/)?.[1].trim() ||
'Unknown Nx task';

const url = lines
.slice(i + 1, i + 6)
.find(l => l.includes('Task logs:'))
?.match(/Task logs:\s*(https:\/\/cloud\.nx\.app\/logs\/\S+)/)?.[1];

failures.push({ task, url });
}

const sha = context.payload.pull_request?.head?.sha ?? context.sha;

// Per-task statuses (max 5)
for (const { task, url } of failures.slice(0, 5)) {
await github.rest.repos.createCommitStatus({
owner: context.repo.owner,
repo: context.repo.repo,
sha,
state: 'failure',
target_url: url ?? undefined,
context: `nx run ${task}`,
description: 'Your test failed on NX Cloud',
});
}

const runMatches = raw.match(/https:\/\/cloud\.nx\.app\/runs\/\S+/g);
const nxCloudUrl = runMatches ? runMatches[runMatches.length - 1] : undefined;

const failedCount = failures.length;

# --- PRs ---
- if: github.event_name == 'pull_request' &&
contains(github.event.pull_request.labels.*.name, 'ci:normal')
run: yarn nx run-many -t $ALL_TASKS -c production -p="tag:ci:normal"
- if: github.event_name == 'pull_request' &&
contains(github.event.pull_request.labels.*.name, 'ci:merged')
run: yarn nx run-many -t $ALL_TASKS -c production -p="tag:ci:normal,tag:ci:merged"
- if: github.event_name == 'pull_request' &&
contains(github.event.pull_request.labels.*.name, 'ci:daily')
run: yarn nx run-many -t $ALL_TASKS -c production -p="tag:ci:normal,tag:ci:merged,tag:ci:daily"

# --- Pushes ---
- if: github.event_name == 'push' &&
github.ref == 'refs/heads/next'
run: yarn nx run-many -t $ALL_TASKS -c production -p="tag:ci:normal,tag:ci:merged"
await github.rest.repos.createCommitStatus({
owner: context.repo.owner,
repo: context.repo.repo,
sha,
state: failedCount ? 'failure' : 'success',
target_url: nxCloudUrl,
description: failedCount
? `Nx Cloud run failed (${failedCount} tasks failed)`
: 'Nx Cloud run finished successfully',
context: `nx: ${tag}`,
});
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
## 10.1.5

- Addon-Vitest: Isolate error reasons during postinstall - [#33295](https://github.com/storybookjs/storybook/pull/33295), thanks @valentinpalkovic!
- CLI: Fix react native template not copying in init - [#33308](https://github.com/storybookjs/storybook/pull/33308), thanks @dannyhw!
- Docs: Support Rolldown bundler module namespace objects - [#33280](https://github.com/storybookjs/storybook/pull/33280), thanks @akornmeier!

## 10.1.4

- Core: Enhance getPrettier function to provide prettier interface - [#33260](https://github.com/storybookjs/storybook/pull/33260), thanks @valentinpalkovic!
- NextJS: Alias image to use fileURLToPath for better resolution - [#33256](https://github.com/storybookjs/storybook/pull/33256), thanks @ndelangen!
- Telemetry: Cache Storybook metadata by main config content hash - [#33247](https://github.com/storybookjs/storybook/pull/33247), thanks @valentinpalkovic!

## 10.1.3

- Angular: Honor --loglevel and --logfile in dev/build - [#33212](https://github.com/storybookjs/storybook/pull/33212), thanks @valentinpalkovic!
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.prerelease.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 10.2.0-alpha.4

- Addon-Vitest: Isolate error reasons during postinstall - [#33295](https://github.com/storybookjs/storybook/pull/33295), thanks @valentinpalkovic!
- CLI: Fix react native template not copying in init - [#33308](https://github.com/storybookjs/storybook/pull/33308), thanks @dannyhw!
- Core: Retry `writeFile` cache when EBUSY error occurs - [#32981](https://github.com/storybookjs/storybook/pull/32981), thanks @reduckted!
- Docs: Support Rolldown bundler module namespace objects - [#33280](https://github.com/storybookjs/storybook/pull/33280), thanks @akornmeier!
- SvelteKit: Align JS template with TS template - [#31451](https://github.com/storybookjs/storybook/pull/31451), thanks @brettearle!

## 10.2.0-alpha.3

- Addon Docs: Skip `!autodocs` stories when computing primary story - [#32712](https://github.com/storybookjs/storybook/pull/32712), thanks @ia319!
Expand Down
2 changes: 1 addition & 1 deletion code/addons/a11y/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"compile": {},
"check": {}
},
"tags": ["ci:normal"]
"tags": ["library"]
}
2 changes: 1 addition & 1 deletion code/addons/docs/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"compile": {},
"check": {}
},
"tags": ["ci:normal"]
"tags": ["library"]
}
2 changes: 1 addition & 1 deletion code/addons/links/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"compile": {},
"check": {}
},
"tags": ["ci:normal"]
"tags": ["library"]
}
2 changes: 1 addition & 1 deletion code/addons/onboarding/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"compile": {},
"check": {}
},
"tags": ["ci:normal"]
"tags": ["library"]
}
2 changes: 1 addition & 1 deletion code/addons/pseudo-states/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"compile": {},
"check": {}
},
"tags": ["ci:normal"]
"tags": ["library"]
}
2 changes: 1 addition & 1 deletion code/addons/themes/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@
"compile": {},
"check": {}
},
"tags": ["ci:normal"]
"tags": ["library"]
}
2 changes: 1 addition & 1 deletion code/addons/vitest/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"compile": {},
"check": {}
},
"tags": ["ci:normal"]
"tags": ["library"]
}
23 changes: 13 additions & 10 deletions code/addons/vitest/src/postinstall.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,14 @@ import {
getStorybookInfo,
} from 'storybook/internal/common';
import { CLI_COLORS } from 'storybook/internal/node-logger';
import type { StorybookError } from 'storybook/internal/server-errors';
import {
AddonVitestPostinstallConfigUpdateError,
AddonVitestPostinstallError,
AddonVitestPostinstallExistingSetupFileError,
AddonVitestPostinstallFailedAddonA11yError,
AddonVitestPostinstallPrerequisiteCheckError,
AddonVitestPostinstallWorkspaceUpdateError,
} from 'storybook/internal/server-errors';
import { SupportedFramework } from 'storybook/internal/types';

Expand All @@ -32,7 +37,7 @@ const EXTENSIONS = ['.ts', '.tsx', '.js', '.jsx', '.cts', '.mts', '.cjs', '.mjs'
const addonA11yName = '@storybook/addon-a11y';

export default async function postInstall(options: PostinstallOptions) {
const errors: string[] = [];
const errors: InstanceType<typeof StorybookError>[] = [];
const { logger, prompt } = options;

const packageManager = JsPackageManagerFactory.getPackageManager({
Expand Down Expand Up @@ -138,10 +143,9 @@ export default async function postInstall(options: PostinstallOptions) {
// Install Playwright browser binaries using AddonVitestService
if (!options.skipDependencyManagement) {
if (!options.skipInstall) {
const { errors: playwrightErrors } = await addonVitestService.installPlaywright({
await addonVitestService.installPlaywright({
yes: options.yes,
});
errors.push(...playwrightErrors);
} else {
logger.warn(dedent`
Playwright browser binaries installation skipped. Please run the following command manually later:
Expand All @@ -164,7 +168,7 @@ export default async function postInstall(options: PostinstallOptions) {
`;
logger.line();
logger.error(`${errorMessage}\n`);
errors.push('Found existing Vitest setup file');
errors.push(new AddonVitestPostinstallExistingSetupFileError({ filePath: vitestSetupFile }));
} else {
logger.step(`Creating a Vitest setup file for Storybook:`);
logger.log(`${vitestSetupFile}\n`);
Expand Down Expand Up @@ -255,7 +259,9 @@ export default async function postInstall(options: PostinstallOptions) {
https://storybook.js.org/docs/next/${DOCUMENTATION_LINK}#manual-setup
`
);
errors.push('Unable to update existing Vitest workspace file');
errors.push(
new AddonVitestPostinstallWorkspaceUpdateError({ filePath: vitestWorkspaceFile })
);
}
}
// If there's an existing Vite/Vitest config with workspaces, we update it to include the Storybook Addon Vitest plugin.
Expand Down Expand Up @@ -300,7 +306,7 @@ export default async function postInstall(options: PostinstallOptions) {
Please refer to the documentation to complete the setup manually:
https://storybook.js.org/docs/writing-tests/integrations/vitest-addon#manual-setup
`);
errors.push('Unable to update existing Vitest config file');
errors.push(new AddonVitestPostinstallConfigUpdateError({ filePath: rootConfig }));
}
}
// If there's no existing Vitest/Vite config, we create a new Vitest config file.
Expand Down Expand Up @@ -361,10 +367,7 @@ export default async function postInstall(options: PostinstallOptions) {
Please refer to the documentation to complete the setup manually:
https://storybook.js.org/docs/writing-tests/accessibility-testing#test-addon-integration
`);
errors.push(
"The @storybook/addon-a11y couldn't be set up for the Vitest addon" +
(e instanceof Error ? e.stack : String(e))
);
errors.push(new AddonVitestPostinstallFailedAddonA11yError({ error: e }));
}
}

Expand Down
2 changes: 1 addition & 1 deletion code/builders/builder-vite/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"compile": {},
"check": {}
},
"tags": ["ci:normal"]
"tags": ["library"]
}
2 changes: 1 addition & 1 deletion code/builders/builder-webpack5/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"compile": {},
"check": {}
},
"tags": ["ci:normal"]
"tags": ["library"]
}
2 changes: 1 addition & 1 deletion code/core/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"compile": {},
"check": {}
},
"tags": ["ci:normal"]
"tags": ["library"]
}
8 changes: 5 additions & 3 deletions code/core/src/common/utils/file-cache.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
/** This file is a modified copy from https://git.nfp.is/TheThing/fs-cache-fast */
import { createHash, randomBytes } from 'node:crypto';
import { mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from 'node:fs';
import { readFile, readdir, rm, writeFile } from 'node:fs/promises';
import { mkdir, readFile, readdir, rm } from 'node:fs/promises';
import { tmpdir } from 'node:os';
import { join } from 'node:path';

import { writeFileWithRetry } from './write-file-with-retry';

interface FileSystemCacheOptions {
ns?: string;
prefix?: string;
Expand Down Expand Up @@ -85,8 +87,8 @@ export class FileSystemCache {
orgOpts: CacheSetOptions | number = {}
): Promise<void> {
const opts: CacheSetOptions = typeof orgOpts === 'number' ? { ttl: orgOpts } : orgOpts;
mkdirSync(this.cache_dir, { recursive: true });
await writeFile(this.generateHash(name), this.parseSetData(name, data, opts), {
await mkdir(this.cache_dir, { recursive: true });
await writeFileWithRetry(this.generateHash(name), this.parseSetData(name, data, opts), {
encoding: opts.encoding || 'utf8',
});
}
Expand Down
1 change: 1 addition & 0 deletions code/core/src/common/utils/get-storybook-info.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ export const rendererPackages: Record<string, SupportedRenderer> = {
'@storybook/svelte': SupportedRenderer.SVELTE,
'@storybook/preact': SupportedRenderer.PREACT,
'@storybook/server': SupportedRenderer.SERVER,
'@storybook/react-native': SupportedRenderer.REACT_NATIVE,

// community (outside of monorepo)
'storybook-framework-qwik': SupportedRenderer.QWIK,
Expand Down
Loading