diff --git a/packages/svelte/src/internal/client/dom/elements/custom-element.js b/packages/svelte/src/internal/client/dom/elements/custom-element.js index cd2d2dfc60..b35c111a88 100644 --- a/packages/svelte/src/internal/client/dom/elements/custom-element.js +++ b/packages/svelte/src/internal/client/dom/elements/custom-element.js @@ -2,6 +2,7 @@ import { createClassComponent } from '../../../../legacy/legacy-client.js'; import { destroy_effect, render_effect } from '../../reactivity/effects.js'; import { open, close } from '../template.js'; import { define_property } from '../../utils.js'; +import { add_snippet_symbol } from '../blocks/snippet.js'; /** * @typedef {Object} CustomElementPropDefinition @@ -113,8 +114,8 @@ if (typeof HTMLElement === 'function') { const existing_slots = get_custom_elements_slots(this); for (const name of this.$$s) { if (name in existing_slots) { - if (name === 'default') { - this.$$d.children = create_slot(name); + if (name === 'default' && !this.$$d.children) { + this.$$d.children = add_snippet_symbol(create_slot(name)); } else { $$slots[name] = create_slot(name); }