v5.0.0
5.0.0
Svelte CSF 5.0 is here
It brings support for Svelte 5, and major improvements to the Svelte CSF syntax, including
- ✂️ Snippet-based API for stories
- 🔬 Smaller bundle size
- 🛟 Type-safe stories and meta definitions
- 📚 Improved documentation and examples
Please checkout our Migration Guide to upgrade from earlier versions of the Svelte CSF addon. You can use the Legacy API flag to gradually migrate your stories to the new syntax. The biggest breaking change is that it now requires Svelte 5.
💥 Breaking Change
- Breaking: Add support for
render
indefineMeta
, replacingsetTemplate
-function #295 (@JReinhold) - Breaking: Rename
children
prop totemplate
, requireasChild
for static stories #228 (@xeho91 @JReinhold) - Require Storybook 8.2.0 and above, support Storybook 9.0.0 prereleases #284 (@ndelangen)
- Fix missing
@storybook/docs-tools
dependency #190 (@JReinhold) - Experimental support for Svelte 5 #181 (@tsar-boomba @xeho91 @JReinhold @benoitf)
🚀 Enhancement
- Add
'svelte-csf'
tag to all Svelte CSF stories #297 (@JReinhold) - Dependencies: Support canaries and Storybook 9 prereleases #281 (@ndelangen)
- Restore & add support for legacy syntax #186 (@xeho91 @JReinhold)
🐛 Bug Fix
- Fix types #302 (@JReinhold @xeho91)
- Cleanup button example #299 (@JReinhold)
- Fix Story
children
not overridingargs.children
#298 (@JReinhold) - Fix not working with
getAbsolutePath
#296 (@JReinhold) - Fix tags Story-level tags not having an effect in Vitest integration #266 (@xeho91 @JReinhold)
- fix: Temporarily disable save from UI feature #285 (@xeho91)
- Revert "upgrade to sb9 alpha" #283 (@ndelangen)
- upgrade to sb9 alpha #282 (@ndelangen)
- Internal: Add Visual Tests addon #269 (@JReinhold)
- Fix legacy API template hook not running before Svelte in Vitest #264 (@JReinhold)
- Fix badly formatted ESM that was breaking Node 22 and 23 #260 (@JReinhold)
- fix: properly transform invalid identifiers #246 (@paoloricciuti)
- Pre-optimize internal modules #248 (@JReinhold)
- refactor: Stop using @storybook/client-logger #247 (@JReinhold)
- refactor(transform)!:
meta
no longer destructurable fromdefineMeta()
call #244 (@xeho91 @JReinhold) - fix: Support for legacy
source
prop when value isTemplateLiteral
#245 (@xeho91) - Simplify imports #243 (@JReinhold)
- fix: Prevent parser indexer not letting other addon errors to throw #242 (@xeho91)
- chore: Remove Vite plugin
post
enforcement #241 (@xeho91) - Support
@sveltejs/vite-plugin-svelte
v5 #237 (@JReinhold) - Support Vite 6 #236 (@yannbf)
- fix: Resolve existing type issues #219 (@xeho91)
- Upgrade version ranges - drop support for Svelte 5 prereleases #225 (@xeho91)
- fix:
parameters
attribute from legacy<Story>
being removed #224 (@xeho91) - Fix errors at
enhanceRollupError
in Vite #222 (@JReinhold) - refactor: Replace deprecated
context="module"
withmodule
#217 (@xeho91) - fix(pre-transform): Move stories target component import declaration from instance to module tag #218 (@xeho91)
- v5: Fix tags being ignored #206 (@JReinhold)
- fix(parser): Resolve
autodocs
tag issue and extractingrawCode
#201 (@xeho91) - Replace lodash usage with es-toolkit #192 (@JReinhold)
- chore: use dist folder to load the files #185 (@benoitf)
🏠 Internal
- Resolve merge conflicts between
main
andnext
#305 (@xeho91 @JReinhold @ndelangen @storybook-bot @valentinpalkovic @bichikim @rChaoz @yannbf) - chore(deps): Remove unused
svelte-preprocess
#300 (@xeho91) - ci(ESLint): Migrate to flat config & reconfigure #291 (@xeho91 @JReinhold)
- Add formatting check to CI #293 (@JReinhold)
- Add
@storybook/experimental-addon-test
to repo (internal) #263 (@JReinhold) - refactor: Improve AST-related types readability & fix existing issues #209 (@xeho91)
📝 Documentation
- Remove workarounds for Svelte TS snippet bug #303 (@JReinhold)
- Fix
asChild
link in ERRORS.md #292 (@JReinhold)
🧪 Tests
- chore: Upgrade
vitest
andvite
dependencies &jsdom
->happy-dom
#230 (@xeho91 @JReinhold)
Authors: 12
- Bichi Kim (@bichikim)
- Florent BENOIT (@benoitf)
- Isaiah Gamble (@tsar-boomba)
- Jeppe Reinhold (@JReinhold)
- Matei Trandafir (@rChaoz)
- Mateusz Kadlubowski (@xeho91)
- Norbert de Langen (@ndelangen)
- Paolo Ricciuti (@paoloricciuti)
- Steve Lee (@SteveALee)
- Storybook Bot (@storybook-bot)
- Valentin Palkovic (@valentinpalkovic)
- Yann Braga (@yannbf)