@@ -4,17 +4,22 @@ const selectorProcessor = selectorParser(selectors => {
44 let hoverSelectors = [ ]
55
66 selectors . walk ( selector => {
7- if ( selector . type === 'pseudo' && `${ selector } ` === ':hover' ) {
8- hoverSelectors . push ( `${ selector . parent } ` )
7+ if (
8+ selector . type === 'pseudo' &&
9+ selector . toString ( ) === ':hover' &&
10+ selector . parent . value !== ':not' &&
11+ selector . parent . toString ( ) !== ':hover'
12+ ) {
13+ hoverSelectors . push ( selector . parent . toString ( ) )
914 }
1015 } )
1116
1217 let nonHoverSelectors = selectors . reduce ( ( acc , selector ) => {
13- if ( hoverSelectors . includes ( ` ${ selector } ` ) ) {
18+ if ( hoverSelectors . includes ( selector . toString ( ) ) ) {
1419 return acc
1520 }
1621
17- return [ ...acc , ` ${ selector } ` ]
22+ return [ ...acc , selector . toString ( ) ]
1823 } , [ ] )
1924
2025 return { hoverSelectors, nonHoverSelectors }
@@ -69,6 +74,10 @@ module.exports = ({
6974 nonHoverSelectors = [ ]
7075 } = selectorProcessor . transformSync ( rule . selector , { lossless : false } )
7176
77+ if ( hoverSelectors . length === 0 ) {
78+ return
79+ }
80+
7281 let mediaQuery = createMediaQuery (
7382 rule . clone ( { selectors : hoverSelectors } ) ,
7483 { AtRule }
@@ -93,7 +102,7 @@ module.exports = ({
93102 )
94103 }
95104
96- if ( nonHoverSelectors . length ) {
105+ if ( nonHoverSelectors . length > 0 ) {
97106 rule . replaceWith ( rule . clone ( { selectors : nonHoverSelectors } ) )
98107
99108 return
0 commit comments