diff --git a/packages/playground/src/components/Counter.svelte b/packages/playground/src/components/Counter.svelte index 0ce787c..1a03a34 100644 --- a/packages/playground/src/components/Counter.svelte +++ b/packages/playground/src/components/Counter.svelte @@ -51,3 +51,9 @@
+ + diff --git a/packages/playground/src/components/Counter.vue b/packages/playground/src/components/Counter.vue index bbeb6d8..a6c5b29 100644 --- a/packages/playground/src/components/Counter.vue +++ b/packages/playground/src/components/Counter.vue @@ -23,3 +23,9 @@ function increment(e: Event) { + + diff --git a/packages/svelte-template-compiler/src/ir/svelte.ts b/packages/svelte-template-compiler/src/ir/svelte.ts index 84227a1..be78bec 100644 --- a/packages/svelte-template-compiler/src/ir/svelte.ts +++ b/packages/svelte-template-compiler/src/ir/svelte.ts @@ -114,6 +114,10 @@ export function isIfBlockOnElseBlock(node: SvelteIfBlock): boolean { return node.type === 'IfBlock' && !!node.elseif } +export function isSvelteSlot(node: unknown): boolean { + return isObject(node) && 'type' in node && node.type === 'Slot' +} + export function isSvelteBindingDirective(node: unknown): node is SvelteBaseExpressionDirective { return isObject(node) && 'type' in node && node.type === 'Binding' } diff --git a/packages/svelte-template-compiler/src/style/csstree.ts b/packages/svelte-template-compiler/src/style/csstree.ts index 6bf779d..582ff8f 100644 --- a/packages/svelte-template-compiler/src/style/csstree.ts +++ b/packages/svelte-template-compiler/src/style/csstree.ts @@ -25,7 +25,8 @@ import type { SelectorList, StyleSheet, TypeSelector, - Value + Value, + WhiteSpace } from 'css-tree' export function hasChildren( @@ -84,3 +85,11 @@ export function hasName( export function hasProperty(node: CssNode): node is Declaration { return node.type === 'Declaration' && 'property' in node } + +export function isWhiteSpace(node: CssNode): node is WhiteSpace { + return node.type === 'WhiteSpace' +} + +export function isCombinator(node: CssNode): node is Combinator { + return node.type === 'Combinator' +} diff --git a/packages/svelte-template-compiler/src/style/selector.ts b/packages/svelte-template-compiler/src/style/selector.ts index 6f90594..dfbe64a 100644 --- a/packages/svelte-template-compiler/src/style/selector.ts +++ b/packages/svelte-template-compiler/src/style/selector.ts @@ -7,15 +7,19 @@ import { createAttributeChunks, + isSvelteAttribute, isSvelteBindingDirective, isSvelteClassDirective, + isSvelteElement, + isSvelteElseBlock, + isSvelteSlot, isSvelteSpreadAttribute, isSvelteText } from '../ir/svelte.ts' -import { hasChildren, hasName } from './csstree.ts' +import { hasChildren, hasName, isCombinator, isWhiteSpace } from './csstree.ts' import type { AttributeSelector as CssAttributeSelector, CssNode } from 'css-tree' -import type { SvelteElement, SvelteMustacheTag } from '../ir/index.ts' +import type { SvelteElement, SvelteMustacheTag, SvelteTemplateNode } from '../ir/index.ts' const UNKNOWN = {} const RE_STARTS_WITH_WHITESPACE = /^\s/ @@ -92,7 +96,7 @@ function groupSelectors(selector: CssNode): Block[] { if (hasChildren(selector)) { selector.children?.forEach(child => { - if (child.type === 'WhiteSpace' || child.type === 'Combinator') { + if (isWhiteSpace(child) || isCombinator(child)) { block = new Block(child) blocks.push(block) } else { @@ -132,15 +136,79 @@ export function applySelector( } if (block.combinator) { - if (block.combinator.type === 'Combinator' && block.combinator.name === ' ') { - // TODO: - } else if (block.combinator.type === 'Combinator' && block.combinator.name === '>') { - // TODO: + if (isCombinator(block.combinator) && block.combinator.name === ' ') { + for (const ancestorBlock of blocks) { + if (ancestorBlock.global) { + continue + } + + if (ancestorBlock.host) { + toEncapsulate.push({ node, block }) + return true + } + + let parent: SvelteElement | undefined = node + while ((parent = getElementParent(parent))) { + if (blockMightApplyToNode(ancestorBlock, parent) !== BlockAppliesToNode.NotPossible) { + toEncapsulate.push({ node: parent, block: ancestorBlock }) + } + } + + if (toEncapsulate.length > 0) { + toEncapsulate.push({ node, block }) + return true + } + } + + if (blocks.every(block => block.global)) { + toEncapsulate.push({ node, block }) + return true + } + } else if (isCombinator(block.combinator) && block.combinator.name === '>') { + const hasGlobalParent = blocks.every(block => block.global) + + if (hasGlobalParent) { + toEncapsulate.push({ node, block }) + return true + } + + const parent = getElementParent(node) + if (parent && applySelector(blocks, parent, toEncapsulate)) { + toEncapsulate.push({ node, block }) + return true + } + + return false } else if ( - block.combinator.type === 'Combinator' && + isCombinator(block.combinator) && (block.combinator.name === '+' || block.combinator.name === '~') ) { - // TODO: + const [siblings, hasSlotSibling] = getPossibleElementSiblings( + node, + block.combinator.name === '+' + ) + let hasMatch = false + // NOTE: if we have :global(), we couldn't figure out what is selected within `:global` due to the + // css-tree limitation that does not parse the inner selector of :global + // so unless we are sure there will be no sibling to match, we will consider it as matched + const hasGlobal = blocks.some(block => block.global) + if (hasGlobal) { + if (siblings.size === 0 && getElementParent(node) !== null && !hasSlotSibling) { + return false + } + toEncapsulate.push({ node, block }) + return true + } + + for (const possibleSibling of siblings.keys()) { + // eslint-disable-next-line unicorn/prefer-spread + if (applySelector(blocks.slice(), possibleSibling as SvelteElement, toEncapsulate)) { + toEncapsulate.push({ node, block }) + hasMatch = true + } + } + + return hasMatch } // TODO: other combinators @@ -457,3 +525,239 @@ function unquote(value: CssAttributeSelector['value']): string { function isDynamicElement(node: SvelteElement): boolean { return node.name === 'svelte:element' } + +function getElementParent(node: SvelteTemplateNode): SvelteElement | undefined { + let parent: SvelteTemplateNode | undefined = node + while ((parent = parent.parent) && !isSvelteElement(parent)); + return parent +} + +enum NodeExist { + Probably = 0, + Definitely = 1 +} + +function getPossibleElementSiblings( + node: SvelteTemplateNode, + adjacentOnly: boolean +): [Map, boolean] { + // TODO: + const result = new Map() + + let prev: SvelteTemplateNode | undefined = node + let hasSlotSibling = false + let slotSiblingFound = false + + while (([prev, slotSiblingFound] = findPreviousSibling(prev)) && prev) { + if (isSvelteElement(prev)) { + hasSlotSibling = hasSlotSibling || slotSiblingFound + + if ( + // eslint-disable-next-line unicorn/prefer-array-some + !prev.attributes.find(attr => isSvelteAttribute(attr) && attr.name.toLowerCase() === 'slot') + ) { + result.set(prev, NodeExist.Definitely) + } + + if (adjacentOnly) { + break + } + } else if (prev.type === 'EachBlock' || prev.type === 'IfBlock' || prev.type === 'AwaitBlock') { + const possibleLastChild = getPossibleLastChild(prev, adjacentOnly) + addToMap(possibleLastChild, result) + if (adjacentOnly && hasDefiniteElements(possibleLastChild)) { + return [result, hasSlotSibling] + } + } + } + + if (!prev || !adjacentOnly) { + let parent: SvelteTemplateNode | undefined = node + let skipEachForLastChild = node.type === 'ElseBlock' + while ( + (parent = parent.parent) && + (parent.type === 'EachBlock' || + parent.type === 'IfBlock' || + parent.type === 'ElseBlock' || + parent.type === 'AwaitBlock') + ) { + const [possibleSiblings, slotSiblingFound] = getPossibleElementSiblings(parent, adjacentOnly) + hasSlotSibling = hasSlotSibling || slotSiblingFound + addToMap(possibleSiblings, result) + + if (parent.type === 'EachBlock') { + if (skipEachForLastChild) { + skipEachForLastChild = false + } else { + addToMap(getPossibleLastChild(parent, adjacentOnly), result) + } + } else if (parent.type === 'ElseBlock') { + skipEachForLastChild = true + parent = parent.parent + } + + if (adjacentOnly && hasDefiniteElements(possibleSiblings)) { + break + } + } + } + + return [result, hasSlotSibling] +} + +function findPreviousSibling(node: SvelteTemplateNode): [SvelteTemplateNode, boolean] { + let currentNode: SvelteTemplateNode | undefined = node + let hasSlotSibling = false + + do { + if (isSvelteSlot(currentNode)) { + hasSlotSibling = true + const slotChildren: SvelteTemplateNode[] = currentNode.children || [] + if (slotChildren.length > 0) { + // eslint-disable-next-line unicorn/prefer-at + currentNode = slotChildren.slice(-1)[0] // go to its last child first + continue + } + } + while (!currentNode.prev && currentNode.parent && isSvelteSlot(currentNode.parent)) { + currentNode = currentNode.parent + } + currentNode = currentNode.prev + } while (currentNode != null && isSvelteSlot(currentNode)) // eslint-disable-line unicorn/no-null + + return [currentNode!, hasSlotSibling] +} + +function getPossibleLastChild( + block: SvelteTemplateNode, + adjacentOnly: boolean +): Map { + const result = new Map() + const blockChildren = block.children || [] + + switch (block.type) { + case 'EachBlock': { + const eachResult = loopChild(blockChildren, adjacentOnly) + const elseResult = isSvelteElseBlock(block.else) + ? loopChild(block.else.children, adjacentOnly) + : new Map() + const notExhaustive = !hasDefiniteElements(eachResult) + if (notExhaustive) { + markAsProbably(eachResult) + markAsProbably(elseResult) + } + addToMap(eachResult, result) + addToMap(elseResult, result) + break + } + case 'IfBlock': { + const ifResult = loopChild(blockChildren, adjacentOnly) + const elseResult = isSvelteElseBlock(block.else) + ? loopChild(block.else.children, adjacentOnly) + : new Map() + const notExhaustive = !hasDefiniteElements(ifResult) || !hasDefiniteElements(elseResult) + if (notExhaustive) { + markAsProbably(ifResult) + markAsProbably(elseResult) + } + addToMap(ifResult, result) + addToMap(elseResult, result) + break + } + case 'AwaitBlock': { + // FIXME: extend AwaitBlock for svelte template node + const pendingResult = block.pending + ? loopChild((block.pending as SvelteTemplateNode).children || [], adjacentOnly) + : new Map() + const thenResult = block.then + ? loopChild((block.then as SvelteTemplateNode).children || [], adjacentOnly) + : new Map() + const catchResult = block.catch + ? loopChild((block.catch as SvelteTemplateNode).children || [], adjacentOnly) + : new Map() + const notExhaustive = + !hasDefiniteElements(pendingResult) || + !hasDefiniteElements(thenResult) || + !hasDefiniteElements(catchResult) + if (notExhaustive) { + markAsProbably(pendingResult) + markAsProbably(thenResult) + markAsProbably(catchResult) + } + addToMap(pendingResult, result) + addToMap(thenResult, result) + addToMap(catchResult, result) + break + } + // No default + } + + return result +} + +function hasDefiniteElements(result: Map): boolean { + if (result.size === 0) { + return false + } + + for (const exist of result.values()) { + if (exist === NodeExist.Definitely) { + return true + } + } + + return false +} + +function addToMap( + from: Map, + to: Map +) { + from.forEach((exist, element) => { + to.set(element, higherExistence(exist, to.get(element))) + }) +} + +function higherExistence(exist1: NodeExist | undefined, exist2: NodeExist | undefined): NodeExist { + if (exist1 == undefined || exist2 == undefined) { + // @ts-expect-error -- FIXME: + return exist1 || exist2 + } + return exist1 > exist2 ? exist1 : exist2 +} + +function markAsProbably(result: Map): void { + for (const key of result.keys()) { + result.set(key, NodeExist.Probably) + } +} + +function loopChild( + children: SvelteTemplateNode[], + adjacentOnly: boolean +): Map { + const result = new Map() + + for (let i = children.length - 1; i >= 0; i--) { + const child = children[i] + + if (isSvelteElement(child)) { + result.set(child, NodeExist.Definitely) + if (adjacentOnly) { + break + } + } else if ( + child.type === 'EachBlock' || + child.type === 'IfBlock' || + child.type === 'AwaitBlock' + ) { + const childResult = getPossibleLastChild(child, adjacentOnly) + addToMap(childResult, result) + if (adjacentOnly && hasDefiniteElements(childResult)) { + break + } + } + } + + return result +} diff --git a/packages/svelte-template-compiler/src/style/stylesheet.ts b/packages/svelte-template-compiler/src/style/stylesheet.ts index e8e74f9..1a1b6f4 100644 --- a/packages/svelte-template-compiler/src/style/stylesheet.ts +++ b/packages/svelte-template-compiler/src/style/stylesheet.ts @@ -10,7 +10,7 @@ import { pushArray } from 'inclusion-vapor-shared' import { MagicStringAST } from 'magic-string-ast' import { createAttributeChunks, isSvelteSpreadAttribute, isSvelteText } from '../ir/index.ts' import { hash } from '../utils.ts' -import { hasChildren, hasProperty } from './csstree.ts' +import { hasChildren, hasProperty, isCombinator, isWhiteSpace } from './csstree.ts' import { Selector, applySelector } from './selector.ts' import type { @@ -556,7 +556,15 @@ function minify( let c: number | null = null // eslint-disable-line unicorn/no-null css.blocks.forEach((block, i) => { if (i > 0 && block.start! - c! > 1) { - code.update(c!, block.start!, ',') + // prettier-ignore + const v = block.combinator == null // eslint-disable-line unicorn/no-null + ? ' ' + : isCombinator(block.combinator) + ? block.combinator.name + : isWhiteSpace(block.combinator) + ? block.combinator.value + : ' ' + code.update(c!, block.start!, v) } c = block.end }) diff --git a/packages/svelte-template-compiler/test/fixtures/child-combinator.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/child-combinator/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/child-combinator.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/child-combinator/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/child-combinator.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/child-combinator/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/child-combinator.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/child-combinator/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/descendant-selector-non-top-level-outer.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/descendant-selector-non-top-level-outer/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/descendant-selector-non-top-level-outer.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/descendant-selector-non-top-level-outer/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/descendant-selector-non-top-level-outer.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/descendant-selector-non-top-level-outer/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/descendant-selector-non-top-level-outer.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/descendant-selector-non-top-level-outer/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/descendant-selector-non-top-level-outer.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/descendant-selector-non-top-level-outer/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/descendant-selector-non-top-level-outer.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/descendant-selector-non-top-level-outer/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/dynamic-element-tag.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/dynamic-element-tag/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/dynamic-element-tag.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/dynamic-element-tag/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/dynamic-element-tag.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/dynamic-element-tag/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/dynamic-element-tag.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/dynamic-element-tag/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/dynamic-element-tag.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/dynamic-element-tag/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/dynamic-element-tag.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/dynamic-element-tag/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/dynamic-element-tag.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/dynamic-element-tag/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/dynamic-element-tag.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/dynamic-element-tag/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-slot.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-slot/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-slot.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-slot/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-slot.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-slot/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-slot.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-slot/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-slot.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-slot/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-slot.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-slot/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/general-siblings-combinator-star/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/general-siblings-combinator.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/general-siblings-combinator/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/general-siblings-combinator.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/general-siblings-combinator/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/general-siblings-combinator.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/general-siblings-combinator/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/general-siblings-combinator/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/general-siblings-combinator.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/general-siblings-combinator/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/global-compound-selector.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/global-compound-selector/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-compound-selector.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/global-compound-selector/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/global-compound-selector.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/global-compound-selector/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-compound-selector.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/global-compound-selector/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/global-compound-selector.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/global-compound-selector/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-compound-selector.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/global-compound-selector/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/global-compound-selector.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/global-compound-selector/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-compound-selector.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/global-compound-selector/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-2/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/global-with-child-combinator-3/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-with-child-combinator.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/global-with-child-combinator/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-with-child-combinator.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/global-with-child-combinator/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-with-child-combinator.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/global-with-child-combinator/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/global-with-child-combinator/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/global-with-child-combinator.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/global-with-child-combinator/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/local-inside-global.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/local-inside-global/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/local-inside-global.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/local-inside-global/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/local-inside-global.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/local-inside-global/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/local-inside-global.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/local-inside-global/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner-multiple/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-inner/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer-multiple/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant-global-outer/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-descendant/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-global-descendants.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-global-descendants/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-global-descendants.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-global-descendants/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-global-descendants.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-global-descendants/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-global-descendants.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-global-descendants/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-global-descendants.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-global-descendants/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-global-descendants.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-global-descendants/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-multiple-descendants.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-multiple-descendants/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-multiple-descendants.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-multiple-descendants/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-multiple-descendants.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-multiple-descendants/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-multiple-descendants.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-multiple-descendants/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-multiple-descendants.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-multiple-descendants/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-multiple-descendants.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-multiple-descendants/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace-multiple.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace-multiple/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace-multiple.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace-multiple/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace-multiple.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace-multiple/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace-multiple.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace-multiple/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace-multiple.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace-multiple/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace-multiple.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace-multiple/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/omit-scoping-attribute-whitespace/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/preserve-specificity.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/preserve-specificity/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/preserve-specificity.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/preserve-specificity/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/preserve-specificity.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/preserve-specificity/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/preserve-specificity.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/preserve-specificity/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/preserve-specificity.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/preserve-specificity/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/preserve-specificity.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/preserve-specificity/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator-selects-slot-fallback.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/siblings-combinator-selects-slot-fallback/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator-selects-slot-fallback.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator-selects-slot-fallback/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator-selects-slot-fallback.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/siblings-combinator-selects-slot-fallback/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator-selects-slot-fallback.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator-selects-slot-fallback/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator-slot.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/siblings-combinator-slot/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator-slot.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator-slot/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator-slot.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/siblings-combinator-slot/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator-slot.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator-slot/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator-slot.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/siblings-combinator-slot/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator-slot.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator-slot/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator-slots-between.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/siblings-combinator-slots-between/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator-slots-between.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator-slots-between/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator-slots-between.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/siblings-combinator-slots-between/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator-slots-between.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator-slots-between/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator-star.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/siblings-combinator-star/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator-star.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator-star/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator-star.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/siblings-combinator-star/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator-star.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator-star/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator-star.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/siblings-combinator-star/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator-star.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator-star/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator-star.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/siblings-combinator-star/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator-star.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator-star/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator-with-spread/input.svelte diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator.skip/_config.js b/packages/svelte-template-compiler/test/fixtures/siblings-combinator/_config.js similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator.skip/_config.js rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator/_config.js diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator.skip/expected.css b/packages/svelte-template-compiler/test/fixtures/siblings-combinator/expected.css similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator.skip/expected.css rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator/expected.css diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator.skip/expected.html b/packages/svelte-template-compiler/test/fixtures/siblings-combinator/expected.html similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator.skip/expected.html rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator/expected.html diff --git a/packages/svelte-template-compiler/test/fixtures/siblings-combinator.skip/input.svelte b/packages/svelte-template-compiler/test/fixtures/siblings-combinator/input.svelte similarity index 100% rename from packages/svelte-template-compiler/test/fixtures/siblings-combinator.skip/input.svelte rename to packages/svelte-template-compiler/test/fixtures/siblings-combinator/input.svelte