From 93cf65d80423ec1b89f413415a7329e062ff8854 Mon Sep 17 00:00:00 2001 From: Conduitry Date: Mon, 25 Jan 2021 19:54:29 -0500 Subject: [PATCH 01/10] Revert "work around mysterious test failure and add TODO" This reverts commit c4419007f0a43d1fb7f6fcb15b4a143783ae5c03. --- .../samples/attached-sourcemap/_config.js | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/test/sourcemaps/samples/attached-sourcemap/_config.js b/test/sourcemaps/samples/attached-sourcemap/_config.js index 4e04fb0446..6d9786f6b0 100644 --- a/test/sourcemaps/samples/attached-sourcemap/_config.js +++ b/test/sourcemaps/samples/attached-sourcemap/_config.js @@ -2,16 +2,6 @@ import MagicString from 'magic-string'; let indent_size = 4; let comment_multi = true; - -// TODO -// Using magic-string's own .toUrl() method results in mysterious runtime failures. -// If tests are being run in `PUBLISH=true` mode AND at least one runtime test has been run prior to this test, then magic-string's btoa implementation fails with window not being declared. This is despite it previously checking that window.btoa is available. Presumably there's some sort of context thing going on, either with JSDOM or with Node itself. -// The tests pass when they're not run with `PUBLISH=true` (meaning, they currently pass in CI), and they also pass if you skip all runtime tests. -// I've spent too much time on this already, so for now to unblock the release, I am using the following workaround, which manually serializes the sourcemaps using Node Buffer APIs. -function toUrl(map) { - return 'data:application/json;charset=utf-8;base64,' + Buffer.from(map.toString(), 'utf-8').toString('base64'); -} - function get_processor(tag_name, search, replace) { return { [tag_name]: ({ content, filename }) => { @@ -29,8 +19,8 @@ function get_processor(tag_name, search, replace) { const map_opts = { source: filename, hires: true, includeContent: false }; const map = ms.generateMap(map_opts); const attach_line = (tag_name == 'style' || comment_multi) - ? `\n/*# sourceMappingURL=${toUrl(map)} */` - : `\n//# sourceMappingURL=${toUrl(map)}` // only in script + ? `\n/*# sourceMappingURL=${map.toUrl()} */` + : `\n//# sourceMappingURL=${map.toUrl()}` // only in script ; code = ms.toString() + attach_line; From 7be0b400f1bb2797a5213725dff6eb14c1ae26cb Mon Sep 17 00:00:00 2001 From: Conduitry Date: Mon, 25 Jan 2021 19:55:25 -0500 Subject: [PATCH 02/10] fix failing tests by restoring global.window after SSR tests --- test/server-side-rendering/index.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/server-side-rendering/index.ts b/test/server-side-rendering/index.ts index ef2a88ecbe..b87328b4fe 100644 --- a/test/server-side-rendering/index.ts +++ b/test/server-side-rendering/index.ts @@ -33,6 +33,10 @@ describe('ssr', () => { return setupHtmlEqual(); }); + let saved_window; + before(() => saved_window = global.window); + after(() => global.window = saved_window); + fs.readdirSync(`${__dirname}/samples`).forEach(dir => { if (dir[0] === '.') return; From 55b11b0664ba176cc7af3f7fdeb9dac00a2bc6e6 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Mon, 25 Jan 2021 17:50:53 -0800 Subject: [PATCH 03/10] docs: define component before demonstrating usage (#5921) --- site/content/docs/02-template-syntax.md | 61 +++++++++++++------------ 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/site/content/docs/02-template-syntax.md b/site/content/docs/02-template-syntax.md index 7288b8e8dd..2c665376dc 100644 --- a/site/content/docs/02-template-syntax.md +++ b/site/content/docs/02-template-syntax.md @@ -1292,19 +1292,19 @@ Components can have child content, in the same way that elements can. The content is exposed in the child component using the `` element, which can contain fallback content that is rendered if no children are provided. ```sv - - - - -

this is some child content that will overwrite the default slot content

-
-
this fallback content will be rendered when no content is provided, like in the first example
+ + + + + +

this is some child content that will overwrite the default slot content

+
``` #### [``](slot_name) @@ -1314,18 +1314,18 @@ The content is exposed in the child component using the `` element, which Named slots allow consumers to target specific areas. They can also have fallback content. ```sv - - -

Hello

-

Copyright (c) 2019 Svelte Industries

-
-
No header was provided

Some content between header and footer

+ + + +

Hello

+

Copyright (c) 2019 Svelte Industries

+
``` #### [`$$slots`](slots_object) @@ -1337,20 +1337,21 @@ Named slots allow consumers to target specific areas. They can also have fallbac Note that explicitly passing in an empty named slot will add that slot's name to `$$slots`. For example, if a parent passes `
` to a child component, `$$slots.title` will be truthy within the child. ```sv - - -

Blog Post Title

-
-
{#if $$slots.description} - +
{/if}
+ + + +

Blog Post Title

+ +
``` #### [``](slot_let) @@ -1362,11 +1363,6 @@ Slots can be rendered zero or more times, and can pass values *back* to the pare The usual shorthand rules apply — `let:item` is equivalent to `let:item={item}`, and `` is equivalent to ``. ```sv - - -
{thing.text}
-
-
    {#each items as item} @@ -1375,6 +1371,11 @@ The usual shorthand rules apply — `let:item` is equivalent to `let:item={item} {/each}
+ + + +
{thing.text}
+
``` --- @@ -1382,12 +1383,6 @@ The usual shorthand rules apply — `let:item` is equivalent to `let:item={item} Named slots can also expose values. The `let:` directive goes on the element with the `slot` attribute. ```sv - - -
{item.text}
-

Copyright (c) 2019 Svelte Industries

-
-
    {#each items as item} @@ -1398,6 +1393,12 @@ Named slots can also expose values. The `let:` directive goes on the element wit
+ + + +
{item.text}
+

Copyright (c) 2019 Svelte Industries

+
``` From 37b1a20c170e864794e705223ec551896d8eef63 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Tue, 26 Jan 2021 20:36:12 -0800 Subject: [PATCH 04/10] Add spaces next to infix operators (#5902) --- src/compiler/compile/render_dom/index.ts | 4 ++-- src/compiler/compile/render_dom/wrappers/Element/index.ts | 2 +- src/compiler/compile/render_dom/wrappers/Slot.ts | 2 +- src/compiler/parse/state/mustache.ts | 4 ++-- src/runtime/motion/spring.ts | 4 ++-- src/runtime/transition/index.ts | 2 +- test/sourcemaps/samples/source-map-generator/_config.js | 2 +- test/sourcemaps/samples/sourcemap-basename/_config.js | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/compiler/compile/render_dom/index.ts b/src/compiler/compile/render_dom/index.ts index 3b1f873ba5..8e7deb7a78 100644 --- a/src/compiler/compile/render_dom/index.ts +++ b/src/compiler/compile/render_dom/index.ts @@ -485,7 +485,7 @@ export default function dom( ${css.code && b`this.shadowRoot.innerHTML = \`\`;`} - @init(this, { target: this.shadowRoot, props: ${init_props} }, ${definition}, ${has_create_fragment ? 'create_fragment': 'null'}, ${not_equal}, ${prop_indexes}, ${dirty}); + @init(this, { target: this.shadowRoot, props: ${init_props} }, ${definition}, ${has_create_fragment ? 'create_fragment' : 'null'}, ${not_equal}, ${prop_indexes}, ${dirty}); ${dev_props_check} @@ -537,7 +537,7 @@ export default function dom( constructor(options) { super(${options.dev && 'options'}); ${should_add_css && b`if (!@_document.getElementById("${component.stylesheet.id}-style")) ${add_css}();`} - @init(this, options, ${definition}, ${has_create_fragment ? 'create_fragment': 'null'}, ${not_equal}, ${prop_indexes}, ${dirty}); + @init(this, options, ${definition}, ${has_create_fragment ? 'create_fragment' : 'null'}, ${not_equal}, ${prop_indexes}, ${dirty}); ${options.dev && b`@dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "${name.name}", options, id: create_fragment.name });`} ${dev_props_check} diff --git a/src/compiler/compile/render_dom/wrappers/Element/index.ts b/src/compiler/compile/render_dom/wrappers/Element/index.ts index 269edcfca8..73c75502e3 100644 --- a/src/compiler/compile/render_dom/wrappers/Element/index.ts +++ b/src/compiler/compile/render_dom/wrappers/Element/index.ts @@ -321,7 +321,7 @@ export default class ElementWrapper extends Wrapper { literal.quasis.push(state.quasi); block.chunks.create.push( - b`${node}.${this.can_use_innerhtml ? 'innerHTML': 'textContent'} = ${literal};` + b`${node}.${this.can_use_innerhtml ? 'innerHTML' : 'textContent'} = ${literal};` ); } } else { diff --git a/src/compiler/compile/render_dom/wrappers/Slot.ts b/src/compiler/compile/render_dom/wrappers/Slot.ts index 699363a809..d343cfb201 100644 --- a/src/compiler/compile/render_dom/wrappers/Slot.ts +++ b/src/compiler/compile/render_dom/wrappers/Slot.ts @@ -173,7 +173,7 @@ export default class SlotWrapper extends Wrapper { if (${slot}.p && ${renderer.dirty(dynamic_dependencies)}) { @update_slot_spread(${slot}, ${slot_definition}, #ctx, ${renderer.reference('$$scope')}, #dirty, ${get_slot_changes_fn}, ${get_slot_spread_changes_fn}, ${get_slot_context_fn}); } - `: b` + ` : b` if (${slot}.p && ${renderer.dirty(dynamic_dependencies)}) { @update_slot(${slot}, ${slot_definition}, #ctx, ${renderer.reference('$$scope')}, #dirty, ${get_slot_changes_fn}, ${get_slot_context_fn}); } diff --git a/src/compiler/parse/state/mustache.ts b/src/compiler/parse/state/mustache.ts index 33b589948d..ccb2d1d487 100644 --- a/src/compiler/parse/state/mustache.ts +++ b/src/compiler/parse/state/mustache.ts @@ -196,7 +196,7 @@ export default function mustache(parser: Parser) { if (!parser.eat('}')) { parser.require_whitespace(); - await_block[is_then ? 'value': 'error'] = read_context(parser); + await_block[is_then ? 'value' : 'error'] = read_context(parser); parser.allow_whitespace(); parser.eat('}', true); } @@ -204,7 +204,7 @@ export default function mustache(parser: Parser) { const new_block: TemplateNode = { start, end: null, - type: is_then ? 'ThenBlock': 'CatchBlock', + type: is_then ? 'ThenBlock' : 'CatchBlock', children: [], skip: false }; diff --git a/src/runtime/motion/spring.ts b/src/runtime/motion/spring.ts index 8d2056256c..ff625ec41f 100644 --- a/src/runtime/motion/spring.ts +++ b/src/runtime/motion/spring.ts @@ -14,7 +14,7 @@ function tick_spring(ctx: TickContext, last_value: T, current_value: T, ta // @ts-ignore const delta = target_value - current_value; // @ts-ignore - const velocity = (current_value - last_value) / (ctx.dt||1/60); // guard div by 0 + const velocity = (current_value - last_value) / (ctx.dt || 1 / 60); // guard div by 0 const spring = ctx.opts.stiffness * delta; const damper = ctx.opts.damping * velocity; const acceleration = (spring - damper) * ctx.inv_mass; @@ -80,7 +80,7 @@ export function spring(value?: T, opts: SpringOpts = {}): Spring { let inv_mass_recovery_rate = 0; let cancel_task = false; - function set(new_value: T, opts: SpringUpdateOpts={}): Promise { + function set(new_value: T, opts: SpringUpdateOpts = {}): Promise { target_value = new_value; const token = current_token = {}; diff --git a/src/runtime/transition/index.ts b/src/runtime/transition/index.ts index 7e879cb941..246f3b14fb 100644 --- a/src/runtime/transition/index.ts +++ b/src/runtime/transition/index.ts @@ -237,7 +237,7 @@ export function crossfade({ fallback, ...defaults }: CrossfadeParams & { css: (t, u) => ` opacity: ${t * opacity}; transform-origin: top left; - transform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1-t) * dw}, ${t + (1-t) * dh}); + transform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh}); ` }; } diff --git a/test/sourcemaps/samples/source-map-generator/_config.js b/test/sourcemaps/samples/source-map-generator/_config.js index fefb776f33..3cd15d9dda 100644 --- a/test/sourcemaps/samples/source-map-generator/_config.js +++ b/test/sourcemaps/samples/source-map-generator/_config.js @@ -6,7 +6,7 @@ export default { style: async ({ content, filename }) => { const src = new MagicString(content); const idx = content.indexOf('baritone'); - src.overwrite(idx, idx+'baritone'.length, 'bar'); + src.overwrite(idx, idx + 'baritone'.length, 'bar'); const map = SourceMapGenerator.fromSourceMap( await new SourceMapConsumer( diff --git a/test/sourcemaps/samples/sourcemap-basename/_config.js b/test/sourcemaps/samples/sourcemap-basename/_config.js index d50dd882a6..33146af7e7 100644 --- a/test/sourcemaps/samples/sourcemap-basename/_config.js +++ b/test/sourcemaps/samples/sourcemap-basename/_config.js @@ -19,7 +19,7 @@ export default { preprocess: [ { style: ({ content, filename }) => { - const external =`/* Filename from preprocess: ${filename} */` + external_code; + const external = `/* Filename from preprocess: ${filename} */` + external_code; return magic_string_bundle([ { code: external, filename: external_relative_filename }, { code: content, filename } From 4d5fe5dea6ab3264ed5d49b5baccd13b8fe38ca0 Mon Sep 17 00:00:00 2001 From: Alexandre Galays Date: Thu, 28 Jan 2021 12:56:40 +0100 Subject: [PATCH 05/10] Swap the order of the two derived store signatures to fix inference (#5935) --- src/runtime/store/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/runtime/store/index.ts b/src/runtime/store/index.ts index 09040487f0..c8e2b4ff99 100644 --- a/src/runtime/store/index.ts +++ b/src/runtime/store/index.ts @@ -125,10 +125,12 @@ type StoresValues = T extends Readable ? U : * * @param stores - input stores * @param fn - function callback that aggregates the values + * @param initial_value - when used asynchronously */ export function derived( stores: S, - fn: (values: StoresValues) => T + fn: (values: StoresValues, set: (value: T) => void) => Unsubscriber | void, + initial_value?: T ): Readable; /** @@ -137,12 +139,10 @@ export function derived( * * @param stores - input stores * @param fn - function callback that aggregates the values - * @param initial_value - when used asynchronously */ export function derived( stores: S, - fn: (values: StoresValues, set: (value: T) => void) => Unsubscriber | void, - initial_value?: T + fn: (values: StoresValues) => T ): Readable; export function derived(stores: Stores, fn: Function, initial_value?: T): Readable { From b3431f9bf204cee58db751e083f3e45198379cb8 Mon Sep 17 00:00:00 2001 From: Conduitry Date: Fri, 29 Jan 2021 10:20:06 -0500 Subject: [PATCH 06/10] update changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18387d2090..c8e3a1d181 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Svelte changelog +## Unreleased + +* Fix type inference for derived stores ([#5935](https://github.com/sveltejs/svelte/pull/5935)) + ## 3.32.0 * Allow multiple instances of the same action on an element ([#5516](https://github.com/sveltejs/svelte/issues/5516)) From acf60d88a069ee3df2eafd122106db3acc560bd0 Mon Sep 17 00:00:00 2001 From: Anders Lorentsen Date: Fri, 29 Jan 2021 16:33:40 +0100 Subject: [PATCH 07/10] error on empty name in `class:` directive (#5939) --- src/compiler/parse/state/tag.ts | 7 +++++++ .../samples/error-empty-classname-binding/error.json | 10 ++++++++++ .../samples/error-empty-classname-binding/input.svelte | 1 + 3 files changed, 18 insertions(+) create mode 100644 test/parser/samples/error-empty-classname-binding/error.json create mode 100644 test/parser/samples/error-empty-classname-binding/input.svelte diff --git a/src/compiler/parse/state/tag.ts b/src/compiler/parse/state/tag.ts index 696a47b649..aedffffe21 100644 --- a/src/compiler/parse/state/tag.ts +++ b/src/compiler/parse/state/tag.ts @@ -387,6 +387,13 @@ function read_attribute(parser: Parser, unique_names: Set) { }, start); } + if (type === 'Class' && directive_name === '') { + parser.error({ + code: 'invalid-class-directive', + message: 'Class binding name cannot be empty' + }, start + colon_index + 1); + } + if (value[0]) { if ((value as any[]).length > 1 || value[0].type === 'Text') { parser.error({ diff --git a/test/parser/samples/error-empty-classname-binding/error.json b/test/parser/samples/error-empty-classname-binding/error.json new file mode 100644 index 0000000000..edc09ff8e1 --- /dev/null +++ b/test/parser/samples/error-empty-classname-binding/error.json @@ -0,0 +1,10 @@ +{ + "code": "invalid-class-directive", + "message": "Class binding name cannot be empty", + "start": { + "line": 1, + "column": 10, + "character": 10 + }, + "pos": 10 +} diff --git a/test/parser/samples/error-empty-classname-binding/input.svelte b/test/parser/samples/error-empty-classname-binding/input.svelte new file mode 100644 index 0000000000..3a4e5980ee --- /dev/null +++ b/test/parser/samples/error-empty-classname-binding/input.svelte @@ -0,0 +1 @@ +

Hello

From f00348c14c430e23ff48ec4f3c0580fa2cf0c9a0 Mon Sep 17 00:00:00 2001 From: Conduitry Date: Fri, 29 Jan 2021 10:34:30 -0500 Subject: [PATCH 08/10] update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8e3a1d181..928f76bfc9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased +* Throw a parser error for `class:` directives with an empty class name ([#5858](https://github.com/sveltejs/svelte/issues/5858)) * Fix type inference for derived stores ([#5935](https://github.com/sveltejs/svelte/pull/5935)) ## 3.32.0 From 842a0b1a07af570b3aa822cfb04bb71abdc80b6a Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Fri, 29 Jan 2021 16:52:19 +0100 Subject: [PATCH 09/10] make animation/transition params optional (#5936) They are not needed for most of the functions and should be marked as optional accordingly to make TypeScript users happy. Fixes sveltejs/language-tools#785 --- CHANGELOG.md | 1 + src/runtime/animate/index.ts | 2 +- src/runtime/transition/index.ts | 12 ++++++------ 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 928f76bfc9..176ef0a1c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ * Throw a parser error for `class:` directives with an empty class name ([#5858](https://github.com/sveltejs/svelte/issues/5858)) * Fix type inference for derived stores ([#5935](https://github.com/sveltejs/svelte/pull/5935)) +* Make parameters of built-in animations and transitions optional ([#5936](https://github.com/sveltejs/svelte/pull/5936)) ## 3.32.0 diff --git a/src/runtime/animate/index.ts b/src/runtime/animate/index.ts index 82ec0d5a5f..ecfd9b2923 100644 --- a/src/runtime/animate/index.ts +++ b/src/runtime/animate/index.ts @@ -16,7 +16,7 @@ interface FlipParams { easing?: (t: number) => number; } -export function flip(node: Element, animation: { from: DOMRect; to: DOMRect }, params: FlipParams): AnimationConfig { +export function flip(node: Element, animation: { from: DOMRect; to: DOMRect }, params: FlipParams = {}): AnimationConfig { const style = getComputedStyle(node); const transform = style.transform === 'none' ? '' : style.transform; const scaleX = animation.from.width / node.clientWidth; diff --git a/src/runtime/transition/index.ts b/src/runtime/transition/index.ts index 246f3b14fb..650688b6e0 100644 --- a/src/runtime/transition/index.ts +++ b/src/runtime/transition/index.ts @@ -25,7 +25,7 @@ export function blur(node: Element, { easing = cubicInOut, amount = 5, opacity = 0 -}: BlurParams): TransitionConfig { +}: BlurParams = {}): TransitionConfig { const style = getComputedStyle(node); const target_opacity = +style.opacity; const f = style.filter === 'none' ? '' : style.filter; @@ -50,7 +50,7 @@ export function fade(node: Element, { delay = 0, duration = 400, easing = linear -}: FadeParams): TransitionConfig { +}: FadeParams = {}): TransitionConfig { const o = +getComputedStyle(node).opacity; return { @@ -77,7 +77,7 @@ export function fly(node: Element, { x = 0, y = 0, opacity = 0 -}: FlyParams): TransitionConfig { +}: FlyParams = {}): TransitionConfig { const style = getComputedStyle(node); const target_opacity = +style.opacity; const transform = style.transform === 'none' ? '' : style.transform; @@ -104,7 +104,7 @@ export function slide(node: Element, { delay = 0, duration = 400, easing = cubicOut -}: SlideParams): TransitionConfig { +}: SlideParams = {}): TransitionConfig { const style = getComputedStyle(node); const opacity = +style.opacity; const height = parseFloat(style.height); @@ -146,7 +146,7 @@ export function scale(node: Element, { easing = cubicOut, start = 0, opacity = 0 -}: ScaleParams): TransitionConfig { +}: ScaleParams = {}): TransitionConfig { const style = getComputedStyle(node); const target_opacity = +style.opacity; const transform = style.transform === 'none' ? '' : style.transform; @@ -177,7 +177,7 @@ export function draw(node: SVGElement & { getTotalLength(): number }, { speed, duration, easing = cubicInOut -}: DrawParams): TransitionConfig { +}: DrawParams = {}): TransitionConfig { const len = node.getTotalLength(); if (duration === undefined) { From 0f3264e2056dcc0fa2d102d8d238bf15b40d614f Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Fri, 29 Jan 2021 16:59:57 +0100 Subject: [PATCH 10/10] make `SvelteComponentDev` typings more forgiving (#5937) Add `$$events_def` and `$$slot_def` so that users can do ``` let el: SvelteComponent; ``` without type errors. --- CHANGELOG.md | 1 + src/runtime/internal/dev.ts | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 176ef0a1c2..fffeb964be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ * Throw a parser error for `class:` directives with an empty class name ([#5858](https://github.com/sveltejs/svelte/issues/5858)) * Fix type inference for derived stores ([#5935](https://github.com/sveltejs/svelte/pull/5935)) * Make parameters of built-in animations and transitions optional ([#5936](https://github.com/sveltejs/svelte/pull/5936)) +* Make `SvelteComponentDev` typings more forgiving ([#5937](https://github.com/sveltejs/svelte/pull/5937)) ## 3.32.0 diff --git a/src/runtime/internal/dev.ts b/src/runtime/internal/dev.ts index 53f6ef3bf1..99ff067474 100644 --- a/src/runtime/internal/dev.ts +++ b/src/runtime/internal/dev.ts @@ -115,6 +115,20 @@ export class SvelteComponentDev extends SvelteComponent { * ### DO NOT USE! */ $$prop_def: Props; + /** + * @private + * For type checking capabilities only. + * Does not exist at runtime. + * ### DO NOT USE! + */ + $$events_def: any; + /** + * @private + * For type checking capabilities only. + * Does not exist at runtime. + * ### DO NOT USE! + */ + $$slot_def: any; constructor(options: { target: Element;