diff --git a/.changeset/tender-bats-switch.md b/.changeset/tender-bats-switch.md new file mode 100644 index 0000000000..bff8b3f867 --- /dev/null +++ b/.changeset/tender-bats-switch.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +feat: treat tag with `[` as a component, even if lowercase diff --git a/packages/svelte/src/compiler/phases/1-parse/state/element.js b/packages/svelte/src/compiler/phases/1-parse/state/element.js index 12e75400be..c15b27894e 100644 --- a/packages/svelte/src/compiler/phases/1-parse/state/element.js +++ b/packages/svelte/src/compiler/phases/1-parse/state/element.js @@ -74,7 +74,7 @@ function parent_is_shadowroot_template(stack) { const regex_closing_textarea_tag = /^<\/textarea(\s[^>]*)?>/i; const regex_closing_comment = /-->/; -const regex_component_name = /^(?:[A-Z]|[A-Za-z][A-Za-z0-9_$]*\.)/; +const regex_component_name = /^(?:[A-Z]|[A-Za-z][A-Za-z0-9_$]*(?:\.|\[))/; /** @param {Parser} parser */ export default function element(parser) { diff --git a/packages/svelte/tests/runtime-runes/samples/dot-notation-component/_config.js b/packages/svelte/tests/runtime-runes/samples/dot-notation-component/_config.js index 3b44dd63ca..d3384994ad 100644 --- a/packages/svelte/tests/runtime-runes/samples/dot-notation-component/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/dot-notation-component/_config.js @@ -1,5 +1,5 @@ import { test } from '../../test'; export default test({ - html: '