diff --git a/src/compiler/compile/nodes/DynamicElement.ts b/src/compiler/compile/nodes/DynamicElement.ts index bb59ad44c9..eae94f47e4 100644 --- a/src/compiler/compile/nodes/DynamicElement.ts +++ b/src/compiler/compile/nodes/DynamicElement.ts @@ -99,6 +99,10 @@ export default class DynamicElement extends Node { this.children = map_children(component, this, this.scope, info.children); this.validate(); + + // TODO create BaseElement class or an interface which both DynamicElement and Element use + // to resolve the hacky cast + component.apply_stylesheet(this as any); } validate() { diff --git a/test/css/samples/dynamic-element/_config.js b/test/css/samples/dynamic-element/_config.js new file mode 100644 index 0000000000..8d8811c57f --- /dev/null +++ b/test/css/samples/dynamic-element/_config.js @@ -0,0 +1,20 @@ +export default { + warnings: [ + { + code: "css-unused-selector", + end: { + character: 86, + column: 8, + line: 7, + }, + frame: " 5: color: red;\n 6: }\n 7: .unused {\n ^\n 8: font-style: italic;\n 9: }", + message: 'Unused CSS selector ".unused"', + pos: 79, + start: { + character: 79, + column: 1, + line: 7, + } + } + ] +}; diff --git a/test/css/samples/dynamic-element/expected.css b/test/css/samples/dynamic-element/expected.css new file mode 100644 index 0000000000..561f56a975 --- /dev/null +++ b/test/css/samples/dynamic-element/expected.css @@ -0,0 +1 @@ +.used.svelte-xyz{color:red} \ No newline at end of file diff --git a/test/css/samples/dynamic-element/expected.html b/test/css/samples/dynamic-element/expected.html new file mode 100644 index 0000000000..7b11bf31f4 --- /dev/null +++ b/test/css/samples/dynamic-element/expected.html @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/test/css/samples/dynamic-element/input.svelte b/test/css/samples/dynamic-element/input.svelte new file mode 100644 index 0000000000..c00410a96d --- /dev/null +++ b/test/css/samples/dynamic-element/input.svelte @@ -0,0 +1,10 @@ + + +