1 | import { WebRenderer, Canvas } from 'storybook/internal/types';
|
2 | import { SvelteComponent, ComponentEvents, ComponentConstructorOptions } from 'svelte';
|
3 |
|
4 | type 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 | };
|
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> & {
|
11 | props: Record<string, any>;
|
12 | }) => Promise<Canvas>;
|
13 | }
|
14 | interface 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 |
|
23 | export { SvelteRenderer as S };
|