@@ -51,7 +51,7 @@ it('should safelist based on a pattern regex', () => {
51
51
content : [ { raw : html `<div class= "uppercase" > </ div> ` } ] ,
52
52
safelist : [
53
53
{
54
- pattern : / b g - ( r e d ) - ( 1 0 0 | 2 0 0 ) / ,
54
+ pattern : / ^ b g - ( r e d ) - ( 1 0 0 | 2 0 0 ) $ / ,
55
55
variants : [ 'hover' ] ,
56
56
} ,
57
57
] ,
@@ -92,15 +92,15 @@ it('should not generate duplicates', () => {
92
92
safelist : [
93
93
'uppercase' ,
94
94
{
95
- pattern : / b g - ( r e d ) - ( 1 0 0 | 2 0 0 ) / ,
95
+ pattern : / ^ b g - ( r e d ) - ( 1 0 0 | 2 0 0 ) $ / ,
96
96
variants : [ 'hover' ] ,
97
97
} ,
98
98
{
99
- pattern : / b g - ( r e d ) - ( 1 0 0 | 2 0 0 ) / ,
99
+ pattern : / ^ b g - ( r e d ) - ( 1 0 0 | 2 0 0 ) $ / ,
100
100
variants : [ 'hover' ] ,
101
101
} ,
102
102
{
103
- pattern : / b g - ( r e d ) - ( 1 0 0 | 2 0 0 ) / ,
103
+ pattern : / ^ b g - ( r e d ) - ( 1 0 0 | 2 0 0 ) $ / ,
104
104
variants : [ 'hover' ] ,
105
105
} ,
106
106
] ,
@@ -141,7 +141,7 @@ it('should safelist when using a custom prefix', () => {
141
141
content : [ { raw : html `<div class= "tw-uppercase" > </ div> ` } ] ,
142
142
safelist : [
143
143
{
144
- pattern : / t w - b g - r e d - ( 1 0 0 | 2 0 0 ) / g,
144
+ pattern : / ^ t w - b g - r e d - ( 1 0 0 | 2 0 0 ) $ / g,
145
145
} ,
146
146
] ,
147
147
}
@@ -222,3 +222,85 @@ it('should safelist negatives based on a pattern regex', () => {
222
222
` )
223
223
} )
224
224
} )
225
+
226
+ it ( 'should safelist negatives based on a pattern regex' , ( ) => {
227
+ let config = {
228
+ content : [ { raw : html `<div class= "uppercase" > </ div> ` } ] ,
229
+ safelist : [
230
+ {
231
+ pattern : / ^ b g - r e d - ( 4 0 0 | 5 0 0 ) ( \/ ( 4 0 | 5 0 ) ) ? $ / ,
232
+ variants : [ 'hover' ] ,
233
+ } ,
234
+ {
235
+ pattern : / ^ ( f i l l | r i n g | t e x t ) - r e d - 2 0 0 \/ 5 0 $ / ,
236
+ variants : [ 'hover' ] ,
237
+ } ,
238
+ ] ,
239
+ }
240
+
241
+ return run ( '@tailwind utilities' , config ) . then ( ( result ) => {
242
+ return expect ( result . css ) . toMatchCss ( css `
243
+ .bg-red-400 {
244
+ --tw-bg-opacity : 1 ;
245
+ background-color : rgb (248 113 113 / var (--tw-bg-opacity ));
246
+ }
247
+ .bg-red-500 {
248
+ --tw-bg-opacity : 1 ;
249
+ background-color : rgb (239 68 68 / var (--tw-bg-opacity ));
250
+ }
251
+ .bg-red-400\/40 {
252
+ background-color : rgb (248 113 113 / 0.4 );
253
+ }
254
+ .bg-red-400\/50 {
255
+ background-color : rgb (248 113 113 / 0.5 );
256
+ }
257
+ .bg-red-500\/40 {
258
+ background-color : rgb (239 68 68 / 0.4 );
259
+ }
260
+ .bg-red-500\/50 {
261
+ background-color : rgb (239 68 68 / 0.5 );
262
+ }
263
+ .fill-red-200\/50 {
264
+ fill : rgb (254 202 202 / 0.5 );
265
+ }
266
+ .uppercase {
267
+ text-transform : uppercase;
268
+ }
269
+ .text-red-200\/50 {
270
+ color : rgb (254 202 202 / 0.5 );
271
+ }
272
+ .ring-red-200\/50 {
273
+ --tw-ring-color : rgb (254 202 202 / 0.5 );
274
+ }
275
+ .hover\:bg-red-400 : hover {
276
+ --tw-bg-opacity : 1 ;
277
+ background-color : rgb (248 113 113 / var (--tw-bg-opacity ));
278
+ }
279
+ .hover\:bg-red-500 : hover {
280
+ --tw-bg-opacity : 1 ;
281
+ background-color : rgb (239 68 68 / var (--tw-bg-opacity ));
282
+ }
283
+ .hover\:bg-red-400\/40 : hover {
284
+ background-color : rgb (248 113 113 / 0.4 );
285
+ }
286
+ .hover\:bg-red-400\/50 : hover {
287
+ background-color : rgb (248 113 113 / 0.5 );
288
+ }
289
+ .hover\:bg-red-500\/40 : hover {
290
+ background-color : rgb (239 68 68 / 0.4 );
291
+ }
292
+ .hover\:bg-red-500\/50 : hover {
293
+ background-color : rgb (239 68 68 / 0.5 );
294
+ }
295
+ .hover\:fill-red-200\/50 : hover {
296
+ fill : rgb (254 202 202 / 0.5 );
297
+ }
298
+ .hover\:text-red-200\/50 : hover {
299
+ color : rgb (254 202 202 / 0.5 );
300
+ }
301
+ .hover\:ring-red-200\/50 : hover {
302
+ --tw-ring-color : rgb (254 202 202 / 0.5 );
303
+ }
304
+ ` )
305
+ } )
306
+ } )
0 commit comments