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;