@storybook/sveltekit 9.0.0-alpha.0 → 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-REI2Y3HY.mjs → chunk-UUT6FZ4K.mjs} +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +3 -2
- package/dist/preview.js +1 -1
- package/dist/preview.mjs +1 -1
- package/package.json +6 -6
- package/template/cli/js/Button.stories.js +43 -0
- package/template/cli/js/Button.svelte +36 -0
- package/template/cli/js/Header.stories.js +22 -0
- package/template/cli/js/Header.svelte +52 -0
- package/template/cli/js/Page.stories.js +28 -0
- package/template/cli/js/Page.svelte +70 -0
- package/template/cli/svelte-5-js/Button.stories.svelte +31 -0
- package/template/cli/svelte-5-js/Button.svelte +26 -0
- package/template/cli/svelte-5-js/Header.stories.svelte +26 -0
- package/template/cli/svelte-5-js/Header.svelte +47 -0
- package/template/cli/svelte-5-js/Page.stories.svelte +30 -0
- package/template/cli/svelte-5-js/Page.svelte +70 -0
- package/template/cli/svelte-5-ts-3-8/Button.stories.svelte +31 -0
- package/template/cli/svelte-5-ts-3-8/Button.svelte +29 -0
- package/template/cli/svelte-5-ts-3-8/Header.stories.svelte +26 -0
- package/template/cli/svelte-5-ts-3-8/Header.svelte +45 -0
- package/template/cli/svelte-5-ts-3-8/Page.stories.svelte +30 -0
- package/template/cli/svelte-5-ts-3-8/Page.svelte +70 -0
- package/template/cli/svelte-5-ts-4-9/Button.stories.svelte +31 -0
- package/template/cli/svelte-5-ts-4-9/Button.svelte +29 -0
- package/template/cli/svelte-5-ts-4-9/Header.stories.svelte +26 -0
- package/template/cli/svelte-5-ts-4-9/Header.svelte +45 -0
- package/template/cli/svelte-5-ts-4-9/Page.stories.svelte +30 -0
- package/template/cli/svelte-5-ts-4-9/Page.svelte +70 -0
- package/template/cli/ts-4-9/Button.stories.ts +48 -0
- package/template/cli/ts-4-9/Button.svelte +34 -0
- package/template/cli/ts-4-9/Header.stories.ts +27 -0
- package/template/cli/ts-4-9/Header.svelte +52 -0
- package/template/cli/ts-4-9/Page.stories.ts +32 -0
- package/template/cli/ts-4-9/Page.svelte +70 -0
- package/template/stories_svelte-kit-prerelease-ts/DocsJSDocRunes.svelte +55 -0
- package/template/stories_svelte-kit-prerelease-ts/DocsTSInlinePropTypes.svelte +114 -0
- package/template/stories_svelte-kit-prerelease-ts/DocsTSLegacy.svelte +102 -0
- package/template/stories_svelte-kit-prerelease-ts/DocsTSReferencedPropTypes.svelte +118 -0
- package/template/stories_svelte-kit-prerelease-ts/Forms.svelte +7 -0
- package/template/stories_svelte-kit-prerelease-ts/Hrefs.svelte +8 -0
- package/template/stories_svelte-kit-prerelease-ts/Navigation.svelte +37 -0
- package/template/stories_svelte-kit-prerelease-ts/Stores.svelte +17 -0
- package/template/stories_svelte-kit-prerelease-ts/forms.stories.js +1 -1
- package/template/stories_svelte-kit-prerelease-ts/hrefs.stories.js +1 -1
- package/template/stories_svelte-kit-prerelease-ts/navigation.stories.js +1 -1
- package/template/stories_svelte-kit-prerelease-ts/types.ts +7 -0
- package/template/stories_svelte-kit-skeleton-js/Environment.svelte +8 -0
- package/template/stories_svelte-kit-skeleton-js/Forms.svelte +7 -0
- package/template/stories_svelte-kit-skeleton-js/Hrefs.svelte +8 -0
- package/template/stories_svelte-kit-skeleton-js/Navigation.svelte +38 -0
- package/template/stories_svelte-kit-skeleton-js/Paths.svelte +6 -0
- package/template/stories_svelte-kit-skeleton-js/Stores.svelte +17 -0
- package/template/stories_svelte-kit-skeleton-js/environment.stories.js +1 -1
- package/template/stories_svelte-kit-skeleton-js/forms.stories.js +1 -1
- package/template/stories_svelte-kit-skeleton-js/hrefs.stories.js +1 -1
- package/template/stories_svelte-kit-skeleton-js/navigation.stories.js +1 -1
- package/template/stories_svelte-kit-skeleton-js/paths.stories.js +1 -1
- package/template/stories_svelte-kit-skeleton-ts/DocsTS.svelte +97 -0
- package/template/stories_svelte-kit-skeleton-ts/Environment.svelte +8 -0
- package/template/stories_svelte-kit-skeleton-ts/Forms.svelte +7 -0
- package/template/stories_svelte-kit-skeleton-ts/Hrefs.svelte +8 -0
- package/template/stories_svelte-kit-skeleton-ts/Navigation.svelte +37 -0
- package/template/stories_svelte-kit-skeleton-ts/Paths.svelte +6 -0
- package/template/stories_svelte-kit-skeleton-ts/Stores.svelte +17 -0
- package/template/stories_svelte-kit-skeleton-ts/environment.stories.js +1 -1
- package/template/stories_svelte-kit-skeleton-ts/forms.stories.js +1 -1
- package/template/stories_svelte-kit-skeleton-ts/hrefs.stories.js +1 -1
- package/template/stories_svelte-kit-skeleton-ts/navigation.stories.js +1 -1
- package/template/stories_svelte-kit-skeleton-ts/paths.stories.js +1 -1
- package/template/stories_svelte-kit-skeleton-ts/types.ts +7 -0
|
@@ -0,0 +1,70 @@
|
|
|
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>
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
/**
|
|
3
|
+
* @typedef {Object} MyObject
|
|
4
|
+
* @property {string} foo
|
|
5
|
+
* @property {number} bar
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @typedef {Object} MyProps
|
|
10
|
+
* @property {boolean=} boolean Boolean
|
|
11
|
+
* @property {string=} string String
|
|
12
|
+
* @property {string} stringRequired String (required)
|
|
13
|
+
* @property {number=} number Number
|
|
14
|
+
* @property {true=} trueLiteral True literal
|
|
15
|
+
* @property {symbol=} symbol Symbol
|
|
16
|
+
* @property {null=} nullValue Null
|
|
17
|
+
* @property {undefined=} undefinedValue Undefined
|
|
18
|
+
* @property {any=} any Any
|
|
19
|
+
* @property {import("./types").LiteralStrings=} unionLiteralStrings Union of literal strings
|
|
20
|
+
* @property {import("./types").LiteralNumbers=} unionLiteralNumbers Union of literal numbers
|
|
21
|
+
* @property {MyObject=} object Object
|
|
22
|
+
* @property {{ foo: string, bar: number }=} inlineObject Inline object
|
|
23
|
+
* @property {Record<string, number> =} record Record
|
|
24
|
+
* @property {Date=} date Date
|
|
25
|
+
* @property {number | string =} unionTypes Union of types
|
|
26
|
+
* @property {{ a: number } & { b: string } =} intersection Intersection of types
|
|
27
|
+
* @property {import("svelte").Snippet} children Snippet contents
|
|
28
|
+
* @property {(event: MouseEvent) => number =} func Event callback function
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
/** @type {MyProps} */
|
|
32
|
+
let {
|
|
33
|
+
boolean = true,
|
|
34
|
+
string = 'default',
|
|
35
|
+
stringRequired,
|
|
36
|
+
number = 123,
|
|
37
|
+
trueLiteral = undefined,
|
|
38
|
+
symbol = undefined,
|
|
39
|
+
nullValue = null,
|
|
40
|
+
undefinedValue = undefined,
|
|
41
|
+
any = undefined,
|
|
42
|
+
unionLiteralStrings = 'apple',
|
|
43
|
+
unionLiteralNumbers = 1000,
|
|
44
|
+
object = undefined,
|
|
45
|
+
inlineObject = undefined,
|
|
46
|
+
record = { a: 1, b: 2 },
|
|
47
|
+
date = new Date('20 Jan 1983'),
|
|
48
|
+
unionTypes = 123,
|
|
49
|
+
intersection = undefined,
|
|
50
|
+
children,
|
|
51
|
+
func = () => 10,
|
|
52
|
+
} = $props();
|
|
53
|
+
</script>
|
|
54
|
+
|
|
55
|
+
<div>Docs: JSDoc + Runes</div>
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import type { LiteralNumbers, LiteralStrings } from './types';
|
|
4
|
+
import { MyEnum } from './types';
|
|
5
|
+
|
|
6
|
+
type MyObject = {
|
|
7
|
+
foo: string;
|
|
8
|
+
bar: number;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
let {
|
|
12
|
+
boolean = true,
|
|
13
|
+
string = 'default',
|
|
14
|
+
stringRequired,
|
|
15
|
+
number = 123,
|
|
16
|
+
nullValue = null,
|
|
17
|
+
arrayOfNumbers = [1, 20, 300],
|
|
18
|
+
enumValue = MyEnum.FOO,
|
|
19
|
+
record = { a: 1, b: 2 },
|
|
20
|
+
date = new Date('20 Jan 1983'),
|
|
21
|
+
unionTypes = 123,
|
|
22
|
+
func = () => 10,
|
|
23
|
+
}: {
|
|
24
|
+
/**
|
|
25
|
+
* Boolean
|
|
26
|
+
*/
|
|
27
|
+
boolean?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* String
|
|
30
|
+
*/
|
|
31
|
+
string?: string;
|
|
32
|
+
/**
|
|
33
|
+
* String (required)
|
|
34
|
+
*/
|
|
35
|
+
stringRequired: string;
|
|
36
|
+
/**
|
|
37
|
+
* Number
|
|
38
|
+
*/
|
|
39
|
+
number?: number;
|
|
40
|
+
/**
|
|
41
|
+
* True literal
|
|
42
|
+
*/
|
|
43
|
+
trueLiteral?: true;
|
|
44
|
+
/**
|
|
45
|
+
* Symbol
|
|
46
|
+
*/
|
|
47
|
+
symbol?: symbol;
|
|
48
|
+
/**
|
|
49
|
+
* Null
|
|
50
|
+
*/
|
|
51
|
+
nullValue?: null;
|
|
52
|
+
/**
|
|
53
|
+
* Undefined
|
|
54
|
+
*/
|
|
55
|
+
undefinedValue?: undefined;
|
|
56
|
+
/**
|
|
57
|
+
* Any
|
|
58
|
+
*/
|
|
59
|
+
any?: any;
|
|
60
|
+
/**
|
|
61
|
+
* Array of numbers
|
|
62
|
+
*/
|
|
63
|
+
arrayOfNumbers?: number[];
|
|
64
|
+
/**
|
|
65
|
+
* Enum
|
|
66
|
+
*/
|
|
67
|
+
enumValue?: MyEnum;
|
|
68
|
+
/**
|
|
69
|
+
* Union of literal strings
|
|
70
|
+
*/
|
|
71
|
+
unionLiteralStrings?: LiteralStrings;
|
|
72
|
+
/**
|
|
73
|
+
* Union of literal numbers
|
|
74
|
+
*/
|
|
75
|
+
unionLiteralNumbers?: LiteralNumbers;
|
|
76
|
+
/**
|
|
77
|
+
* Object
|
|
78
|
+
*/
|
|
79
|
+
object?: MyObject;
|
|
80
|
+
/**
|
|
81
|
+
* Inline object
|
|
82
|
+
*/
|
|
83
|
+
inlineObject?: {
|
|
84
|
+
foo: string;
|
|
85
|
+
bar: number;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Record
|
|
89
|
+
*/
|
|
90
|
+
record?: Record<string, number>;
|
|
91
|
+
/**
|
|
92
|
+
* Date
|
|
93
|
+
*/
|
|
94
|
+
date?: Date;
|
|
95
|
+
/**
|
|
96
|
+
* Union of types
|
|
97
|
+
*/
|
|
98
|
+
unionTypes?: number | string;
|
|
99
|
+
/**
|
|
100
|
+
* Intersection of types
|
|
101
|
+
*/
|
|
102
|
+
intersection?: { a: number } & { b: string };
|
|
103
|
+
/**
|
|
104
|
+
* Snippet contents
|
|
105
|
+
*/
|
|
106
|
+
children: Snippet;
|
|
107
|
+
/**
|
|
108
|
+
* Event callback function
|
|
109
|
+
*/
|
|
110
|
+
func?: (event: MouseEvent) => number;
|
|
111
|
+
} = $props();
|
|
112
|
+
</script>
|
|
113
|
+
|
|
114
|
+
<div>Docs: TS + Runes (inline prop types)</div>
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import type { LiteralNumbers, LiteralStrings } from './types';
|
|
4
|
+
import { MyEnum } from './types';
|
|
5
|
+
|
|
6
|
+
type MyObject = {
|
|
7
|
+
foo: string;
|
|
8
|
+
bar: number;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Boolean
|
|
13
|
+
*/
|
|
14
|
+
export let boolean: boolean = true;
|
|
15
|
+
/**
|
|
16
|
+
* String
|
|
17
|
+
*/
|
|
18
|
+
export let string: string = 'default';
|
|
19
|
+
/**
|
|
20
|
+
* String (required)
|
|
21
|
+
*/
|
|
22
|
+
export let stringRequired: string;
|
|
23
|
+
/**
|
|
24
|
+
* Number
|
|
25
|
+
*/
|
|
26
|
+
export let number: number = 123;
|
|
27
|
+
/**
|
|
28
|
+
* True literal
|
|
29
|
+
*/
|
|
30
|
+
export let trueLiteral: true | undefined = undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Symbol
|
|
33
|
+
*/
|
|
34
|
+
export let symbol: symbol | undefined = undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Null
|
|
37
|
+
*/
|
|
38
|
+
export let nullValue: null = null;
|
|
39
|
+
/**
|
|
40
|
+
* Undefined
|
|
41
|
+
*/
|
|
42
|
+
export let undefinedValue: undefined = undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Any
|
|
45
|
+
*/
|
|
46
|
+
export let any: any = null;
|
|
47
|
+
/**
|
|
48
|
+
* Date
|
|
49
|
+
*/
|
|
50
|
+
export let date: Date = new Date('20 Jan 1983');
|
|
51
|
+
/**
|
|
52
|
+
* Array of numbers
|
|
53
|
+
*/
|
|
54
|
+
export let arrayOfNumbers: number[] = [1, 20, 300];
|
|
55
|
+
/**
|
|
56
|
+
* Enum
|
|
57
|
+
*/
|
|
58
|
+
export let enumValue: MyEnum = MyEnum.FOO;
|
|
59
|
+
/**
|
|
60
|
+
* Union of literal strings
|
|
61
|
+
*/
|
|
62
|
+
export let unionLiteralStrings: LiteralStrings = 'apple';
|
|
63
|
+
/**
|
|
64
|
+
* Union of literal numbers
|
|
65
|
+
*/
|
|
66
|
+
export let unionLiteralNumbers: LiteralNumbers = 1000;
|
|
67
|
+
/**
|
|
68
|
+
* Object
|
|
69
|
+
*/
|
|
70
|
+
export let object: MyObject | undefined = undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Inline object
|
|
73
|
+
*/
|
|
74
|
+
export let inlineObject:
|
|
75
|
+
| {
|
|
76
|
+
foo: string;
|
|
77
|
+
bar: number;
|
|
78
|
+
}
|
|
79
|
+
| undefined = undefined;
|
|
80
|
+
/**
|
|
81
|
+
* Record
|
|
82
|
+
*/
|
|
83
|
+
export let record: Record<string, number> = { a: 1, b: 2 };
|
|
84
|
+
/**
|
|
85
|
+
* Union of types
|
|
86
|
+
*/
|
|
87
|
+
export let unionTypes: number | string = 123;
|
|
88
|
+
/**
|
|
89
|
+
* Intersection of types
|
|
90
|
+
*/
|
|
91
|
+
export let intersection: ({ a: number } & { b: string }) | undefined = undefined;
|
|
92
|
+
/**
|
|
93
|
+
* Snippet contents
|
|
94
|
+
*/
|
|
95
|
+
export let children: Snippet;
|
|
96
|
+
/**
|
|
97
|
+
* Event callback function
|
|
98
|
+
*/
|
|
99
|
+
export let func: (event: MouseEvent) => number = () => 10;
|
|
100
|
+
</script>
|
|
101
|
+
|
|
102
|
+
<div>Docs: TS (Non-runes mode)</div>
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import type { LiteralNumbers, LiteralStrings } from './types';
|
|
4
|
+
import { MyEnum } from './types';
|
|
5
|
+
|
|
6
|
+
type MyObject = {
|
|
7
|
+
foo: string;
|
|
8
|
+
bar: number;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
type PropsA = {
|
|
12
|
+
/**
|
|
13
|
+
* Boolean
|
|
14
|
+
*/
|
|
15
|
+
boolean?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* String
|
|
18
|
+
*/
|
|
19
|
+
string?: string;
|
|
20
|
+
/**
|
|
21
|
+
* String (required)
|
|
22
|
+
*/
|
|
23
|
+
stringRequired: string;
|
|
24
|
+
/**
|
|
25
|
+
* Number
|
|
26
|
+
*/
|
|
27
|
+
number?: number;
|
|
28
|
+
};
|
|
29
|
+
type PropsB = {
|
|
30
|
+
/**
|
|
31
|
+
* True literal
|
|
32
|
+
*/
|
|
33
|
+
trueLiteral?: true;
|
|
34
|
+
/**
|
|
35
|
+
* Symbol
|
|
36
|
+
*/
|
|
37
|
+
symbol?: symbol;
|
|
38
|
+
/**
|
|
39
|
+
* Null
|
|
40
|
+
*/
|
|
41
|
+
nullValue?: null;
|
|
42
|
+
/**
|
|
43
|
+
* Undefined
|
|
44
|
+
*/
|
|
45
|
+
undefinedValue?: undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Any
|
|
48
|
+
*/
|
|
49
|
+
any?: any;
|
|
50
|
+
/**
|
|
51
|
+
* Array of numbers
|
|
52
|
+
*/
|
|
53
|
+
arrayOfNumbers?: number[];
|
|
54
|
+
/**
|
|
55
|
+
* Enum
|
|
56
|
+
*/
|
|
57
|
+
enumValue?: MyEnum;
|
|
58
|
+
/**
|
|
59
|
+
* Union of literal strings
|
|
60
|
+
*/
|
|
61
|
+
unionLiteralStrings?: LiteralStrings;
|
|
62
|
+
/**
|
|
63
|
+
* Union of literal numbers
|
|
64
|
+
*/
|
|
65
|
+
unionLiteralNumbers?: LiteralNumbers;
|
|
66
|
+
/**
|
|
67
|
+
* Object
|
|
68
|
+
*/
|
|
69
|
+
object?: MyObject;
|
|
70
|
+
/**
|
|
71
|
+
* Inline object
|
|
72
|
+
*/
|
|
73
|
+
inlineObject?: {
|
|
74
|
+
foo: string;
|
|
75
|
+
bar: number;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Record
|
|
79
|
+
*/
|
|
80
|
+
record?: Record<string, number>;
|
|
81
|
+
/**
|
|
82
|
+
* Date
|
|
83
|
+
*/
|
|
84
|
+
date?: Date;
|
|
85
|
+
/**
|
|
86
|
+
* Union of types
|
|
87
|
+
*/
|
|
88
|
+
unionTypes?: number | string;
|
|
89
|
+
/**
|
|
90
|
+
* Intersection of types
|
|
91
|
+
*/
|
|
92
|
+
intersection?: { a: number } & { b: string };
|
|
93
|
+
/**
|
|
94
|
+
* Snippet contents
|
|
95
|
+
*/
|
|
96
|
+
children: Snippet;
|
|
97
|
+
/**
|
|
98
|
+
* Event callback function
|
|
99
|
+
*/
|
|
100
|
+
func?: (event: MouseEvent) => number;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
let {
|
|
104
|
+
boolean = true,
|
|
105
|
+
string = 'default',
|
|
106
|
+
stringRequired,
|
|
107
|
+
number = 123,
|
|
108
|
+
nullValue = null,
|
|
109
|
+
arrayOfNumbers = [1, 20, 300],
|
|
110
|
+
enumValue = MyEnum.FOO,
|
|
111
|
+
record = { a: 1, b: 2 },
|
|
112
|
+
date = new Date('20 Jan 1983'),
|
|
113
|
+
unionTypes = 123,
|
|
114
|
+
func = () => 10,
|
|
115
|
+
}: PropsA & PropsB = $props();
|
|
116
|
+
</script>
|
|
117
|
+
|
|
118
|
+
<div>Docs: TS + Runes (referenced prop types)</div>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import { goto, invalidate, invalidateAll, afterNavigate, replaceState, pushState } from '$app/navigation';
|
|
3
|
+
|
|
4
|
+
export let afterNavigateFn;
|
|
5
|
+
|
|
6
|
+
afterNavigate(afterNavigateFn);
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<button
|
|
10
|
+
on:click={() => {
|
|
11
|
+
goto('/storybook-goto');
|
|
12
|
+
}}>goto</button
|
|
13
|
+
>
|
|
14
|
+
|
|
15
|
+
<button
|
|
16
|
+
on:click={() => {
|
|
17
|
+
invalidate('/storybook-invalidate');
|
|
18
|
+
}}>invalidate</button
|
|
19
|
+
>
|
|
20
|
+
|
|
21
|
+
<button
|
|
22
|
+
on:click={() => {
|
|
23
|
+
invalidateAll();
|
|
24
|
+
}}>invalidateAll</button
|
|
25
|
+
>
|
|
26
|
+
|
|
27
|
+
<button
|
|
28
|
+
on:click={() => {
|
|
29
|
+
pushState('/storybook-push-state', {});
|
|
30
|
+
}}>pushState</button
|
|
31
|
+
>
|
|
32
|
+
|
|
33
|
+
<button
|
|
34
|
+
on:click={() => {
|
|
35
|
+
replaceState('/storybook-replace-state', {});
|
|
36
|
+
}}>replaceState</button
|
|
37
|
+
>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import { page, navigating, updated, getStores } from '$app/stores';
|
|
3
|
+
|
|
4
|
+
let { navigating: navigatingStore, page: pageStore, updated: updatedStore } = getStores();
|
|
5
|
+
|
|
6
|
+
updated.check();
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<p>Directly importing</p>
|
|
10
|
+
<pre>{JSON.stringify($page, null, 2)}</pre>
|
|
11
|
+
<pre>{JSON.stringify($navigating, null, 2)}</pre>
|
|
12
|
+
<pre>{JSON.stringify($updated, null, 2)}</pre>
|
|
13
|
+
|
|
14
|
+
<p>With getStores</p>
|
|
15
|
+
<pre>{JSON.stringify($pageStore, null, 2)}</pre>
|
|
16
|
+
<pre>{JSON.stringify($navigatingStore, null, 2)}</pre>
|
|
17
|
+
<pre>{JSON.stringify($updatedStore, null, 2)}</pre>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import { browser, dev, building, version } from '$app/environment';
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<div data-testid="browser">{browser}</div>
|
|
6
|
+
<div data-testid="dev">{dev}</div>
|
|
7
|
+
<div data-testid="building">{building}</div>
|
|
8
|
+
<div data-testid="version" data-chromatic="ignore">{version}</div>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import { goto, invalidate, invalidateAll, afterNavigate, pushState, replaceState } from '$app/navigation';
|
|
3
|
+
|
|
4
|
+
export let afterNavigateFn;
|
|
5
|
+
if(afterNavigateFn){
|
|
6
|
+
afterNavigate(afterNavigateFn);
|
|
7
|
+
}
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<button
|
|
11
|
+
on:click={() => {
|
|
12
|
+
goto('/storybook-goto');
|
|
13
|
+
}}>goto</button
|
|
14
|
+
>
|
|
15
|
+
|
|
16
|
+
<button
|
|
17
|
+
on:click={() => {
|
|
18
|
+
invalidate('/storybook-invalidate');
|
|
19
|
+
}}>invalidate</button
|
|
20
|
+
>
|
|
21
|
+
|
|
22
|
+
<button
|
|
23
|
+
on:click={() => {
|
|
24
|
+
invalidateAll();
|
|
25
|
+
}}>invalidateAll</button
|
|
26
|
+
>
|
|
27
|
+
|
|
28
|
+
<button
|
|
29
|
+
on:click={() => {
|
|
30
|
+
pushState('/storybook-push-state', {});
|
|
31
|
+
}}>pushState</button
|
|
32
|
+
>
|
|
33
|
+
|
|
34
|
+
<button
|
|
35
|
+
on:click={() => {
|
|
36
|
+
replaceState('/storybook-replace-state', {});
|
|
37
|
+
}}>replaceState</button
|
|
38
|
+
>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import { page, navigating, updated, getStores } from '$app/stores';
|
|
3
|
+
|
|
4
|
+
let { navigating: navigatingStore, page: pageStore, updated: updatedStore } = getStores();
|
|
5
|
+
|
|
6
|
+
updated.check();
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<p>Directly importing</p>
|
|
10
|
+
<pre>{JSON.stringify($page, null, 2)}</pre>
|
|
11
|
+
<pre>{JSON.stringify($navigating, null, 2)}</pre>
|
|
12
|
+
<pre>{JSON.stringify($updated, null, 2)}</pre>
|
|
13
|
+
|
|
14
|
+
<p>With getStores</p>
|
|
15
|
+
<pre>{JSON.stringify($pageStore, null, 2)}</pre>
|
|
16
|
+
<pre>{JSON.stringify($navigatingStore, null, 2)}</pre>
|
|
17
|
+
<pre>{JSON.stringify($updatedStore, null, 2)}</pre>
|