@@ -853,20 +853,30 @@ function handleSvelteAttribute(ctx: CaseHandlerContext) {
853853 ctx . node ,
854854 z . object ( {
855855 name : z . string ( ) ,
856- value : z . array (
856+ value : z . union ( [
857+ z . array (
858+ z . object ( {
859+ type : z . string ( ) ,
860+ start : z . number ( ) ,
861+ end : z . number ( ) ,
862+ } ) ,
863+ ) ,
857864 z . object ( {
858865 type : z . string ( ) ,
859866 start : z . number ( ) ,
860867 end : z . number ( ) ,
861868 } ) ,
862- ) ,
869+ ] ) ,
863870 } ) ,
864871 ) &&
865872 ctx . supportedAttributes . includes ( ctx . node . name )
866873 ) {
867874 ctx . keywordStartingNodes . push ( ctx . currentASTNode ) ;
868875
869- const hasExpression = ctx . node . value . some ( ( childNode ) => childNode . type === 'MustacheTag' ) ;
876+ const childNodes = Array . isArray ( ctx . node . value ) ? ctx . node . value : [ ctx . node . value ] ;
877+ const hasExpression = childNodes . some (
878+ ( childNode ) => childNode . type === 'MustacheTag' || childNode . type === 'ExpressionTag' ,
879+ ) ;
870880
871881 if ( hasExpression ) {
872882 let minRangeStart = Infinity ;
@@ -1842,6 +1852,7 @@ const parserCaseHandlers: ParserCaseHandlers = {
18421852 Line : handleTypeScriptBlock ,
18431853 Attribute : handleSvelteAttribute ,
18441854 Comment : handleSvelteComment ,
1855+ ExpressionTag : handleSvelteMustacheTag ,
18451856 MustacheTag : handleSvelteMustacheTag ,
18461857 RefinedScript : handleSvelteRefinedScript ,
18471858 Text : handleSvelteText ,
@@ -1944,15 +1955,18 @@ export function findTargetClassNameNodesBasedOnJavaScript(
19441955 recursiveProps = [ 'arguments' ] ;
19451956 break ;
19461957 }
1958+ case 'Fragment' :
1959+ case 'JSXFragment' : {
1960+ recursiveProps = [ 'children' , 'nodes' ] ;
1961+ break ;
1962+ }
19471963 case 'CatchBlock' :
19481964 case 'ElseBlock' :
1949- case 'Fragment' :
1950- case 'JSXFragment' :
19511965 case 'KeyBlock' :
19521966 case 'PendingBlock' :
19531967 case 'SnippetBlock' :
19541968 case 'ThenBlock' : {
1955- recursiveProps = [ 'children' ] ;
1969+ recursiveProps = [ 'children' , 'body' , 'fragment' ] ;
19561970 break ;
19571971 }
19581972 case 'ChainExpression' :
@@ -1966,9 +1980,14 @@ export function findTargetClassNameNodesBasedOnJavaScript(
19661980 recursiveProps = [ 'consequent' , 'alternate' ] ;
19671981 break ;
19681982 }
1983+ case 'Component' :
19691984 case 'Element' :
1970- case 'InlineComponent' : {
1971- recursiveProps = [ 'attributes' , 'children' ] ;
1985+ case 'InlineComponent' :
1986+ case 'RegularElement' :
1987+ case 'SvelteComponent' :
1988+ case 'SvelteElement' :
1989+ case 'SvelteFragment' : {
1990+ recursiveProps = [ 'attributes' , 'children' , 'fragment' ] ;
19721991 break ;
19731992 }
19741993 case 'ExportDefaultDeclaration' :
@@ -1980,9 +1999,12 @@ export function findTargetClassNameNodesBasedOnJavaScript(
19801999 recursiveProps = [ 'program' ] ;
19812000 break ;
19822001 }
1983- case 'EachBlock' :
2002+ case 'EachBlock' : {
2003+ recursiveProps = [ 'children' , 'else' , 'body' , 'fallback' , 'context' ] ;
2004+ break ;
2005+ }
19842006 case 'IfBlock' : {
1985- recursiveProps = [ 'children' , 'else' ] ;
2007+ recursiveProps = [ 'children' , 'else' , 'consequent' , 'alternate' , 'test' ] ;
19862008 break ;
19872009 }
19882010 case 'JSXElement' : {
@@ -1997,6 +2019,7 @@ export function findTargetClassNameNodesBasedOnJavaScript(
19972019 recursiveProps = [ 'leadingComments' ] ;
19982020 break ;
19992021 }
2022+ case 'ExpressionTag' :
20002023 case 'MustacheTag' : {
20012024 recursiveProps = [ 'expression' ] ;
20022025 break ;
@@ -2019,7 +2042,7 @@ export function findTargetClassNameNodesBasedOnJavaScript(
20192042 break ;
20202043 }
20212044 case 'Root' : {
2022- recursiveProps = [ 'html' , 'instance' ] ;
2045+ recursiveProps = [ 'html' , 'instance' , 'module' , 'fragment' ] ;
20232046 break ;
20242047 }
20252048 case 'Script' : {
0 commit comments