Skip to content

Release: Prerelease 11.0.0-alpha.8 - #36905

Merged
ghengeveld merged 395 commits into
next-releasefrom
version-non-patch-from-11.0.0-alpha.7
Oct 23, 2026
Merged

ghengeveld merged 395 commits into
next-releasefrom
version-non-patch-from-11.0.0-alpha.7

Conversation

@github-actions

@github-actions github-actions Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

This is an automated pull request that bumps the version from `11.0.0-alpha.7` to `11.0.0-alpha.8`.
Once this pull request is merged, it will trigger a new release of version `11.0.0-alpha.8`.
If you're not a core maintainer with permissions to release you can ignore this pull request.

To do

Before merging the PR, there are a few QA steps to go through:

  • Add the "freeze" label to this PR, to ensure it doesn't get automatically forced pushed by new changes.
  • Add the "ci:daily" label to this PR, to trigger the full test suite to run on this PR.

And for each change below:

  1. Ensure the change is appropriate for the version bump. E.g. patch release should only contain patches, not new or de-stabilizing features. If a change is not appropriate, revert the PR.
  2. Ensure the PR is labeled correctly with one of: "BREAKING CHANGE", "feature request", "bug", "maintenance", "dependencies", "documentation", "build", "unknown".
  3. Ensure the PR title is correct, and follows the format "[Area]: [Summary]", e.g. "React: Fix hooks in CSF3 render functions". If it is not correct, change the title in the PR.
    • Areas include: React, Vue, Core, Docs, Controls, etc.
    • First word of summary indicates the type: “Add”, “Fix”, “Upgrade”, etc.
    • The entire title should fit on a line

This is a list of all the PRs merged and commits pushed directly to `next`, that will be part of this release:

  • 🐛 Bug: React: Alias preview React from the renderer preset #36841
  • 🐛 Bug: Core: Skip TypeScript loader hook registration under Jest #36790 (will also be patched)
  • 🐛 Bug: WC: Keep properties named like an unrelated attribute #36862
  • ✨ Feature Request: Svelte: Migrate Svelte CSF files to CSF factories and run the Svelte sandboxes with them #36702
  • 🐛 Bug: React renderer: Prebundle react so Vitest browser mode can link React's default export #36824
  • 🔧 Maintenance: CSF: Run csf-tools on OXC instead of Babel #36613
  • 🔧 Maintenance: TanstackReact: Fix accross typo in path-utils comment #36634
  • 🐛 Bug: Core: Exempt chromatic from release-age gates alongside the Chromatic addon #36910
  • 🐛 Bug: WC: Normalize multiline type text in WC arg type parsing #36805
  • 🐛 Bug: Addon-Docs: Prevent source transform from being applied twice on docs pages #36061
  • 🐛 Bug: Manager: Improve UI stability on onboarding checklist #36341
  • 🐛 Bug: WC: Skip undefined and null args in the web components default render #36806
  • 🐛 Bug: WC: Read WC meta.component through a spread of a local meta object #36812
  • 🐛 Bug: PNPM: Preapprove esbuild postinstall when possible #36758
  • 🐛 Bug: Manager: Type index titles by their contents #36659
  • ❗ Breaking Change: Svelte: Remove deprecated parameters.component path #36813
  • 🐛 Bug: Angular: Read Component Metadata From Ivy Declarations #36780
  • 🐛 Bug: Builder Vite: Report silent vite config discovery misses with a named warning #36788
  • ✨ Feature Request: Svelte: Accept preview.meta() in Svelte CSF files #36691
  • ✨ Feature Request: Svelte: Add CSF factories with definePreview #36669
  • 🏗️ Build: Builder Vite: Print the found Vite config path with forward slashes on Windows #36917
  • 📝 Documentation: Docs: Add runtime WC manifest API deprecation to MIGRATION.md #36904
  • 🏗️ Build: Agents: List Chromatic project IDs for the UI and sandboxes #36950
  • 📝 Documentation: Docs: Update WC documentation for SB 11 #36704
  • 🏗️ Build: Agents: Drop the removed --no-open flag from skills #36834
  • 🏗️ Build: Build: Disable the sandbox npm age gate in ecosystem CI #36886
  • 📝 Documentation: Docs: Explain release-day package manager gates and Remix 3 #36878

If you've made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with this workflow and wait for it to finish. It will wipe your progress in this to do, which is expected.

Feel free to manually commit any changes necessary to this branch after you've done the last re-generation, following the Make Manual Changes section in the docs, especially if you're making changes to the changelog.

When everything above is done:


Generated changelog

11.0.0-alpha.8

  • Addon-Docs: Prevent source transform from being applied twice on docs pages - #36061, thanks webdevsamran!
  • Angular: Read Component Metadata From Ivy Declarations - #36780, thanks dvmhmdsd!
  • Builder Vite: Report silent vite config discovery misses with a named warning - #36788, thanks obvious-autobuild!
  • CSF: Run csf-tools on OXC instead of Babel - #36613, thanks EastonShin!
  • Core: Exempt chromatic from release-age gates alongside the Chromatic addon - #36910, thanks valentinpalkovic!
  • Core: Skip TypeScript loader hook registration under Jest - #36790, thanks obvious-autobuild!
  • Manager: Improve UI stability on onboarding checklist - #36341, thanks Sidnioulz!
  • Manager: Type index titles by their contents - #36659, thanks valentinpalkovic!
  • PNPM: Preapprove esbuild postinstall when possible - #36758, thanks Sidnioulz!
  • React renderer: Prebundle react so Vitest browser mode can link React's default export - #36824, thanks obvious-autobuild!
  • React: Alias preview React from the renderer preset - #36841, thanks ndelangen!
  • Svelte: Accept preview.meta() in Svelte CSF files - #36691, thanks JReinhold!
  • Svelte: Add CSF factories with definePreview - #36669, thanks JReinhold!
  • Svelte: Migrate Svelte CSF files to CSF factories and run the Svelte sandboxes with them - #36702, thanks JReinhold!
  • Svelte: Remove deprecated parameters.component path - #36813, thanks ndelangen!
  • TanstackReact: Fix accross typo in path-utils comment - #36634, thanks obvious-autobuild!
  • WC: Keep properties named like an unrelated attribute - #36862, thanks huang-julien!
  • WC: Normalize multiline type text in WC arg type parsing - #36805, thanks huang-julien!
  • WC: Read WC meta.component through a spread of a local meta object - #36812, thanks huang-julien!
  • WC: Skip undefined and null args in the web components default render - #36806, thanks huang-julien!

webdevsamran and others added 30 commits October 17, 2026 08:33
…nd selection (#36061)

Signed-off-by: Samran Asif <samranwebdev2000@gmail.com>
…er span

Spans without their parentheses made every copy, removal and insertion
site re-derive them, and each one that forgot produced its own bug:
parenthesized default exports, array elements, computed keys,
satisfies wrappers and comma expressions. Parsing keeps parentheses,
one pass replaces each ParenthesizedExpression by the node inside and
records its outer span, so readers see the same tree and edits use
outerSpan. placeableTextOf replaces placeableSource,
placeableExpression, isParenthesized, withParentheses,
exportDefaultKeywords and the React snippet's own copy. It also fixes
a crash merging comma-expression story args and an eslint config edit
that wrote inside a parenthesized array element.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…itives

Lists, statements, addon-vitest's insertion point and JSDoc extraction
each scanned comments their own way, and their rules drifted. They now
share binary-searched trivia helpers, with one policy each for list
items, statements and leading comments. Prepending or appending a
statement goes after the comments beside the previous one instead of
taking them, and removing an item no longer joins code onto a line
comment.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The editor kept CRLF and converted inserted text back, the printers
stripped it again, and seven other places handled a stray CR. Source
text is now normalized once before parsing, so offsets, edits and
printed code are LF everywhere; lines and columns are unchanged, and
source maps still name the file as written. Automigrations write the
files they change with LF. writeCsf without a file name now writes
back to the file it was read from.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`removeFromList` judged each removed item on its own whether the code after
it would join the line of a `//` comment before it. With two adjacent items
removed, the first removal kept the newline the second one then deleted, so
the next kept item ended up inside the comment:

    composeStories, /* api */ // used below composeStory,

The output still parses, so the editor's reparse accepted it. A run of
adjacent removed items is now removed as one span and that check is made
once, against the code after the whole run.

Found by a differential test of 14,336 list removals.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Seven call sites inserted a statement after another one, each in its own
way. Three inserted at the import's end, before the comments it owns, and
so pushed a `// @ts-expect-error` beside it onto the wrong line.

`insertStatementAfter(editor, statement, text)` now owns that: the new
statement goes on its own line after the comments the statement owns,
and code that shares that line moves below it. `insertAfterImports`
builds on it for the common case of adding an import or declaration.
`appendStatement`, `prependStatement`, `ConfigFile#setImport`, the Vitest
config merge, the Angular Vitest setup, the args-mocks codemod and the
React Native Metro setup all use them.

`statementEnd` no longer counts a next-line directive beside the
statement as the statement's own, so the directive keeps applying to the
line below it.

Inserting after an import that ends the file keeps the file without a
final newline instead of adding one, as `appendStatement` already did.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ckCalls

`getAutomockCode` and `extractMockCalls` took a parser callback, a leftover
from the Babel API. Their edits rely on what Storybook's own parse gives
them: offsets into code with `\n` line endings, and the outer span of a
parenthesized expression. Another ESTree parser gives neither, so the
callback could only produce wrong output, such as `= x);` for
`export default (x);`.

Both now parse themselves. `getAutomockCode(code, isSpy, fileName)` takes
the module's file name to pick the grammar, like
`rewriteSbMockImportCalls(code, fileName)` already did, and
`extractMockCalls(options, root, findMockRedirect)` drops the parser.
`parseModuleAst` and its deprecated `babelParser` alias are removed.

BREAKING CHANGE: builders that call `getAutomockCode` or `extractMockCalls`
from `storybook/internal/mocking-utils` drop the parser argument.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e config

`importedExport` told a default import and `{ default as path }` apart,
so a config importing path that way fell back to manual setup. Both
read the module's default export, which for `node:path` is the same
object as its namespace.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gs intersections

The CSF factory codemod joins the custom args types of a story with `&`.
It parenthesized unions and function types, but not conditional and
constructor types, so `A extends B ? C : D` intersected with `E` turned
into `A extends B ? C : D & E`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
oxc-parser 0.153 maps the `browser` export condition to a WASM build
that is not installed. The Svelte and docgen harness test projects
resolve that condition, so every test that loads csf-tools there failed
to import oxc-parser. Storybook parses in Node with the native binding,
so the tests now do too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ndings

The LF note named only `storybook automigrate`, but the codemods, the
setup steps of `storybook init` and `storybook add`, and the builders'
transforms normalize line endings too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…h the shared primitives

`getTopInsertionPosition` decided comment ownership on its own: only a
comment at offset 0 counted as a file pragma, so the generated `require`
landed between a `// @ts-expect-error` and the statement it is about.
The ESM import now goes through `insertAfterImports` and the CommonJS
require through `prependStatement`, which own those rules for every
other insertion. The require no longer gets a blank line below it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Follow-ups to the statement primitives from review:

- `insertStatementAfter` prefixes `;` when the text starts with `(`,
  `[`, a backtick, `+`, `-` or `/` and the statement before it has no
  `;`, so `[1].forEach(f)` no longer continues `const a = 1`.
- Several statements inserted after one statement share one line break
  before the code moved below them, instead of each adding a blank line.
  At the end of a line, they go after the spaces ending it.
- `removeStatement` takes the spaces between the statement and the code
  it shares its line with, so `foo(); bar();` without `bar` is `foo();`.
- Dropping a trailing run from a list removes only the comma of the last
  kept item, not the comments around it.
- The CSF meta and the Vitest component transform insert their
  `export default` with `insertStatementAfter`, and the CSF factory
  codemod appends to an export-less preview with `appendStatement`.
- `insertStatementAfter` is no longer exported from
  `storybook/internal/csf-tools`: only core uses it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…imports go

`prependStatement` had two rules: above the first statement, unless the
file had a header such as a license, in which case after the leading
imports. A new import's place so depended on a comment, and several
prepends to a header-less file ended up in reverse order.

`prependStatement` now has one rule: the first statement after the
directives, above the comments it owns. The file header stays above it.
`ConfigFile#setImport` adds a new import with `insertAfterImports`, so
new imports follow the existing ones in the order they are added and
existing imports keep their evaluation order.

Visible in the automigrations: `getAbsolutePath` adds `dirname` before
`fileURLToPath`, preview addon annotations follow the existing imports,
and no blank line is added between a header-prepended import and the
code below it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…builtins

`importedExport` keyed every default import like a namespace import.
That holds for `node:path`, whose default export is its namespace, but
not for a module in general. Default imports, including
`{ default as x }`, now key as `default`, which equals the namespace
only for a Node builtin.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`getAutomockCode` is the entry point every builder uses. Nothing in the
repo or among known external builders calls the vendored
`automockModule` directly, so its signature change needs no migration.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`csf._commit()` refreshed the story indexes, `csf._editor.commit()` did not,
and codemods called the latter. Committing now always goes through the
`SourceEditor`, which takes an `onCommit` callback: `CsfFile` and `ConfigFile`
derive their state again from it, so `_commit` is gone and so is the
`commit` member of `CsfObjectHost`.

Nodes from before a commit index text that no longer exists, and editing with
them silently corrupted the output. Each node of a printable parse already
recorded its code; it now records its parse, so `editor.source()` and the
editing primitives throw for a node of another parse with one WeakMap lookup.
Raw `editor.edits` calls stay unguarded. `objectList` takes the editor like the
other list constructors, so a list is checked where it is built.

`ConfigFile._editorSource` is now `_editor`, so `_editor` is the
`SourceEditor` on both files; the method that returned an object editor is
`_objectEditor`.

csf-2-to-3 reads its templates before committing, as the re-derived file no
longer binds them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…y SourceEditor

`SourceEditor.quote` took the first string literal (default `'`) while
`ConfigFile` took a majority vote (default `"`), and `preferredQuote` papered
over the disagreement. The editor now owns the one rule: the quote most string
literals use, with a tie going to the first literal. JSX attributes are left
out, since files that single-quote their code still double-quote JSX. A file
without string literals gets `"`, the default of Prettier, oxfmt and Biome,
which such a file is most likely formatted with. This changes generated
strings in story files without any string literal from `'` to `"` (one
codemod snapshot and one eslint test updated on purpose).

Indentation follows the same pattern: `indent` is the step from the file's
first multi-line block to its first item, else two spaces. `appendToList`,
`groupMembers`, `printMembers` and expanded `printValue` all use it, so a
tab-indented file no longer gets two-space lines from some edits.

Both are inferred once, from the code the editor was created with, so an edit
that removes the literals cannot flip the style mid-migration. This replaces
ConfigFile's `_inferQuotes`, `_quotes`, `_quote` and `preferredQuote`, and the
per-object `indentUnit`. Hand-built `${quote}…${quote}` strings now go through
`printString(value, editor.quote)`, including the `flat/recommended` key the
eslint setup wrote with fixed double quotes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adding the first item to an empty one-line list overwrote everything between
its delimiters, so `{ /* todo */ }` lost its comment. The items now go after
the comments that are there.

Every caller passed the padding of a one-line list (`''` for arrays, `' '` for
objects) at every call. It belongs to the list, so the constructors set
`List.padding` and the parameter is gone.

Items added to a one-line list now get their continuation lines indented like
the list's line, as they already did in multi-line lists, which makes
addon-vitest's `appendItems` workaround unnecessary. The template project
prepended to a one-line `projects` array is indented accordingly (snapshots
updated on purpose).

addon-vitest copied each template statement up to the start of the next one,
taking the next statement's leading comments along: the template's
"More info" comment above `export default` landed after the inserted imports.
`statementSpan` gives a statement with the comments it owns, the span
`removeStatement` removes, and the copy now uses it (snapshots updated on
purpose).

`argumentList` and `declaratorList` join the list constructors and replace the
hand-built lists in the eslint setup, ConfigObject and csf-2-to-3. The former
finds the `(` past type arguments, `?.` and comments, where a text search for
`(` could land inside a comment.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`wrapExpression(editor, node, before, after)` writes text around an
expression and the parentheses written around it. Three callers wrapped by
hand; the Metro config setup and the args-mocks codemod used the node's own
span, which leaves the parentheses outside: `(setup(), config)` became
`withStorybook(setup(), config)`, a call with two arguments. They now wrap the
outer span, which keeps the comma expression one argument.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reading a node's text had three names: `textOf` returned `undefined` for a
node of unknown source, and `codeOf` and `printExpression` wrapped it to
throw. No caller wanted `undefined`, so `textOf` throws and the wrappers are
gone; `placeableTextOf` stays for placing text as a value.

Five functions read an object member's key. `identifierKey`, ConfigFile's
`propKey` and addon-vitest's `keyName` read `{ [foo]: 1 }` as key `foo`, so a
computed key could stand in for the field it shadows. `staticKey` is the one
reader left: it takes any member, reads a computed key only when it is a
literal, and returns `undefined` for spreads. story-shape's `keyOf` and
Angular's `keyNameOf` were the same function and are gone too. The
args-mocks codemod keeps a reader for member-access and import names, which
are not member keys, now called `nameOf`.

`ConfigFile._unwrap`, ConfigObject's `TS_WRAPPERS` and the args-mocks
`withoutTypeCast`/`isTypeCast` copied `unwrapExpression`; `isTSWrapper` now
names the wrapper test for walking up. ConfigObject's ASCII
`isValidIdentifier` accepted keywords as export names; the Unicode one in
ast.ts is the one kept. `Span` is declared once. config-to-csf-factory's
private `prependMembers` duplicated `prependToList`, which keeps the
comments of the first member with it (one snapshot updated on purpose).

`unwrapExpression` was exported twice, once as `unwrapESTreeExpression`; it
is exported once under its own name. story-shape's `sourceOf` meant "text on
one line" while ast.ts's means "slice of the code", so the former is
`oneLineTextOf`. Nothing outside csf-tools imported `printKey`,
`removeMembers`, `appendMembers`, `prependMembers`, `locationOf`,
`analyzeScopes` or `SourceLocation` through the entry point, so they are no
longer exported; callers use the list functions. enrichCsf's
`leadingComments` is private. The csf-tools README no longer says Babel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Parsing normalizes line endings to `\n`, and until now every printer
emitted `\n` too, so editing a CRLF file through automigrate, init,
add, codemods or "save story" silently rewrote every line of it. Babel
kept CRLF, so this was a regression of the port.

SourceEditor.toString() now owns the rule: it restores CRLF when the
first line break of the code it was created with is CRLF, and prints
`\n` otherwise (lone CR files included). This is the same rule as
Prettier's `endOfLine: 'auto'`, so a formatter that runs afterwards
agrees with it. A single file-level decision keeps inserted code
consistent with the rest of the file, instead of mixing endings.
Node offsets, `code` and `edits` keep using `\n`; only the printed
output changes, and lines and columns (so source maps) are unaffected.

Everything that prints through the editor follows: printCsf,
printConfig, formatCsf, the docs plugin, sb.mock rewrites and the
Vitest transform. The Vitest transform joins its generated tail with
`\n`, so it now restores line endings once over the whole output
instead of mixing a CRLF head with an LF tail.

The automigrate pipeline and fix-files still normalize on read: text
handlers chain on each other's output and compare against the source,
which only works on one line-ending form. They now restore the
original line endings on write instead (before the project formatter
runs in the pipeline), so the normalization stays an internal detail.

Tests that asserted LF output for CRLF input now assert CRLF, which is
the intended change. MIGRATION.md drops the note that files are
written with `\n`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The transforms now parse with csf-tools and only read `path` and
`source` from the file jscodeshift hands them, so they no longer need
its `FileInfo` and `API` types. A `TransformFile` type in
`src/lib/utils.ts` describes that file, and the unused `api` and
`options` parameters are gone, so the tests call the transforms with
the file alone.

`jscodeshift` stays a dependency: `runCodemod` still spawns its CLI
and `upgrade-hierarchy-separators.js` still uses its API.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Nothing calls `getBabelDependencies` anymore; its JSDoc still pointed
at the react-native generator, which no longer uses it. Deleting it
also drops the `satisfies` import from semver.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The sandbox task still used `printExpression`, `_editorSource` and
`_commit()`, which no longer exist, so the scripts typecheck failed and
the SvelteKit and module-mocking sandbox steps would throw. It now uses
the shared list and statement helpers instead of hand-built appends,
so the inserted argument, member and mock statements follow the file's
layout, and `staticKey` instead of a local copy.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Only parsed text was normalized to `\n`, so inserted text that carried
CRLF, such as a Prettier-formatted vitest setup file with
`endOfLine: 'crlf'`, came out as `\r\r\n` in a CRLF file and as mixed
endings in an LF file. `restoreLineEndings` now normalizes what it is
given before choosing the ending, so the editor, the automigrate
pipeline and fix-files all write one ending. That makes the CRLF
special case for functions in `printValue` redundant.

The print docstrings no longer claim byte-for-byte output: a file that
mixes line endings is written with its first line's ending.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A `List` read before a commit holds offsets into code that is gone, and
the list functions accepted it, so `appendToList` with a stale list
silently wrote into the wrong place. The list constructors now record
the parse they read, in the same map as the nodes, and the list
functions assert it like they do for nodes.

The error now names every way to hold a node of another parse, not
only a commit: nodes from `parseExpression` or `get()` are read with
`textOf`. MIGRATION.md no longer claims that every edit is checked;
raw offsets passed to `_editor.edits` are not.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
`upgrade-deprecated-types` loaded the file as CSF only to reach its
editor. Since `CsfFile` parses CSF again on every commit, a file without
a default export or with a dynamic title now threw instead of having its
types renamed. The codemod only renames imports and type references, so
it edits a bare `SourceEditor`.

csf-2-to-3 and story-to-csf-factory still commit a `CsfFile` several
times, and each commit validates CSF again. If that ever rejects a file
mid-transform, `onCommit` should mark the indexes stale and derive them
lazily instead.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…endings

Three changes of the ESTree migration were missing from the guide: story
files now read string-literal keys and ignore computed identifier keys,
which changes story ids for `{ 'title': 'X' }`; `getBabelDependencies`
is gone from `storybook/internal/cli`; and a file that mixes line
endings is written with its first line's ending.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-11.0.0-alpha.7 branch from 747bca5 to 1f67f82 Compare October 21, 2026 05:17
JReinhold and others added 4 commits October 21, 2026 09:25
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
WC: Keep properties named like an unrelated attribute
Docs: Update WC documentation for SB 11
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-11.0.0-alpha.7 branch from 1f67f82 to 0362cfc Compare October 21, 2026 08:37
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-11.0.0-alpha.7 branch from 0362cfc to b56e3a1 Compare October 21, 2026 08:50
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-11.0.0-alpha.7 branch from b56e3a1 to a70943e Compare October 21, 2026 09:10
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-11.0.0-alpha.7 branch from a70943e to 4df0137 Compare October 21, 2026 10:05
…-test

Builder Vite: Print the found Vite config path with forward slashes on Windows
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-11.0.0-alpha.7 branch from 4df0137 to 25c9a4b Compare October 21, 2026 11:05
@storybook-bot
storybook-bot force-pushed the version-non-patch-from-11.0.0-alpha.7 branch from 25c9a4b to 26a1af7 Compare October 21, 2026 11:49
@Sidnioulz Sidnioulz added ci:daily Run the CI jobs that normally run in the daily job. freeze Freeze the Release PR with this label labels Oct 21, 2026
@Sidnioulz Sidnioulz self-assigned this Oct 21, 2026
@storybook-app-bot

Copy link
Copy Markdown
Contributor

Package Benchmarks

Commit: 26a1af7, ran on 21 October 2026 at 13:15:01 UTC

The following packages have significant changes to their size or dependencies:

storybook

Before After Difference
Dependency count 68 62 🎉 -6 🎉
Self size 21.98 MB 18.94 MB 🎉 -3.04 MB 🎉
Dependency size 27.06 MB 25.95 MB 🎉 -1.11 MB 🎉
Bundle Size Analyzer Link Link

@storybook/angular-vite

Before After Difference
Dependency count 20 20 0
Self size 23.62 MB 23.63 MB 🚨 +14 KB 🚨
Dependency size 11.57 MB 11.57 MB 🚨 +2 KB 🚨
Bundle Size Analyzer Link Link

@storybook/svelte-vite

Before After Difference
Dependency count 12 12 0
Self size 56 KB 56 KB 🚨 +397 B 🚨
Dependency size 30.73 MB 30.75 MB 🚨 +13 KB 🚨
Bundle Size Analyzer Link Link

@storybook/sveltekit

Before After Difference
Dependency count 13 13 0
Self size 58 KB 59 KB 🚨 +1 KB 🚨
Dependency size 30.79 MB 30.80 MB 🚨 +14 KB 🚨
Bundle Size Analyzer Link Link

@storybook/vue3-vite

Before After Difference
Dependency count 95 95 0
Self size 32 KB 32 KB 🎉 -24 B 🎉
Dependency size 18.78 MB 18.76 MB 🎉 -21 KB 🎉
Bundle Size Analyzer Link Link

@storybook/web-components-vite

Before After Difference
Dependency count 14 14 0
Self size 19 KB 19 KB 0 B
Dependency size 25.52 MB 25.50 MB 🎉 -18 KB 🎉
Bundle Size Analyzer Link Link

@storybook/cli

Before After Difference
Dependency count 174 174 0
Self size 884 KB 891 KB 🚨 +7 KB 🚨
Dependency size 83.25 MB 81.25 MB 🎉 -2.00 MB 🎉
Bundle Size Analyzer Link Link

@storybook/codemod

Before After Difference
Dependency count 167 167 0
Self size 44 KB 42 KB 🎉 -3 KB 🎉
Dependency size 81.73 MB 79.74 MB 🎉 -1.99 MB 🎉
Bundle Size Analyzer Link Link

create-storybook

Before After Difference
Dependency count 69 63 🎉 -6 🎉
Self size 1.07 MB 1.07 MB 🎉 -5 KB 🎉
Dependency size 49.04 MB 44.88 MB 🎉 -4.15 MB 🎉
Bundle Size Analyzer node node

@storybook/svelte

Before After Difference
Dependency count 4 4 0
Self size 253 KB 264 KB 🚨 +11 KB 🚨
Dependency size 4.85 MB 4.85 MB 0 B
Bundle Size Analyzer Link Link

@storybook/vue3

Before After Difference
Dependency count 91 91 0
Self size 232 KB 209 KB 🎉 -23 KB 🎉
Dependency size 18.22 MB 18.22 MB 0 B
Bundle Size Analyzer Link Link

@storybook/web-components

Before After Difference
Dependency count 12 12 0
Self size 213 KB 193 KB 🎉 -20 KB 🎉
Dependency size 25.10 MB 25.10 MB 0 B
Bundle Size Analyzer Link Link

@ghengeveld
ghengeveld merged commit 1da0623 into next-release Oct 23, 2026
245 of 251 checks passed
@ghengeveld
ghengeveld deleted the version-non-patch-from-11.0.0-alpha.7 branch October 23, 2026 08:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:daily Run the CI jobs that normally run in the daily job. freeze Freeze the Release PR with this label release For PRs that trigger new releases. Automated

Projects

None yet

Development

Successfully merging this pull request may close these issues.