@@ -30,25 +30,52 @@ export function makeInlineStylesFor(
3030
3131 let residualClasses = [ ...classes ] ;
3232 const styles : Record < string , string > = { } ;
33+ const classesWithNonInlinableStyles = new Set < string > ( ) ;
34+
35+ tailwindStylesRoot . walkRules ( ( rule ) => {
36+ const isInAtRule = rule . parent ?. type === 'atrule' ;
37+
38+ let hasPseudoSelectors = false ;
39+ selectorParser ( ( selector ) => {
40+ selector . walkPseudos ( ( ) => {
41+ hasPseudoSelectors = true ;
42+ } ) ;
43+ } ) . processSync ( rule . selector ) ;
44+
45+ const isNonInlinable = isInAtRule || hasPseudoSelectors ;
46+
47+ if ( isNonInlinable ) {
48+ selectorParser ( ( selector ) => {
49+ selector . walkClasses ( ( v ) => {
50+ classesWithNonInlinableStyles . add ( unescapeClass ( v . value ) ) ;
51+ } ) ;
52+ } ) . processSync ( rule . selector ) ;
53+ }
54+ } ) ;
55+
56+ const inlinableClasses = new Set < string > ( ) ;
3357
3458 walkInlinableRules ( tailwindStylesRoot , ( rule ) => {
35- const classesOnSelector : string [ ] = [ ] ;
3659 selectorParser ( ( selector ) => {
3760 selector . walkClasses ( ( v ) => {
38- classesOnSelector . push ( unescapeClass ( v . value ) ) ;
61+ inlinableClasses . add ( unescapeClass ( v . value ) ) ;
3962 } ) ;
4063 } ) . processSync ( rule . selector ) ;
4164
42- residualClasses = residualClasses . filter ( ( singleClass ) => {
43- return ! classesOnSelector . includes ( singleClass ) ;
44- } ) ;
45-
4665 rule . walkDecls ( ( declaration ) => {
4766 styles [ convertCssPropertyToReactProperty ( declaration . prop ) ] =
4867 declaration . value + ( declaration . important ? '!important' : '' ) ;
4968 } ) ;
5069 } ) ;
5170
71+ residualClasses = residualClasses . filter ( ( singleClass ) => {
72+ const isInlinable = inlinableClasses . has ( singleClass ) ;
73+ const hasNonInlinableStyles =
74+ classesWithNonInlinableStyles . has ( singleClass ) ;
75+
76+ return ! isInlinable || hasNonInlinableStyles ;
77+ } ) ;
78+
5279 return {
5380 styles,
5481 residualClassName : residualClasses . join ( ' ' ) ,
0 commit comments