@@ -165,51 +165,51 @@ function declarations(o, emit, prefix, local, localize) {
165
165
* @param {function } localize - @local helper
166
166
*/
167
167
168
- function at$1 ( k , v , emit , prefix , composes , local , localize ) {
169
- var params
170
- if ( / ^ . g l o b a l $ / . test ( k ) ) {
168
+ function atRules ( k , v , emit , prefix , composes , local , localize ) {
169
+ k = / ^ ( . (?: - [ \w ] + - ) ? ( [ _ A - Z a - z ] [ - \w ] * ) ) \b \s * ( . * ? ) \s * $ / . exec ( k ) || [ '@' , '@' , '' , '' ]
170
+ if ( ! k [ 3 ] && / ^ g l o b a l $ / . test ( k [ 2 ] ) ) {
171
171
sheet ( v , emit , prefix , 1 , 0 , localize )
172
172
173
- } else if ( / ^ . l o c a l $ / . test ( k ) ) {
173
+ } else if ( ! k [ 3 ] && / ^ l o c a l $ / . test ( k [ 2 ] ) ) {
174
174
175
175
sheet ( v , emit , prefix , 1 , 1 , localize )
176
176
177
- } else if ( / ^ .(?: - [ \w ] + - ) ? (?: n a m e s p a c e | i m p o r t | c h a r s e t ) $ / . test ( k ) ) {
177
+ } else if ( ! k [ 3 ] && / ^ m i x i n $ / . test ( k [ 2 ] ) ) {
178
+
179
+ sheet ( v , emit , prefix , composes , local , localize )
180
+
181
+ } else if ( ! k [ 3 ] && / ^ (?: n a m e s p a c e | i m p o r t | c h a r s e t ) $ / . test ( k [ 2 ] ) ) {
178
182
flatIter ( function ( v ) {
179
183
180
- emit . a ( k , ' ' , v , ';\n' )
184
+ emit . a ( k [ 0 ] , ' ' , v , ';\n' )
181
185
182
186
} ) ( v )
183
187
184
- } else if ( / ^ . (?: - [ \w ] + - ) ? (?: f o n t - f a c e | v i e w p o r t | s w a s h | o r n a m e n t s | a n n o t a t i o n | s t y l i s t i c | s t y l e s e t | c h a r a c t e r - v a r i a n t ) $ / . test ( k ) ) {
188
+ } else if ( ! k [ 3 ] && / ^ (?: f o n t - f a c e | v i e w p o r t | s w a s h | o r n a m e n t s | a n n o t a t i o n | s t y l i s t i c | s t y l e s e t | c h a r a c t e r - v a r i a n t ) $ / . test ( k [ 2 ] ) ) {
185
189
flatIter ( function ( v ) {
186
190
187
- emit . a ( k , '' , '' , ' {\n' )
191
+ emit . a ( k [ 1 ] , '' , '' , ' {\n' )
188
192
189
193
declarations ( v , emit , '' , local , localize )
190
194
191
195
emit . c ( '}\n' )
192
196
193
197
} ) ( v )
194
198
195
- } else if ( / ^ .(?: - [ \w ] + - ) ? (?: m e d i a | s u p p o r t s | d o c u m e n t | p a g e | k e y f r a m e s | c o u n t e r - s t y l e | f o n t - f e a t u r e - v a l u e s ) \b \s * ( \S .* ) / . test ( k ) ) {
196
-
197
- params = k . match ( / ^ .(?: - [ \w ] + - ) ? (?: m e d i a | s u p p o r t s | d o c u m e n t | p a g e | k e y f r a m e s | c o u n t e r - s t y l e | f o n t - f e a t u r e - v a l u e s ) \b \s * ( \S .* ) / ) [ 1 ]
198
-
199
- k = k . match ( / ^ .(?: - [ \w ] + - ) ? (?: m e d i a | s u p p o r t s | d o c u m e n t | p a g e | k e y f r a m e s | c o u n t e r - s t y l e | f o n t - f e a t u r e - v a l u e s ) / ) [ 0 ]
199
+ } else if ( k [ 3 ] && / ^ (?: m e d i a | s u p p o r t s | d o c u m e n t | p a g e | k e y f r a m e s | c o u n t e r - s t y l e | f o n t - f e a t u r e - v a l u e s ) $ / . test ( k [ 2 ] ) ) {
200
200
201
- if ( local && / ^ . (?: - [ \w ] + - ) ? (?: k e y f r a m e s | c o u n t e r - s t y l e ) / . test ( k ) ) {
202
- params = params . replace (
201
+ if ( local && / ^ (?: k e y f r a m e s | c o u n t e r - s t y l e ) $ / . test ( k [ 2 ] ) ) {
202
+ k [ 3 ] = k [ 3 ] . replace (
203
203
// generated by script/regexps.js
204
204
/ : ? g l o b a l \( \s * ( [ _ A - Z a - z ] [ - \w ] * ) \s * \) | ( ) ( - ? [ _ A - Z a - z ] [ - \w ] * ) / ,
205
205
localize
206
206
)
207
207
}
208
208
209
209
210
- emit . a ( k , ' ' , params , ' {\n' )
210
+ emit . a ( k [ 1 ] , ' ' , k [ 3 ] , ' {\n' )
211
211
212
- if ( / . (?: - [ \w ] + - ) ? (?: p a g e | c o u n t e r - s t y l e ) / . test ( k ) ) {
212
+ if ( / ^ (?: p a g e | c o u n t e r - s t y l e ) $ / . test ( k [ 2 ] ) ) {
213
213
214
214
declarations ( v , emit , '' , local , localize )
215
215
@@ -222,8 +222,10 @@ function at$1(k, v, emit, prefix, composes, local, localize){
222
222
emit . c ( '}\n' )
223
223
224
224
} else {
225
-
226
- emit . a ( '@-error-unsupported-at-rule' , ' ' , JSON . stringify ( k ) , ';\n' )
225
+ for ( var i = 0 ; i < localize . a . length ; i ++ ) {
226
+ if ( localize . a [ i ] ( k , v , emit , prefix , composes , local , localize , sheet , declarations ) ) return
227
+ }
228
+ emit . a ( '@-error-unsupported-at-rule' , ' ' , JSON . stringify ( k [ 0 ] ) , ';\n' )
227
229
228
230
}
229
231
}
@@ -277,7 +279,7 @@ function sheet(statements, emit, prefix, composes, local, localize) {
277
279
278
280
inDeclaration = ( inDeclaration && emit . c ( '}\n' ) && 0 )
279
281
280
- at$1 ( k , v , emit , prefix , composes , local , localize )
282
+ atRules ( k , v , emit , prefix , composes , local , localize )
281
283
282
284
} else {
283
285
// selector or nested sub-selectors
@@ -361,7 +363,7 @@ function at (rule, params, block) {
361
363
}
362
364
363
365
function j2c ( ) {
364
- var filters = [ ]
366
+ var filters = [ ] , atHandlers = [ ]
365
367
var instance = {
366
368
at : at ,
367
369
global : global ,
@@ -403,6 +405,10 @@ function j2c() {
403
405
filters . push ( filter )
404
406
} ) ( plugin . $filter || [ ] )
405
407
408
+ flatIter ( function ( handler ) {
409
+ atHandlers . push ( handler )
410
+ } ) ( plugin . $at || [ ] )
411
+
406
412
_default ( instance , plugin )
407
413
} )
408
414
@@ -439,6 +445,8 @@ function j2c() {
439
445
return dot + instance . names [ name ] . match ( / ^ \S + / )
440
446
}
441
447
448
+ localize . a = atHandlers
449
+
442
450
/*/-statements-/*/
443
451
instance . sheet = function ( statements , emit ) {
444
452
sheet (
0 commit comments