From 7a22762908cfcfaaa8aa9190859560b9171ce15a Mon Sep 17 00:00:00 2001 From: paoloricciuti Date: Thu, 8 Jan 2026 22:43:29 +0100 Subject: [PATCH] fix: treat inner of options as separate templates --- .../client/visitors/RegularElement.js | 102 ++++++------------ .../client/dom/elements/rich-option.js | 19 ++-- .../rich-option-component/Content.svelte | 5 + .../samples/rich-option-component/_config.js | 26 +++++ .../samples/rich-option-component/main.svelte | 15 +++ 5 files changed, 93 insertions(+), 74 deletions(-) create mode 100644 packages/svelte/tests/runtime-runes/samples/rich-option-component/Content.svelte create mode 100644 packages/svelte/tests/runtime-runes/samples/rich-option-component/_config.js create mode 100644 packages/svelte/tests/runtime-runes/samples/rich-option-component/main.svelte diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js index d5a31eb9d0..21db181b4f 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js @@ -24,6 +24,9 @@ import { import { process_children } from './shared/fragment.js'; import { build_render_statement, build_template_chunk, Memoizer } from './shared/utils.js'; import { visit_event_attribute } from './shared/events.js'; +import { Template } from '../transform-template/template.js'; +import { transform_template } from '../transform-template/index.js'; +import { TEMPLATE_FRAGMENT } from '../../../../../constants.js'; /** * @param {AST.RegularElement} node @@ -363,60 +366,48 @@ export function RegularElement(node, context) { } else if (is_option_with_rich_content) { // For