@storybook/svelte 8.1.0-alpha.2 → 8.1.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,12 @@
1
+ import { __export } from './chunk-JSBTCGGE.mjs';
2
+ import { RESET_STORY_ARGS } from '@storybook/core-events';
3
+ import PreviewRender from '@storybook/svelte/internal/PreviewRender.svelte';
4
+ import { createSvelte5Props } from '@storybook/svelte/internal/createSvelte5Props';
5
+ import { addons, sanitizeStoryContextUpdate } from '@storybook/preview-api';
6
+ import * as svelte from 'svelte';
7
+ import { VERSION } from 'svelte/compiler';
8
+ import SlotDecorator from '@storybook/svelte/internal/SlotDecorator.svelte';
9
+
10
+ var entry_preview_exports={};__export(entry_preview_exports,{applyDecorators:()=>decorateStory,parameters:()=>parameters,render:()=>render,renderToCanvas:()=>renderToCanvas});var IS_SVELTE_V4=Number(VERSION[0])<=4;function renderToCanvas(renderContext,canvasElement){return IS_SVELTE_V4?renderToCanvasV4(renderContext,canvasElement):renderToCanvasV5(renderContext,canvasElement)}var storyIdsToRemountFromResetArgsEvent=new Set;addons.getChannel().on(RESET_STORY_ARGS,({storyId})=>{storyIdsToRemountFromResetArgsEvent.add(storyId);});var componentsByDomElementV4=new Map;function renderToCanvasV4({storyFn,title,name,showMain,showError,storyContext,forceRemount},canvasElement){function unmount2(canvasElementToUnmount){componentsByDomElementV4.has(canvasElementToUnmount)&&(componentsByDomElementV4.get(canvasElementToUnmount).$destroy(),componentsByDomElementV4.delete(canvasElementToUnmount),canvasElementToUnmount.innerHTML="");}let existingComponent=componentsByDomElementV4.get(canvasElement),remount=forceRemount;if(storyIdsToRemountFromResetArgsEvent.has(storyContext.id)&&(remount=!0,storyIdsToRemountFromResetArgsEvent.delete(storyContext.id)),remount&&unmount2(canvasElement),!existingComponent||remount){let mountedComponent=new PreviewRender({target:canvasElement,props:{storyFn,storyContext,name,title,showError}});componentsByDomElementV4.set(canvasElement,mountedComponent);}else existingComponent.$set({storyFn,storyContext,name,title,showError});return showMain(),()=>{unmount2(canvasElement);}}var componentsByDomElementV5=new Map;function renderToCanvasV5({storyFn,title,name,showMain,showError,storyContext,forceRemount},canvasElement){function unmount2(canvasElementToUnmount){let{mountedComponent}=componentsByDomElementV5.get(canvasElementToUnmount)??{};mountedComponent&&(svelte.unmount(mountedComponent),componentsByDomElementV5.delete(canvasElementToUnmount));}let existingComponent=componentsByDomElementV5.get(canvasElement),remount=forceRemount;if(storyIdsToRemountFromResetArgsEvent.has(storyContext.id)&&(remount=!0,storyIdsToRemountFromResetArgsEvent.delete(storyContext.id)),remount&&unmount2(canvasElement),!existingComponent||remount){let props=createSvelte5Props({storyFn,storyContext,name,title,showError}),mountedComponent=svelte.mount(PreviewRender,{target:canvasElement,props});componentsByDomElementV5.set(canvasElement,{mountedComponent,props});}else Object.assign(existingComponent.props,{storyFn,storyContext,name,title,showError});return showMain(),()=>{unmount2(canvasElement);}}var render=(args,context)=>{let{id,component:Component}=context;if(!Component)throw new Error(`Unable to render story ${id} as the component annotation is missing from the default export`);return {Component,props:args}};function unWrap(obj){return obj&&typeof obj=="object"&&"default"in obj?obj.default:obj}function prepareStory(context,rawStory,rawInnerStory){let story=unWrap(rawStory),innerStory=rawInnerStory&&unWrap(rawInnerStory),preparedStory;return !story||Object.keys(story).length===0?preparedStory={Component:context.component}:story.Component?preparedStory=story:preparedStory={Component:story},innerStory?{Component:SlotDecorator,props:{...innerStory,decorator:preparedStory}}:preparedStory}function decorateStory(storyFn,decorators){return decorators.reduce((decorated,decorator)=>context=>{let story,decoratedStory=decorator(update=>(story=decorated({...context,...sanitizeStoryContextUpdate(update)}),story),context);return story||(story=decorated(context)),decoratedStory===story?story:prepareStory(context,decoratedStory,story)},context=>prepareStory(context,storyFn(context)))}var parameters={renderer:"svelte"};
11
+
12
+ export { IS_SVELTE_V4, decorateStory, entry_preview_exports, parameters, render, renderToCanvas };
@@ -0,0 +1,3 @@
1
+ var __defProp=Object.defineProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0});};
2
+
3
+ export { __export };
@@ -0,0 +1,7 @@
1
+ <script>
2
+ export let storyId;
3
+ </script>
4
+
5
+ <div data-story="true" id={storyId}>
6
+ <slot />
7
+ </div>
@@ -1,3 +1,4 @@
1
+ import './chunk-JSBTCGGE.mjs';
1
2
  import { enhanceArgTypes, SNIPPET_RENDERED, SourceType } from '@storybook/docs-tools';
2
3
  import { logger, deprecate } from '@storybook/client-logger';
3
4
  import { addons, useEffect } from '@storybook/preview-api';
@@ -1 +1 @@
1
- "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var entry_preview_exports={};__export(entry_preview_exports,{applyDecorators:()=>decorateStory,parameters:()=>parameters,render:()=>render,renderToCanvas:()=>renderToCanvas});module.exports=__toCommonJS(entry_preview_exports);var import_core_events=require("@storybook/core-events"),import_PreviewRender=__toESM(require("@storybook/svelte/internal/PreviewRender.svelte")),import_createSvelte5Props=require("@storybook/svelte/internal/createSvelte5Props"),import_preview_api=require("@storybook/preview-api"),svelte=__toESM(require("svelte")),import_compiler=require("svelte/compiler"),IS_SVELTE_V4=Number(import_compiler.VERSION[0])<=4;function renderToCanvas(renderContext,canvasElement){return IS_SVELTE_V4?renderToCanvasV4(renderContext,canvasElement):renderToCanvasV5(renderContext,canvasElement)}var storyIdsToRemountFromResetArgsEvent=new Set;import_preview_api.addons.getChannel().on(import_core_events.RESET_STORY_ARGS,({storyId})=>{storyIdsToRemountFromResetArgsEvent.add(storyId)});var componentsByDomElementV4=new Map;function renderToCanvasV4({storyFn,title,name,showMain,showError,storyContext,forceRemount},canvasElement){function unmount2(canvasElementToUnmount){componentsByDomElementV4.has(canvasElementToUnmount)&&(componentsByDomElementV4.get(canvasElementToUnmount).$destroy(),componentsByDomElementV4.delete(canvasElementToUnmount),canvasElementToUnmount.innerHTML="")}let existingComponent=componentsByDomElementV4.get(canvasElement),remount=forceRemount;if(storyIdsToRemountFromResetArgsEvent.has(storyContext.id)&&(remount=!0,storyIdsToRemountFromResetArgsEvent.delete(storyContext.id)),remount&&unmount2(canvasElement),!existingComponent||remount){let mountedComponent=new import_PreviewRender.default({target:canvasElement,props:{storyFn,storyContext,name,title,showError}});componentsByDomElementV4.set(canvasElement,mountedComponent)}else existingComponent.$set({storyFn,storyContext,name,title,showError});return showMain(),()=>{unmount2(canvasElement)}}var componentsByDomElementV5=new Map;function renderToCanvasV5({storyFn,title,name,showMain,showError,storyContext,forceRemount},canvasElement){function unmount2(canvasElementToUnmount){let{mountedComponent}=componentsByDomElementV5.get(canvasElementToUnmount)??{};mountedComponent&&(svelte.unmount(mountedComponent),componentsByDomElementV5.delete(canvasElementToUnmount))}let existingComponent=componentsByDomElementV5.get(canvasElement),remount=forceRemount;if(storyIdsToRemountFromResetArgsEvent.has(storyContext.id)&&(remount=!0,storyIdsToRemountFromResetArgsEvent.delete(storyContext.id)),remount&&unmount2(canvasElement),!existingComponent||remount){let props=(0,import_createSvelte5Props.createSvelte5Props)({storyFn,storyContext,name,title,showError}),mountedComponent=svelte.mount(import_PreviewRender.default,{target:canvasElement,props});componentsByDomElementV5.set(canvasElement,{mountedComponent,props})}else Object.assign(existingComponent.props,{storyFn,storyContext,name,title,showError});return showMain(),()=>{unmount2(canvasElement)}}var render=(args,context)=>{let{id,component:Component}=context;if(!Component)throw new Error(`Unable to render story ${id} as the component annotation is missing from the default export`);return{Component,props:args}};var import_preview_api2=require("@storybook/preview-api"),import_SlotDecorator=__toESM(require("@storybook/svelte/internal/SlotDecorator.svelte"));function unWrap(obj){return obj&&typeof obj=="object"&&"default"in obj?obj.default:obj}function prepareStory(context,rawStory,rawInnerStory){let story=unWrap(rawStory),innerStory=rawInnerStory&&unWrap(rawInnerStory),preparedStory;return!story||Object.keys(story).length===0?preparedStory={Component:context.component}:story.Component?preparedStory=story:preparedStory={Component:story},innerStory?{Component:import_SlotDecorator.default,props:{...innerStory,decorator:preparedStory}}:preparedStory}function decorateStory(storyFn,decorators){return decorators.reduce((decorated,decorator)=>context=>{let story,decoratedStory=decorator(update=>(story=decorated({...context,...(0,import_preview_api2.sanitizeStoryContextUpdate)(update)}),story),context);return story||(story=decorated(context)),decoratedStory===story?story:prepareStory(context,decoratedStory,story)},context=>prepareStory(context,storyFn(context)))}var parameters={renderer:"svelte"};0&&(module.exports={applyDecorators,parameters,render,renderToCanvas});
1
+ "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var entry_preview_exports={};__export(entry_preview_exports,{applyDecorators:()=>decorateStory,parameters:()=>parameters,render:()=>render,renderToCanvas:()=>renderToCanvas});module.exports=__toCommonJS(entry_preview_exports);var import_core_events=require("@storybook/core-events"),import_PreviewRender=__toESM(require("@storybook/svelte/internal/PreviewRender.svelte")),import_createSvelte5Props=require("@storybook/svelte/internal/createSvelte5Props"),import_preview_api=require("@storybook/preview-api"),svelte=__toESM(require("svelte"));var import_compiler=require("svelte/compiler"),IS_SVELTE_V4=Number(import_compiler.VERSION[0])<=4;function renderToCanvas(renderContext,canvasElement){return IS_SVELTE_V4?renderToCanvasV4(renderContext,canvasElement):renderToCanvasV5(renderContext,canvasElement)}var storyIdsToRemountFromResetArgsEvent=new Set;import_preview_api.addons.getChannel().on(import_core_events.RESET_STORY_ARGS,({storyId})=>{storyIdsToRemountFromResetArgsEvent.add(storyId)});var componentsByDomElementV4=new Map;function renderToCanvasV4({storyFn,title,name,showMain,showError,storyContext,forceRemount},canvasElement){function unmount2(canvasElementToUnmount){componentsByDomElementV4.has(canvasElementToUnmount)&&(componentsByDomElementV4.get(canvasElementToUnmount).$destroy(),componentsByDomElementV4.delete(canvasElementToUnmount),canvasElementToUnmount.innerHTML="")}let existingComponent=componentsByDomElementV4.get(canvasElement),remount=forceRemount;if(storyIdsToRemountFromResetArgsEvent.has(storyContext.id)&&(remount=!0,storyIdsToRemountFromResetArgsEvent.delete(storyContext.id)),remount&&unmount2(canvasElement),!existingComponent||remount){let mountedComponent=new import_PreviewRender.default({target:canvasElement,props:{storyFn,storyContext,name,title,showError}});componentsByDomElementV4.set(canvasElement,mountedComponent)}else existingComponent.$set({storyFn,storyContext,name,title,showError});return showMain(),()=>{unmount2(canvasElement)}}var componentsByDomElementV5=new Map;function renderToCanvasV5({storyFn,title,name,showMain,showError,storyContext,forceRemount},canvasElement){function unmount2(canvasElementToUnmount){let{mountedComponent}=componentsByDomElementV5.get(canvasElementToUnmount)??{};mountedComponent&&(svelte.unmount(mountedComponent),componentsByDomElementV5.delete(canvasElementToUnmount))}let existingComponent=componentsByDomElementV5.get(canvasElement),remount=forceRemount;if(storyIdsToRemountFromResetArgsEvent.has(storyContext.id)&&(remount=!0,storyIdsToRemountFromResetArgsEvent.delete(storyContext.id)),remount&&unmount2(canvasElement),!existingComponent||remount){let props=(0,import_createSvelte5Props.createSvelte5Props)({storyFn,storyContext,name,title,showError}),mountedComponent=svelte.mount(import_PreviewRender.default,{target:canvasElement,props});componentsByDomElementV5.set(canvasElement,{mountedComponent,props})}else Object.assign(existingComponent.props,{storyFn,storyContext,name,title,showError});return showMain(),()=>{unmount2(canvasElement)}}var render=(args,context)=>{let{id,component:Component}=context;if(!Component)throw new Error(`Unable to render story ${id} as the component annotation is missing from the default export`);return{Component,props:args}};var import_preview_api2=require("@storybook/preview-api"),import_SlotDecorator=__toESM(require("@storybook/svelte/internal/SlotDecorator.svelte"));function unWrap(obj){return obj&&typeof obj=="object"&&"default"in obj?obj.default:obj}function prepareStory(context,rawStory,rawInnerStory){let story=unWrap(rawStory),innerStory=rawInnerStory&&unWrap(rawInnerStory),preparedStory;return!story||Object.keys(story).length===0?preparedStory={Component:context.component}:story.Component?preparedStory=story:preparedStory={Component:story},innerStory?{Component:import_SlotDecorator.default,props:{...innerStory,decorator:preparedStory}}:preparedStory}function decorateStory(storyFn,decorators){return decorators.reduce((decorated,decorator)=>context=>{let story,decoratedStory=decorator(update=>(story=decorated({...context,...(0,import_preview_api2.sanitizeStoryContextUpdate)(update)}),story),context);return story||(story=decorated(context)),decoratedStory===story?story:prepareStory(context,decoratedStory,story)},context=>prepareStory(context,storyFn(context)))}var parameters={renderer:"svelte"};0&&(module.exports={applyDecorators,parameters,render,renderToCanvas});
@@ -1,11 +1,2 @@
1
- import { RESET_STORY_ARGS } from '@storybook/core-events';
2
- import PreviewRender from '@storybook/svelte/internal/PreviewRender.svelte';
3
- import { createSvelte5Props } from '@storybook/svelte/internal/createSvelte5Props';
4
- import { addons, sanitizeStoryContextUpdate } from '@storybook/preview-api';
5
- import * as svelte from 'svelte';
6
- import { VERSION } from 'svelte/compiler';
7
- import SlotDecorator from '@storybook/svelte/internal/SlotDecorator.svelte';
8
-
9
- var IS_SVELTE_V4=Number(VERSION[0])<=4;function renderToCanvas(renderContext,canvasElement){return IS_SVELTE_V4?renderToCanvasV4(renderContext,canvasElement):renderToCanvasV5(renderContext,canvasElement)}var storyIdsToRemountFromResetArgsEvent=new Set;addons.getChannel().on(RESET_STORY_ARGS,({storyId})=>{storyIdsToRemountFromResetArgsEvent.add(storyId);});var componentsByDomElementV4=new Map;function renderToCanvasV4({storyFn,title,name,showMain,showError,storyContext,forceRemount},canvasElement){function unmount2(canvasElementToUnmount){componentsByDomElementV4.has(canvasElementToUnmount)&&(componentsByDomElementV4.get(canvasElementToUnmount).$destroy(),componentsByDomElementV4.delete(canvasElementToUnmount),canvasElementToUnmount.innerHTML="");}let existingComponent=componentsByDomElementV4.get(canvasElement),remount=forceRemount;if(storyIdsToRemountFromResetArgsEvent.has(storyContext.id)&&(remount=!0,storyIdsToRemountFromResetArgsEvent.delete(storyContext.id)),remount&&unmount2(canvasElement),!existingComponent||remount){let mountedComponent=new PreviewRender({target:canvasElement,props:{storyFn,storyContext,name,title,showError}});componentsByDomElementV4.set(canvasElement,mountedComponent);}else existingComponent.$set({storyFn,storyContext,name,title,showError});return showMain(),()=>{unmount2(canvasElement);}}var componentsByDomElementV5=new Map;function renderToCanvasV5({storyFn,title,name,showMain,showError,storyContext,forceRemount},canvasElement){function unmount2(canvasElementToUnmount){let{mountedComponent}=componentsByDomElementV5.get(canvasElementToUnmount)??{};mountedComponent&&(svelte.unmount(mountedComponent),componentsByDomElementV5.delete(canvasElementToUnmount));}let existingComponent=componentsByDomElementV5.get(canvasElement),remount=forceRemount;if(storyIdsToRemountFromResetArgsEvent.has(storyContext.id)&&(remount=!0,storyIdsToRemountFromResetArgsEvent.delete(storyContext.id)),remount&&unmount2(canvasElement),!existingComponent||remount){let props=createSvelte5Props({storyFn,storyContext,name,title,showError}),mountedComponent=svelte.mount(PreviewRender,{target:canvasElement,props});componentsByDomElementV5.set(canvasElement,{mountedComponent,props});}else Object.assign(existingComponent.props,{storyFn,storyContext,name,title,showError});return showMain(),()=>{unmount2(canvasElement);}}var render=(args,context)=>{let{id,component:Component}=context;if(!Component)throw new Error(`Unable to render story ${id} as the component annotation is missing from the default export`);return {Component,props:args}};function unWrap(obj){return obj&&typeof obj=="object"&&"default"in obj?obj.default:obj}function prepareStory(context,rawStory,rawInnerStory){let story=unWrap(rawStory),innerStory=rawInnerStory&&unWrap(rawInnerStory),preparedStory;return !story||Object.keys(story).length===0?preparedStory={Component:context.component}:story.Component?preparedStory=story:preparedStory={Component:story},innerStory?{Component:SlotDecorator,props:{...innerStory,decorator:preparedStory}}:preparedStory}function decorateStory(storyFn,decorators){return decorators.reduce((decorated,decorator)=>context=>{let story,decoratedStory=decorator(update=>(story=decorated({...context,...sanitizeStoryContextUpdate(update)}),story),context);return story||(story=decorated(context)),decoratedStory===story?story:prepareStory(context,decoratedStory,story)},context=>prepareStory(context,storyFn(context)))}var parameters={renderer:"svelte"};
10
-
11
- export { decorateStory as applyDecorators, parameters, render, renderToCanvas };
1
+ export { decorateStory as applyDecorators, parameters, render, renderToCanvas } from './chunk-FGPXQODA.mjs';
2
+ import './chunk-JSBTCGGE.mjs';
package/dist/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
- import { Args, ComponentAnnotations, AnnotatedStoryFn, ArgsStoryFn, ArgsFromMeta, StoryAnnotations, StrictArgs, DecoratorFunction, LoaderFunction, StoryContext as StoryContext$1, ProjectAnnotations } from '@storybook/types';
1
+ import { Args, ComponentAnnotations, AnnotatedStoryFn, ArgsStoryFn, ArgsFromMeta, StoryAnnotations, StrictArgs, DecoratorFunction, LoaderFunction, StoryContext as StoryContext$1, ProjectAnnotations, StoryAnnotationsOrFn, Store_CSFExports, StoriesWithPartialProps, ComposedStoryFn } from '@storybook/types';
2
2
  export { ArgTypes, Args, Parameters, StrictArgs } from '@storybook/types';
3
3
  import { SvelteComponent, ComponentType, ComponentProps } from 'svelte';
4
4
  import { Simplify, SetOptional } from 'type-fest';
5
5
  import { S as SvelteRenderer } from './types-6c8661f3.js';
6
+ import PreviewRender from '@storybook/svelte/internal/PreviewRender.svelte';
6
7
 
7
8
  /**
8
9
  * Metadata to configure the stories for a component.
@@ -32,4 +33,83 @@ type Loader<TArgs = StrictArgs> = LoaderFunction<SvelteRenderer, TArgs>;
32
33
  type StoryContext<TArgs = StrictArgs> = StoryContext$1<SvelteRenderer, TArgs>;
33
34
  type Preview = ProjectAnnotations<SvelteRenderer>;
34
35
 
35
- export { Decorator, Loader, Meta, Preview, StoryContext, StoryFn, StoryObj, SvelteRenderer };
36
+ type ComposedStory<TArgs extends Args = any> = ComposedStoryFn<SvelteRenderer, TArgs> & {
37
+ Component: typeof PreviewRender;
38
+ props: any;
39
+ };
40
+ type MapToComposed<TModule> = {
41
+ [K in keyof TModule]: TModule[K] extends StoryAnnotationsOrFn<SvelteRenderer, infer TArgs extends Args> ? ComposedStory<TArgs> : never;
42
+ };
43
+ /** Function that sets the globalConfig of your storybook. The global config is the preview module of your .storybook folder.
44
+ *
45
+ * It should be run a single time, so that your global config (e.g. decorators) is applied to your stories when using `composeStories` or `composeStory`.
46
+ *
47
+ * Example:
48
+ *```jsx
49
+ * // setup.js (for jest)
50
+ * import { setProjectAnnotations } from '@storybook/svelte';
51
+ * import projectAnnotations from './.storybook/preview';
52
+ *
53
+ * setProjectAnnotations(projectAnnotations);
54
+ *```
55
+ *
56
+ * @param projectAnnotations - e.g. (import projectAnnotations from '../.storybook/preview')
57
+ */
58
+ declare function setProjectAnnotations(projectAnnotations: ProjectAnnotations<SvelteRenderer> | ProjectAnnotations<SvelteRenderer>[]): void;
59
+ declare const INTERNAL_DEFAULT_PROJECT_ANNOTATIONS: ProjectAnnotations<SvelteRenderer>;
60
+ /**
61
+ * Function that will receive a story along with meta (e.g. a default export from a .stories file)
62
+ * and optionally projectAnnotations e.g. (import * from '../.storybook/preview)
63
+ * and will return a composed component that has all args/parameters/decorators/etc combined and applied to it.
64
+ *
65
+ *
66
+ * It's very useful for reusing a story in scenarios outside of Storybook like unit testing.
67
+ *
68
+ * Example:
69
+ *```jsx
70
+ * import { render } from '@testing-library/svelte';
71
+ * import { composeStory } from '@storybook/svelte';
72
+ * import Meta, { Primary as PrimaryStory } from './Button.stories';
73
+ *
74
+ * const Primary = composeStory(PrimaryStory, Meta);
75
+ *
76
+ * test('renders primary button with Hello World', () => {
77
+ * const { getByText } = render(Primary, { label: 'Hello world' });
78
+ * expect(getByText(/Hello world/i)).not.toBeNull();
79
+ * });
80
+ *```
81
+ *
82
+ * @param story
83
+ * @param componentAnnotations - e.g. (import Meta from './Button.stories')
84
+ * @param [projectAnnotations] - e.g. (import * as projectAnnotations from '../.storybook/preview') this can be applied automatically if you use `setProjectAnnotations` in your setup files.
85
+ * @param [exportsName] - in case your story does not contain a name and you want it to have a name.
86
+ */
87
+ declare function composeStory<TArgs extends Args = Args>(story: StoryAnnotationsOrFn<SvelteRenderer, TArgs>, componentAnnotations: Meta<TArgs | any>, projectAnnotations?: ProjectAnnotations<SvelteRenderer>, exportsName?: string): ComposedStory<TArgs>;
88
+ /**
89
+ * Function that will receive a stories import (e.g. `import * as stories from './Button.stories'`)
90
+ * and optionally projectAnnotations (e.g. `import * from '../.storybook/preview`)
91
+ * and will return an object containing all the stories passed, but now as a composed component that has all args/parameters/decorators/etc combined and applied to it.
92
+ *
93
+ *
94
+ * It's very useful for reusing stories in scenarios outside of Storybook like unit testing.
95
+ *
96
+ * Example:
97
+ *```jsx
98
+ * import { render } from '@testing-library/svelte';
99
+ * import { composeStories } from '@storybook/svelte';
100
+ * import * as stories from './Button.stories';
101
+ *
102
+ * const { Primary, Secondary } = composeStories(stories);
103
+ *
104
+ * test('renders primary button with Hello World', () => {
105
+ * const { getByText } = render(Primary, { label: 'Hello world' });
106
+ * expect(getByText(/Hello world/i)).not.toBeNull();
107
+ * });
108
+ *```
109
+ *
110
+ * @param csfExports - e.g. (import * as stories from './Button.stories')
111
+ * @param [projectAnnotations] - e.g. (import * as projectAnnotations from '../.storybook/preview') this can be applied automatically if you use `setProjectAnnotations` in your setup files.
112
+ */
113
+ declare function composeStories<TModule extends Store_CSFExports<SvelteRenderer, any>>(csfExports: TModule, projectAnnotations?: ProjectAnnotations<SvelteRenderer>): Omit<MapToComposed<StoriesWithPartialProps<SvelteRenderer<PreviewRender<any, any, any>>, TModule>>, keyof Store_CSFExports>;
114
+
115
+ export { Decorator, INTERNAL_DEFAULT_PROJECT_ANNOTATIONS, Loader, Meta, Preview, StoryContext, StoryFn, StoryObj, SvelteRenderer, composeStories, composeStory, setProjectAnnotations };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var src_exports={};module.exports=__toCommonJS(src_exports);var import_global=require("@storybook/global"),{window:globalWindow}=import_global.global;globalWindow.STORYBOOK_ENV="svelte";typeof module<"u"&&module?.hot?.decline();
1
+ "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var src_exports={};__export(src_exports,{INTERNAL_DEFAULT_PROJECT_ANNOTATIONS:()=>INTERNAL_DEFAULT_PROJECT_ANNOTATIONS,composeStories:()=>composeStories,composeStory:()=>composeStory,setProjectAnnotations:()=>setProjectAnnotations});module.exports=__toCommonJS(src_exports);globalThis.STORYBOOK_ENV="svelte";var import_preview_api3=require("@storybook/preview-api");var entry_preview_exports={};__export(entry_preview_exports,{applyDecorators:()=>decorateStory,parameters:()=>parameters,render:()=>render,renderToCanvas:()=>renderToCanvas});var import_core_events=require("@storybook/core-events"),import_PreviewRender=__toESM(require("@storybook/svelte/internal/PreviewRender.svelte")),import_createSvelte5Props=require("@storybook/svelte/internal/createSvelte5Props"),import_preview_api=require("@storybook/preview-api"),svelte=__toESM(require("svelte"));var import_compiler=require("svelte/compiler"),IS_SVELTE_V4=Number(import_compiler.VERSION[0])<=4;function renderToCanvas(renderContext,canvasElement){return IS_SVELTE_V4?renderToCanvasV4(renderContext,canvasElement):renderToCanvasV5(renderContext,canvasElement)}var storyIdsToRemountFromResetArgsEvent=new Set;import_preview_api.addons.getChannel().on(import_core_events.RESET_STORY_ARGS,({storyId})=>{storyIdsToRemountFromResetArgsEvent.add(storyId)});var componentsByDomElementV4=new Map;function renderToCanvasV4({storyFn,title,name,showMain,showError,storyContext,forceRemount},canvasElement){function unmount2(canvasElementToUnmount){componentsByDomElementV4.has(canvasElementToUnmount)&&(componentsByDomElementV4.get(canvasElementToUnmount).$destroy(),componentsByDomElementV4.delete(canvasElementToUnmount),canvasElementToUnmount.innerHTML="")}let existingComponent=componentsByDomElementV4.get(canvasElement),remount=forceRemount;if(storyIdsToRemountFromResetArgsEvent.has(storyContext.id)&&(remount=!0,storyIdsToRemountFromResetArgsEvent.delete(storyContext.id)),remount&&unmount2(canvasElement),!existingComponent||remount){let mountedComponent=new import_PreviewRender.default({target:canvasElement,props:{storyFn,storyContext,name,title,showError}});componentsByDomElementV4.set(canvasElement,mountedComponent)}else existingComponent.$set({storyFn,storyContext,name,title,showError});return showMain(),()=>{unmount2(canvasElement)}}var componentsByDomElementV5=new Map;function renderToCanvasV5({storyFn,title,name,showMain,showError,storyContext,forceRemount},canvasElement){function unmount2(canvasElementToUnmount){let{mountedComponent}=componentsByDomElementV5.get(canvasElementToUnmount)??{};mountedComponent&&(svelte.unmount(mountedComponent),componentsByDomElementV5.delete(canvasElementToUnmount))}let existingComponent=componentsByDomElementV5.get(canvasElement),remount=forceRemount;if(storyIdsToRemountFromResetArgsEvent.has(storyContext.id)&&(remount=!0,storyIdsToRemountFromResetArgsEvent.delete(storyContext.id)),remount&&unmount2(canvasElement),!existingComponent||remount){let props=(0,import_createSvelte5Props.createSvelte5Props)({storyFn,storyContext,name,title,showError}),mountedComponent=svelte.mount(import_PreviewRender.default,{target:canvasElement,props});componentsByDomElementV5.set(canvasElement,{mountedComponent,props})}else Object.assign(existingComponent.props,{storyFn,storyContext,name,title,showError});return showMain(),()=>{unmount2(canvasElement)}}var render=(args,context)=>{let{id,component:Component}=context;if(!Component)throw new Error(`Unable to render story ${id} as the component annotation is missing from the default export`);return{Component,props:args}};var import_preview_api2=require("@storybook/preview-api"),import_SlotDecorator=__toESM(require("@storybook/svelte/internal/SlotDecorator.svelte"));function unWrap(obj){return obj&&typeof obj=="object"&&"default"in obj?obj.default:obj}function prepareStory(context,rawStory,rawInnerStory){let story=unWrap(rawStory),innerStory=rawInnerStory&&unWrap(rawInnerStory),preparedStory;return!story||Object.keys(story).length===0?preparedStory={Component:context.component}:story.Component?preparedStory=story:preparedStory={Component:story},innerStory?{Component:import_SlotDecorator.default,props:{...innerStory,decorator:preparedStory}}:preparedStory}function decorateStory(storyFn,decorators){return decorators.reduce((decorated,decorator)=>context=>{let story,decoratedStory=decorator(update=>(story=decorated({...context,...(0,import_preview_api2.sanitizeStoryContextUpdate)(update)}),story),context);return story||(story=decorated(context)),decoratedStory===story?story:prepareStory(context,decoratedStory,story)},context=>prepareStory(context,storyFn(context)))}var parameters={renderer:"svelte"};var import_PreviewRender2=__toESM(require("@storybook/svelte/internal/PreviewRender.svelte")),import_createSvelte5Props2=require("@storybook/svelte/internal/createSvelte5Props");function setProjectAnnotations(projectAnnotations){(0,import_preview_api3.setProjectAnnotations)(projectAnnotations)}var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS=entry_preview_exports;function composeStory(story,componentAnnotations,projectAnnotations,exportsName){let composedStory=(0,import_preview_api3.composeStory)(story,componentAnnotations,projectAnnotations,INTERNAL_DEFAULT_PROJECT_ANNOTATIONS,exportsName),props={storyFn:composedStory,storyContext:{...composedStory},name:composedStory.storyName,title:composedStory.id,showError:()=>{}};IS_SVELTE_V4||(props=(0,import_createSvelte5Props2.createSvelte5Props)(props));let renderable={Component:import_PreviewRender2.default,props};return Object.assign(renderable,composedStory),renderable}function composeStories(csfExports,projectAnnotations){return(0,import_preview_api3.composeStories)(csfExports,projectAnnotations,composeStory)}typeof module<"u"&&module?.hot?.decline();0&&(module.exports={INTERNAL_DEFAULT_PROJECT_ANNOTATIONS,composeStories,composeStory,setProjectAnnotations});
package/dist/index.mjs CHANGED
@@ -1,3 +1,9 @@
1
- import { global } from '@storybook/global';
1
+ import { entry_preview_exports, IS_SVELTE_V4 } from './chunk-FGPXQODA.mjs';
2
+ import './chunk-JSBTCGGE.mjs';
3
+ import { setProjectAnnotations as setProjectAnnotations$1, composeStory as composeStory$1, composeStories as composeStories$1 } from '@storybook/preview-api';
4
+ import PreviewRender from '@storybook/svelte/internal/PreviewRender.svelte';
5
+ import { createSvelte5Props } from '@storybook/svelte/internal/createSvelte5Props';
2
6
 
3
- var{window:globalWindow}=global;globalWindow.STORYBOOK_ENV="svelte";typeof module<"u"&&module?.hot?.decline();
7
+ globalThis.STORYBOOK_ENV="svelte";function setProjectAnnotations(projectAnnotations){setProjectAnnotations$1(projectAnnotations);}var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS=entry_preview_exports;function composeStory(story,componentAnnotations,projectAnnotations,exportsName){let composedStory=composeStory$1(story,componentAnnotations,projectAnnotations,INTERNAL_DEFAULT_PROJECT_ANNOTATIONS,exportsName),props={storyFn:composedStory,storyContext:{...composedStory},name:composedStory.storyName,title:composedStory.id,showError:()=>{}};IS_SVELTE_V4||(props=createSvelte5Props(props));let renderable={Component:PreviewRender,props};return Object.assign(renderable,composedStory),renderable}function composeStories(csfExports,projectAnnotations){return composeStories$1(csfExports,projectAnnotations,composeStory)}typeof module<"u"&&module?.hot?.decline();
8
+
9
+ export { INTERNAL_DEFAULT_PROJECT_ANNOTATIONS, composeStories, composeStory, setProjectAnnotations };
@@ -0,0 +1 @@
1
+ export { createPlaywrightTest as createTest } from '@storybook/preview-api';
@@ -0,0 +1 @@
1
+ "use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var playwright_exports={};__export(playwright_exports,{createTest:()=>import_preview_api.createPlaywrightTest});module.exports=__toCommonJS(playwright_exports);var import_preview_api=require("@storybook/preview-api");0&&(module.exports={createTest});
@@ -0,0 +1,2 @@
1
+ import './chunk-JSBTCGGE.mjs';
2
+ export { createPlaywrightTest as createTest } from '@storybook/preview-api';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/svelte",
3
- "version": "8.1.0-alpha.2",
3
+ "version": "8.1.0-alpha.4",
4
4
  "description": "Storybook Svelte renderer",
5
5
  "keywords": [
6
6
  "storybook"
@@ -22,9 +22,15 @@
22
22
  "exports": {
23
23
  ".": {
24
24
  "types": "./dist/index.d.ts",
25
- "node": "./dist/index.js",
25
+ "import": "./dist/index.mjs",
26
26
  "require": "./dist/index.js",
27
- "import": "./dist/index.mjs"
27
+ "node": "./dist/index.js"
28
+ },
29
+ "./experimental-playwright": {
30
+ "types": "./dist/playwright.d.ts",
31
+ "import": "./dist/playwright.mjs",
32
+ "require": "./dist/playwright.js",
33
+ "node": "./dist/playwright.js"
28
34
  },
29
35
  "./preset": "./preset.js",
30
36
  "./dist/entry-preview.mjs": "./dist/entry-preview.mjs",
@@ -32,6 +38,7 @@
32
38
  "./package.json": "./package.json",
33
39
  "./internal/PreviewRender.svelte": "./dist/components/PreviewRender.svelte",
34
40
  "./internal/SlotDecorator.svelte": "./dist/components/SlotDecorator.svelte",
41
+ "./internal/AddStorybookIdDecorator.svelte": "./dist/components/AddStorybookIdDecorator.svelte",
35
42
  "./internal/createSvelte5Props": "./dist/createSvelte5Props.svelte.js"
36
43
  },
37
44
  "main": "dist/index.js",
@@ -50,20 +57,23 @@
50
57
  "prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts"
51
58
  },
52
59
  "dependencies": {
53
- "@storybook/client-logger": "8.1.0-alpha.2",
54
- "@storybook/core-events": "8.1.0-alpha.2",
55
- "@storybook/docs-tools": "8.1.0-alpha.2",
60
+ "@storybook/client-logger": "8.1.0-alpha.4",
61
+ "@storybook/core-events": "8.1.0-alpha.4",
62
+ "@storybook/docs-tools": "8.1.0-alpha.4",
56
63
  "@storybook/global": "^5.0.0",
57
- "@storybook/preview-api": "8.1.0-alpha.2",
58
- "@storybook/types": "8.1.0-alpha.2",
64
+ "@storybook/preview-api": "8.1.0-alpha.4",
65
+ "@storybook/types": "8.1.0-alpha.4",
59
66
  "sveltedoc-parser": "^4.2.1",
60
67
  "ts-dedent": "^2.0.0",
61
68
  "type-fest": "~2.19"
62
69
  },
63
70
  "devDependencies": {
64
71
  "@sveltejs/vite-plugin-svelte": "^3.0.2",
72
+ "@testing-library/jest-dom": "^6.4.1",
73
+ "@testing-library/svelte": "patch:@testing-library/svelte@npm%3A4.1.0#~/.yarn/patches/@testing-library-svelte-npm-4.1.0-34b7037bc0.patch",
65
74
  "expect-type": "^0.15.0",
66
75
  "fs-extra": "^11.1.0",
76
+ "jsdom": "^24.0.0",
67
77
  "svelte": "^5.0.0-next.65",
68
78
  "svelte-check": "^3.6.4",
69
79
  "typescript": "^5.3.2"
@@ -83,7 +93,8 @@
83
93
  "./src/index.ts",
84
94
  "./src/preset.ts",
85
95
  "./src/entry-preview.ts",
86
- "./src/entry-preview-docs.ts"
96
+ "./src/entry-preview-docs.ts",
97
+ "./src/playwright.ts"
87
98
  ],
88
99
  "platform": "browser"
89
100
  },