Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.8.0] - 2026-07-02
Section titled “[1.8.0] - 2026-07-02”- Configured-component slots: a
slotsentry can now be a{ component, props, slots }object, placing a child component in a parent’s slot with its own props and slot content — and slot entries can be arrays that mix plain HTML strings with (configured) components (#146). This extends the bare component-as-slot support from #128, which rendered the child with default props and no slots. A configured component’spropsare passed through untouched (not HTML-sanitized); itsslotsare sanitized like any other string slot. Component tags written inside a string are still not compiled — pass the imported component reference.
[1.7.1] - 2026-06-27
Section titled “[1.7.1] - 2026-06-27”storybook buildno longer fails withReferenceError: document is not definedduring the static prerender for CSF4 projects that register addons whose UI kit touches the DOM (e.g.@storybook/addon-a11y,@storybook/addon-themes) (#145). CSF4 stories import@storybook/preview, which re-exports the project’s.storybook/preview.tsand pulls those addons — and through themstorybook/internal/components, which readsdocumentat module load under Node. The prerender now stubs@storybook/previewwith a minimal CSF4 factory (it only needs each story’s component and args), sidestepping the project preview and its entire addon graph. This generalizes the earlier per-package docs stubs (#121, #130), which only covered@storybook/addon-docs/@storybook/blocks.
[1.7.0] - 2026-06-26
Section titled “[1.7.0] - 2026-06-26”- Astro components can now be passed as props (
args: { Icon }, rendered by the parent via<Comp />) and as slot content (args.slots.default, the Reactchildrenpattern) — closes #128. Component slot content keeps its own rendered markup; plain-string slots are still sanitized. - Astro 7 support — verified against Astro 7’s Rust compiler (now the default) and Vite 8 (Rolldown). No configuration changes are required to move an Astro 6 setup to Astro 7.
- New
integration/astro7andintegration/astro7-serverexample apps, plus anastro7smoke-test template. CI build, browser-test, smoke-test, and publish workflows now cover Astro 5, 6, and 7.
Changed
Section titled “Changed”- Peer dependency ranges widened to accept Astro 7 (
astro, and the@astrojs/*framework integrations at their Astro 7 majors) and@vitejs/plugin-react@6. get-tsconfigdependency aligned to the exact version Astro pins (5.0.0-beta.4), so Astro 6.4+/7 and the framework resolve a single deduped copy that exposes bothgetTsconfigandreadTsconfig.
- Images served from the project’s
public/directory now render in the static build —/@fs/<root>/public/...URLs are now rewritten to their served root path (e.g./images/logo.png). optimizeDeps.esbuildOptionsis now only set on Vite ≤7, removing the deprecation warning emitted under Vite 8.- Storybook dev server no longer hangs with a blank preview under Astro 7 / Vite 8.
@vitejs/plugin-reactis now an optional peer dependency, fixingERESOLVEon projects without React that use Vite 7.Datestory args are no longer corrupted before rendering — the arg serializer now only recurses into plain objects.Dateargs also survive the static build (renderMode: 'static') prerender path.
[1.6.0] - 2026-06-19
Section titled “[1.6.0] - 2026-06-19”- Default docs story height set in renderer for consistent documentation views
- Font CSS is now injected into the render response so fonts declared in
astro.configload correctly in the browser @storybook/blocksstubbed in SSR prerender to fixdocument is not definederrors*.astrotype shim now auto-applied via triple-slash reference indist/index.d.ts- TypeScript errors across the framework package resolved
- Default docs story height now applied to CSF-factory story previews
- Replaced deprecated
tsconfckdependency withget-tsconfig - Astro component scripts now re-run on story navigation
[1.5.0] - 2026-06-13
Section titled “[1.5.0] - 2026-06-13”Changed
Section titled “Changed”- Default
renderModeis now'static'instead of'server'
AstroComponentFactorytype is now callable to match Astro language server shape- Child component scoped styles are now correctly loaded when rendering parent stories
- Hybrid CSS injection approach resolves ‘No Astro CSS’ error in certain configurations
[1.4.0] - 2026-06-09
Section titled “[1.4.0] - 2026-06-09”- Astro 6 Font Provider API — font providers declared in
astro.configare now resolved and injected during Storybook SSR
- User
astro.configintegrations are now auto-loaded into Vite, so framework-specific plugins (e.g.@astrojs/react) no longer need manual configuration - Tsconfig path aliases (e.g.
@/components/...) now resolve correctly for embedded island hydration - Renderer annotations are now composed into
definePreviewfor CSF4 compatibility
[1.3.0] - 2026-06-06
Section titled “[1.3.0] - 2026-06-06”- Factory story-rule mocks —
defineStoryRulesnow supports factory functions for dynamic mock values
- Date props (e.g.
pubDate) now survive JSON serialization across the render pipeline — previously causeddate.toISOString is not a functionerrors in components like FormattedDate - Restored missing
./nodeexport dropped during dist migration - Removed preset re-export from index entry to prevent bundler conflicts and excluded framework from Vite
optimizeDeps - Hydrated framework component styles now emitted correctly in static prerender builds
defineStoryRulesandStoryRuletypes moved to the./nodeentry so they resolve in Node-only contexts- Scoped
hasDefaultExportcheck to.jsx/.tsxfiles only in the hydratable component scan - Renderer now clears the canvas when switching between framework renderers, preventing stacked DOM from different frameworks
- Suppressed unanalyzable dynamic import warning emitted by Vite during SSR
- Restored built server hydration and interactive behavior for server-mode stories
- Astro container now loaded via Vite SSR for correct slot class identity
- Excluded
fseventsandpreview-apifromoptimizeDepsto prevent bundling errors
Changed
Section titled “Changed”- Unified Astro render pipeline and shared production render runtime across dev, static, and server modes
- Simplified Vite plugin naming conventions
- Integration examples now consume compiled package dist instead of source
[1.2.0] - 2026-05-09
Section titled “[1.2.0] - 2026-05-09”- Controls panel is now automatically disabled for Astro stories in production (static Storybook) builds
- Resolved broken images and escaped slot HTML in static prerender
- Alpine.js component detection no longer incorrectly includes plain
.ts/.jsfiles in the hydratable source scan - Svelte and Vue component chunks now emitted directly instead of through virtual modules, improving static build compatibility
- Prevented
vite-plugin-sveltefrom processing component virtual module stubs - Passthrough image service now correctly injected during Astro 6 build prerender
- React plugin
includefilter in vitest configs now uses a RegExp for compatibility with more project setups setProjectAnnotations,composeStory, andcomposeStoriesare now generic over renderer type for improved TypeScript support- Widened
@vitejs/plugin-vuepeer dep range to^5.2.3 || ^6.0.0and@vitejs/plugin-vue-jsxto^4.1.2 || ^5.0.0— fixes install conflict when using@astrojs/vue@6
[1.1.1] - 2026-05-07
Section titled “[1.1.1] - 2026-05-07”- Stubbed
astro:toolbar:internalvirtual module in Storybook context to prevent build errors with Astro’s internal toolbar module - Renderer now resolved via
import.meta.resolvefor compatibility with pnpm installations
[1.1.0]
Section titled “[1.1.0]”- Nested Astro component rendering support — components can now include other Astro components as children
- Image support via astro:assets Image component — integrated passthrough image service into the renderer
- definePreview and defineMain helpers for improved type safety and DX in preview.js and main.js files
- Pre-release smoke test infrastructure — validates compiled packages work in real Astro 5 and 6 projects before publishing
- Astro integration virtual module stubs (@astrojs/react:opts, astro:preact:opts, etc.)
- TypeScript declarations now properly generated with tsconfig.json in both packages
- Resolved implicit any and Integration[] | undefined type errors in middleware plugin
- Virtual module ambient declarations now globally visible across the framework
- Middleware path correctly resolved from compiled dist chunks
- Global setup correctly compiled and resolved from dist/
- Server entry resolved correctly from package root for tarball installations
- Framework package now includes @storybook/builder-vite in smoke test dependencies
- Removed invalid —no-telemetry flag from storybook build
- Fixed portable timeout wrapper in smoke test orchestration
Changed
Section titled “Changed”- Release Manager skill updated with release branch cutting workflow
- Documentation updated for nested component support and assets handling
[1.0.3] - 2026-03-24
Section titled “[1.0.3] - 2026-03-24”- Fixed Astro 5.17.2+ compatibility by requiring Vite 6.4.1+ — the framework package previously allowed Vite 5.x which caused “Cannot read properties of undefined (reading ‘name’)” error due to missing Vite 6+
this.environmentfeature
[1.0.2] - 2026-03-24
Section titled “[1.0.2] - 2026-03-24”- Vite 5.4.0+ support — framework package now compatible with Astro 5 projects using Vite 5.x
- Astro 5 projects with Vite 5.4.21+ can now install
@storybook-astro/frameworkwithout peer dependency conflicts
[1.0.1] - 2026-03-24
Section titled “[1.0.1] - 2026-03-24”storybook devnow works correctly with fresh npm installs — previously produced aFailed to load astro-prerendered-stories.json. Received 404 Not Founderror or a blank “Astro Component / requires server-side rendering” placeholder- Added
@storybook-astro/rendererto ViteoptimizeDeps.excludein the framework preset, preventing esbuild pre-bundling from strippingimport.meta.hotout of the renderer chunk - Changed
getViteHot()in the renderer to accessimport.meta.hotdirectly rather than via an intermediate variable — Vite’simportAnalysisplugin detects hot usage by static analysis on the literalimport.meta.hotstring; the previous indirect pattern compiled by tsup was invisible to this analysis renderAstroToCanvasnow catches a prerendered stories fetch failure gracefully and falls through to HMR rendering with a clear console warning, instead of crashing with a confusing network error (defensive fallback)
[1.0.0] - 2026-03-24
Section titled “[1.0.0] - 2026-03-24”- Stable 1.0.0 release with production-ready Storybook Astro framework
- Full support for Astro 5 (5.5.3+) and Astro 6
- Multi-framework support: React, Vue, Svelte, Solid, Preact, Alpine.js
- Server-side rendering with middleware pipeline
- Portable stories (composeStories) for vitest integration
- Comprehensive testing utilities and framework integration helpers
Changed
Section titled “Changed”- Framework now production-ready after extensive beta testing and monorepo restructuring
- Improved documentation and Getting Started guide
- Enhanced website with component demos across all frameworks
[0.1.0-beta.13] - 2026-02-18
Section titled “[0.1.0-beta.13] - 2026-02-18”Changed
Section titled “Changed”- Documentation and website updated to reflect support for both Astro 5 (5.5.3+) and Astro 6 Beta
- Framework package description, README, Getting Started guide, and root README now list Astro 5 + 6
[0.1.0-beta.12] - 2026-02-17
Section titled “[0.1.0-beta.12] - 2026-02-17”Changed
Section titled “Changed”- Migrated repository from
lukemcd/storybook-astrotostorybook-astro/storybook-astro - Restructured as a monorepo with Yarn workspaces (
packages/@storybook-astro/*,apps/*) - Marketing website separated into
apps/website/ - Storybook demo/test project moved to
apps/sandbox-astro6/ - Added Astro 5 sandbox (
apps/sandbox-astro5/) for cross-version compatibility testing - Root
package.jsonstripped to monorepo config with shared devDeps only
- Getting Started guide (
docs/GETTING_STARTED.md) with detailed story file and Astro slots documentation - Package README for npm display
findPackageDirhelper incjsInteropPluginfor monorepo-awarenode_modulesresolution
cjsInteropPluginnow walks up fromprocess.cwd()to find hoisted packages in monorepo structure- ESLint config updated for monorepo paths and Svelte parser compatibility
- CI workflow updated with workspace-based builds and
timeoutfor hung Storybook processes - Website build fixes: resolved missing assets, styles, and README path for monorepo layout
[0.1.0-beta.7] - 2026-02-16
Section titled “[0.1.0-beta.7] - 2026-02-16”- Ensure
integrations ?? []guard survives tsup compilation (default parameter was stripped)
[0.1.0-beta.6] - 2026-02-16
Section titled “[0.1.0-beta.6] - 2026-02-16”- Handle undefined
integrationsoption — Storybook now starts without requiring integrations in framework options - Add
@storybook/builder-viteto install instructions
[0.1.0-beta.5] - 2026-02-16
Section titled “[0.1.0-beta.5] - 2026-02-16”- Use
npm publishcompatible version for@storybook-astro/rendererdependency (wasworkspace:*which only Yarn resolves)
[0.1.0-beta.4] - 2026-02-16
Section titled “[0.1.0-beta.4] - 2026-02-16”- Remove wildcard
*hard dependencies (react, vue, svelte, etc.) from framework package that caused install failures — these are peer dependencies only
[0.1.0-beta.3] - 2026-02-16
Section titled “[0.1.0-beta.3] - 2026-02-16”- Astro 6 peer dependency fix was missing from beta.2 publish due to branch sync issue
[0.1.0-beta.2] - 2026-02-16
Section titled “[0.1.0-beta.2] - 2026-02-16”- Astro 6 peer dependency compatibility —
astropeer dep now accepts^5.5.3 || ^6.0.0-beta.0 - All
@astrojs/*integration peer deps updated for Astro 6 beta versions
yarn lintandyarn lint:fixscripts- Versioning and branching strategy documentation (
docs/VERSIONING.md) - Storybook docs panel typography overrides for light background readability
- Mobile hamburger navigation for the website
Changed
Section titled “Changed”- Accordion components updated to dark theme styling across all 7 frameworks
- Website “Components Demo” renamed to “Sample Components”
- Navigation reordered: About, Contribute, Sample Components, Storybook Demo
- About page text contrast improved (
#c9d1d9for paragraphs/lists, styled inline code and code blocks)
[0.1.0-beta.1] - 2025-06-15
Section titled “[0.1.0-beta.1] - 2025-06-15”- Astro 6 component rendering in Storybook via the Container API
- Multi-framework support: React, Vue, Svelte, Solid, Preact, Alpine.js
- Server-side rendering with middleware pipeline
- Portable stories (
composeStories) for vitest integration - Testing utilities (
testStoryRenders,testStoryComposition) - Framework integration helpers with glob-based routing
- Astro website with component demos and documentation
- Header and Footer components with configurable props and Storybook controls
- Contribute page and CONTRIBUTING.md with branching strategy
- Requires Astro 6 (beta) and Storybook 8.6+
- This is the first public beta release under the
@storybook-astroorganization