UNPKG

1.31 kBTypeScriptView Raw
1import { WebRenderer, Canvas } from 'storybook/internal/types';
2import { SvelteComponent, ComponentEvents, ComponentConstructorOptions } from 'svelte';
3
4type ComponentType<Props extends Record<string, any> = any, Events extends Record<string, any> = any> = new (options: ComponentConstructorOptions<Props>) => {
5 [P in keyof SvelteComponent<Props> as P extends `$$${string}` ? never : P]: SvelteComponent<Props, Events>[P];
6};
7interface 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> & {
11 props: Record<string, any>;
12 }) => Promise<Canvas>;
13}
14interface SvelteStoryResult<Props extends Record<string, any> = any, Events extends Record<string, any> = any> {
15 Component?: ComponentType<Props>;
16 on?: Record<string, any> extends Events ? Record<string, (event: CustomEvent) => void> : {
17 [K in keyof Events as string extends K ? never : K]?: (event: Events[K]) => void;
18 };
19 props?: Props;
20 decorator?: ComponentType<Props>;
21}
22
23export { SvelteRenderer as S };