diff --git a/.storybook/StoryStage.svelte b/.storybook/StoryStage.svelte new file mode 100644 index 0000000..1e8b94e --- /dev/null +++ b/.storybook/StoryStage.svelte @@ -0,0 +1,16 @@ + + +
+
+
+ {@render children()} +
+
+
diff --git a/.storybook/preview.ts b/.storybook/preview.ts index 89f39af..c4c3ddd 100644 --- a/.storybook/preview.ts +++ b/.storybook/preview.ts @@ -1,9 +1,10 @@ import type { Preview } from '@storybook/svelte-vite'; - +import StoryStage from './StoryStage.svelte'; import '../src/app/styles/app.css'; const preview: Preview = { parameters: { + layout: 'fullscreen', controls: { matchers: { color: /(background|color)$/i, @@ -18,6 +19,21 @@ const preview: Preview = { test: 'todo', }, }, + decorators: [ + (storyFn, { parameters }) => { + const { Component, props } = storyFn(); + return { + Component: StoryStage, + // We pass the actual story component into the Stage via a snippet/slot + // Svelte 5 Storybook handles this mapping internally when you return this structure + props: { + children: Component, + width: parameters.stageWidth || 'max-w-3xl', + ...props, + }, + }; + }, + ], }; export default preview;