@storybook/svelte 9.0.0-alpha.2 → 9.0.0-alpha.20

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.
Files changed (55) hide show
  1. package/dist/chunk-2IXN2SLZ.mjs +11 -0
  2. package/dist/components/AddStorybookIdDecorator.svelte +3 -3
  3. package/dist/components/DecoratorHandler.svelte +20 -0
  4. package/dist/components/PreviewRender.svelte +14 -41
  5. package/dist/{createSvelte5Props.svelte.js → createReactiveProps.svelte.js} +1 -1
  6. package/dist/entry-preview-docs.d.ts +1 -1
  7. package/dist/entry-preview-docs.js +2 -2
  8. package/dist/entry-preview-docs.mjs +3 -3
  9. package/dist/entry-preview.d.ts +2 -2
  10. package/dist/entry-preview.js +1 -1
  11. package/dist/entry-preview.mjs +1 -1
  12. package/dist/index.d.ts +6 -6
  13. package/dist/index.js +1 -1
  14. package/dist/index.mjs +4 -4
  15. package/dist/playwright.d.ts +1 -1
  16. package/dist/playwright.js +1 -1
  17. package/dist/playwright.mjs +1 -1
  18. package/dist/{types-3695f681.d.ts → types-b7d0039b.d.ts} +12 -8
  19. package/package.json +8 -8
  20. package/template/cli/{svelte-5-ts-3-8 → js}/Button.stories.svelte +2 -2
  21. package/template/cli/js/Button.svelte +11 -20
  22. package/template/cli/{svelte-5-ts-4-9 → js}/Header.stories.svelte +1 -1
  23. package/template/cli/js/Header.svelte +12 -17
  24. package/template/cli/{svelte-5-js → js}/Page.stories.svelte +2 -2
  25. package/template/cli/js/Page.svelte +4 -4
  26. package/template/cli/{svelte-5-ts-4-9 → ts-4-9}/Button.stories.svelte +2 -2
  27. package/template/cli/ts-4-9/Button.svelte +17 -21
  28. package/template/cli/{svelte-5-js → ts-4-9}/Header.stories.svelte +1 -1
  29. package/template/cli/ts-4-9/Header.svelte +10 -17
  30. package/template/cli/{svelte-5-ts-3-8 → ts-4-9}/Page.stories.svelte +2 -2
  31. package/template/cli/ts-4-9/Page.svelte +4 -4
  32. package/template/stories/args.stories.js +23 -12
  33. package/template/stories/{slot-decorators.stories.js → decorators.stories.js} +21 -8
  34. package/dist/chunk-2VFJ3RAK.mjs +0 -12
  35. package/dist/components/SlotDecorator.svelte +0 -50
  36. package/template/cli/js/Button.stories.js +0 -43
  37. package/template/cli/js/Header.stories.js +0 -22
  38. package/template/cli/js/Page.stories.js +0 -28
  39. package/template/cli/svelte-5-js/Button.stories.svelte +0 -31
  40. package/template/cli/svelte-5-js/Button.svelte +0 -26
  41. package/template/cli/svelte-5-js/Header.svelte +0 -47
  42. package/template/cli/svelte-5-js/Page.svelte +0 -70
  43. package/template/cli/svelte-5-ts-3-8/Button.svelte +0 -29
  44. package/template/cli/svelte-5-ts-3-8/Header.stories.svelte +0 -26
  45. package/template/cli/svelte-5-ts-3-8/Header.svelte +0 -45
  46. package/template/cli/svelte-5-ts-3-8/Page.svelte +0 -70
  47. package/template/cli/svelte-5-ts-4-9/Button.svelte +0 -29
  48. package/template/cli/svelte-5-ts-4-9/Header.svelte +0 -45
  49. package/template/cli/svelte-5-ts-4-9/Page.stories.svelte +0 -30
  50. package/template/cli/svelte-5-ts-4-9/Page.svelte +0 -70
  51. package/template/cli/ts-4-9/Button.stories.ts +0 -48
  52. package/template/cli/ts-4-9/Header.stories.ts +0 -27
  53. package/template/cli/ts-4-9/Page.stories.ts +0 -32
  54. package/template/stories/decorators-runs-once.stories.js +0 -16
  55. package/template/stories/docs-jsdoc.stories.js +0 -9
@@ -0,0 +1,11 @@
1
+ import { __export } from './chunk-CEH6MNVV.mjs';
2
+ import { RESET_STORY_ARGS } from 'storybook/internal/core-events';
3
+ import PreviewRender from '@storybook/svelte/internal/PreviewRender.svelte';
4
+ import { createReactiveProps } from '@storybook/svelte/internal/createReactiveProps';
5
+ import { addons, sanitizeStoryContextUpdate } from 'storybook/preview-api';
6
+ import * as svelte from 'svelte';
7
+ import DecoratorHandler from '@storybook/svelte/internal/DecoratorHandler.svelte';
8
+
9
+ var entry_preview_exports={};__export(entry_preview_exports,{applyDecorators:()=>decorateStory,mount:()=>mount2,parameters:()=>parameters,render:()=>render,renderToCanvas:()=>renderToCanvas});var storyIdsToRemountFromResetArgsEvent=new Set;addons.getChannel().on(RESET_STORY_ARGS,({storyId})=>{storyIdsToRemountFromResetArgsEvent.add(storyId);});var componentsByDomElement=new Map;function renderToCanvas({storyFn,title,name,showMain,showError,storyContext,forceRemount},canvasElement){function unmount2(canvasElementToUnmount){let{mountedComponent}=componentsByDomElement.get(canvasElementToUnmount)??{};mountedComponent&&(svelte.unmount(mountedComponent),componentsByDomElement.delete(canvasElementToUnmount));}let existingComponent=componentsByDomElement.get(canvasElement),remount=forceRemount;if(storyIdsToRemountFromResetArgsEvent.has(storyContext.id)&&(remount=!0,storyIdsToRemountFromResetArgsEvent.delete(storyContext.id)),remount&&unmount2(canvasElement),!existingComponent||remount){let props=createReactiveProps({storyFn,storyContext,name,title,showError}),mountedComponent=svelte.mount(PreviewRender,{target:canvasElement,props});componentsByDomElement.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:DecoratorHandler,props:{...innerStory,decorator:preparedStory}}:{...preparedStory,argTypes:context.argTypes}}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 mount2=context=>async(Component,options)=>(Component&&(context.originalStoryFn=()=>({Component,props:options&&"props"in options?options?.props:options})),await context.renderToCanvas(),context.canvas);var parameters={renderer:"svelte"};
10
+
11
+ export { decorateStory, entry_preview_exports, mount2 as mount, parameters, render, renderToCanvas };
@@ -1,7 +1,7 @@
1
1
  <script>
2
- export let storyId;
2
+ const { storyId, children } = $props();
3
3
  </script>
4
4
 
5
5
  <div data-story="true" id={storyId}>
6
- <slot />
7
- </div>
6
+ {@render children()}
7
+ </div>
@@ -0,0 +1,20 @@
1
+ <script>
2
+ const { decorator, Component, props } = $props();
3
+
4
+ /*
5
+ Svelte Docgen will create argTypes for events with the name 'event_eventName'
6
+ The Actions addon will convert these to args because they are type: 'action'
7
+ We need to filter these args out so they are not passed to the component
8
+ */
9
+ let propsWithoutDocgenEvents = $derived(
10
+ Object.fromEntries(Object.entries(props).filter(([key]) => !key.startsWith('event_')))
11
+ );
12
+ </script>
13
+
14
+ {#if decorator}
15
+ <decorator.Component {...decorator.props}>
16
+ <Component {...propsWithoutDocgenEvents} />
17
+ </decorator.Component>
18
+ {:else}
19
+ <Component {...propsWithoutDocgenEvents} />
20
+ {/if}
@@ -1,56 +1,29 @@
1
1
  <script>
2
- import SlotDecorator from './SlotDecorator.svelte';
2
+ import DecoratorHandler from './DecoratorHandler.svelte';
3
3
  import { dedent } from 'ts-dedent';
4
4
 
5
- export let name;
6
- export let title;
7
- export let storyFn;
8
- export let showError;
9
- export let storyContext;
5
+ const { name, title, storyFn, showError } = $props();
10
6
 
11
7
  let {
12
- /** @type {SvelteComponent} */
8
+ /** @type {import('svelte').SvelteComponent} */
13
9
  Component,
14
- /** @type {any} */
15
10
  props = {},
16
- /** @type {{[string]: () => {}}} Attach svelte event handlers */
17
- on,
18
- /** @type {any} whether this level of the decorator chain is the last, ie. the actual story */
19
- argTypes,
20
- } = storyFn();
21
-
22
- let firstTime = true;
23
-
24
- // the first time we don't want to call storyFn two times so we just return the values
25
- // we already have from the previous call. If storyFn changes this function will run
26
- // again but this time firstTime will be false
27
- function getStoryFnValue(storyFn) {
28
- if (firstTime) {
29
- firstTime = false;
30
- return {
31
- Component,
32
- props,
33
- on,
34
- argTypes,
35
- };
36
- }
11
+ } = $derived.by(() => {
37
12
  return storyFn();
38
- }
13
+ });
39
14
 
40
- // reactive, re-render on storyFn change
41
- $: ({ Component, props = {}, on, argTypes } = getStoryFnValue(storyFn));
42
-
43
- // set the argTypes context, read by the last SlotDecorator that renders the original story
44
- if (!Component) {
45
- showError({
46
- title: `Expecting a Svelte component from the story: "${name}" of "${title}".`,
47
- description: dedent`
15
+ $effect(() => {
16
+ if (!Component) {
17
+ showError({
18
+ title: `Expecting a Svelte component from the story: "${name}" of "${title}".`,
19
+ description: dedent`
48
20
  Did you forget to return the Svelte component configuration from the story?
49
21
  Use "() => ({ Component: YourComponent, props: {} })"
50
22
  when defining the story.
51
23
  `,
52
- });
53
- }
24
+ });
25
+ }
26
+ });
54
27
  </script>
55
28
 
56
- <SlotDecorator {Component} {props} {on} {argTypes} />
29
+ <DecoratorHandler {Component} {props} />
@@ -7,7 +7,7 @@
7
7
  * @param {TProps} data - The data to create Svelte 5 props from.
8
8
  * @returns {TProps} - The created Svelte 5 props.
9
9
  */
10
- export const createSvelte5Props = (data) => {
10
+ export const createReactiveProps = (data) => {
11
11
  const props = $state(data);
12
12
  return props;
13
13
  };
@@ -1,6 +1,6 @@
1
1
  import { ArgTypesExtractor } from 'storybook/internal/docs-tools';
2
2
  import { DecoratorFunction, ArgTypesEnhancer } from 'storybook/internal/types';
3
- import { S as SvelteRenderer } from './types-3695f681.js';
3
+ import { S as SvelteRenderer } from './types-b7d0039b.js';
4
4
  import 'svelte';
5
5
 
6
6
  declare const parameters: {
@@ -1,7 +1,7 @@
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 entry_preview_docs_exports={};__export(entry_preview_docs_exports,{argTypesEnhancers:()=>argTypesEnhancers,decorators:()=>decorators,parameters:()=>parameters});module.exports=__toCommonJS(entry_preview_docs_exports);var import_docs_tools2=require("storybook/internal/docs-tools");var import_client_logger=require("storybook/internal/client-logger");function hasKeyword(keyword,keywords){return keywords?keywords.find(k=>k.name===keyword)!=null:!1}var extractArgTypes=component=>{try{let docgen=component.__docgen;if(docgen)return createArgTypes(docgen)}catch(err){import_client_logger.logger.log(`Error extracting argTypes: ${err}`)}return{}},createArgTypes=docgen=>{let results={};return docgen.data&&docgen.data.forEach(item=>{results[item.name]={...parseTypeToControl(item.type),name:item.name,description:item.description||void 0,type:{required:hasKeyword("required",item.keywords||[]),name:item.type?.text==="{}"?"object":item.type?.text},table:{type:{summary:item.type?.text},defaultValue:{summary:item.defaultValue},category:"properties"}}}),docgen.events&&docgen.events.forEach(item=>{results[`event_${item.name}`]={name:item.name,action:item.name,control:!1,...item.description?{description:item.description}:{},table:{category:"events"}}}),docgen.slots&&docgen.slots.forEach(item=>{results[`slot_${item.name}`]={name:item.name,control:!1,description:[item.description,item.params?.map(p=>`\`${p.name}\``).join(" ")].filter(p=>p).join(`
2
2
 
3
- `),table:{category:"slots"}}}),results},parseTypeToControl=type=>{if(!type)return null;if(type.kind==="type")switch(type.type){case"string":return{control:{type:"text"}};case"any":return{control:{type:"object"}};default:return{control:{type:type.type}}}else if(type.kind==="union"){if(Array.isArray(type.type)&&!type.type.some(t=>t.kind!=="const"||!["string","number","null","undefined"].includes(t.type))){let options=type.type.map(t=>t.value);return{control:{type:"radio",labels:options.map(String)},options}}}else if(type.kind==="function")return{control:null};return null};function extractComponentDescription(component){if(!component)return"";let{__docgen={}}=component;return __docgen.description}var import_client_logger2=require("storybook/internal/client-logger"),import_docs_tools=require("storybook/internal/docs-tools"),import_preview_api=require("storybook/internal/preview-api"),skipSourceRender=context=>{let sourceParams=context?.parameters.docs?.source,isArgsStory=context?.parameters.__isArgsStory;return sourceParams?.type===import_docs_tools.SourceType.DYNAMIC?!1:!isArgsStory||sourceParams?.code||sourceParams?.type===import_docs_tools.SourceType.CODE};function toSvelteProperty(key,value,argTypes){if(value==null)return null;let argType=argTypes[key];return argType&&argType.defaultValue===value||argType&&argType.action?null:value===!0?key:typeof value=="string"?`${key}=${JSON.stringify(value)}`:typeof value=="function"?`${key}={<handler>}`:`${key}={${JSON.stringify(value)}}`}function getComponentName(component){if(component==null)return null;let{__docgen={}}=component,{name}=__docgen;return name?(name.endsWith(".svelte")&&(name=name.substring(0,name.length-7)),name):component.name}function generateSvelteSource(component,args,argTypes,slotProperty){let name=getComponentName(component);if(!name)return null;let propsArray=Object.entries(args).filter(([k])=>k!==slotProperty).map(([k,v])=>toSvelteProperty(k,v,argTypes)).filter(p=>p),props=propsArray.join(" "),multiline=props.length>50,slotValue=slotProperty?args[slotProperty]:null,srcStart=multiline?`<${name}
3
+ `),table:{category:"slots"}}}),results},parseTypeToControl=type=>{if(!type)return null;if(type.kind==="type")switch(type.type){case"string":return{control:{type:"text"}};case"any":return{control:{type:"object"}};default:return{control:{type:type.type}}}else if(type.kind==="union"){if(Array.isArray(type.type)&&!type.type.some(t=>t.kind!=="const"||!["string","number","null","undefined"].includes(t.type))){let options=type.type.map(t=>t.value);return{control:{type:"radio",labels:options.map(String)},options}}}else if(type.kind==="function")return{control:null};return null};function extractComponentDescription(component){if(!component)return"";let{__docgen={}}=component;return __docgen.description}var import_client_logger2=require("storybook/internal/client-logger"),import_docs_tools=require("storybook/internal/docs-tools"),import_preview_api=require("storybook/preview-api"),skipSourceRender=context=>{let sourceParams=context?.parameters.docs?.source,isArgsStory=context?.parameters.__isArgsStory;return sourceParams?.type===import_docs_tools.SourceType.DYNAMIC?!1:!isArgsStory||sourceParams?.code||sourceParams?.type===import_docs_tools.SourceType.CODE};function toSvelteProperty(key,value,argTypes){if(value==null)return null;let argType=argTypes[key];return argType&&argType.defaultValue===value||argType&&argType.action?null:value===!0?key:typeof value=="string"?`${key}=${JSON.stringify(value)}`:typeof value=="function"?`${key}={<handler>}`:`${key}={${JSON.stringify(value)}}`}function getComponentName(component){if(component==null)return null;let{__docgen={}}=component,{name}=__docgen;return name?(name.endsWith(".svelte")&&(name=name.substring(0,name.length-7)),name):component.name}function generateSvelteSource(component,args,argTypes,slotProperty){let name=getComponentName(component);if(!name)return null;let propsArray=Object.entries(args).filter(([k])=>k!==slotProperty).map(([k,v])=>toSvelteProperty(k,v,argTypes)).filter(p=>p),props=propsArray.join(" "),multiline=props.length>50,slotValue=slotProperty?args[slotProperty]:null,srcStart=multiline?`<${name}
4
4
  ${propsArray.join(`
5
5
  `)}`:`<${name} ${props}`;return slotValue?`${srcStart}>
6
6
  ${slotValue}
7
- </${name}>`:`${srcStart}/>`}function getWrapperProperties(component){let{__docgen}=component||{};return __docgen?__docgen.keywords?.find(kw=>kw.name==="wrapper")?{wrapper:!0,slotProperty:__docgen.data?.find(prop=>prop.keywords.find(kw=>kw.name==="slot"))?.name}:{wrapper:!1}:{wrapper:!1}}var sourceDecorator=(storyFn,context)=>{let channel=import_preview_api.addons.getChannel(),skip=skipSourceRender(context),story=storyFn(),source;if((0,import_preview_api.useEffect)(()=>{if(!skip&&source){let{id,unmappedArgs}=context;channel.emit(import_docs_tools.SNIPPET_RENDERED,{id,args:unmappedArgs,source})}}),skip)return story;let{parameters:parameters2={},args={},component:ctxComponent}=context||{},{Component:component}=context.originalStoryFn(args,context),{wrapper,slotProperty}=getWrapperProperties(component);wrapper&&(parameters2.component&&(0,import_client_logger2.deprecate)("parameters.component is deprecated. Using context.component instead."),component=ctxComponent);let generated=generateSvelteSource(component,args,context?.argTypes,slotProperty);return generated&&(source=generated),story};var parameters={docs:{story:{inline:!0},extractArgTypes,extractComponentDescription}},decorators=[sourceDecorator],argTypesEnhancers=[import_docs_tools2.enhanceArgTypes];0&&(module.exports={argTypesEnhancers,decorators,parameters});
7
+ </${name}>`:`${srcStart}/>`}function getWrapperProperties(component){let{__docgen}=component||{};return __docgen?__docgen.keywords?.find(kw=>kw.name==="wrapper")?{wrapper:!0,slotProperty:__docgen.data?.find(prop=>prop.keywords.find(kw=>kw.name==="slot"))?.name}:{wrapper:!1}:{wrapper:!1}}var sourceDecorator=(storyFn,context)=>{let skip=skipSourceRender(context),story=storyFn(),source=(0,import_preview_api.useRef)(void 0);return(0,import_preview_api.useEffect)(()=>{if(skip)return;let{parameters:parameters2={},args={},component:ctxComponent}=context||{},{Component:component}=context.originalStoryFn(args,context),{wrapper,slotProperty}=getWrapperProperties(component);wrapper&&(parameters2.component&&(0,import_client_logger2.deprecate)("parameters.component is deprecated. Using context.component instead."),component=ctxComponent);let generated=generateSvelteSource(component,args,context?.argTypes,slotProperty);generated&&source.current!==generated&&((0,import_preview_api.emitTransformCode)(generated,context),source.current=generated)}),story};var parameters={docs:{story:{inline:!0},extractArgTypes,extractComponentDescription}},decorators=[sourceDecorator],argTypesEnhancers=[import_docs_tools2.enhanceArgTypes];0&&(module.exports={argTypesEnhancers,decorators,parameters});
@@ -1,7 +1,7 @@
1
1
  import './chunk-CEH6MNVV.mjs';
2
- import { enhanceArgTypes, SNIPPET_RENDERED, SourceType } from 'storybook/internal/docs-tools';
2
+ import { enhanceArgTypes, SourceType } from 'storybook/internal/docs-tools';
3
3
  import { logger, deprecate } from 'storybook/internal/client-logger';
4
- import { addons, useEffect } from 'storybook/internal/preview-api';
4
+ import { useRef, useEffect, emitTransformCode } from 'storybook/preview-api';
5
5
 
6
6
  function hasKeyword(keyword,keywords){return keywords?keywords.find(k=>k.name===keyword)!=null:!1}var extractArgTypes=component=>{try{let docgen=component.__docgen;if(docgen)return createArgTypes(docgen)}catch(err){logger.log(`Error extracting argTypes: ${err}`);}return {}},createArgTypes=docgen=>{let results={};return docgen.data&&docgen.data.forEach(item=>{results[item.name]={...parseTypeToControl(item.type),name:item.name,description:item.description||void 0,type:{required:hasKeyword("required",item.keywords||[]),name:item.type?.text==="{}"?"object":item.type?.text},table:{type:{summary:item.type?.text},defaultValue:{summary:item.defaultValue},category:"properties"}};}),docgen.events&&docgen.events.forEach(item=>{results[`event_${item.name}`]={name:item.name,action:item.name,control:!1,...item.description?{description:item.description}:{},table:{category:"events"}};}),docgen.slots&&docgen.slots.forEach(item=>{results[`slot_${item.name}`]={name:item.name,control:!1,description:[item.description,item.params?.map(p=>`\`${p.name}\``).join(" ")].filter(p=>p).join(`
7
7
 
@@ -9,6 +9,6 @@ function hasKeyword(keyword,keywords){return keywords?keywords.find(k=>k.name===
9
9
  ${propsArray.join(`
10
10
  `)}`:`<${name} ${props}`;return slotValue?`${srcStart}>
11
11
  ${slotValue}
12
- </${name}>`:`${srcStart}/>`}function getWrapperProperties(component){let{__docgen}=component||{};return __docgen?__docgen.keywords?.find(kw=>kw.name==="wrapper")?{wrapper:!0,slotProperty:__docgen.data?.find(prop=>prop.keywords.find(kw=>kw.name==="slot"))?.name}:{wrapper:!1}:{wrapper:!1}}var sourceDecorator=(storyFn,context)=>{let channel=addons.getChannel(),skip=skipSourceRender(context),story=storyFn(),source;if(useEffect(()=>{if(!skip&&source){let{id,unmappedArgs}=context;channel.emit(SNIPPET_RENDERED,{id,args:unmappedArgs,source});}}),skip)return story;let{parameters:parameters2={},args={},component:ctxComponent}=context||{},{Component:component}=context.originalStoryFn(args,context),{wrapper,slotProperty}=getWrapperProperties(component);wrapper&&(parameters2.component&&deprecate("parameters.component is deprecated. Using context.component instead."),component=ctxComponent);let generated=generateSvelteSource(component,args,context?.argTypes,slotProperty);return generated&&(source=generated),story};var parameters={docs:{story:{inline:!0},extractArgTypes,extractComponentDescription}},decorators=[sourceDecorator],argTypesEnhancers=[enhanceArgTypes];
12
+ </${name}>`:`${srcStart}/>`}function getWrapperProperties(component){let{__docgen}=component||{};return __docgen?__docgen.keywords?.find(kw=>kw.name==="wrapper")?{wrapper:!0,slotProperty:__docgen.data?.find(prop=>prop.keywords.find(kw=>kw.name==="slot"))?.name}:{wrapper:!1}:{wrapper:!1}}var sourceDecorator=(storyFn,context)=>{let skip=skipSourceRender(context),story=storyFn(),source=useRef(void 0);return useEffect(()=>{if(skip)return;let{parameters:parameters2={},args={},component:ctxComponent}=context||{},{Component:component}=context.originalStoryFn(args,context),{wrapper,slotProperty}=getWrapperProperties(component);wrapper&&(parameters2.component&&deprecate("parameters.component is deprecated. Using context.component instead."),component=ctxComponent);let generated=generateSvelteSource(component,args,context?.argTypes,slotProperty);generated&&source.current!==generated&&(emitTransformCode(generated,context),source.current=generated);}),story};var parameters={docs:{story:{inline:!0},extractArgTypes,extractComponentDescription}},decorators=[sourceDecorator],argTypesEnhancers=[enhanceArgTypes];
13
13
 
14
14
  export { argTypesEnhancers, decorators, parameters };
@@ -1,8 +1,8 @@
1
1
  import { RenderContext, ArgsStoryFn, BaseAnnotations } from 'storybook/internal/types';
2
- import { S as SvelteRenderer } from './types-3695f681.js';
2
+ import { S as SvelteRenderer } from './types-b7d0039b.js';
3
3
  import 'svelte';
4
4
 
5
- declare function renderToCanvas(renderContext: RenderContext<SvelteRenderer>, canvasElement: SvelteRenderer['canvasElement']): () => void;
5
+ declare function renderToCanvas({ storyFn, title, name, showMain, showError, storyContext, forceRemount, }: RenderContext<SvelteRenderer>, canvasElement: SvelteRenderer['canvasElement']): () => void;
6
6
  declare const render: ArgsStoryFn<SvelteRenderer>;
7
7
 
8
8
  declare function decorateStory(storyFn: any, decorators: any[]): any;
@@ -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,mount:()=>mount2,parameters:()=>parameters,render:()=>render,renderToCanvas:()=>renderToCanvas});module.exports=__toCommonJS(entry_preview_exports);var import_core_events=require("storybook/internal/core-events"),import_preview_api=require("storybook/internal/preview-api"),import_PreviewRender=__toESM(require("@storybook/svelte/internal/PreviewRender.svelte")),import_createSvelte5Props=require("@storybook/svelte/internal/createSvelte5Props"),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/internal/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,argTypes:context.argTypes}}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 mount2=context=>async(Component,options)=>(Component&&(context.originalStoryFn=()=>({Component,props:options&&"props"in options?options?.props:options})),await context.renderToCanvas(),context.canvas);var parameters={renderer:"svelte"};0&&(module.exports={applyDecorators,mount,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,mount:()=>mount2,parameters:()=>parameters,render:()=>render,renderToCanvas:()=>renderToCanvas});module.exports=__toCommonJS(entry_preview_exports);var import_core_events=require("storybook/internal/core-events"),import_PreviewRender=__toESM(require("@storybook/svelte/internal/PreviewRender.svelte")),import_createReactiveProps=require("@storybook/svelte/internal/createReactiveProps"),import_preview_api=require("storybook/preview-api"),svelte=__toESM(require("svelte")),storyIdsToRemountFromResetArgsEvent=new Set;import_preview_api.addons.getChannel().on(import_core_events.RESET_STORY_ARGS,({storyId})=>{storyIdsToRemountFromResetArgsEvent.add(storyId)});var componentsByDomElement=new Map;function renderToCanvas({storyFn,title,name,showMain,showError,storyContext,forceRemount},canvasElement){function unmount2(canvasElementToUnmount){let{mountedComponent}=componentsByDomElement.get(canvasElementToUnmount)??{};mountedComponent&&(svelte.unmount(mountedComponent),componentsByDomElement.delete(canvasElementToUnmount))}let existingComponent=componentsByDomElement.get(canvasElement),remount=forceRemount;if(storyIdsToRemountFromResetArgsEvent.has(storyContext.id)&&(remount=!0,storyIdsToRemountFromResetArgsEvent.delete(storyContext.id)),remount&&unmount2(canvasElement),!existingComponent||remount){let props=(0,import_createReactiveProps.createReactiveProps)({storyFn,storyContext,name,title,showError}),mountedComponent=svelte.mount(import_PreviewRender.default,{target:canvasElement,props});componentsByDomElement.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_DecoratorHandler=__toESM(require("@storybook/svelte/internal/DecoratorHandler.svelte")),import_preview_api2=require("storybook/preview-api");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_DecoratorHandler.default,props:{...innerStory,decorator:preparedStory}}:{...preparedStory,argTypes:context.argTypes}}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 mount2=context=>async(Component,options)=>(Component&&(context.originalStoryFn=()=>({Component,props:options&&"props"in options?options?.props:options})),await context.renderToCanvas(),context.canvas);var parameters={renderer:"svelte"};0&&(module.exports={applyDecorators,mount,parameters,render,renderToCanvas});
@@ -1,2 +1,2 @@
1
- export { decorateStory as applyDecorators, mount, parameters, render, renderToCanvas } from './chunk-2VFJ3RAK.mjs';
1
+ export { decorateStory as applyDecorators, mount, parameters, render, renderToCanvas } from './chunk-2IXN2SLZ.mjs';
2
2
  import './chunk-CEH6MNVV.mjs';
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { Args, ComponentAnnotations, AnnotatedStoryFn, ArgsStoryFn, ArgsFromMeta, StoryAnnotations, StrictArgs, DecoratorFunction, LoaderFunction, StoryContext as StoryContext$1, ProjectAnnotations, NamedOrDefaultProjectAnnotations, NormalizedProjectAnnotations, StoryAnnotationsOrFn, Store_CSFExports, StoriesWithPartialProps, ComposedStoryFn } from 'storybook/internal/types';
2
2
  export { ArgTypes, Args, Parameters, StrictArgs } from 'storybook/internal/types';
3
- import { SvelteComponent, ComponentType, ComponentProps } from 'svelte';
3
+ import { SvelteComponent, ComponentProps, ComponentType } from 'svelte';
4
4
  import { Simplify, SetOptional } from 'type-fest';
5
- import { S as SvelteRenderer } from './types-3695f681.js';
5
+ import { a as Svelte5ComponentType, S as SvelteRenderer } from './types-b7d0039b.js';
6
6
  import PreviewRender from '@storybook/svelte/internal/PreviewRender.svelte';
7
7
 
8
8
  /**
@@ -10,13 +10,13 @@ import PreviewRender from '@storybook/svelte/internal/PreviewRender.svelte';
10
10
  *
11
11
  * @see [Default export](https://storybook.js.org/docs/api/csf#default-export)
12
12
  */
13
- type Meta<CmpOrArgs = Args> = CmpOrArgs extends SvelteComponent<infer Props> ? ComponentAnnotations<SvelteRenderer<CmpOrArgs>, Props> : ComponentAnnotations<SvelteRenderer, CmpOrArgs>;
13
+ type Meta<CmpOrArgs = Args> = CmpOrArgs extends SvelteComponent<infer Props> | Svelte5ComponentType<infer Props> ? ComponentAnnotations<SvelteRenderer<CmpOrArgs>, Props> : ComponentAnnotations<SvelteRenderer, CmpOrArgs>;
14
14
  /**
15
15
  * Story function that represents a CSFv2 component example.
16
16
  *
17
17
  * @see [Named Story exports](https://storybook.js.org/docs/api/csf#named-story-exports)
18
18
  */
19
- type StoryFn<TCmpOrArgs = Args> = TCmpOrArgs extends SvelteComponent<infer Props> ? AnnotatedStoryFn<SvelteRenderer, Props> : AnnotatedStoryFn<SvelteRenderer, TCmpOrArgs>;
19
+ type StoryFn<TCmpOrArgs = Args> = TCmpOrArgs extends SvelteComponent<infer Props> | Svelte5ComponentType<infer Props> ? AnnotatedStoryFn<SvelteRenderer, Props> : AnnotatedStoryFn<SvelteRenderer, TCmpOrArgs>;
20
20
  /**
21
21
  * Story object that represents a CSFv3 component example.
22
22
  *
@@ -24,9 +24,9 @@ type StoryFn<TCmpOrArgs = Args> = TCmpOrArgs extends SvelteComponent<infer Props
24
24
  */
25
25
  type StoryObj<MetaOrCmpOrArgs = Args> = MetaOrCmpOrArgs extends {
26
26
  render?: ArgsStoryFn<SvelteRenderer, any>;
27
- component?: ComponentType<infer Component>;
27
+ component: infer Comp;
28
28
  args?: infer DefaultArgs;
29
- } ? Simplify<ComponentProps<Component> & ArgsFromMeta<SvelteRenderer, MetaOrCmpOrArgs>> extends infer TArgs ? StoryAnnotations<SvelteRenderer<Component>, TArgs, SetOptional<TArgs, Extract<keyof TArgs, keyof DefaultArgs>>> : never : MetaOrCmpOrArgs extends SvelteComponent ? StoryAnnotations<SvelteRenderer<MetaOrCmpOrArgs>, ComponentProps<MetaOrCmpOrArgs>> : StoryAnnotations<SvelteRenderer, MetaOrCmpOrArgs>;
29
+ } ? Simplify<ComponentProps<Comp extends ComponentType<infer Component> ? Component : Comp extends Svelte5ComponentType ? Comp : never> & ArgsFromMeta<SvelteRenderer, MetaOrCmpOrArgs>> extends infer TArgs ? StoryAnnotations<SvelteRenderer<Comp extends ComponentType<infer Component> ? Component : Comp extends Svelte5ComponentType ? Comp : never>, TArgs, SetOptional<TArgs, Extract<keyof TArgs, keyof DefaultArgs>>> : never : MetaOrCmpOrArgs extends SvelteComponent | Svelte5ComponentType ? StoryAnnotations<SvelteRenderer<MetaOrCmpOrArgs>, ComponentProps<MetaOrCmpOrArgs>> : StoryAnnotations<SvelteRenderer, MetaOrCmpOrArgs>;
30
30
 
31
31
  type Decorator<TArgs = StrictArgs> = DecoratorFunction<SvelteRenderer, TArgs>;
32
32
  type Loader<TArgs = StrictArgs> = LoaderFunction<SvelteRenderer, TArgs>;
package/dist/index.js CHANGED
@@ -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 index_exports={};__export(index_exports,{INTERNAL_DEFAULT_PROJECT_ANNOTATIONS:()=>INTERNAL_DEFAULT_PROJECT_ANNOTATIONS,composeStories:()=>composeStories,composeStory:()=>composeStory,setProjectAnnotations:()=>setProjectAnnotations});module.exports=__toCommonJS(index_exports);globalThis.STORYBOOK_ENV="svelte";var import_preview_api3=require("storybook/internal/preview-api"),import_PreviewRender2=__toESM(require("@storybook/svelte/internal/PreviewRender.svelte")),import_createSvelte5Props2=require("@storybook/svelte/internal/createSvelte5Props");var entry_preview_exports={};__export(entry_preview_exports,{applyDecorators:()=>decorateStory,mount:()=>mount2,parameters:()=>parameters,render:()=>render,renderToCanvas:()=>renderToCanvas});var import_core_events=require("storybook/internal/core-events"),import_preview_api=require("storybook/internal/preview-api"),import_PreviewRender=__toESM(require("@storybook/svelte/internal/PreviewRender.svelte")),import_createSvelte5Props=require("@storybook/svelte/internal/createSvelte5Props"),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/internal/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,argTypes:context.argTypes}}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 mount2=context=>async(Component,options)=>(Component&&(context.originalStoryFn=()=>({Component,props:options&&"props"in options?options?.props:options})),await context.renderToCanvas(),context.canvas);var parameters={renderer:"svelte"};function setProjectAnnotations(projectAnnotations){return(0,import_preview_api3.setDefaultProjectAnnotations)(INTERNAL_DEFAULT_PROJECT_ANNOTATIONS),(0,import_preview_api3.setProjectAnnotations)(projectAnnotations)}var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS={...entry_preview_exports,renderToCanvas:(renderContext,canvasElement)=>{if(renderContext.storyContext.testingLibraryRender==null)return renderToCanvas(renderContext,canvasElement);let{storyFn,storyContext:{testingLibraryRender:render2}}=renderContext,{Component,props}=storyFn(),{unmount:unmount2}=render2(Component,{props,target:canvasElement});return unmount2}};function composeStory(story,componentAnnotations,projectAnnotations,exportsName){let composedStory=(0,import_preview_api3.composeStory)(story,componentAnnotations,projectAnnotations,globalThis.globalProjectAnnotations??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});
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 index_exports={};__export(index_exports,{INTERNAL_DEFAULT_PROJECT_ANNOTATIONS:()=>INTERNAL_DEFAULT_PROJECT_ANNOTATIONS,composeStories:()=>composeStories,composeStory:()=>composeStory,setProjectAnnotations:()=>setProjectAnnotations});module.exports=__toCommonJS(index_exports);globalThis.STORYBOOK_ENV="svelte";var import_PreviewRender2=__toESM(require("@storybook/svelte/internal/PreviewRender.svelte")),import_createReactiveProps2=require("@storybook/svelte/internal/createReactiveProps"),import_preview_api3=require("storybook/preview-api");var entry_preview_exports={};__export(entry_preview_exports,{applyDecorators:()=>decorateStory,mount:()=>mount2,parameters:()=>parameters,render:()=>render,renderToCanvas:()=>renderToCanvas});var import_core_events=require("storybook/internal/core-events"),import_PreviewRender=__toESM(require("@storybook/svelte/internal/PreviewRender.svelte")),import_createReactiveProps=require("@storybook/svelte/internal/createReactiveProps"),import_preview_api=require("storybook/preview-api"),svelte=__toESM(require("svelte")),storyIdsToRemountFromResetArgsEvent=new Set;import_preview_api.addons.getChannel().on(import_core_events.RESET_STORY_ARGS,({storyId})=>{storyIdsToRemountFromResetArgsEvent.add(storyId)});var componentsByDomElement=new Map;function renderToCanvas({storyFn,title,name,showMain,showError,storyContext,forceRemount},canvasElement){function unmount2(canvasElementToUnmount){let{mountedComponent}=componentsByDomElement.get(canvasElementToUnmount)??{};mountedComponent&&(svelte.unmount(mountedComponent),componentsByDomElement.delete(canvasElementToUnmount))}let existingComponent=componentsByDomElement.get(canvasElement),remount=forceRemount;if(storyIdsToRemountFromResetArgsEvent.has(storyContext.id)&&(remount=!0,storyIdsToRemountFromResetArgsEvent.delete(storyContext.id)),remount&&unmount2(canvasElement),!existingComponent||remount){let props=(0,import_createReactiveProps.createReactiveProps)({storyFn,storyContext,name,title,showError}),mountedComponent=svelte.mount(import_PreviewRender.default,{target:canvasElement,props});componentsByDomElement.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_DecoratorHandler=__toESM(require("@storybook/svelte/internal/DecoratorHandler.svelte")),import_preview_api2=require("storybook/preview-api");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_DecoratorHandler.default,props:{...innerStory,decorator:preparedStory}}:{...preparedStory,argTypes:context.argTypes}}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 mount2=context=>async(Component,options)=>(Component&&(context.originalStoryFn=()=>({Component,props:options&&"props"in options?options?.props:options})),await context.renderToCanvas(),context.canvas);var parameters={renderer:"svelte"};function setProjectAnnotations(projectAnnotations){return(0,import_preview_api3.setDefaultProjectAnnotations)(INTERNAL_DEFAULT_PROJECT_ANNOTATIONS),(0,import_preview_api3.setProjectAnnotations)(projectAnnotations)}var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS={...entry_preview_exports,renderToCanvas:(renderContext,canvasElement)=>{if(renderContext.storyContext.testingLibraryRender==null)return renderToCanvas(renderContext,canvasElement);let{storyFn,storyContext:{testingLibraryRender:render2}}=renderContext,{Component,props}=storyFn(),{unmount:unmount2}=render2(Component,{props,target:canvasElement});return unmount2}};function composeStory(story,componentAnnotations,projectAnnotations,exportsName){let composedStory=(0,import_preview_api3.composeStory)(story,componentAnnotations,projectAnnotations,globalThis.globalProjectAnnotations??INTERNAL_DEFAULT_PROJECT_ANNOTATIONS,exportsName),props=(0,import_createReactiveProps2.createReactiveProps)({storyFn:composedStory,storyContext:{...composedStory},name:composedStory.storyName,title:composedStory.id,showError:()=>{}}),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)}0&&(module.exports={INTERNAL_DEFAULT_PROJECT_ANNOTATIONS,composeStories,composeStory,setProjectAnnotations});
package/dist/index.mjs CHANGED
@@ -1,9 +1,9 @@
1
- import { entry_preview_exports, renderToCanvas, IS_SVELTE_V4 } from './chunk-2VFJ3RAK.mjs';
1
+ import { entry_preview_exports, renderToCanvas } from './chunk-2IXN2SLZ.mjs';
2
2
  import './chunk-CEH6MNVV.mjs';
3
- import { setDefaultProjectAnnotations, setProjectAnnotations as setProjectAnnotations$1, composeStory as composeStory$1, composeStories as composeStories$1 } from 'storybook/internal/preview-api';
4
3
  import PreviewRender from '@storybook/svelte/internal/PreviewRender.svelte';
5
- import { createSvelte5Props } from '@storybook/svelte/internal/createSvelte5Props';
4
+ import { createReactiveProps } from '@storybook/svelte/internal/createReactiveProps';
5
+ import { setDefaultProjectAnnotations, setProjectAnnotations as setProjectAnnotations$1, composeStory as composeStory$1, composeStories as composeStories$1 } from 'storybook/preview-api';
6
6
 
7
- globalThis.STORYBOOK_ENV="svelte";function setProjectAnnotations(projectAnnotations){return setDefaultProjectAnnotations(INTERNAL_DEFAULT_PROJECT_ANNOTATIONS),setProjectAnnotations$1(projectAnnotations)}var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS={...entry_preview_exports,renderToCanvas:(renderContext,canvasElement)=>{if(renderContext.storyContext.testingLibraryRender==null)return renderToCanvas(renderContext,canvasElement);let{storyFn,storyContext:{testingLibraryRender:render}}=renderContext,{Component,props}=storyFn(),{unmount}=render(Component,{props,target:canvasElement});return unmount}};function composeStory(story,componentAnnotations,projectAnnotations,exportsName){let composedStory=composeStory$1(story,componentAnnotations,projectAnnotations,globalThis.globalProjectAnnotations??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();
7
+ globalThis.STORYBOOK_ENV="svelte";function setProjectAnnotations(projectAnnotations){return setDefaultProjectAnnotations(INTERNAL_DEFAULT_PROJECT_ANNOTATIONS),setProjectAnnotations$1(projectAnnotations)}var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS={...entry_preview_exports,renderToCanvas:(renderContext,canvasElement)=>{if(renderContext.storyContext.testingLibraryRender==null)return renderToCanvas(renderContext,canvasElement);let{storyFn,storyContext:{testingLibraryRender:render}}=renderContext,{Component,props}=storyFn(),{unmount}=render(Component,{props,target:canvasElement});return unmount}};function composeStory(story,componentAnnotations,projectAnnotations,exportsName){let composedStory=composeStory$1(story,componentAnnotations,projectAnnotations,globalThis.globalProjectAnnotations??INTERNAL_DEFAULT_PROJECT_ANNOTATIONS,exportsName),props=createReactiveProps({storyFn:composedStory,storyContext:{...composedStory},name:composedStory.storyName,title:composedStory.id,showError:()=>{}}),renderable={Component:PreviewRender,props};return Object.assign(renderable,composedStory),renderable}function composeStories(csfExports,projectAnnotations){return composeStories$1(csfExports,projectAnnotations,composeStory)}
8
8
 
9
9
  export { INTERNAL_DEFAULT_PROJECT_ANNOTATIONS, composeStories, composeStory, setProjectAnnotations };
@@ -1 +1 @@
1
- export { createPlaywrightTest as createTest } from 'storybook/internal/preview-api';
1
+ export { createPlaywrightTest as createTest } from 'storybook/preview-api';
@@ -1 +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/internal/preview-api");0&&(module.exports={createTest});
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});
@@ -1,2 +1,2 @@
1
1
  import './chunk-CEH6MNVV.mjs';
2
- export { createPlaywrightTest as createTest } from 'storybook/internal/preview-api';
2
+ export { createPlaywrightTest as createTest } from 'storybook/preview-api';
@@ -1,23 +1,27 @@
1
- import { WebRenderer, Canvas } from 'storybook/internal/types';
1
+ import * as svelte from 'svelte';
2
2
  import { SvelteComponent, ComponentEvents, ComponentConstructorOptions } from 'svelte';
3
+ import { WebRenderer, Canvas } from 'storybook/internal/types';
3
4
 
4
5
  type ComponentType<Props extends Record<string, any> = any, Events extends Record<string, any> = any> = new (options: ComponentConstructorOptions<Props>) => {
5
6
  [P in keyof SvelteComponent<Props> as P extends `$$${string}` ? never : P]: SvelteComponent<Props, Events>[P];
6
7
  };
7
- interface SvelteRenderer<C extends SvelteComponent = SvelteComponent> extends WebRenderer {
8
- component: ComponentType<this['T'] extends Record<string, any> ? this['T'] : any>;
9
- storyResult: this['T'] extends Record<string, any> ? SvelteStoryResult<this['T'], ComponentEvents<C>> : SvelteStoryResult;
10
- mount: (Component?: ComponentType, options?: Record<string, any> & {
8
+ type Svelte5ComponentType<Props extends Record<string, any> = any> = typeof svelte extends {
9
+ mount: any;
10
+ } ? svelte.Component<Props, any, any> : never;
11
+ interface SvelteRenderer<C extends SvelteComponent | Svelte5ComponentType = SvelteComponent> extends WebRenderer {
12
+ component: ComponentType<this['T'] extends Record<string, any> ? this['T'] : any> | Svelte5ComponentType<this['T'] extends Record<string, any> ? this['T'] : any>;
13
+ storyResult: this['T'] extends Record<string, any> ? SvelteStoryResult<this['T'], C extends SvelteComponent ? ComponentEvents<C> : {}> : SvelteStoryResult;
14
+ mount: (Component?: ComponentType | Svelte5ComponentType, options?: Record<string, any> & {
11
15
  props: Record<string, any>;
12
16
  }) => Promise<Canvas>;
13
17
  }
14
18
  interface SvelteStoryResult<Props extends Record<string, any> = any, Events extends Record<string, any> = any> {
15
- Component?: ComponentType<Props>;
19
+ Component?: ComponentType<Props> | Svelte5ComponentType<Props>;
16
20
  on?: Record<string, any> extends Events ? Record<string, (event: CustomEvent) => void> : {
17
21
  [K in keyof Events as string extends K ? never : K]?: (event: Events[K]) => void;
18
22
  };
19
23
  props?: Props;
20
- decorator?: ComponentType<Props>;
24
+ decorator?: ComponentType<Props> | Svelte5ComponentType<Props>;
21
25
  }
22
26
 
23
- export { SvelteRenderer as S };
27
+ export { SvelteRenderer as S, Svelte5ComponentType as a };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/svelte",
3
- "version": "9.0.0-alpha.2",
3
+ "version": "9.0.0-alpha.20",
4
4
  "description": "Storybook Svelte renderer",
5
5
  "keywords": [
6
6
  "storybook"
@@ -35,9 +35,9 @@
35
35
  "./dist/entry-preview-docs.mjs": "./dist/entry-preview-docs.mjs",
36
36
  "./package.json": "./package.json",
37
37
  "./internal/PreviewRender.svelte": "./dist/components/PreviewRender.svelte",
38
- "./internal/SlotDecorator.svelte": "./dist/components/SlotDecorator.svelte",
38
+ "./internal/DecoratorHandler.svelte": "./dist/components/DecoratorHandler.svelte",
39
39
  "./internal/AddStorybookIdDecorator.svelte": "./dist/components/AddStorybookIdDecorator.svelte",
40
- "./internal/createSvelte5Props": "./dist/createSvelte5Props.svelte.js"
40
+ "./internal/createReactiveProps": "./dist/createReactiveProps.svelte.js"
41
41
  },
42
42
  "main": "dist/index.js",
43
43
  "module": "dist/index.mjs",
@@ -65,17 +65,17 @@
65
65
  "@sveltejs/vite-plugin-svelte": "^5.0.3",
66
66
  "@testing-library/svelte": "^5.2.4",
67
67
  "expect-type": "^1.1.0",
68
- "svelte": "^5.19.2",
68
+ "svelte": "^5.20.5",
69
69
  "svelte-check": "^4.1.4",
70
70
  "typescript": "^5.7.3",
71
- "vite": "^6.0.11"
71
+ "vite": "^6.2.5"
72
72
  },
73
73
  "peerDependencies": {
74
- "storybook": "^9.0.0-alpha.2",
75
- "svelte": "^4.0.0 || ^5.0.0"
74
+ "storybook": "^9.0.0-alpha.20",
75
+ "svelte": "^5.0.0"
76
76
  },
77
77
  "engines": {
78
- "node": ">=18.0.0"
78
+ "node": ">=20.0.0"
79
79
  },
80
80
  "publishConfig": {
81
81
  "access": "public"
@@ -1,7 +1,7 @@
1
1
  <script module>
2
2
  import { defineMeta } from '@storybook/addon-svelte-csf';
3
3
  import Button from './Button.svelte';
4
- import { fn } from '@storybook/test';
4
+ import { fn } from 'storybook/test';
5
5
 
6
6
  // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
7
7
  const { Story } = defineMeta({
@@ -16,7 +16,7 @@
16
16
  },
17
17
  },
18
18
  args: {
19
- onClick: fn(),
19
+ onclick: fn(),
20
20
  }
21
21
  });
22
22
  </script>
@@ -2,35 +2,26 @@
2
2
  import './button.css';
3
3
 
4
4
  /**
5
- * Is this the principal call to action on the page?
5
+ * @typedef {Object} Props
6
+ * @property {boolean} [primary] Is this the principal call to action on the page?
7
+ * @property {string} [backgroundColor] What background color to use
8
+ * @property {'small' | 'medium' | 'large'} [size] How large should the button be?
9
+ * @property {string} label Button contents
10
+ * @property {() => void} [onclick] The onclick event handler
6
11
  */
7
- export let primary = false;
8
12
 
9
- /**
10
- * @type {string} What background color to use
11
- */
12
- export let backgroundColor = undefined;
13
-
14
- /**
15
- * @type {'small' | 'medium' | 'large'} How large should the button be?
16
- */
17
- export let size = 'medium';
18
-
19
- /**
20
- * @type {string} Button contents
21
- */
22
- export let label;
23
-
24
- $: mode = primary ? 'storybook-button--primary' : 'storybook-button--secondary';
13
+ /** @type {Props} */
14
+ const { primary = false, backgroundColor, size = 'medium', label, ...props } = $props();
25
15
 
26
- $: style = backgroundColor ? `background-color: ${backgroundColor}` : '';
16
+ let mode = $derived(primary ? 'storybook-button--primary' : 'storybook-button--secondary');
17
+ let style = $derived(backgroundColor ? `background-color: ${backgroundColor}` : '');
27
18
  </script>
28
19
 
29
20
  <button
30
21
  type="button"
31
22
  class={['storybook-button', `storybook-button--${size}`, mode].join(' ')}
32
23
  {style}
33
- on:click
24
+ {...props}
34
25
  >
35
26
  {label}
36
27
  </button>
@@ -1,7 +1,7 @@
1
1
  <script module>
2
2
  import { defineMeta } from '@storybook/addon-svelte-csf';
3
3
  import Header from './Header.svelte';
4
- import { fn } from '@storybook/test';
4
+ import { fn } from 'storybook/test';
5
5
 
6
6
  // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
7
7
  const { Story } = defineMeta({
@@ -2,21 +2,16 @@
2
2
  import './header.css';
3
3
  import Button from './Button.svelte';
4
4
 
5
- import { createEventDispatcher } from 'svelte';
5
+ /**
6
+ * @typedef {Object} Props
7
+ * @property {{name: string}} [user] The user object
8
+ * @property {() => void} [onLogin] The login event handler
9
+ * @property {() => void} [onLogout] The logout event handler
10
+ * @property {() => void} [onCreateAccount] The account creation event handler
11
+ */
6
12
 
7
- export let user = null;
8
-
9
- const dispatch = createEventDispatcher();
10
-
11
- function onLogin(event) {
12
- dispatch('login', event);
13
- }
14
- function onLogout(event) {
15
- dispatch('logout', event);
16
- }
17
- function onCreateAccount(event) {
18
- dispatch('createAccount', event);
19
- }
13
+ /** @type {Props} */
14
+ const { user, onLogin, onLogout, onCreateAccount } = $props();
20
15
  </script>
21
16
 
22
17
  <header>
@@ -42,10 +37,10 @@
42
37
  <span class="welcome">
43
38
  Welcome, <b>{user.name}</b>!
44
39
  </span>
45
- <Button size="small" on:click={onLogout} label="Log out" />
40
+ <Button size="small" onclick={onLogout} label="Log out" />
46
41
  {:else}
47
- <Button size="small" on:click={onLogin} label="Log in" />
48
- <Button primary size="small" on:click={onCreateAccount} label="Sign up" />
42
+ <Button size="small" onclick={onLogin} label="Log in" />
43
+ <Button primary size="small" onclick={onCreateAccount} label="Sign up" />
49
44
  {/if}
50
45
  </div>
51
46
  </div>
@@ -1,8 +1,8 @@
1
1
  <script module>
2
2
  import { defineMeta } from '@storybook/addon-svelte-csf';
3
- import { expect, userEvent, waitFor, within } from '@storybook/test';
3
+ import { expect, userEvent, waitFor, within } from 'storybook/test';
4
4
  import Page from './Page.svelte';
5
- import { fn } from '@storybook/test';
5
+ import { fn } from 'storybook/test';
6
6
 
7
7
  // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
8
8
  const { Story } = defineMeta({
@@ -2,15 +2,15 @@
2
2
  import './page.css';
3
3
  import Header from './Header.svelte';
4
4
 
5
- let user = null;
5
+ let user = $state(null);
6
6
  </script>
7
7
 
8
8
  <article>
9
9
  <Header
10
10
  {user}
11
- on:login={() => (user = { name: 'Jane Doe' })}
12
- on:logout={() => (user = null)}
13
- on:createAccount={() => (user = { name: 'Jane Doe' })}
11
+ onLogin={() => (user = { name: 'Jane Doe' })}
12
+ onLogout={() => (user = null)}
13
+ onCreateAccount={() => (user = { name: 'Jane Doe' })}
14
14
  />
15
15
 
16
16
  <section class="storybook-page">
@@ -1,7 +1,7 @@
1
1
  <script module>
2
2
  import { defineMeta } from '@storybook/addon-svelte-csf';
3
3
  import Button from './Button.svelte';
4
- import { fn } from '@storybook/test';
4
+ import { fn } from 'storybook/test';
5
5
 
6
6
  // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
7
7
  const { Story } = defineMeta({
@@ -16,7 +16,7 @@
16
16
  },
17
17
  },
18
18
  args: {
19
- onClick: fn(),
19
+ onclick: fn(),
20
20
  }
21
21
  });
22
22
  </script>