@storybook/svelte 9.0.0-alpha.1 → 9.0.0-alpha.10
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.
- package/dist/{chunk-2VFJ3RAK.mjs → chunk-XMMNDRKT.mjs} +1 -1
- package/dist/entry-preview-docs.d.ts +1 -1
- package/dist/entry-preview-docs.js +1 -1
- package/dist/entry-preview-docs.mjs +1 -1
- package/dist/entry-preview.d.ts +1 -1
- package/dist/entry-preview.js +1 -1
- package/dist/entry-preview.mjs +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.js +1 -1
- package/dist/index.mjs +2 -2
- package/dist/playwright.d.ts +1 -1
- package/dist/playwright.js +1 -1
- package/dist/playwright.mjs +1 -1
- package/dist/{types-3695f681.d.ts → types-b7d0039b.d.ts} +12 -8
- package/package.json +2 -6
- package/template/cli/js/Page.stories.js +1 -1
- package/template/cli/svelte-5-js/Button.stories.svelte +1 -1
- package/template/cli/svelte-5-js/Header.stories.svelte +1 -1
- package/template/cli/svelte-5-js/Page.stories.svelte +2 -2
- package/template/cli/svelte-5-ts-3-8/Button.stories.svelte +1 -1
- package/template/cli/svelte-5-ts-3-8/Header.stories.svelte +1 -1
- package/template/cli/svelte-5-ts-3-8/Page.stories.svelte +2 -2
- package/template/cli/svelte-5-ts-4-9/Button.stories.svelte +1 -1
- package/template/cli/svelte-5-ts-4-9/Header.stories.svelte +1 -1
- package/template/cli/svelte-5-ts-4-9/Page.stories.svelte +2 -2
- package/template/cli/ts-4-9/Page.stories.ts +2 -1
- package/template/stories/args.stories.js +2 -2
- package/template/cli/ts-3-8/Button.stories.ts +0 -48
- package/template/cli/ts-3-8/Button.svelte +0 -34
- package/template/cli/ts-3-8/Header.stories.ts +0 -27
- package/template/cli/ts-3-8/Header.svelte +0 -52
- package/template/cli/ts-3-8/Page.stories.ts +0 -32
- package/template/cli/ts-3-8/Page.svelte +0 -70
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __export } from './chunk-CEH6MNVV.mjs';
|
|
2
2
|
import { RESET_STORY_ARGS } from 'storybook/internal/core-events';
|
|
3
|
-
import { addons, sanitizeStoryContextUpdate } from 'storybook/internal/preview-api';
|
|
4
3
|
import PreviewRender from '@storybook/svelte/internal/PreviewRender.svelte';
|
|
5
4
|
import { createSvelte5Props } from '@storybook/svelte/internal/createSvelte5Props';
|
|
5
|
+
import { addons, sanitizeStoryContextUpdate } from 'storybook/preview-api';
|
|
6
6
|
import * as svelte from 'svelte';
|
|
7
7
|
import { VERSION } from 'svelte/compiler';
|
|
8
8
|
import SlotDecorator from '@storybook/svelte/internal/SlotDecorator.svelte';
|
|
@@ -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-
|
|
3
|
+
import { S as SvelteRenderer } from './types-b7d0039b.js';
|
|
4
4
|
import 'svelte';
|
|
5
5
|
|
|
6
6
|
declare const parameters: {
|
|
@@ -1,6 +1,6 @@
|
|
|
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/
|
|
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}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './chunk-CEH6MNVV.mjs';
|
|
2
2
|
import { enhanceArgTypes, SNIPPET_RENDERED, SourceType } from 'storybook/internal/docs-tools';
|
|
3
3
|
import { logger, deprecate } from 'storybook/internal/client-logger';
|
|
4
|
-
import { addons, useEffect } from 'storybook/
|
|
4
|
+
import { addons, useEffect } 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
|
|
package/dist/entry-preview.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RenderContext, ArgsStoryFn, BaseAnnotations } from 'storybook/internal/types';
|
|
2
|
-
import { S as SvelteRenderer } from './types-
|
|
2
|
+
import { S as SvelteRenderer } from './types-b7d0039b.js';
|
|
3
3
|
import 'svelte';
|
|
4
4
|
|
|
5
5
|
declare function renderToCanvas(renderContext: RenderContext<SvelteRenderer>, canvasElement: SvelteRenderer['canvasElement']): () => void;
|
package/dist/entry-preview.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 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"),
|
|
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_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_SlotDecorator=__toESM(require("@storybook/svelte/internal/SlotDecorator.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_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});
|
package/dist/entry-preview.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { decorateStory as applyDecorators, mount, parameters, render, renderToCanvas } from './chunk-
|
|
1
|
+
export { decorateStory as applyDecorators, mount, parameters, render, renderToCanvas } from './chunk-XMMNDRKT.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,
|
|
3
|
+
import { SvelteComponent, ComponentProps, ComponentType } from 'svelte';
|
|
4
4
|
import { Simplify, SetOptional } from 'type-fest';
|
|
5
|
-
import { S as SvelteRenderer } from './types-
|
|
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
|
|
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
|
|
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_createSvelte5Props2=require("@storybook/svelte/internal/createSvelte5Props"),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_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_SlotDecorator=__toESM(require("@storybook/svelte/internal/SlotDecorator.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_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});
|
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { entry_preview_exports, renderToCanvas, IS_SVELTE_V4 } from './chunk-
|
|
1
|
+
import { entry_preview_exports, renderToCanvas, IS_SVELTE_V4 } from './chunk-XMMNDRKT.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
4
|
import { createSvelte5Props } from '@storybook/svelte/internal/createSvelte5Props';
|
|
5
|
+
import { setDefaultProjectAnnotations, setProjectAnnotations as setProjectAnnotations$1, composeStory as composeStory$1, composeStories as composeStories$1 } from 'storybook/preview-api';
|
|
6
6
|
|
|
7
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();
|
|
8
8
|
|
package/dist/playwright.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { createPlaywrightTest as createTest } from 'storybook/
|
|
1
|
+
export { createPlaywrightTest as createTest } from 'storybook/preview-api';
|
package/dist/playwright.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 __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/
|
|
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});
|
package/dist/playwright.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import './chunk-CEH6MNVV.mjs';
|
|
2
|
-
export { createPlaywrightTest as createTest } from 'storybook/
|
|
2
|
+
export { createPlaywrightTest as createTest } from 'storybook/preview-api';
|
|
@@ -1,23 +1,27 @@
|
|
|
1
|
-
import
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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.
|
|
3
|
+
"version": "9.0.0-alpha.10",
|
|
4
4
|
"description": "Storybook Svelte renderer",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"storybook"
|
|
@@ -55,12 +55,8 @@
|
|
|
55
55
|
"prep": "jiti ../../../scripts/prepare/bundle.ts"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@storybook/components": "9.0.0-alpha.1",
|
|
59
58
|
"@storybook/csf": "0.1.12",
|
|
60
59
|
"@storybook/global": "^5.0.0",
|
|
61
|
-
"@storybook/manager-api": "9.0.0-alpha.1",
|
|
62
|
-
"@storybook/preview-api": "9.0.0-alpha.1",
|
|
63
|
-
"@storybook/theming": "9.0.0-alpha.1",
|
|
64
60
|
"sveltedoc-parser": "^4.2.1",
|
|
65
61
|
"ts-dedent": "^2.0.0",
|
|
66
62
|
"type-fest": "~2.19"
|
|
@@ -75,7 +71,7 @@
|
|
|
75
71
|
"vite": "^6.0.11"
|
|
76
72
|
},
|
|
77
73
|
"peerDependencies": {
|
|
78
|
-
"storybook": "^9.0.0-alpha.
|
|
74
|
+
"storybook": "^9.0.0-alpha.10",
|
|
79
75
|
"svelte": "^4.0.0 || ^5.0.0"
|
|
80
76
|
},
|
|
81
77
|
"engines": {
|
|
@@ -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 '
|
|
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({
|
|
@@ -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 '
|
|
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({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script module>
|
|
2
2
|
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
-
import { expect, userEvent, waitFor, within } from '
|
|
3
|
+
import { expect, userEvent, waitFor, within } from 'storybook/test';
|
|
4
4
|
import Page from './Page.svelte';
|
|
5
|
-
import { fn } from '
|
|
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({
|
|
@@ -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 '
|
|
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({
|
|
@@ -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 '
|
|
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({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script module>
|
|
2
2
|
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
-
import { expect, userEvent, waitFor, within } from '
|
|
3
|
+
import { expect, userEvent, waitFor, within } from 'storybook/test';
|
|
4
4
|
import Page from './Page.svelte';
|
|
5
|
-
import { fn } from '
|
|
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({
|
|
@@ -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 '
|
|
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({
|
|
@@ -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 '
|
|
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({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script module>
|
|
2
2
|
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
-
import { expect, userEvent, waitFor, within } from '
|
|
3
|
+
import { expect, userEvent, waitFor, within } from 'storybook/test';
|
|
4
4
|
import Page from './Page.svelte';
|
|
5
|
-
import { fn } from '
|
|
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({
|
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
STORY_RENDERED,
|
|
4
4
|
UPDATE_STORY_ARGS,
|
|
5
5
|
} from 'storybook/internal/core-events';
|
|
6
|
-
import { addons } from 'storybook/internal/preview-api';
|
|
7
6
|
|
|
8
|
-
import {
|
|
7
|
+
import { addons } from 'storybook/preview-api';
|
|
8
|
+
import { expect, userEvent, waitFor, within } from 'storybook/test';
|
|
9
9
|
|
|
10
10
|
import ButtonView from './views/ButtonJavaScript.svelte';
|
|
11
11
|
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/svelte';
|
|
2
|
-
|
|
3
|
-
import Button from './Button.svelte';
|
|
4
|
-
|
|
5
|
-
// More on how to set up stories at: https://storybook.js.org/docs/writing-stories
|
|
6
|
-
const meta: Meta<Button> = {
|
|
7
|
-
title: 'Example/Button',
|
|
8
|
-
component: Button,
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
argTypes: {
|
|
11
|
-
backgroundColor: { control: 'color' },
|
|
12
|
-
size: {
|
|
13
|
-
control: { type: 'select' },
|
|
14
|
-
options: ['small', 'medium', 'large'],
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export default meta;
|
|
20
|
-
type Story = StoryObj<Button>;
|
|
21
|
-
|
|
22
|
-
// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
|
|
23
|
-
export const Primary: Story = {
|
|
24
|
-
args: {
|
|
25
|
-
primary: true,
|
|
26
|
-
label: 'Button',
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export const Secondary: Story = {
|
|
31
|
-
args: {
|
|
32
|
-
label: 'Button',
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
export const Large: Story = {
|
|
37
|
-
args: {
|
|
38
|
-
size: 'large',
|
|
39
|
-
label: 'Button',
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
export const Small: Story = {
|
|
44
|
-
args: {
|
|
45
|
-
size: 'small',
|
|
46
|
-
label: 'Button',
|
|
47
|
-
},
|
|
48
|
-
};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import './button.css';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Is this the principal call to action on the page?
|
|
6
|
-
*/
|
|
7
|
-
export let primary = false;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* What background color to use
|
|
11
|
-
*/
|
|
12
|
-
export let backgroundColor: string | undefined = undefined;
|
|
13
|
-
/**
|
|
14
|
-
* How large should the button be?
|
|
15
|
-
*/
|
|
16
|
-
export let size: 'small' | 'medium' | 'large' = 'medium';
|
|
17
|
-
/**
|
|
18
|
-
* Button contents
|
|
19
|
-
*/
|
|
20
|
-
export let label = '';
|
|
21
|
-
|
|
22
|
-
$: mode = primary ? 'storybook-button--primary' : 'storybook-button--secondary';
|
|
23
|
-
|
|
24
|
-
$: style = backgroundColor ? `background-color: ${backgroundColor}` : '';
|
|
25
|
-
</script>
|
|
26
|
-
|
|
27
|
-
<button
|
|
28
|
-
type="button"
|
|
29
|
-
class={['storybook-button', `storybook-button--${size}`, mode].join(' ')}
|
|
30
|
-
{style}
|
|
31
|
-
on:click
|
|
32
|
-
>
|
|
33
|
-
{label}
|
|
34
|
-
</button>
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/svelte';
|
|
2
|
-
|
|
3
|
-
import Header from './Header.svelte';
|
|
4
|
-
|
|
5
|
-
const meta: Meta<Header> = {
|
|
6
|
-
title: 'Example/Header',
|
|
7
|
-
component: Header,
|
|
8
|
-
// This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
|
|
9
|
-
tags: ['autodocs'],
|
|
10
|
-
parameters: {
|
|
11
|
-
// More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
|
|
12
|
-
layout: 'fullscreen',
|
|
13
|
-
},
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export default meta;
|
|
17
|
-
type Story = StoryObj<Header>;
|
|
18
|
-
|
|
19
|
-
export const LoggedIn: Story = {
|
|
20
|
-
args: {
|
|
21
|
-
user: {
|
|
22
|
-
name: 'Jane Doe',
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export const LoggedOut: Story = {};
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import './header.css';
|
|
3
|
-
import Button from './Button.svelte';
|
|
4
|
-
|
|
5
|
-
import { createEventDispatcher } from 'svelte';
|
|
6
|
-
|
|
7
|
-
export let user: { name: string } | null = null;
|
|
8
|
-
|
|
9
|
-
const dispatch = createEventDispatcher();
|
|
10
|
-
|
|
11
|
-
function onLogin(event: MouseEvent) {
|
|
12
|
-
dispatch('login', event);
|
|
13
|
-
}
|
|
14
|
-
function onLogout(event: MouseEvent) {
|
|
15
|
-
dispatch('logout', event);
|
|
16
|
-
}
|
|
17
|
-
function onCreateAccount(event: MouseEvent) {
|
|
18
|
-
dispatch('createAccount', event);
|
|
19
|
-
}
|
|
20
|
-
</script>
|
|
21
|
-
|
|
22
|
-
<header>
|
|
23
|
-
<div class="storybook-header">
|
|
24
|
-
<div>
|
|
25
|
-
<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
|
26
|
-
<g fill="none" fill-rule="evenodd">
|
|
27
|
-
<path
|
|
28
|
-
d="M10 0h12a10 10 0 0110 10v12a10 10 0 01-10 10H10A10 10 0 010 22V10A10 10 0 0110 0z"
|
|
29
|
-
fill="#FFF"
|
|
30
|
-
/>
|
|
31
|
-
<path
|
|
32
|
-
d="M5.3 10.6l10.4 6v11.1l-10.4-6v-11zm11.4-6.2l9.7 5.5-9.7 5.6V4.4z"
|
|
33
|
-
fill="#555AB9"
|
|
34
|
-
/>
|
|
35
|
-
<path d="M27.2 10.6v11.2l-10.5 6V16.5l10.5-6zM15.7 4.4v11L6 10l9.7-5.5z" fill="#91BAF8" />
|
|
36
|
-
</g>
|
|
37
|
-
</svg>
|
|
38
|
-
<h1>Acme</h1>
|
|
39
|
-
</div>
|
|
40
|
-
<div>
|
|
41
|
-
{#if user}
|
|
42
|
-
<span class="welcome">
|
|
43
|
-
Welcome, <b>{user.name}</b>!
|
|
44
|
-
</span>
|
|
45
|
-
<Button size="small" on:click={onLogout} label="Log out" />
|
|
46
|
-
{:else}
|
|
47
|
-
<Button size="small" on:click={onLogin} label="Log in" />
|
|
48
|
-
<Button primary size="small" on:click={onCreateAccount} label="Sign up" />
|
|
49
|
-
{/if}
|
|
50
|
-
</div>
|
|
51
|
-
</div>
|
|
52
|
-
</header>
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from '@storybook/svelte';
|
|
2
|
-
import { expect, userEvent, waitFor, within } from '@storybook/test';
|
|
3
|
-
|
|
4
|
-
import Page from './Page.svelte';
|
|
5
|
-
|
|
6
|
-
const meta: Meta<Page> = {
|
|
7
|
-
title: 'Example/Page',
|
|
8
|
-
component: Page,
|
|
9
|
-
parameters: {
|
|
10
|
-
// More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
|
|
11
|
-
layout: 'fullscreen',
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export default meta;
|
|
16
|
-
type Story = StoryObj<Page>;
|
|
17
|
-
|
|
18
|
-
export const LoggedOut: Story = {};
|
|
19
|
-
|
|
20
|
-
// More on component testing: https://storybook.js.org/docs/writing-tests/component-testing
|
|
21
|
-
export const LoggedIn: Story = {
|
|
22
|
-
play: async ({ canvasElement }) => {
|
|
23
|
-
const canvas = within(canvasElement);
|
|
24
|
-
const loginButton = canvas.getByRole('button', { name: /Log in/i });
|
|
25
|
-
await expect(loginButton).toBeInTheDocument();
|
|
26
|
-
await userEvent.click(loginButton);
|
|
27
|
-
await waitFor(() => expect(loginButton).not.toBeInTheDocument());
|
|
28
|
-
|
|
29
|
-
const logoutButton = canvas.getByRole('button', { name: /Log out/i });
|
|
30
|
-
await expect(logoutButton).toBeInTheDocument();
|
|
31
|
-
},
|
|
32
|
-
};
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import './page.css';
|
|
3
|
-
import Header from './Header.svelte';
|
|
4
|
-
|
|
5
|
-
let user: { name: string } | null = null;
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
|
-
<article>
|
|
9
|
-
<Header
|
|
10
|
-
{user}
|
|
11
|
-
on:login={() => (user = { name: 'Jane Doe' })}
|
|
12
|
-
on:logout={() => (user = null)}
|
|
13
|
-
on:createAccount={() => (user = { name: 'Jane Doe' })}
|
|
14
|
-
/>
|
|
15
|
-
|
|
16
|
-
<section class="storybook-page">
|
|
17
|
-
<h2>Pages in Storybook</h2>
|
|
18
|
-
<p>
|
|
19
|
-
We recommend building UIs with a
|
|
20
|
-
<a
|
|
21
|
-
href="https://blog.hichroma.com/component-driven-development-ce1109d56c8e"
|
|
22
|
-
target="_blank"
|
|
23
|
-
rel="noopener noreferrer"
|
|
24
|
-
>
|
|
25
|
-
<strong>component-driven</strong>
|
|
26
|
-
</a>
|
|
27
|
-
process starting with atomic components and ending with pages.
|
|
28
|
-
</p>
|
|
29
|
-
<p>
|
|
30
|
-
Render pages with mock data. This makes it easy to build and review page states without
|
|
31
|
-
needing to navigate to them in your app. Here are some handy patterns for managing page data
|
|
32
|
-
in Storybook:
|
|
33
|
-
</p>
|
|
34
|
-
<ul>
|
|
35
|
-
<li>
|
|
36
|
-
Use a higher-level connected component. Storybook helps you compose such data from the
|
|
37
|
-
"args" of child component stories
|
|
38
|
-
</li>
|
|
39
|
-
<li>
|
|
40
|
-
Assemble data in the page component from your services. You can mock these services out
|
|
41
|
-
using Storybook.
|
|
42
|
-
</li>
|
|
43
|
-
</ul>
|
|
44
|
-
<p>
|
|
45
|
-
Get a guided tutorial on component-driven development at
|
|
46
|
-
<a href="https://storybook.js.org/tutorials/" target="_blank" rel="noopener noreferrer">
|
|
47
|
-
Storybook tutorials
|
|
48
|
-
</a>
|
|
49
|
-
. Read more in the
|
|
50
|
-
<a href="https://storybook.js.org/docs" target="_blank" rel="noopener noreferrer">docs</a>
|
|
51
|
-
.
|
|
52
|
-
</p>
|
|
53
|
-
<div class="tip-wrapper">
|
|
54
|
-
<span class="tip">Tip</span>
|
|
55
|
-
Adjust the width of the canvas with the
|
|
56
|
-
<svg width="10" height="10" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg">
|
|
57
|
-
<g fill="none" fill-rule="evenodd">
|
|
58
|
-
<path
|
|
59
|
-
d="M1.5 5.2h4.8c.3 0 .5.2.5.4v5.1c-.1.2-.3.3-.4.3H1.4a.5.5 0
|
|
60
|
-
01-.5-.4V5.7c0-.3.2-.5.5-.5zm0-2.1h6.9c.3 0 .5.2.5.4v7a.5.5 0 01-1 0V4H1.5a.5.5 0
|
|
61
|
-
010-1zm0-2.1h9c.3 0 .5.2.5.4v9.1a.5.5 0 01-1 0V2H1.5a.5.5 0 010-1zm4.3 5.2H2V10h3.8V6.2z"
|
|
62
|
-
id="a"
|
|
63
|
-
fill="#999"
|
|
64
|
-
/>
|
|
65
|
-
</g>
|
|
66
|
-
</svg>
|
|
67
|
-
Viewports addon in the toolbar
|
|
68
|
-
</div>
|
|
69
|
-
</section>
|
|
70
|
-
</article>
|