Skip to content

v0.18.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 08:35
· 126 commits to main since this release

compare changes

Write stories for SolidJS components, renderer only, and use Poveste with SvelteKit 3.

It is a minor, because the Solid plugin and SvelteKit 3 support are new features. Nothing is deprecated, renamed or removed, no configuration key changed and no version floor moved, so a Vue, Nuxt, Svelte, SvelteKit or Quasar book upgrades with nothing to do.

🚀 Enhancements

  • Write stories for SolidJS components with @poveste/plugin-solid, renderer only for now (#61, #1123, #1125, #1126, #1172).

    • What works: a story is a .story.tsx file. Its variants render JSX. initState gives a variant the state panel, and render receives that state as a Solid store, so an edit in the panel reaches the story without running render again. setupSolid runs before a story mounts, and its addWrapper puts a component around it. The source panel shows the story's source if it sets one, and the story file otherwise.
    • Not here yet: controls built from your components, and generated per-variant source. Solid compiles JSX to DOM operations and keeps no render tree to read either from. A variant without initState says why its panel is empty.
    • Requirements: solid-js@^1.9.0 and vite-plugin-solid@^2.11.0.
    • Add '**/*.story.tsx' to storyMatch in your Poveste config. The defaults look only for .story.vue and .story.svelte, so without it a Solid-only book builds empty. Setting storyMatch replaces those defaults, so in a book that also has Vue or Svelte stories, list their patterns too: storyMatch: ['**/*.story.vue', '**/*.story.tsx']. Otherwise those stories drop out of the book with no message.
    • The Solid guide walks through all of it, including the story:dev and story:build scripts, and Getting started has a Solid Try it live starter that opens a working book in StackBlitz (#1221, #1223).
  • SvelteKit 3 is supported, alongside SvelteKit 2 (#1200, #1207). A project created with npx sv create since SvelteKit 3.0.0 came out on 1 October is on Kit 3, and installing Poveste into it failed with ERESOLVE, because @poveste/plugin-svelte peered on @sveltejs/kit ^2.53.0. The peer is now ^2.53.0 || ^3.0.0, and poveste dev, poveste build and poveste preview work on Kit 3. The plugin now runs svelte-kit sync itself on either major, as SvelteKit's own dev server does, because Kit 3 keeps what it generates under node_modules, where a package install deletes it. A Kit 2 book needs no changes. It now also runs svelte-kit sync when Poveste starts, as SvelteKit's own dev server does. Your Kit config stays where it is: svelte.config.js on Kit 2, inside sveltekit({ ... }) on Kit 3. One exception: Poveste reads a custom files.assets only from svelte.config.js, so a Kit 3 book's static files come from static/.

🩹 Fixes

  • @poveste/app ships Poveste's licence (#936, #1147). It packed its bundled font's licence and, because of that, not Poveste's own MIT licence, the only published package without it. It now carries both, and the release gate checks that every package's tarball carries Poveste's licence.

📖 Documentation

  • /llms.txt and /llms-full.txt on poveste.dev (#1127, #1144). They give an AI agent a map of the docs, generated from the site's own navigation and each page's description, so they cannot drift from it. They went live on poveste.dev just after 0.17.2. From this release they list Solid as renderer only.

  • Solid is named, as renderer only, wherever Poveste lists its frameworks (#1133, #1145): the README, the supported-versions table and the npm descriptions.

↩️ Pulled before release

Two fixes landed during this cycle and were reverted before the release. The generated commit list below still names both under Bug Fixes, because it doesn't list reverts: neither is in 0.18.0, which behaves as 0.17.2 does for both. Both are planned for 0.19.

  • Native widgets in a dark preview are still painted light (#991). The fix (#1148, reverted by #1173) made a preview paint opaque whenever its colour scheme differed from Poveste's interface, and it overrode a book's own color-scheme (#1167).
  • In poveste dev, the "generate story" component picker still lists nothing (#1064). The fix (#1146, reverted by #1179) made the picker reach two paths that stop the dev server (#1170, #1176).

   🚀 Features

   🐞 Bug Fixes

  • app:
  • repo:
    • Ship poveste's licence in @poveste/app, and hold every tarball to it  -  by @50rayn in #1147 (52009)
    • Refuse a changelog section written into the inherited half  -  by @50rayn in #1131 (7abb4)
    • Refuse a breaking release whose notes do not say it breaks  -  by @50rayn in #1132 (8aa4f)
  • svelte:
    View changes on GitHub