Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
284 commits
Select commit Hold shift + click to select a range
66420b9
6.2.9 changelog
shilman Apr 23, 2021
a926db1
Update root, peer deps, version.ts/json to 6.2.9 [ci skip]
shilman Apr 23, 2021
588d133
v6.2.9
shilman Apr 23, 2021
5e9b429
Update git head to 6.2.9, update yarn.lock
shilman Apr 23, 2021
416944c
6.2.9 latest.json version file
shilman Apr 23, 2021
9cc1461
Merge pull request #14705 from storybookjs/doc_svg_addon_icon
shilman Apr 23, 2021
1c1e36e
Merge pull request #14736 from kaelig/patch-1
shilman Apr 27, 2021
342a5ee
Merge pull request #14748 from kaelig/patch-1
shilman Apr 29, 2021
2a6a5ea
Merge pull request #14765 from storybookjs/vue_3_minor_adjustments
shilman Apr 30, 2021
df2733a
Merge pull request #14754 from kaelig/best-practices-a11y-redux
shilman Apr 30, 2021
0506870
Merge pull request #12547 from dancingshell/patch-1
shilman Apr 29, 2021
18404bf
Merge pull request #14784 from gregogun/patch-1
shilman May 3, 2021
c2deb73
Merge pull request #14783 from Dschungelabenteuer/add-mdx-anchors-doc
shilman May 5, 2021
2250ae6
Merge pull request #14806 from kylegach/patch-1
shilman May 5, 2021
1c36fc7
Merge pull request #14794 from storybookjs/docs/npx-sb-init
shilman May 4, 2021
f023144
Merge pull request #14840 from inokawa/patch-1
shilman May 7, 2021
300e4af
Merge pull request #14837 from storybookjs/chore_minor_tweaks_to_addo…
shilman May 7, 2021
b8ecc3b
Merge pull request #14851 from amalik2/nativeDocs
shilman May 8, 2021
d523a9e
Merge pull request #14849 from storybookjs/adjust_community_frameworks
shilman May 8, 2021
097e8dc
Merge pull request #14836 from storybookjs/minor-fixes
jonniebigodes May 6, 2021
ba7eef1
Merge pull request #14834 from storybookjs/docs_add_svelte_snippets
shilman May 8, 2021
ab1a0c3
Merge pull request #14592 from storybookjs/14538-fix-a11y-crypto
shilman Apr 15, 2021
dc54ae1
Merge pull request #14590 from storybookjs/fix-remove-inquirer
shilman Apr 14, 2021
f9bc77e
Merge pull request #14845 from nfdevil/patch-1
shilman May 8, 2021
98c6bd9
Merge pull request #14871 from storybookjs/fix-docs-formatting
jonniebigodes May 9, 2021
d250308
Merge pull request #14887 from 102/patch-1
jonniebigodes May 11, 2021
8391473
Merge pull request #14892 from Jason-Lough-Cap-Rx/patch-1
jonniebigodes May 12, 2021
a249c25
Merge pull request #14893 from storybookjs/fix_update_decorators_snip…
shilman May 13, 2021
c524d34
Merge pull request #14228 from literalpie/patch-4
shilman May 13, 2021
c8159ac
Merge pull request #14937 from storybookjs/docs/update-framework-support
shilman May 14, 2021
76873b3
Merge pull request #14906 from storybookjs/chore_minor_addon_docs_fix
jonniebigodes May 14, 2021
b4983b2
Merge pull request #14903 from fedodd/patch-1
ndelangen May 17, 2021
f526688
Merge pull request #14961 from storybookjs/chore_docs_write_addon_polish
jonniebigodes May 17, 2021
8b9c271
Merge pull request #14963 from storybookjs/chore_docs_minor_fix_whats…
jonniebigodes May 17, 2021
abead3e
Merge pull request #14999 from storybookjs/argtype-options-snippets
shilman May 21, 2021
c5f9869
Merge pull request #14931 from storybookjs/docs-dev-setup
shilman May 25, 2021
9611b0e
Merge pull request #14907 from storybookjs/chore_writing_stories_deco…
shilman May 13, 2021
85458f3
Merge pull request #15047 from storybookjs/sb-link-typo
shilman May 26, 2021
2dc2d72
Merge pull request #15058 from storybookjs/update-contributor-docs
jonniebigodes May 28, 2021
c7f47e1
Merge pull request #15082 from huyenltnguyen/docs/typo
shilman May 29, 2021
3056d40
Merge pull request #15087 from storybookjs/chore_docs_how_to_contribute
shilman May 31, 2021
4993b9e
Merge pull request #15103 from storybookjs/docs/contributing-without-…
shilman May 31, 2021
9fead0d
Merge pull request #15117 from storybookjs/docs/yarn2-link-note
shilman Jun 1, 2021
e865515
Merge pull request #15104 from yairEO/patch-1
shilman Jun 1, 2021
7558021
Merge pull request #12777 from storybookjs/fix_issue_10856
shilman Jun 5, 2021
0981b63
Merge pull request #15104 from yairEO/patch-1
shilman Jun 1, 2021
bb50cab
Merge pull request #15186 from JadoJodo/patch-1
jonniebigodes Jun 9, 2021
aa79f63
Merge pull request #15200 from storybookjs/addon-docs
shilman Jun 11, 2021
689d60e
Merge pull request #15191 from yceballost/patch-1
jonniebigodes Jun 11, 2021
e74c0b7
Merge pull request #15104 from yairEO/patch-1
shilman Jun 1, 2021
9432361
Merge pull request #15240 from storybookjs/fix_readme_links
jonniebigodes Jun 15, 2021
6ed501a
Merge pull request #15212 from storybookjs/chore_update_docs_page
jonniebigodes Jun 15, 2021
3d9be3e
Merge pull request #15291 from storybookjs/fix_get_started_snippets
jonniebigodes Jun 18, 2021
9f711a9
Merge pull request #14233 from pokuwagata/fix-css-loader-option-snippet
jonniebigodes Jun 18, 2021
cd7183b
Add instruction to fix watch infinite loop
hazem3500 Jul 4, 2021
479612c
Fix preact install instructions
Hatlen Nov 3, 2021
509bbbe
Merge pull request #16571 from Hatlen/patch-1
shilman Nov 3, 2021
9eeb6dd
Merge pull request #15476 from hazem3500/patch-1
shilman Jan 15, 2022
c2478e9
Only pause DocumentTimeline animations in preview-web
tryggvigy Jun 28, 2025
ed99635
Refine pauseAnimations behavior and add stories to verify
ghengeveld Jul 1, 2025
a39bb96
Pause infinite animations on their first frame rather than canceling …
ghengeveld Jul 1, 2025
ce01676
Pause and restore animations while running a11y tests. Update stories…
ghengeveld Jul 1, 2025
3295ab8
Merge branch 'next' into pause-document-timeline-animations-only
valentinpalkovic Mar 10, 2026
25d29cd
Merge branch 'next' into pause-document-timeline-animations-only
ghengeveld Mar 10, 2026
ab28bff
Move animationRoots inside pauseAllAnimations to ensure dynamically c…
ghengeveld Mar 10, 2026
42905a3
Use getTiming() instead of parsing computed animation names
ghengeveld Mar 10, 2026
33b16a2
Wrap animation restoration in try-catch to handle removed/invalid ani…
ghengeveld Mar 10, 2026
f38af8e
fix(preview): only pause DocumentTimeline animations, leave scroll/vi…
ghengeveld Mar 11, 2026
bee25b9
Call `animation.pause()` when the saved playState is 'paused', so eac…
ghengeveld Mar 16, 2026
4ecdf0d
Merge branch 'next' into pause-document-timeline-animations-only
valentinpalkovic Mar 19, 2026
b89b62a
Merge branch 'next' into pause-document-timeline-animations-only
ghengeveld Mar 19, 2026
aa7de52
fix(docs): add componentName to getAllStoryFiles return value in Jest…
Jun 3, 2026
446db9e
Merge branch 'next' into next
Sidnioulz Jun 5, 2026
6e4b41b
Merge branch 'next' into next
Sidnioulz Jun 5, 2026
f24472a
Merge branch 'next' into next
Sidnioulz Jun 8, 2026
3a6ce02
Merge branch 'next' into next
Sidnioulz Jun 8, 2026
2bade43
Merge branch 'next' into next
Sidnioulz Jun 19, 2026
c4853ea
feat(url): add resolveIframeUrl function and enhance URL handling for…
yatishgoel Jun 20, 2026
64b2b4b
fix(tests): update test description for clarity in URL handling
yatishgoel Jun 20, 2026
ee06104
fix: align css-loader version and pin namedExport/exportLocalsConvention
yatishgoel Jul 14, 2026
927706f
Vue3: Only reload the preview when docgen changes on hot update
alliasgher Aug 2, 2026
c6c6387
Merge remote-tracking branch 'origin/next' into fix/css-loader-namede…
yatishgoel Aug 21, 2026
26f25b3
Merge remote-tracking branch 'upstream/next' into fix/iframe-url-subp…
yatishgoel Aug 21, 2026
1442f85
Merge branch 'next' into fix/iframe-url-subpath-34733
yatishgoel Aug 22, 2026
1c3db7f
Merge branch 'next' into fix/css-loader-namedexport-version-align
yatishgoel Aug 22, 2026
10a7f70
Merge branch 'next' into fix/iframe-url-subpath-34733
yatishgoel Aug 31, 2026
3f5526b
Merge branch 'next' into fix/css-loader-namedexport-version-align
yatishgoel Aug 31, 2026
c91a886
merge next into branch
huang-julien Sep 8, 2026
01bd6fa
Docs: remove outdated prerelease reference and fix typo
Thodorr Sep 1, 2026
d5cc477
docs: fix dead storyshots migration guide link in README
1t1sCooL Aug 27, 2026
53a7bd7
feat(vue3): resolve named-type properties in docgen-server argTypes
ObviousApp Sep 9, 2026
f124f01
test(harness): vue3 fixtures for named-type properties
ObviousApp Sep 9, 2026
b1a1486
chore(harness): re-record vue3-vite docgen-server baseline
ObviousApp Sep 9, 2026
2bd89a1
Merge remote-tracking branch 'origin/next' into feat/docgen-server-vu…
ObviousApp Sep 9, 2026
39f74b2
test(harness): type-cast cyclic and big fixture args for vue-tsc
ObviousApp Sep 9, 2026
bc979c0
Merge branch 'next' into fix/css-loader-namedexport-version-align
Sidnioulz Sep 10, 2026
4bd5c13
Merge branch 'next' into fix/iframe-url-subpath-34733
Sidnioulz Sep 10, 2026
07b1e91
Revert formatting of unwatched files to keep PR clean
Sidnioulz Sep 10, 2026
3861218
Add safe CSF object mutations
valentinpalkovic Sep 8, 2026
3d4ab31
Test CSF mutation safety gaps
valentinpalkovic Sep 9, 2026
950b382
Support safe CSF4 object mutations
valentinpalkovic Sep 9, 2026
3c8865d
test(csf-tools): cover unsafe meta discovery
valentinpalkovic Sep 9, 2026
799031b
Fix unsafe meta discovery paths
valentinpalkovic Sep 9, 2026
4d51b34
Avoid nominal CsfFile mutation state
valentinpalkovic Sep 9, 2026
1920418
Use CSF mutations in story automigrations
valentinpalkovic Sep 9, 2026
da53c04
fix(csf-tools): harden story mutation discovery
valentinpalkovic Sep 9, 2026
5f8f766
fix(csf-tools): reject unsafe story discovery
valentinpalkovic Sep 9, 2026
f567726
fix(csf-tools): resolve static factory meta config
valentinpalkovic Sep 9, 2026
ea2bdf5
test(csf-tools): cover conservative discovery gaps
valentinpalkovic Sep 9, 2026
81e6db8
fix(csf-tools): reject unproven mutation targets
valentinpalkovic Sep 9, 2026
0f70564
no-mistakes(review): preserve formatting, allow pre-spread fields, re…
valentinpalkovic Sep 9, 2026
ad70947
no-mistakes(review): unify runtime-key position rule, document transf…
valentinpalkovic Sep 9, 2026
a95a938
no-mistakes(document): document csf-tools mutation API in package README
valentinpalkovic Sep 9, 2026
e53595e
no-mistakes: apply CI fixes
valentinpalkovic Sep 9, 2026
3098bda
fix(automigrate): migrate viewport disable in preview config
valentinpalkovic Sep 9, 2026
5900744
fix(automigrate): preserve untouched empty parameters
valentinpalkovic Sep 9, 2026
2738691
test(automigrate): fold review regressions into existing cases
valentinpalkovic Sep 9, 2026
3b5016e
fix(automigrate): report unsafe story mutations
valentinpalkovic Sep 10, 2026
e0d1bc9
fix(automigrate): preflight story mutations before writing
valentinpalkovic Sep 10, 2026
113f0d8
test(automigrate): remove duplicate mutation coverage
valentinpalkovic Sep 10, 2026
70a70e9
fix(csf-tools): address final review and CI feedback
valentinpalkovic Sep 10, 2026
fb57dc1
docs: point PR label guidance to source definitions
valentinpalkovic Sep 10, 2026
02f3bfb
Remove tests
valentinpalkovic Sep 10, 2026
53e1884
feat(csf-tools): enhance ConfigFile and CsfObject with new tests and …
valentinpalkovic Sep 10, 2026
930bf80
feat(csf-tools): implement mutation diagnostics and enhance ConfigFil…
valentinpalkovic Sep 10, 2026
b485405
refactor: update config mutation methods to use new API
valentinpalkovic Sep 10, 2026
fc735a5
refactor: simplify essentials removal logic and remove unused utility…
valentinpalkovic Sep 10, 2026
99543ad
refactor: replace getFieldValue with getValue across multiple files f…
valentinpalkovic Sep 10, 2026
5309356
feat(a11y-parameters): implement migration logic for a11y parameters …
valentinpalkovic Sep 10, 2026
5e6fcce
feat: add group method to CsfObject for nesting properties
valentinpalkovic Sep 10, 2026
8128eaa
empty-commit
valentinpalkovic Sep 10, 2026
720a813
no-mistakes(review): Drop dead disable rename, narrow tag diagnostics…
valentinpalkovic Sep 10, 2026
2bd0591
no-mistakes(ci): Root cause: one leftover call to the deleted `Config…
valentinpalkovic Sep 10, 2026
6659e62
no-mistakes(ci): Root cause: this branch gave `ConfigFile` its first …
valentinpalkovic Sep 10, 2026
19e8861
no-mistakes(ci): Root cause of all 59 sandbox CI failures: this branc…
valentinpalkovic Sep 10, 2026
95d187e
test(csf-tools): cover final mutation safety gaps
valentinpalkovic Sep 9, 2026
06e718c
fix(csf-tools): preserve config roots and shadowed values during migr…
valentinpalkovic Sep 11, 2026
723cb3e
fix(csf-tools): reject configs assigned outside their exports
valentinpalkovic Sep 11, 2026
a688884
Merge branch 'next' into agent/sto-286-final-csf-diagnostics
valentinpalkovic Sep 11, 2026
cc4eda6
refactor(csf-tools): simplify object discovery by removing annotation…
valentinpalkovic Sep 11, 2026
8914dee
Merge branch 'next' into pause-document-timeline-animations-only
ghengeveld Sep 11, 2026
3f222d7
Keep atEnd pause-at-0 and add tests for DocumentTimeline snapping
ghengeveld Sep 11, 2026
90c835b
Merge remote-tracking branch 'origin/next' into feat/docgen-server-vu…
ObviousApp Sep 11, 2026
2853ba3
Merge remote-tracking branch 'origin/next' into agent/sto-286-final-c…
valentinpalkovic Sep 11, 2026
ead7cab
docs: format migration prompt links
valentinpalkovic Sep 11, 2026
1fc6ff5
Fix stale PostCSS lockfile entry after css-loader upgrade
valentinpalkovic Sep 11, 2026
75ea95f
Merge remote-tracking branch 'origin/next' into fix/pr-35485-ci
valentinpalkovic Sep 11, 2026
fb1188b
fix(csf-tools): preserve evaluation order when grouping named exports
valentinpalkovic Sep 11, 2026
676d321
Merge remote-tracking branch 'origin/next' into feat/docgen-server-vu…
ObviousApp Sep 11, 2026
eab1007
fix(vue3): expand member docs and guard alias targets in named-type d…
ObviousApp Sep 11, 2026
a62e83c
chore(harness): re-record vue3-vite baseline for member doc details
ObviousApp Sep 11, 2026
58dae40
Merge remote-tracking branch 'origin/next' into feat/docgen-server-vu…
ObviousApp Sep 11, 2026
47ed45f
chore(harness): format re-recorded vue3-vite baselines with oxfmt
ObviousApp Sep 11, 2026
cbc421d
fix(csf-tools): refresh bindings after object mutations
valentinpalkovic Sep 11, 2026
de6895a
Merge remote-tracking branch 'origin/next' into agent/sto-286-final-c…
valentinpalkovic Sep 11, 2026
f53b0f2
Merge branch 'next' into fix/iframe-url-subpath-34733
Sidnioulz Sep 11, 2026
b3f4864
feat(core): add warnOnYarn1 helper
ObviousApp Sep 11, 2026
672da31
feat(create-storybook): warn on Yarn 1 during init preflight
ObviousApp Sep 11, 2026
ae6bca6
feat(cli): warn on Yarn 1 via shared project-data path
ObviousApp Sep 11, 2026
2e0c359
Skip Playwright browser install in init-empty CI jobs that don't need it
circleci-app[bot] Sep 11, 2026
c7c01d5
Merge remote-tracking branch 'origin/next' into review/always-warn
ObviousApp Sep 11, 2026
2d9411b
refactor(cli): always warn on Yarn 1 and drop suppression option
ObviousApp Sep 11, 2026
6c9dad2
Merge branch 'next' into fix/iframe-url-subpath-34733
yatishgoel Sep 11, 2026
dbaab7a
chore: retrigger CI after CircleCI fleet instability
ObviousApp Sep 11, 2026
37ca79a
Merge branch 'next' into feat/warn-on-yarn1
valentinpalkovic Sep 11, 2026
2af2182
chore: remove obsolete test-storybooks-portable-vitest3 CI job and re…
ObviousApp Sep 11, 2026
630e4d5
Docs: Improve links in migration guide
kylegach Sep 11, 2026
b341c6b
Merge branch 'next' into fix/iframe-url-subpath-34733
Sidnioulz Sep 12, 2026
f904135
Merge pull request #36291 from storybookjs/docs-11-migration-guide-tw…
kylegach Sep 12, 2026
7dbc720
Merge remote-tracking branch 'origin/next' into feat/docgen-server-vu…
ObviousApp Sep 12, 2026
6f60dfd
fix(vue3): judge member origins for mapped aliases and render optiona…
ObviousApp Sep 12, 2026
d0d7ff8
Merge pull request #36252 from storybookjs/feat/docgen-server-vue-typ…
huang-julien Sep 12, 2026
486a69b
Vue: Restructure docgen and story-snippet
huang-julien Sep 12, 2026
ba8caf1
Mark the contributor skills as internal so the skills CLI skips them
kasperpeulen Sep 13, 2026
5ccc1fa
React Native Web: Fix compatibility with typescript>5
NiGhTTraX Sep 13, 2026
b7612c7
React Native Web: Fix plugin semver range
NiGhTTraX Sep 13, 2026
503e735
fix: `copyAllStaticFilesRelativeToMain` windows handling
AriPerkkio Sep 14, 2026
e991237
refactor: move fom framework to renderer
huang-julien Sep 14, 2026
d7a7ad1
Merge pull request #36307 from storybookjs/ari/fix-static-copy-skip-p…
valentinpalkovic Sep 14, 2026
e22f4d3
Merge pull request #36299 from storybookjs/julien/clean_vue_docgen
huang-julien Sep 14, 2026
cb80652
Merge pull request #36289 from storybookjs/chore/remove-portable-vite…
Sidnioulz Sep 14, 2026
3752723
test(cli): observe Yarn 1 warnings via logger spy instead of process …
ObviousApp Sep 14, 2026
335dd59
Merge remote-tracking branch 'origin/next' into feat/warn-on-yarn1
ObviousApp Sep 14, 2026
74dc6e9
test(cli): type module mocks via vi.mock import form
ObviousApp Sep 14, 2026
c05808b
docs: extract architecture guidelines
ObviousApp Sep 14, 2026
c87393e
docs: extract nx and task runner guidelines
ObviousApp Sep 14, 2026
e29a4a4
docs: extract sandbox guidelines
ObviousApp Sep 14, 2026
1dab496
docs: extract testing guidelines
ObviousApp Sep 14, 2026
6f46cc3
docs: rewrite agent maintenance rules
ObviousApp Sep 14, 2026
748e678
Merge pull request #36282 from storybookjs/feat/warn-on-yarn1
obvious-autobuild[bot] Sep 14, 2026
5e85590
Merge remote-tracking branch 'origin/next' into docs/agents-progressi…
ObviousApp Sep 14, 2026
5a25be4
Merge pull request #36248 from storybookjs/agent/sto-286-final-csf-di…
valentinpalkovic Sep 14, 2026
2c2c8c8
Dedupe
valentinpalkovic Sep 14, 2026
7c5ceb5
Merge pull request #36304 from NiGhTTraX/fix/rnw-dep-version
valentinpalkovic Sep 14, 2026
a4037d2
test(e2e-sandbox): remove shadowing preact-vite/default branch from r…
ObviousApp Sep 14, 2026
8d7c656
Merge remote-tracking branch 'origin/next' into docs/agents-progressi…
ObviousApp Sep 14, 2026
3ba29e3
Merge pull request #36309 from storybookjs/fix/preact-docs-react-expe…
obvious-autobuild[bot] Sep 14, 2026
bf83086
Docs: Split agent guidelines out of AGENTS.md for progressive disclosure
obvious-autobuild[bot] Sep 14, 2026
41f5efd
fix(cli): default fresh vitest installs to the ^4 family
ObviousApp Sep 14, 2026
465fd6f
fix(cli): surface npm stderr on package install failure
ObviousApp Sep 14, 2026
2e6ceee
fix(cli): install latest vitest with a peer-aware ^4 fallback
ObviousApp Sep 14, 2026
35f9658
fix(cli): harden vitest peer guard and install error tail
ObviousApp Sep 15, 2026
06dc54c
Merge pull request #36310 from storybookjs/fix/init-vitest-range-stderr
ghengeveld Sep 15, 2026
b484eaf
fix(builder-webpack5): resolve csf import from builder context
ObviousApp Sep 15, 2026
1506589
test(builder-webpack5): template substitution emits no bare specifiers
ObviousApp Sep 15, 2026
9db720a
fix(builder-vite): resolve preview/runtime import from builder context
ObviousApp Sep 15, 2026
bf575bf
fix(builder-vite): resolve optimizeDeps entry from builder context
ObviousApp Sep 15, 2026
81b75a2
test(builder-vite): assert no bare runtime specifier in generated entry
ObviousApp Sep 15, 2026
a3a4a53
fix: accept Node.js prerelease builds in the CLI version gate
ObviousApp Sep 15, 2026
c17f439
Docs: Update SB11 migration notes for CSF tools
valentinpalkovic Sep 15, 2026
e21dbe8
refactor(core): promote declared-subcomponents CSF helper
ObviousApp Sep 15, 2026
4bb5fe6
refactor(react): import from core
ObviousApp Sep 15, 2026
4f66cee
Merge pull request #36320 from storybookjs/fix/node-prerelease-versio…
obvious-autobuild[bot] Sep 15, 2026
4303d98
fix(tanstack-react): support both interpolatePath signatures
BaconMan1168 Sep 15, 2026
3a25d93
test(tanstack-react): cover both interpolatePath signatures
BaconMan1168 Sep 15, 2026
5ef7aae
fix(tanstack-react): fix second interpolatePath call site
BaconMan1168 Sep 15, 2026
c11832d
fix: stabilize csf-tools printing and CLI stderr on Windows
ObviousApp Sep 17, 2026
1f6cd6b
fix: vendor process ancestry lookup to drop patch: descriptors
ObviousApp Sep 17, 2026
703ad78
ci: re-run suite after flaky vue-component-meta hook timeout
ObviousApp Sep 17, 2026
8310c15
Docs: Clarify Node.js prerelease support
valentinpalkovic Sep 17, 2026
bb375de
Merge pull request #36324 from storybookjs/refactor/core-declared-sub…
valentinpalkovic Sep 18, 2026
00bbb3f
Merge pull request #36318 from storybookjs/fix/builder-webpack5-resol…
valentinpalkovic Sep 18, 2026
f79bd43
Merge pull request #36321 from storybookjs/fix/builder-vite-resolved-…
obvious-autobuild[bot] Sep 18, 2026
7e9a6e0
Initialize execution workspace from PR #35485
valentinpalkovic Sep 18, 2026
e71dd2e
Merge next into PR #35485
valentinpalkovic Sep 18, 2026
10868f9
fix(nextjs): remove obsolete css-loader version detection
valentinpalkovic Sep 18, 2026
5fcd2aa
Merge pull request #35485 from yatishgoel/fix/css-loader-namedexport-…
valentinpalkovic Sep 18, 2026
bd8d35e
Merge pull request #36303 from storybookjs/kasper/skills-metadata-int…
valentinpalkovic Sep 18, 2026
3a1e609
Merge pull request #36119 from Thodorr/patch-2
valentinpalkovic Sep 18, 2026
913b164
Apply suggestion from @valentinpalkovic
valentinpalkovic Sep 18, 2026
f1ed0c0
Merge pull request #36062 from 1t1sCooL/fix-storyshots-guide-link
valentinpalkovic Sep 18, 2026
c6f3867
Merge pull request #35036 from AliMahmoudDev/next
valentinpalkovic Sep 18, 2026
e49e202
Merge pull request #35245 from yatishgoel/fix/iframe-url-subpath-34733
valentinpalkovic Sep 18, 2026
f79f2e8
Merge pull request #36346 from storybookjs/ci-fix/tests-unit-windows-…
ghengeveld Sep 18, 2026
1e5ff76
Merge pull request #36322 from storybookjs/agent/sto-352-migration-re…
valentinpalkovic Sep 18, 2026
6643f31
Merge pull request #36354 from storybookjs/docs/sto-359-migration-pre…
valentinpalkovic Sep 18, 2026
0a99e4d
fix(core): stabilize quote inference and webpack5 test on Windows
ObviousApp Sep 20, 2026
0312223
Merge pull request #36360 from storybookjs/fix/windows-unit-test-stab…
ghengeveld Sep 21, 2026
b2009f8
Merge pull request #36284 from storybookjs/chunk/skip-playwright-inst…
ghengeveld Sep 21, 2026
a69a14c
Merge branch 'next' into vue3-hmr-skip-reload-when-docgen-unchanged
huang-julien Sep 21, 2026
124f51f
Merge pull request #35705 from alliasgher/vue3-hmr-skip-reload-when-d…
huang-julien Sep 21, 2026
6ebe67c
Merge branch 'next' into fix/tanstack-router-interpolate-path-compat
ghengeveld Sep 21, 2026
b064f32
Merge branch 'next' into pause-document-timeline-animations-only
ghengeveld Sep 21, 2026
fe41e25
docs: update comment
huang-julien Sep 21, 2026
0365105
Merge pull request #36333 from BaconMan1168/fix/tanstack-router-inter…
huang-julien Sep 21, 2026
5c92ac0
fix(preview-api): wait for finite WAAPI animations in waitForAnimations
ObviousApp Sep 21, 2026
4224437
Merge remote-tracking branch 'origin/next' into pause-document-timeli…
ghengeveld Sep 21, 2026
8c8a5ab
Avoid repeatedly processing paused animations
ghengeveld Sep 21, 2026
d879b8d
Merge pull request #31900 from tryggvigy/pause-document-timeline-anim…
ghengeveld Sep 22, 2026
8d99824
Write changelog for 11.0.0-alpha.1 [skip ci]
storybook-bot Sep 22, 2026
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
108 changes: 108 additions & 0 deletions .agents/guidelines/architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Architecture

This document is canonical for repo structure and architecture: renderer vs builder vs framework, the core package layout, key flows, open services and toolsets, and agent-facing skills. `AGENTS.md` owns the pointer to this file and the kickstart commands.

## Repository Structure

```text
storybook/
├── .github/ # GitHub configs and workflows
├── .nx/ # NX workflow state
├── code/ # Main codebase
│ ├── .storybook/ # Internal Storybook UI config
│ ├── core/ # Core package published as "storybook"
│ ├── addons/ # Core addons
│ ├── builders/ # Builder integrations
│ ├── renderers/ # Renderer integrations
│ ├── frameworks/ # Framework integrations
│ ├── lib/ # Supporting libraries
│ ├── presets/ # Webpack-oriented presets
│ └── sandbox/ # Internal build artifacts
├── scripts/ # Build and development scripts
├── docs/ # Documentation
├── test-storybooks/ # Test repos
└── ../storybook-sandboxes/ # Generated sandboxes outside repo
```

## Renderer vs builder vs framework

| Concept | Role | Example |
| --------- | ------------------------------------- | ------------------------- |
| Renderer | Mounts UI framework to the DOM | `@storybook/react` |
| Builder | Bundles and serves Storybook | `@storybook/builder-vite` |
| Framework | Renderer + builder + framework config | `@storybook/react-vite` |

## Core package

The main package is `code/core/src/`. The most important areas are:

- `core-server/` for dev server, static build, and presets
- `manager/` and `manager-api/` for the Storybook UI
- `preview/` and `preview-api/` for story rendering
- `channels/` for manager <-> preview communication
- `csf-tools/` for AST-based story indexing
- `common/` for shared Node.js utilities
- `test/` and `instrumenter/` for testing support

Public exports include:

- `storybook/actions`
- `storybook/preview-api`
- `storybook/manager-api`
- `storybook/theming`
- `storybook/test`

Internal exports include:

- `storybook/internal/core-server`
- `storybook/internal/csf-tools`
- `storybook/internal/common`
- `storybook/internal/channels`
- `storybook/internal/tools` — Node SDK for `storybook tools` (`createTools`)

## Key flow

- `.storybook/main.ts` is loaded at startup
- `.storybook/preview.ts` is bundled into preview (TSX for React-based frameworks)
- `.storybook/manager.ts` is bundled into manager
- `*.stories.*` files are indexed by AST before runtime
- Story selection loads the module, prepares the story, and renders it

AST indexing keeps the sidebar fast and prevents one broken story file from breaking the whole UI.

For AST mutations, use `CsfFile.objects()` for stories and `ConfigFile` directly for preview or main
configuration. Both expose `get`, `getValue`, `set`, `transform`, `remove`, `rename`, `move`, and `group`, with automatic
empty-parent cleanup. `set` accepts AST expressions and plain values, including nested arrays and objects.
`getValue` reads plain values statically; unresolved expressions produce diagnostics without executing code.
Use the file's `changed` and `mutationDiagnostics` to decide whether to write
the result. Named variable and function exports in config files share one logical root for these operations.
Use `ConfigFile.callArguments()` for object arguments to imported method calls such as
`addons.setConfig(...)`. Use `group(path, names)` when nesting sibling fields must preserve expression
evaluation order. Keep AST discovery, mutation, and safety checks in `csf-tools`; automigrations declare
the fields to change and provide migration-specific error guidance.

## Open services and toolsets

- Open services own internal state, synchronization, queries, commands, and loading. Toolsets expose
capabilities to agents through MCP and the `storybook tools` CLI.
- Definitions live under `code/core/src/shared/open-service/`; addons may own and register their own
toolsets, as addon-vitest does for `test`.
- Register services and toolsets from the same `services` preset hook and behind the same feature
gate. Missing or duplicate registrations fail loudly.
- The tools CLI consumes `storybook/internal/tools` (`createTools`). Default mode is
attach-preferred (`auto`): join a running instance as a delegated leaf, or load locally on gate
failure. `--attach` requires attachment; `--no-attach` forces local. When several running
instances match the project, attach picks the invoking agent's most recently started one and
warns on stderr; `-p, --port` targets a specific instance. Local `createTools` never
`chdir`s: a foreign `cwd` starts a project-local child host.
- Read `code/core/src/shared/open-service/README.md` before changing the contract, adapters,
registration, docs access, or transport rendering. Read `code/core/src/cli/tools/README.md` and
`code/core/src/cli/tools/architecture.md` before changing attachment, the SDK, or the tools CLI.

## Agent-facing skills

- `storybook skills` serves the `stories`, `write-story`, and `setup` documents as Markdown.
- Pure content lives in `code/core/src/cli/skills/content/` and is exported through
`storybook/internal/skills`; addon-mcp consumes the same builders.
- Keep `cli/skills/**` independent of `cli/ai/**`, and keep `cli/skills/content/**` independent of
`core-server`. Lint rules enforce both boundaries.
44 changes: 44 additions & 0 deletions .agents/guidelines/nx-and-yarn-task.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# NX and `yarn task`

This document is canonical for NX and the `yarn task` runner: caching, task dependencies, sandbox and CI-parity flags, and the environment variable reference. `AGENTS.md` owns the pointer to this file and the common commands.

Use NX when you want better caching and dependency tracking. Prefer these faster defaults first, and only add `-c production` or `--no-link` when you specifically need sandbox parity or CI-like behavior.

```bash
# Compile all packages
yarn task compile
yarn nx run-many -t compile

# Check all packages
yarn task check
yarn nx run-many -t check

# Run E2E tests for a template
yarn task e2e-tests-dev --template react-vite/default-ts --start-from auto
yarn nx e2e-tests-dev react-vite/default-ts -c production

# Jump to a later step
yarn task e2e-tests-dev --start-from e2e-tests --template react-vite/default-ts
yarn nx e2e-tests-dev -c production --exclude-task-dependencies
```

Key points:

- `-c production` is required for sandbox-related NX commands and CI-parity runs
- `react-vite/default-ts` is the default sandbox template
- `--no-link` is opt-in, not the default
- NX handles task dependencies via `nx.json`
- NX target commands use Nx project names (from `project.json` / Nx graph), not `package.json` names
- Example: `yarn nx compile core` (project `core` is published as package `storybook`)
- NX Cloud remote-cache auth failures (e.g. HTTP 401 "insufficient access") degrade to the local cache, so they are expected on local runs where `NX_CLOUD_ACCESS_TOKEN` is unset. CI always sets that token, so a 401 there means an invalid or expired token and should be investigated rather than ignored. A read-only token enables cache reads but cannot store artifacts, so the "wasn't able to store" warning is still expected with one

## Environment Variables

| Variable | Purpose |
| ----------------------------- | ----------------------------------------------- |
| `IN_STORYBOOK_SANDBOX` | Set during sandbox creation |
| `STORYBOOK_DISABLE_TELEMETRY` | Disable telemetry |
| `STORYBOOK_TELEMETRY_DEBUG` | Log telemetry events |
| `DEBUG` | Enable debug logging |
| `FIX_ON_COMMIT` | Force autofix for fmt & lint in pre-commit hook |
| `NX_CLOUD_ACCESS_TOKEN` | Authenticate the NX Cloud remote cache |
29 changes: 29 additions & 0 deletions .agents/guidelines/sandboxes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Sandbox Notes

This document is canonical for sandbox generation and use: where sandboxes live, the sandbox command shape, and the common templates. `AGENTS.md` owns the pointer to this file and the sandbox-failure fallback.

Sandboxes are generated outside the repository at `../storybook-sandboxes/` by default.

- `STORYBOOK_SANDBOX_ROOT=./sandbox` forces local output, but is usually not preferred
- `./sandbox` inside the repo mainly exists for NX outputs, not CI sandboxes
- If sandbox generation fails, fall back to `cd code && yarn storybook:ui`

Generate and use a sandbox with the same `sandbox` command shape used elsewhere in this file:

```bash
yarn task sandbox --template react-vite/default-ts --start-from auto
# Same sandbox step via NX
yarn nx sandbox react-vite/default-ts -c production
cd ../storybook-sandboxes/react-vite-default-ts
yarn install
yarn storybook
```

Common templates:

- `react-vite/default-ts`
- `react-webpack/default-ts`
- `angular-cli/default-ts`
- `svelte-vite/default-ts`
- `vue3-vite/default-ts`
- `nextjs/default-ts`
49 changes: 49 additions & 0 deletions .agents/guidelines/testing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Testing Expectations

This document is canonical for detailed testing practice: watch-mode commands, component and unit test guidance, `memfs` filesystem tests, and global stubbing rules. `AGENTS.md` owns the pointer to this file and the core testing expectations.

Watch-mode commands:

```bash
yarn test:watch
yarn storybook:vitest
```

When writing tests for components:

- Add or update `<Component>.stories.tsx` with stories covering each behavior; use `play` functions with `expect`, `userEvent`, `within` from `storybook/test`
- Mock external context (e.g. `ManagerContext.Provider`) inside story decorators or `beforeEach`
- Run `vitest --config code/vitest.config.storybook.ts <story-file>` to verify play assertions

When writing unit tests (utilities, hooks, non-React modules):

- Export functions that need direct tests
- Test real behavior, not just syntax patterns
- Use coverage when useful: `yarn vitest run --coverage <test-file>`
- Mock external dependencies like file system access and loggers
- Use Node's path.resolve to wrap expected FS paths when writing path-related tests, so they work on Windows

## Filesystem tests with `memfs`

For unit tests that touch `node:fs` / `node:fs/promises`, use [`memfs`](https://github.com/streamich/memfs) instead of real temp directories or wholesale `node:fs` mocks:

- Import `vol` from `memfs` and call `vol.reset()` in `beforeEach`
- Seed virtual files with `vol.fromNestedJSON({ '/absolute/path/file.json': '...' })` or memfs `writeFile` after redirecting spies
- Use `vi.mock('node:fs/promises', { spy: true })` and, in `beforeEach`, point `mkdir` / `writeFile` / `readFile` at `memfs.fs.promises` (see `code/core/src/shared/open-service/server.test.ts`)
- Assert disk state with `vol.toJSON()` when helpful

Do **not** use `/tmp` paths or replace `node:fs/promises` with a full async factory mock unless a test file already standardizes on the spy redirect pattern above.

## Globals in tests: never assign `globalThis.*` directly

> [!IMPORTANT]
> Under no circumstances may a test mutate a global by assigning it directly (e.g. `globalThis.FEATURES = {...}`, `globalThis.window = ...`, `global.fetch = ...`). Direct assignment leaks across tests and files — Vitest does not restore it — so it silently changes behavior in unrelated tests and creates order-dependent flakiness.

Use Vitest's global stubbing instead, which is tracked and restorable:

- Set a global with `vi.stubGlobal('FEATURES', { experimentalDocgenServer: true })`.
- Restore in `afterEach(() => vi.unstubAllGlobals())` (or enable `unstubGlobals: true` in the Vitest config so it resets before each test automatically).
- For a value used by every test in a file, stub it in `beforeEach` and unstub in `afterEach`; for a one-off override, call `vi.stubGlobal` inside that single test.
- Never capture-and-restore by hand (`const original = globalThis.X; ... globalThis.X = original`); `vi.stubGlobal` + `vi.unstubAllGlobals()` does this correctly, including deleting keys that did not previously exist.

This applies to all ambient globals, not just `FEATURES` (e.g. `window`, `document`, `navigator`, `fetch`, `IS_REACT_ACT_ENVIRONMENT`).
2 changes: 2 additions & 0 deletions .agents/skills/canary/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
name: canary
description: Finds or publishes a pkg.pr.new canary release for a Storybook branch. Use when the user wants the canary package specifier for a branch or needs to trigger the canary workflow manually.
allowed-tools: Bash
metadata:
internal: true
---

# Find Or Publish Canary Release
Expand Down
2 changes: 2 additions & 0 deletions .agents/skills/docs-review/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
name: docs-review
description: Review, improve, rewrite, author, or plan Storybook documentation in /docs. Use this when asked to review docs, improve a page, rewrite documentation, draft new docs, or advise on docs strategy.
metadata:
internal: true
---

# Documentation Review
Expand Down
2 changes: 2 additions & 0 deletions .agents/skills/fix-linting-types-on-pr/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
name: fix-linting-types-on-pr
description: Checks out a PR (including fork PRs), fixes all linting and TypeScript errors, then pushes the changes back. Use when asked to fix lint, types, or TS errors on a PR.
metadata:
internal: true
---

# Fix Linting and TypeScript Issues on a PR
Expand Down
2 changes: 2 additions & 0 deletions .agents/skills/github-qa-labels/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
name: github-qa-labels
description: Label GitHub issues and PRs found during QA testing. Use when organizing QA findings with proper labels.
allowed-tools: Bash
metadata:
internal: true
---

# GitHub QA Labels
Expand Down
4 changes: 3 additions & 1 deletion .agents/skills/handle-pr-comments/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
name: handle-pr-comments
description: Triage and resolve GitHub PR review comments one by one, interactively. Use when the user asks to handle, address, respond to, or resolve PR review comments, or mentions reviewer feedback on a pull request.
metadata:
internal: true
---

# Handle PR Comments
Expand All @@ -19,4 +21,4 @@ Evaluate review comments on the PR (from the current branch, or a PR number/URL

- Handle real-user comments before addressing AI agents' (Copilot, CodeRabbit).
- Group duplicate comments; when the same/similar issue is mentioned multiple times, handle them all at once.
- Make a separate commit for each change.
- Make a separate commit for each change.
2 changes: 2 additions & 0 deletions .agents/skills/minor-release/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
name: minor-release
description: Write the changelog entry for a new minor or major Storybook release. Use when preparing a CHANGELOG.md entry for a X.Y.0 version.
allowed-tools: Bash, Read, Write, Edit
metadata:
internal: true
---

# Write Minor/Major Release Changelog
Expand Down
2 changes: 2 additions & 0 deletions .agents/skills/open-pr/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
name: open-pr
description: Opens a pull request from the current branch using the PR template. Use when the user asks to open a PR, create a pull request, or invokes /open-pr.
allowed-tools: Bash, Read, AskQuestion
metadata:
internal: true
---

# Open Pull Request
Expand Down
2 changes: 2 additions & 0 deletions .agents/skills/pr/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
name: pr
description: Creates a pull request following Storybook conventions. Use when creating PRs, opening pull requests, or submitting changes for review.
allowed-tools: Bash, Read
metadata:
internal: true
---

# Create Pull Request
Expand Down
2 changes: 2 additions & 0 deletions .agents/skills/principle-encode-lessons-in-structure/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
name: principle-encode-lessons-in-structure
description: "Apply when you catch yourself writing the same instruction a second time, or notice a recurring correction. Encode the rule as a lint, metadata flag, runtime check, or script instead of more text."
metadata:
internal: true
---

# Encode Lessons in Structure
Expand Down
2 changes: 2 additions & 0 deletions .agents/skills/rebuild-restart-storybook/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
name: rebuild-restart-storybook
description: Rebuild and restart the internal Storybook UI after changes to internal Storybook code (core, addons, frameworks, renderers, libs, etc.), then optionally display a UI review. Use after editing any package in the Storybook monorepo's code/ directory, or when the user asks to rebuild and/or restart Storybook.
allowed-tools: Bash, Read
metadata:
internal: true
---

# Rebuild and Restart Storybook
Expand Down
2 changes: 2 additions & 0 deletions .agents/skills/storybook-startup-benchmark/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
name: storybook-startup-benchmark
description: Measure Storybook startup time from spawning `storybook dev` until the first story renders in the browser. Use when the user asks about Storybook boot time, server-ready timing, first story render timing, startup regressions, benchmarking with repeat runs, or comparing Storybook versions or feature flags.
allowed-tools: Bash, Read
metadata:
internal: true
---

# Storybook Startup Benchmark
Expand Down
2 changes: 2 additions & 0 deletions .agents/skills/storybook-upgrade/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
name: storybook-upgrade
description: Upgrade Storybook to a specific version (canary or release). Use this when upgrading Storybook packages in an external app, reproduction, or test project.
allowed-tools: Bash
metadata:
internal: true
---

# Storybook Upgrade
Expand Down
4 changes: 3 additions & 1 deletion .agents/skills/update-pr-description/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
name: update-pr-description
description: Evaluate a PR's title and description against its actual implementation, then iteratively suggest and apply updates. Use when the user asks to check, fix, or update a PR title or description.
metadata:
internal: true
---

# Update PR Description
Expand All @@ -23,4 +25,4 @@ description: Evaluate a PR's title and description against its actual implementa
- Don't rewrite a description that's already accurate.
- Update the state of checkboxes where appropriate.
- Remove section placeholders/reminders when filling out a section.
- Do not remove the canary release section.
- Do not remove the canary release section.
Loading
Loading