@@ -130,6 +130,34 @@ export let variantPlugins = {
130
130
'disabled' ,
131
131
] . map ( ( variant ) => ( Array . isArray ( variant ) ? variant : [ variant , `&:${ variant } ` ] ) )
132
132
133
+ // Base `:not` variants
134
+ for ( let [ variantName , state ] of pseudoVariants ) {
135
+ addVariant ( `not-${ variantName } ` , ( ctx ) => {
136
+ let result = typeof state === 'function' ? state ( ctx ) : state
137
+
138
+ return result . replace ( / & ( \S + ) / , '&:not($1)' )
139
+ } )
140
+ }
141
+
142
+ // Group `:not` variants
143
+ for ( let [ variantName , state ] of pseudoVariants ) {
144
+ addVariant ( `group-not-${ variantName } ` , ( ctx ) => {
145
+ let result = typeof state === 'function' ? state ( ctx ) : state
146
+
147
+ return result . replace ( / & ( \S + ) / , ':merge(.group):not($1) &' )
148
+ } )
149
+ }
150
+
151
+ // Peer `:not` variants
152
+ for ( let [ variantName , state ] of pseudoVariants ) {
153
+ addVariant ( `peer-not-${ variantName } ` , ( ctx ) => {
154
+ let result = typeof state === 'function' ? state ( ctx ) : state
155
+
156
+ return result . replace ( / & ( \S + ) / , ':merge(.peer):not($1) ~ &' )
157
+ } )
158
+ }
159
+
160
+ // Base variants
133
161
for ( let [ variantName , state ] of pseudoVariants ) {
134
162
addVariant ( variantName , ( ctx ) => {
135
163
let result = typeof state === 'function' ? state ( ctx ) : state
@@ -138,6 +166,7 @@ export let variantPlugins = {
138
166
} )
139
167
}
140
168
169
+ // Group variants
141
170
for ( let [ variantName , state ] of pseudoVariants ) {
142
171
addVariant ( `group-${ variantName } ` , ( ctx ) => {
143
172
let result = typeof state === 'function' ? state ( ctx ) : state
@@ -146,6 +175,7 @@ export let variantPlugins = {
146
175
} )
147
176
}
148
177
178
+ // Peer variants
149
179
for ( let [ variantName , state ] of pseudoVariants ) {
150
180
addVariant ( `peer-${ variantName } ` , ( ctx ) => {
151
181
let result = typeof state === 'function' ? state ( ctx ) : state
0 commit comments