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
renderindefineMeta, replacingsetTemplate-function #295 (@JReinhold) - Breaking: Rename
childrenprop totemplate, requireasChildfor static stories #228 (@xeho91 @JReinhold) - Require Storybook 8.2.0 and above, support Storybook 9.0.0 prereleases #284 (@ndelangen)
- Fix missing
@storybook/docs-toolsdependency #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
childrennot 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)!:
metano longer destructurable fromdefineMeta()call #244 (@xeho91 @JReinhold) - fix: Support for legacy
sourceprop 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
postenforcement #241 (@xeho91) - Support
@sveltejs/vite-plugin-sveltev5 #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:
parametersattribute from legacy<Story>being removed #224 (@xeho91) - Fix errors at
enhanceRollupErrorin 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
autodocstag 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
mainandnext#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-testto 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
asChildlink in ERRORS.md #292 (@JReinhold)
🧪 Tests
- chore: Upgrade
vitestandvitedependencies &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)