@master/css 2.0.0-rc.68 → 2.0.0-rc.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/common.cjs +0 -2
  2. package/dist/common.d.ts +0 -1
  3. package/dist/common.mjs +1 -2
  4. package/dist/config/functions.cjs +9 -243
  5. package/dist/config/functions.d.ts +137 -2
  6. package/dist/config/functions.mjs +9 -243
  7. package/dist/config/index.cjs +2 -2
  8. package/dist/config/index.mjs +2 -2
  9. package/dist/config/modes.cjs +307 -3
  10. package/dist/config/modes.d.ts +306 -2
  11. package/dist/config/modes.mjs +307 -3
  12. package/dist/config/rules.cjs +740 -782
  13. package/dist/config/rules.d.ts +692 -683
  14. package/dist/config/rules.mjs +741 -783
  15. package/dist/config/utilities.cjs +328 -97
  16. package/dist/config/utilities.d.ts +247 -16
  17. package/dist/config/utilities.mjs +328 -97
  18. package/dist/config/variables.cjs +88 -460
  19. package/dist/config/variables.d.ts +358 -369
  20. package/dist/config/variables.mjs +88 -460
  21. package/dist/core.cjs +234 -234
  22. package/dist/core.d.ts +5 -3
  23. package/dist/core.mjs +234 -234
  24. package/dist/create.cjs +10 -0
  25. package/dist/create.d.ts +3 -0
  26. package/dist/create.mjs +8 -0
  27. package/dist/declarers/core.group.cjs +99 -0
  28. package/dist/declarers/core.group.d.ts +2 -0
  29. package/dist/declarers/core.group.mjs +97 -0
  30. package/dist/declarers/core.variable.cjs +9 -0
  31. package/dist/declarers/core.variable.d.ts +4 -0
  32. package/dist/declarers/core.variable.mjs +7 -0
  33. package/dist/declarers/index.cjs +13 -0
  34. package/dist/declarers/index.d.ts +10 -0
  35. package/dist/declarers/index.mjs +11 -0
  36. package/dist/declarers/pair.cjs +12 -0
  37. package/dist/declarers/pair.d.ts +4 -0
  38. package/dist/declarers/pair.mjs +10 -0
  39. package/dist/factories/with-syntax-layer.cjs +0 -2
  40. package/dist/factories/with-syntax-layer.mjs +0 -2
  41. package/dist/function-transformers/core.calc.cjs +225 -0
  42. package/dist/function-transformers/core.calc.d.ts +2 -0
  43. package/dist/function-transformers/core.calc.mjs +223 -0
  44. package/dist/function-transformers/core.variable.cjs +23 -0
  45. package/dist/function-transformers/core.variable.d.ts +7 -0
  46. package/dist/function-transformers/core.variable.mjs +21 -0
  47. package/dist/function-transformers/index.cjs +11 -0
  48. package/dist/function-transformers/index.d.ts +8 -0
  49. package/dist/function-transformers/index.mjs +9 -0
  50. package/dist/index.cjs +10 -1
  51. package/dist/index.d.ts +8 -2
  52. package/dist/index.mjs +6 -1
  53. package/dist/layer.cjs +2 -4
  54. package/dist/layer.mjs +2 -4
  55. package/dist/non-layer.cjs +2 -4
  56. package/dist/non-layer.mjs +2 -4
  57. package/dist/syntax-rule-type.cjs +8 -7
  58. package/dist/syntax-rule-type.d.ts +7 -7
  59. package/dist/syntax-rule-type.mjs +8 -7
  60. package/dist/syntax-rule.cjs +305 -258
  61. package/dist/syntax-rule.d.ts +2 -2
  62. package/dist/syntax-rule.mjs +306 -259
  63. package/dist/{utils/autofill-solid-style.cjs → transformers/auto-fill-solid.cjs} +3 -3
  64. package/dist/transformers/auto-fill-solid.d.ts +2 -0
  65. package/dist/{utils/autofill-solid-style.mjs → transformers/auto-fill-solid.mjs} +3 -3
  66. package/dist/transformers/index.cjs +9 -0
  67. package/dist/transformers/index.d.ts +6 -0
  68. package/dist/transformers/index.mjs +7 -0
  69. package/dist/types/common.d.ts +0 -2
  70. package/dist/types/config.d.ts +24 -20
  71. package/dist/types/syntax.d.ts +10 -8
  72. package/dist/utils/equal-selectors.cjs +1 -2
  73. package/dist/utils/equal-selectors.mjs +1 -2
  74. package/dist/utils/extend-config.cjs +83 -44
  75. package/dist/utils/extend-config.d.ts +10 -1
  76. package/dist/utils/extend-config.mjs +83 -44
  77. package/dist/utils/flatten-meta-object.cjs +38 -0
  78. package/dist/utils/flatten-meta-object.d.ts +13 -0
  79. package/dist/utils/flatten-meta-object.mjs +36 -0
  80. package/dist/utils/flatten-object.cjs +13 -9
  81. package/dist/utils/flatten-object.d.ts +1 -1
  82. package/dist/utils/flatten-object.mjs +13 -9
  83. package/dist/utils/generate-css.cjs +2 -2
  84. package/dist/utils/generate-css.d.ts +1 -2
  85. package/dist/utils/generate-css.mjs +2 -2
  86. package/dist/utils/minify-extended-config.cjs +64 -0
  87. package/dist/utils/minify-extended-config.d.ts +9 -0
  88. package/dist/utils/minify-extended-config.mjs +62 -0
  89. package/dist/utils/nest-meta-object.cjs +25 -0
  90. package/dist/utils/nest-meta-object.d.ts +7 -0
  91. package/dist/utils/nest-meta-object.mjs +23 -0
  92. package/dist/utils/parse-at.cjs +1 -2
  93. package/dist/utils/parse-at.d.ts +2 -2
  94. package/dist/utils/parse-at.mjs +1 -2
  95. package/dist/utils/parse-pair.cjs +3 -6
  96. package/dist/utils/parse-pair.mjs +3 -6
  97. package/dist/utils/parse-selector.cjs +2 -4
  98. package/dist/utils/parse-selector.d.ts +2 -2
  99. package/dist/utils/parse-selector.mjs +2 -4
  100. package/dist/utils/sort-readable-classes.cjs +2 -2
  101. package/dist/utils/sort-readable-classes.d.ts +1 -2
  102. package/dist/utils/sort-readable-classes.mjs +2 -2
  103. package/dist/variable-rule.cjs +35 -29
  104. package/dist/variable-rule.d.ts +16 -6
  105. package/dist/variable-rule.mjs +35 -29
  106. package/package.json +1 -1
  107. package/dist/utils/autofill-solid-style.d.ts +0 -3
@@ -1,191 +1,44 @@
1
1
  'use strict';
2
2
 
3
- var cssEscape = require('../shared/utils/css-escape.cjs');
4
3
  var syntaxRuleType = require('../syntax-rule-type.cjs');
5
4
  var common = require('../common.cjs');
6
- var autofillSolidStyle = require('../utils/autofill-solid-style.cjs');
7
5
 
8
6
  const rules = {
9
- group: {
10
- matcher: /^(?:.+?[*_>~+])?\{.+?\}/,
11
- type: syntaxRuleType.Shorthand,
12
- analyze (className) {
13
- let i = 0;
14
- for(; i < className.length; i++){
15
- if (className[i] === '{' && className[i - 1] !== '\\') {
16
- break;
17
- }
18
- }
19
- return [
20
- className.slice(i),
21
- className.slice(0, i)
22
- ];
23
- },
24
- declare (value) {
25
- const declarations = {};
26
- const addProp = (propertyName)=>{
27
- const indexOfColon = propertyName.indexOf(':');
28
- if (indexOfColon !== -1) {
29
- const propName = propertyName.slice(0, indexOfColon);
30
- declarations[propName] = propertyName.slice(indexOfColon + 1);
31
- }
32
- };
33
- const handleRule = (rule)=>{
34
- const addProps = (cssText)=>{
35
- const cssProperties = cssText.slice(cssEscape(rule.name).length).match(/\{(.*)\}/)?.[1].split(';');
36
- if (cssProperties) for (const eachCssProperty of cssProperties){
37
- addProp(eachCssProperty);
38
- }
39
- };
40
- addProps(rule.text);
41
- // animation
42
- if (rule.animationNames) {
43
- if (!this.animationNames) {
44
- this.animationNames = new Set();
45
- }
46
- for (const eachKeyframeName of rule.animationNames){
47
- this.animationNames.add(eachKeyframeName);
48
- }
49
- }
50
- // variable
51
- if (rule.variableNames) {
52
- if (this.variableNames) {
53
- for (const eachVariableName of rule.variableNames){
54
- this.variableNames.add(eachVariableName);
55
- }
56
- } else {
57
- this.variableNames = new Set(rule.variableNames);
58
- }
59
- }
60
- };
61
- const names = [];
62
- let currentName = '';
63
- const addName = ()=>{
64
- if (currentName) {
65
- names.push(currentName.replace(/ /g, '|'));
66
- currentName = '';
67
- }
68
- };
69
- let i = 1;
70
- (function analyze(end) {
71
- for(; i < value.length; i++){
72
- const char = value[i];
73
- if (!end) {
74
- if (char === ';') {
75
- addName();
76
- continue;
77
- }
78
- if (char === '}') {
79
- break;
80
- }
81
- }
82
- currentName += char;
83
- if (end === char) {
84
- if (end === '\'' || end === '"') {
85
- let count = 0;
86
- for(let j = currentName.length - 2;; j--){
87
- if (currentName[j] !== '\\') {
88
- break;
89
- }
90
- count++;
91
- }
92
- if (count % 2) {
93
- continue;
94
- }
95
- }
96
- break;
97
- } else if (char in common.VALUE_DELIMITERS && end !== '\'' && end !== '"') {
98
- i++;
99
- analyze(common.VALUE_DELIMITERS[char]);
100
- }
101
- }
102
- })('');
103
- addName();
104
- for (const eachName of names){
105
- const rules = this.css.generate(eachName, this.mode);
106
- if (rules.length) {
107
- for (const eachRule of rules){
108
- handleRule(eachRule);
109
- }
110
- } else {
111
- addProp(eachName);
112
- }
113
- }
114
- return declarations;
115
- }
116
- },
117
- variable: {
118
- matcher: /^\$[\w-]+:/,
119
- type: syntaxRuleType.Shorthand,
120
- declare (value) {
121
- return {
122
- ['--' + this.keyToken.slice(1, -1)]: value
123
- };
124
- }
125
- },
126
7
  'font-size': {
127
- ambiguousKeys: [
8
+ aliasGroups: [
128
9
  'font',
129
10
  'f'
130
11
  ],
131
- ambiguousValues: [
132
- common.NUMBER_VALUE_REGEX
133
- ],
12
+ kind: 'number',
134
13
  unit: 'rem',
135
14
  type: syntaxRuleType.Native
136
15
  },
137
16
  'font-weight': {
138
- ambiguousKeys: [
17
+ aliasGroups: [
139
18
  'font',
140
19
  'f'
141
20
  ],
142
- ambiguousValues: [
21
+ values: [
143
22
  'bolder'
144
23
  ],
145
24
  type: syntaxRuleType.Native
146
25
  },
147
26
  'font-family': {
148
- ambiguousKeys: [
27
+ aliasGroups: [
149
28
  'font',
150
29
  'f'
151
30
  ],
152
31
  type: syntaxRuleType.Native
153
32
  },
154
- 'font-smoothing': {
155
- ambiguousKeys: [
156
- 'font',
157
- 'f'
158
- ],
159
- ambiguousValues: [
160
- 'antialiased',
161
- 'subpixel-antialiased'
162
- ],
163
- type: syntaxRuleType.Native,
164
- declare (value) {
165
- switch(value){
166
- case 'subpixel-antialiased':
167
- return {
168
- '-webkit-font-smoothing': 'auto',
169
- '-moz-osx-font-smoothing': 'auto'
170
- };
171
- case 'antialiased':
172
- return {
173
- '-webkit-font-smoothing': 'antialiased',
174
- '-moz-osx-font-smoothing': 'grayscale'
175
- };
176
- default:
177
- return {
178
- 'font-smooth': value
179
- };
180
- }
181
- }
33
+ 'font-smooth': {
34
+ type: syntaxRuleType.Native
182
35
  },
183
36
  'font-style': {
184
- ambiguousKeys: [
37
+ aliasGroups: [
185
38
  'font',
186
39
  'f'
187
40
  ],
188
- ambiguousValues: [
41
+ values: [
189
42
  'normal',
190
43
  'italic',
191
44
  'oblique'
@@ -194,11 +47,11 @@ const rules = {
194
47
  unit: 'deg'
195
48
  },
196
49
  'font-variant-numeric': {
197
- ambiguousKeys: [
50
+ aliasGroups: [
198
51
  'font',
199
52
  'f'
200
53
  ],
201
- ambiguousValues: [
54
+ values: [
202
55
  'ordinal',
203
56
  'slashed-zero',
204
57
  'lining-nums',
@@ -211,7 +64,7 @@ const rules = {
211
64
  type: syntaxRuleType.Native
212
65
  },
213
66
  'font-variant': {
214
- ambiguousKeys: [
67
+ aliasGroups: [
215
68
  'font',
216
69
  'f'
217
70
  ],
@@ -220,13 +73,12 @@ const rules = {
220
73
  font: {
221
74
  subkey: 'f',
222
75
  type: syntaxRuleType.NativeShorthand,
223
- variables: [
76
+ namespaces: [
224
77
  'font-family',
225
78
  'font-variant',
226
79
  'font-weight',
227
80
  'font-size',
228
- 'font-style',
229
- 'line-height'
81
+ 'font-style'
230
82
  ]
231
83
  },
232
84
  'font-feature-settings': {
@@ -236,8 +88,8 @@ const rules = {
236
88
  color: {
237
89
  key: 'fg',
238
90
  type: syntaxRuleType.Native,
239
- variables: [
240
- 'text'
91
+ namespaces: [
92
+ 'color.text'
241
93
  ]
242
94
  },
243
95
  // margin
@@ -245,7 +97,7 @@ const rules = {
245
97
  key: 'ml',
246
98
  type: syntaxRuleType.Native,
247
99
  unit: 'rem',
248
- variables: [
100
+ namespaces: [
249
101
  'spacing'
250
102
  ]
251
103
  },
@@ -253,7 +105,7 @@ const rules = {
253
105
  key: 'mr',
254
106
  type: syntaxRuleType.Native,
255
107
  unit: 'rem',
256
- variables: [
108
+ namespaces: [
257
109
  'spacing'
258
110
  ]
259
111
  },
@@ -261,7 +113,7 @@ const rules = {
261
113
  key: 'mt',
262
114
  type: syntaxRuleType.Native,
263
115
  unit: 'rem',
264
- variables: [
116
+ namespaces: [
265
117
  'spacing'
266
118
  ]
267
119
  },
@@ -269,7 +121,7 @@ const rules = {
269
121
  key: 'mb',
270
122
  type: syntaxRuleType.Native,
271
123
  unit: 'rem',
272
- variables: [
124
+ namespaces: [
273
125
  'spacing'
274
126
  ]
275
127
  },
@@ -278,13 +130,11 @@ const rules = {
278
130
  subkey: 'margin-x',
279
131
  unit: 'rem',
280
132
  type: syntaxRuleType.Shorthand,
281
- declare (value) {
282
- return {
283
- 'margin-left': value,
284
- 'margin-right': value
285
- };
286
- },
287
- variables: [
133
+ declarations: [
134
+ 'margin-left',
135
+ 'margin-right'
136
+ ],
137
+ namespaces: [
288
138
  'spacing'
289
139
  ]
290
140
  },
@@ -292,13 +142,11 @@ const rules = {
292
142
  key: 'my',
293
143
  unit: 'rem',
294
144
  type: syntaxRuleType.Shorthand,
295
- declare (value) {
296
- return {
297
- 'margin-top': value,
298
- 'margin-bottom': value
299
- };
300
- },
301
- variables: [
145
+ declarations: [
146
+ 'margin-top',
147
+ 'margin-bottom'
148
+ ],
149
+ namespaces: [
302
150
  'spacing'
303
151
  ]
304
152
  },
@@ -306,7 +154,7 @@ const rules = {
306
154
  key: 'm',
307
155
  unit: 'rem',
308
156
  type: syntaxRuleType.NativeShorthand,
309
- variables: [
157
+ namespaces: [
310
158
  'spacing'
311
159
  ]
312
160
  },
@@ -315,7 +163,7 @@ const rules = {
315
163
  key: 'mis',
316
164
  type: syntaxRuleType.Native,
317
165
  unit: 'rem',
318
- variables: [
166
+ namespaces: [
319
167
  'spacing'
320
168
  ]
321
169
  },
@@ -323,7 +171,7 @@ const rules = {
323
171
  key: 'mie',
324
172
  type: syntaxRuleType.Native,
325
173
  unit: 'rem',
326
- variables: [
174
+ namespaces: [
327
175
  'spacing'
328
176
  ]
329
177
  },
@@ -331,7 +179,7 @@ const rules = {
331
179
  key: 'mi',
332
180
  unit: 'rem',
333
181
  type: syntaxRuleType.NativeShorthand,
334
- variables: [
182
+ namespaces: [
335
183
  'spacing'
336
184
  ]
337
185
  },
@@ -340,7 +188,7 @@ const rules = {
340
188
  key: 'pl',
341
189
  type: syntaxRuleType.Native,
342
190
  unit: 'rem',
343
- variables: [
191
+ namespaces: [
344
192
  'spacing'
345
193
  ]
346
194
  },
@@ -348,7 +196,7 @@ const rules = {
348
196
  key: 'pr',
349
197
  type: syntaxRuleType.Native,
350
198
  unit: 'rem',
351
- variables: [
199
+ namespaces: [
352
200
  'spacing'
353
201
  ]
354
202
  },
@@ -356,7 +204,7 @@ const rules = {
356
204
  key: 'pt',
357
205
  type: syntaxRuleType.Native,
358
206
  unit: 'rem',
359
- variables: [
207
+ namespaces: [
360
208
  'spacing'
361
209
  ]
362
210
  },
@@ -364,7 +212,7 @@ const rules = {
364
212
  key: 'pb',
365
213
  type: syntaxRuleType.Native,
366
214
  unit: 'rem',
367
- variables: [
215
+ namespaces: [
368
216
  'spacing'
369
217
  ]
370
218
  },
@@ -372,13 +220,11 @@ const rules = {
372
220
  key: 'px',
373
221
  unit: 'rem',
374
222
  type: syntaxRuleType.Shorthand,
375
- declare (value) {
376
- return {
377
- 'padding-left': value,
378
- 'padding-right': value
379
- };
380
- },
381
- variables: [
223
+ declarations: [
224
+ 'padding-left',
225
+ 'padding-right'
226
+ ],
227
+ namespaces: [
382
228
  'spacing'
383
229
  ]
384
230
  },
@@ -386,13 +232,11 @@ const rules = {
386
232
  key: 'py',
387
233
  unit: 'rem',
388
234
  type: syntaxRuleType.Shorthand,
389
- declare (value) {
390
- return {
391
- 'padding-top': value,
392
- 'padding-bottom': value
393
- };
394
- },
395
- variables: [
235
+ declarations: [
236
+ 'padding-top',
237
+ 'padding-bottom'
238
+ ],
239
+ namespaces: [
396
240
  'spacing'
397
241
  ]
398
242
  },
@@ -400,7 +244,7 @@ const rules = {
400
244
  key: 'p',
401
245
  unit: 'rem',
402
246
  type: syntaxRuleType.NativeShorthand,
403
- variables: [
247
+ namespaces: [
404
248
  'spacing'
405
249
  ]
406
250
  },
@@ -409,7 +253,7 @@ const rules = {
409
253
  key: 'pis',
410
254
  type: syntaxRuleType.Native,
411
255
  unit: 'rem',
412
- variables: [
256
+ namespaces: [
413
257
  'spacing'
414
258
  ]
415
259
  },
@@ -417,7 +261,7 @@ const rules = {
417
261
  key: 'pie',
418
262
  type: syntaxRuleType.Native,
419
263
  unit: 'rem',
420
- variables: [
264
+ namespaces: [
421
265
  'spacing'
422
266
  ]
423
267
  },
@@ -425,23 +269,23 @@ const rules = {
425
269
  key: 'pi',
426
270
  unit: 'rem',
427
271
  type: syntaxRuleType.NativeShorthand,
428
- variables: [
272
+ namespaces: [
429
273
  'spacing'
430
274
  ]
431
275
  },
432
276
  // flex
433
277
  'flex-basis': {
434
- ambiguousKeys: [
278
+ aliasGroups: [
435
279
  'flex'
436
280
  ],
437
281
  unit: 'rem',
438
282
  type: syntaxRuleType.Native
439
283
  },
440
284
  'flex-wrap': {
441
- ambiguousKeys: [
285
+ aliasGroups: [
442
286
  'flex'
443
287
  ],
444
- ambiguousValues: [
288
+ values: [
445
289
  'wrap',
446
290
  'nowrap',
447
291
  'wrap-reverse'
@@ -449,22 +293,22 @@ const rules = {
449
293
  type: syntaxRuleType.Native
450
294
  },
451
295
  'flex-grow': {
452
- ambiguousKeys: [
296
+ aliasGroups: [
453
297
  'flex'
454
298
  ],
455
299
  type: syntaxRuleType.Native
456
300
  },
457
301
  'flex-shrink': {
458
- ambiguousKeys: [
302
+ aliasGroups: [
459
303
  'flex'
460
304
  ],
461
305
  type: syntaxRuleType.Native
462
306
  },
463
307
  'flex-direction': {
464
- ambiguousKeys: [
308
+ aliasGroups: [
465
309
  'flex'
466
310
  ],
467
- ambiguousValues: [
311
+ values: [
468
312
  'row',
469
313
  'row-reverse',
470
314
  'column',
@@ -502,40 +346,40 @@ const rules = {
502
346
  size: {
503
347
  type: syntaxRuleType.Shorthand,
504
348
  unit: 'rem',
505
- declare (_value, valueComponents) {
506
- const length = valueComponents.length;
507
- return {
508
- width: length === 1 ? valueComponents[0].text : valueComponents[0].text,
509
- height: length === 1 ? valueComponents[0].text : valueComponents[2].text
510
- };
511
- }
349
+ declarer: [
350
+ 'pair',
351
+ [
352
+ 'width',
353
+ 'height'
354
+ ]
355
+ ]
512
356
  },
513
357
  'min-size': {
514
358
  key: 'min',
515
359
  type: syntaxRuleType.Shorthand,
516
360
  unit: 'rem',
517
- declare (_value, valueComponents) {
518
- const length = valueComponents.length;
519
- return {
520
- 'min-width': length === 1 ? valueComponents[0].text : valueComponents[0].text,
521
- 'min-height': length === 1 ? valueComponents[0].text : valueComponents[2].text
522
- };
523
- }
361
+ declarer: [
362
+ 'pair',
363
+ [
364
+ 'min-width',
365
+ 'min-height'
366
+ ]
367
+ ]
524
368
  },
525
369
  'max-size': {
526
370
  key: 'max',
527
371
  type: syntaxRuleType.Shorthand,
528
372
  unit: 'rem',
529
- declare (_value, valueComponents) {
530
- const length = valueComponents.length;
531
- return {
532
- 'max-width': length === 1 ? valueComponents[0].text : valueComponents[0].text,
533
- 'max-height': length === 1 ? valueComponents[0].text : valueComponents[2].text
534
- };
535
- }
373
+ declarer: [
374
+ 'pair',
375
+ [
376
+ 'max-width',
377
+ 'max-height'
378
+ ]
379
+ ]
536
380
  },
537
381
  'box-sizing': {
538
- ambiguousKeys: [
382
+ aliasGroups: [
539
383
  'box'
540
384
  ],
541
385
  type: syntaxRuleType.Native
@@ -543,12 +387,10 @@ const rules = {
543
387
  'box-decoration-break': {
544
388
  key: 'box-decoration',
545
389
  type: syntaxRuleType.Native,
546
- declare (value) {
547
- return {
548
- '-webkit-box-decoration-break': value,
549
- 'box-decoration-break': value
550
- };
551
- }
390
+ declarations: [
391
+ '-webkit-box-decoration-break',
392
+ 'box-decoration-break'
393
+ ]
552
394
  },
553
395
  container: {
554
396
  type: syntaxRuleType.NativeShorthand
@@ -558,10 +400,10 @@ const rules = {
558
400
  },
559
401
  'container-type': {
560
402
  type: syntaxRuleType.Native,
561
- ambiguousKeys: [
403
+ aliasGroups: [
562
404
  'container'
563
405
  ],
564
- ambiguousValues: [
406
+ values: [
565
407
  'size',
566
408
  'inline-size',
567
409
  'scroll-state'
@@ -591,11 +433,11 @@ const rules = {
591
433
  type: syntaxRuleType.Native
592
434
  },
593
435
  'object-fit': {
594
- ambiguousKeys: [
436
+ aliasGroups: [
595
437
  'object',
596
438
  'obj'
597
439
  ],
598
- ambiguousValues: [
440
+ values: [
599
441
  'contain',
600
442
  'cover',
601
443
  'fill',
@@ -604,11 +446,11 @@ const rules = {
604
446
  type: syntaxRuleType.Native
605
447
  },
606
448
  'object-position': {
607
- ambiguousKeys: [
449
+ aliasGroups: [
608
450
  'object',
609
451
  'obj'
610
452
  ],
611
- ambiguousValues: [
453
+ values: [
612
454
  'top',
613
455
  'bottom',
614
456
  'right',
@@ -618,11 +460,11 @@ const rules = {
618
460
  type: syntaxRuleType.Native
619
461
  },
620
462
  'text-align': {
621
- ambiguousKeys: [
463
+ aliasGroups: [
622
464
  'text',
623
465
  't'
624
466
  ],
625
- ambiguousValues: [
467
+ values: [
626
468
  'justify',
627
469
  'center',
628
470
  'left',
@@ -633,22 +475,21 @@ const rules = {
633
475
  type: syntaxRuleType.Native
634
476
  },
635
477
  'text-decoration-color': {
636
- ambiguousKeys: [
478
+ aliasGroups: [
637
479
  'text-decoration'
638
480
  ],
639
- ambiguousValues: [
640
- common.COLOR_VALUE_REGEX
641
- ],
481
+ kind: 'color',
642
482
  type: syntaxRuleType.Native,
643
- variables: [
644
- 'text'
483
+ namespaces: [
484
+ 'color',
485
+ 'color.text'
645
486
  ]
646
487
  },
647
488
  'text-decoration-style': {
648
- ambiguousKeys: [
489
+ aliasGroups: [
649
490
  'text-decoration'
650
491
  ],
651
- ambiguousValues: [
492
+ values: [
652
493
  'solid',
653
494
  'double',
654
495
  'dotted',
@@ -658,21 +499,21 @@ const rules = {
658
499
  type: syntaxRuleType.Native
659
500
  },
660
501
  'text-decoration-thickness': {
661
- ambiguousKeys: [
502
+ aliasGroups: [
662
503
  'text-decoration'
663
504
  ],
664
- ambiguousValues: [
665
- 'from-font',
666
- common.NUMBER_VALUE_REGEX
505
+ values: [
506
+ 'from-font'
667
507
  ],
508
+ kind: 'number',
668
509
  type: syntaxRuleType.Native,
669
510
  unit: 'em'
670
511
  },
671
512
  'text-decoration-line': {
672
- ambiguousKeys: [
513
+ aliasGroups: [
673
514
  'text-decoration'
674
515
  ],
675
- ambiguousValues: [
516
+ values: [
676
517
  'underline',
677
518
  'overline',
678
519
  'line-through'
@@ -680,42 +521,41 @@ const rules = {
680
521
  type: syntaxRuleType.Native
681
522
  },
682
523
  'text-decoration': {
683
- ambiguousKeys: [
524
+ aliasGroups: [
684
525
  'text',
685
526
  't'
686
527
  ],
687
- ambiguousValues: [
528
+ values: [
688
529
  'underline',
689
530
  'overline',
690
531
  'line-through'
691
532
  ],
692
533
  unit: 'rem',
693
534
  type: syntaxRuleType.NativeShorthand,
694
- variables: [
695
- 'text'
696
- ],
697
- declare (value) {
698
- return {
699
- '-webkit-text-decoration': value,
700
- 'text-decoration': value
701
- };
702
- }
535
+ namespaces: [
536
+ 'color',
537
+ 'color.text'
538
+ ],
539
+ declarations: [
540
+ '-webkit-text-decoration',
541
+ 'text-decoration'
542
+ ]
703
543
  },
704
544
  'text-underline-offset': {
705
- ambiguousKeys: [
545
+ aliasGroups: [
706
546
  'text-underline'
707
547
  ],
708
548
  unit: 'rem',
709
549
  type: syntaxRuleType.Native,
710
- variables: [
550
+ namespaces: [
711
551
  'spacing'
712
552
  ]
713
553
  },
714
554
  'text-underline-position': {
715
- ambiguousKeys: [
555
+ aliasGroups: [
716
556
  'text-underline'
717
557
  ],
718
- ambiguousValues: [
558
+ values: [
719
559
  'front-font',
720
560
  'under',
721
561
  'left',
@@ -724,22 +564,22 @@ const rules = {
724
564
  type: syntaxRuleType.Native
725
565
  },
726
566
  'text-overflow': {
727
- ambiguousKeys: [
567
+ aliasGroups: [
728
568
  'text',
729
569
  't'
730
570
  ],
731
- ambiguousValues: [
571
+ values: [
732
572
  'ellipsis',
733
573
  'clip'
734
574
  ],
735
575
  type: syntaxRuleType.Native
736
576
  },
737
577
  'text-orientation': {
738
- ambiguousKeys: [
578
+ aliasGroups: [
739
579
  'text',
740
580
  't'
741
581
  ],
742
- ambiguousValues: [
582
+ values: [
743
583
  'mixed',
744
584
  'upright',
745
585
  'sideways-right',
@@ -749,11 +589,11 @@ const rules = {
749
589
  type: syntaxRuleType.Native
750
590
  },
751
591
  'text-transform': {
752
- ambiguousKeys: [
592
+ aliasGroups: [
753
593
  'text',
754
594
  't'
755
595
  ],
756
- ambiguousValues: [
596
+ values: [
757
597
  'uppercase',
758
598
  'lowercase',
759
599
  'capitalize'
@@ -761,11 +601,11 @@ const rules = {
761
601
  type: syntaxRuleType.Native
762
602
  },
763
603
  'text-rendering': {
764
- ambiguousKeys: [
604
+ aliasGroups: [
765
605
  'text',
766
606
  't'
767
607
  ],
768
- ambiguousValues: [
608
+ values: [
769
609
  'optimizeSpeed',
770
610
  'optimizeLegibility',
771
611
  'geometricPrecision'
@@ -773,11 +613,11 @@ const rules = {
773
613
  type: syntaxRuleType.Native
774
614
  },
775
615
  'text-wrap': {
776
- ambiguousKeys: [
616
+ aliasGroups: [
777
617
  'text',
778
618
  't'
779
619
  ],
780
- ambiguousValues: [
620
+ values: [
781
621
  'wrap',
782
622
  'nowrap',
783
623
  'balance',
@@ -807,35 +647,35 @@ const rules = {
807
647
  top: {
808
648
  type: syntaxRuleType.Native,
809
649
  unit: 'rem',
810
- variables: [
650
+ namespaces: [
811
651
  'spacing'
812
652
  ]
813
653
  },
814
654
  bottom: {
815
655
  type: syntaxRuleType.Native,
816
656
  unit: 'rem',
817
- variables: [
657
+ namespaces: [
818
658
  'spacing'
819
659
  ]
820
660
  },
821
661
  left: {
822
662
  type: syntaxRuleType.Native,
823
663
  unit: 'rem',
824
- variables: [
664
+ namespaces: [
825
665
  'spacing'
826
666
  ]
827
667
  },
828
668
  right: {
829
669
  type: syntaxRuleType.Native,
830
670
  unit: 'rem',
831
- variables: [
671
+ namespaces: [
832
672
  'spacing'
833
673
  ]
834
674
  },
835
675
  inset: {
836
676
  unit: 'rem',
837
677
  type: syntaxRuleType.NativeShorthand,
838
- variables: [
678
+ namespaces: [
839
679
  'spacing'
840
680
  ]
841
681
  },
@@ -913,114 +753,113 @@ const rules = {
913
753
  },
914
754
  'user-drag': {
915
755
  type: syntaxRuleType.Native,
916
- declare (value) {
917
- return {
918
- '-webkit-user-drag': value,
919
- 'user-drag': value
920
- };
921
- }
756
+ declarations: [
757
+ '-webkit-user-drag',
758
+ 'user-drag'
759
+ ]
922
760
  },
923
761
  'user-select': {
924
762
  type: syntaxRuleType.Native,
925
- declare (value) {
926
- return {
927
- '-webkit-user-select': value,
928
- 'user-select': value
929
- };
930
- }
763
+ declarations: [
764
+ '-webkit-user-select',
765
+ 'user-select'
766
+ ]
931
767
  },
932
768
  'text-shadow': {
933
769
  unit: 'rem',
934
- type: syntaxRuleType.Native
770
+ type: syntaxRuleType.Native,
771
+ namespaces: [
772
+ 'color'
773
+ ]
935
774
  },
936
775
  'text-size': {
937
- ambiguousKeys: [
776
+ aliasGroups: [
938
777
  'text',
939
778
  't'
940
779
  ],
941
- ambiguousValues: [
942
- common.NUMBER_VALUE_REGEX
943
- ],
944
- unit: 'rem',
945
- declare (value) {
946
- const diff = .875;
947
- return {
948
- 'font-size': value,
949
- 'line-height': `calc(${value} + ${diff}em)`
950
- };
780
+ kind: 'number',
781
+ unit: 'rem',
782
+ declarations: {
783
+ 'font-size': undefined,
784
+ 'line-height': [
785
+ 'max(1.8em - max(0rem, ',
786
+ undefined,
787
+ ' - 1rem) * 1.12',
788
+ ', ',
789
+ undefined,
790
+ ')'
791
+ ],
792
+ 'letter-spacing': [
793
+ 'clamp(-0.072em, calc((',
794
+ undefined,
795
+ ' - 1rem) * -0.048), 0em)'
796
+ ]
951
797
  },
952
- type: syntaxRuleType.Shorthand
798
+ type: syntaxRuleType.Shorthand,
799
+ namespaces: [
800
+ 'font-size'
801
+ ]
953
802
  },
954
803
  'text-fill-color': {
955
- ambiguousKeys: [
804
+ aliasGroups: [
956
805
  'text',
957
806
  't'
958
807
  ],
959
- ambiguousValues: [
960
- common.COLOR_VALUE_REGEX
961
- ],
808
+ kind: 'color',
962
809
  type: syntaxRuleType.Native,
963
- variables: [
964
- 'text'
810
+ namespaces: [
811
+ 'color',
812
+ 'color.text'
965
813
  ],
966
- declare (value) {
967
- return {
968
- '-webkit-text-fill-color': value
969
- };
970
- }
814
+ declarations: [
815
+ '-webkit-text-fill-color'
816
+ ]
971
817
  },
972
818
  'text-stroke-width': {
973
- ambiguousKeys: [
819
+ aliasGroups: [
974
820
  'text-stroke'
975
821
  ],
976
- ambiguousValues: [
822
+ values: [
977
823
  'thin',
978
824
  'medium',
979
- 'thick',
980
- common.NUMBER_VALUE_REGEX
825
+ 'thick'
981
826
  ],
827
+ kind: 'number',
982
828
  unit: 'rem',
983
829
  type: syntaxRuleType.Native,
984
- declare (value) {
985
- return {
986
- '-webkit-text-stroke-width': value
987
- };
988
- }
830
+ declarations: [
831
+ '-webkit-text-stroke-width'
832
+ ]
989
833
  },
990
834
  'text-stroke-color': {
991
- ambiguousKeys: [
835
+ aliasGroups: [
992
836
  'text-stroke'
993
837
  ],
994
- ambiguousValues: [
995
- common.COLOR_VALUE_REGEX
996
- ],
838
+ kind: 'color',
997
839
  type: syntaxRuleType.Native,
998
- declare (value) {
999
- return {
1000
- '-webkit-text-stroke-color': value
1001
- };
1002
- }
840
+ declarations: [
841
+ '-webkit-text-stroke-color'
842
+ ],
843
+ namespaces: [
844
+ 'color'
845
+ ]
1003
846
  },
1004
847
  'text-stroke': {
1005
848
  unit: 'rem',
1006
849
  type: syntaxRuleType.Native,
1007
- declare (value) {
1008
- return {
1009
- '-webkit-text-stroke': value
1010
- };
1011
- }
850
+ declarations: [
851
+ '-webkit-text-stroke'
852
+ ]
1012
853
  },
1013
854
  'text-truncate': {
1014
855
  subkey: 'lines',
1015
- declare (value) {
1016
- return {
1017
- display: '-webkit-box',
1018
- '-webkit-box-orient': 'vertical',
1019
- '-webkit-line-clamp': value,
1020
- overflow: 'hidden',
1021
- 'overflow-wrap': 'break-word',
1022
- 'text-overflow': 'ellipsis'
1023
- };
856
+ declarations: {
857
+ display: '-webkit-box',
858
+ '-webkit-box-orient': 'vertical',
859
+ '-webkit-line-clamp': undefined,
860
+ overflow: 'hidden',
861
+ 'overflow-wrap': 'break-word',
862
+ 'text-overflow': 'ellipsis'
1024
863
  },
1025
864
  type: syntaxRuleType.Shorthand
1026
865
  },
@@ -1028,55 +867,161 @@ const rules = {
1028
867
  key: 'shadow',
1029
868
  subkey: 's',
1030
869
  unit: 'rem',
1031
- type: syntaxRuleType.Native
870
+ type: syntaxRuleType.Native,
871
+ namespaces: [
872
+ 'color'
873
+ ]
1032
874
  },
1033
875
  'table-layout': {
1034
876
  type: syntaxRuleType.Native
1035
877
  },
1036
878
  'transform-box': {
1037
- ambiguousKeys: [
879
+ aliasGroups: [
1038
880
  'transform'
1039
881
  ],
1040
882
  type: syntaxRuleType.Native
1041
883
  },
1042
884
  'transform-style': {
1043
- ambiguousKeys: [
885
+ aliasGroups: [
1044
886
  'transform'
1045
887
  ],
1046
- ambiguousValues: [
888
+ values: [
1047
889
  'flat',
1048
890
  'preserve-3d'
1049
891
  ],
1050
892
  type: syntaxRuleType.Native
1051
893
  },
1052
894
  'transform-origin': {
1053
- ambiguousKeys: [
895
+ aliasGroups: [
1054
896
  'transform'
1055
897
  ],
1056
- ambiguousValues: [
898
+ values: [
1057
899
  'top',
1058
900
  'bottom',
1059
901
  'right',
1060
902
  'left',
1061
- 'center',
1062
- common.NUMBER_VALUE_REGEX
903
+ 'center'
1063
904
  ],
905
+ kind: 'number',
1064
906
  unit: 'px',
1065
907
  type: syntaxRuleType.Native
1066
908
  },
1067
909
  transform: {
1068
- matcher: /^(?:translate|scale|skew|rotate|perspective|matrix)(?:3d|[XYZ])?\(/,
1069
910
  type: syntaxRuleType.Native,
1070
- analyze (className) {
1071
- return [
1072
- className.startsWith('transform') ? className.slice(10) : className
1073
- ];
1074
- },
1075
- unit: 'px',
1076
- variables: [
911
+ namespaces: [
912
+ 'spacing'
913
+ ]
914
+ },
915
+ 'translate()': {
916
+ declarations: [
917
+ 'transform'
918
+ ],
919
+ unit: 'rem',
920
+ namespaces: [
921
+ 'spacing'
922
+ ]
923
+ },
924
+ 'translateX()': {
925
+ declarations: [
926
+ 'transform'
927
+ ],
928
+ unit: 'rem',
929
+ namespaces: [
930
+ 'spacing'
931
+ ]
932
+ },
933
+ 'translateY()': {
934
+ declarations: [
935
+ 'transform'
936
+ ],
937
+ unit: 'rem',
938
+ namespaces: [
939
+ 'spacing'
940
+ ]
941
+ },
942
+ 'translateZ()': {
943
+ declarations: [
944
+ 'transform'
945
+ ],
946
+ unit: 'rem',
947
+ namespaces: [
1077
948
  'spacing'
1078
949
  ]
1079
950
  },
951
+ 'translate3d()': {
952
+ declarations: [
953
+ 'transform'
954
+ ],
955
+ unit: 'rem',
956
+ namespaces: [
957
+ 'spacing'
958
+ ]
959
+ },
960
+ 'scale()': {
961
+ declarations: [
962
+ 'transform'
963
+ ]
964
+ },
965
+ 'scaleX()': {
966
+ declarations: [
967
+ 'transform'
968
+ ]
969
+ },
970
+ 'scaleY()': {
971
+ declarations: [
972
+ 'transform'
973
+ ]
974
+ },
975
+ 'scaleZ()': {
976
+ declarations: [
977
+ 'transform'
978
+ ]
979
+ },
980
+ 'scale3d()': {
981
+ declarations: [
982
+ 'transform'
983
+ ]
984
+ },
985
+ 'rotate()': {
986
+ declarations: [
987
+ 'transform'
988
+ ]
989
+ },
990
+ 'rotateX()': {
991
+ declarations: [
992
+ 'transform'
993
+ ]
994
+ },
995
+ 'rotateY()': {
996
+ declarations: [
997
+ 'transform'
998
+ ]
999
+ },
1000
+ 'rotateZ()': {
1001
+ declarations: [
1002
+ 'transform'
1003
+ ]
1004
+ },
1005
+ 'rotate3d()': {
1006
+ declarations: [
1007
+ 'transform'
1008
+ ]
1009
+ },
1010
+ 'perspective()': {
1011
+ declarations: [
1012
+ 'transform'
1013
+ ]
1014
+ },
1015
+ 'matrix()': {
1016
+ declarations: [
1017
+ 'transform'
1018
+ ]
1019
+ },
1020
+ 'matrix3d()': {
1021
+ declarations: [
1022
+ 'transform'
1023
+ ]
1024
+ },
1080
1025
  'transition-property': {
1081
1026
  key: '~property',
1082
1027
  type: syntaxRuleType.Native
@@ -1097,19 +1042,6 @@ const rules = {
1097
1042
  },
1098
1043
  transition: {
1099
1044
  sign: '~',
1100
- analyze (className) {
1101
- if (className.startsWith('~')) {
1102
- return [
1103
- className.slice(1)
1104
- ];
1105
- } else {
1106
- const indexOfColon = className.indexOf(':');
1107
- this.keyToken = className.slice(0, indexOfColon + 1);
1108
- return [
1109
- className.slice(indexOfColon + 1)
1110
- ];
1111
- }
1112
- },
1113
1045
  type: syntaxRuleType.NativeShorthand
1114
1046
  },
1115
1047
  'animation-delay': {
@@ -1150,27 +1082,14 @@ const rules = {
1150
1082
  animation: {
1151
1083
  sign: '@',
1152
1084
  type: syntaxRuleType.NativeShorthand,
1153
- includeAnimations: true,
1154
- analyze (className) {
1155
- if (className.startsWith('@')) {
1156
- return [
1157
- className.slice(1)
1158
- ];
1159
- } else {
1160
- const indexOfColon = className.indexOf(':');
1161
- this.keyToken = className.slice(0, indexOfColon + 1);
1162
- return [
1163
- className.slice(indexOfColon + 1)
1164
- ];
1165
- }
1166
- }
1085
+ includeAnimations: true
1167
1086
  },
1168
1087
  'border-collapse': {
1169
- ambiguousKeys: [
1088
+ aliasGroups: [
1170
1089
  'b',
1171
1090
  'border'
1172
1091
  ],
1173
- ambiguousValues: [
1092
+ values: [
1174
1093
  'collapse',
1175
1094
  'separate'
1176
1095
  ],
@@ -1179,178 +1098,183 @@ const rules = {
1179
1098
  'border-spacing': {
1180
1099
  unit: 'rem',
1181
1100
  type: syntaxRuleType.Native,
1182
- variables: [
1101
+ namespaces: [
1183
1102
  'spacing'
1184
1103
  ]
1185
1104
  },
1186
1105
  // border color
1187
1106
  'border-top-color': {
1188
- ambiguousKeys: [
1107
+ aliasGroups: [
1189
1108
  'bt',
1190
1109
  'border-top'
1191
1110
  ],
1192
- ambiguousValues: [
1193
- common.COLOR_VALUE_REGEX
1194
- ],
1111
+ kind: 'color',
1195
1112
  type: syntaxRuleType.Native,
1196
- variables: [
1197
- 'frame'
1113
+ namespaces: [
1114
+ 'color',
1115
+ 'color.line'
1198
1116
  ]
1199
1117
  },
1200
1118
  'border-bottom-color': {
1201
- ambiguousKeys: [
1119
+ aliasGroups: [
1202
1120
  'bb',
1203
1121
  'border-bottom'
1204
1122
  ],
1205
- ambiguousValues: [
1206
- common.COLOR_VALUE_REGEX
1207
- ],
1123
+ kind: 'color',
1208
1124
  type: syntaxRuleType.Native,
1209
- variables: [
1210
- 'frame'
1125
+ namespaces: [
1126
+ 'color',
1127
+ 'color.line'
1211
1128
  ]
1212
1129
  },
1213
1130
  'border-left-color': {
1214
- ambiguousKeys: [
1131
+ aliasGroups: [
1215
1132
  'bl',
1216
1133
  'border-left'
1217
1134
  ],
1218
- ambiguousValues: [
1219
- common.COLOR_VALUE_REGEX
1220
- ],
1135
+ kind: 'color',
1221
1136
  type: syntaxRuleType.Native,
1222
- variables: [
1223
- 'frame'
1137
+ namespaces: [
1138
+ 'color',
1139
+ 'color.line'
1224
1140
  ]
1225
1141
  },
1226
1142
  'border-right-color': {
1227
- ambiguousKeys: [
1143
+ aliasGroups: [
1228
1144
  'br',
1229
1145
  'border-right'
1230
1146
  ],
1231
- ambiguousValues: [
1232
- common.COLOR_VALUE_REGEX
1233
- ],
1147
+ kind: 'color',
1234
1148
  type: syntaxRuleType.Native,
1235
- variables: [
1236
- 'frame'
1149
+ namespaces: [
1150
+ 'color',
1151
+ 'color.line'
1237
1152
  ]
1238
1153
  },
1239
1154
  'border-x-color': {
1240
- ambiguousKeys: [
1155
+ aliasGroups: [
1241
1156
  'bx',
1242
1157
  'border-x'
1243
1158
  ],
1244
- ambiguousValues: [
1245
- common.COLOR_VALUE_REGEX
1246
- ],
1159
+ kind: 'color',
1247
1160
  type: syntaxRuleType.Shorthand,
1248
- variables: [
1249
- 'frame'
1250
- ],
1251
- declare (value) {
1252
- return {
1253
- 'border-left-color': value,
1254
- 'border-right-color': value
1255
- };
1256
- }
1161
+ namespaces: [
1162
+ 'color',
1163
+ 'color.line'
1164
+ ],
1165
+ declarations: [
1166
+ 'border-left-color',
1167
+ 'border-right-color'
1168
+ ]
1257
1169
  },
1258
1170
  'border-y-color': {
1259
- ambiguousKeys: [
1171
+ aliasGroups: [
1260
1172
  'by',
1261
1173
  'border-y'
1262
1174
  ],
1263
- ambiguousValues: [
1264
- common.COLOR_VALUE_REGEX
1265
- ],
1175
+ kind: 'color',
1266
1176
  type: syntaxRuleType.Shorthand,
1267
- variables: [
1268
- 'frame'
1269
- ],
1270
- declare (value) {
1271
- return {
1272
- 'border-top-color': value,
1273
- 'border-bottom-color': value
1274
- };
1275
- }
1177
+ namespaces: [
1178
+ 'color',
1179
+ 'color.line'
1180
+ ],
1181
+ declarations: [
1182
+ 'border-top-color',
1183
+ 'border-bottom-color'
1184
+ ]
1276
1185
  },
1277
1186
  'border-color': {
1278
- ambiguousKeys: [
1187
+ aliasGroups: [
1279
1188
  'b',
1280
1189
  'border'
1281
1190
  ],
1282
- ambiguousValues: [
1283
- common.COLOR_VALUE_REGEX
1284
- ],
1191
+ kind: 'color',
1285
1192
  type: syntaxRuleType.NativeShorthand,
1286
- variables: [
1287
- 'frame'
1193
+ namespaces: [
1194
+ 'color',
1195
+ 'color.line'
1288
1196
  ]
1289
1197
  },
1290
1198
  // border radius
1291
1199
  'border-top-left-radius': {
1292
1200
  key: 'rtl',
1293
1201
  unit: 'rem',
1294
- type: syntaxRuleType.Native
1202
+ type: syntaxRuleType.Native,
1203
+ namespaces: [
1204
+ 'border-radius'
1205
+ ]
1295
1206
  },
1296
1207
  'border-top-right-radius': {
1297
1208
  key: 'rtr',
1298
1209
  unit: 'rem',
1299
- type: syntaxRuleType.Native
1210
+ type: syntaxRuleType.Native,
1211
+ namespaces: [
1212
+ 'border-radius'
1213
+ ]
1300
1214
  },
1301
1215
  'border-bottom-left-radius': {
1302
1216
  key: 'rbl',
1303
1217
  unit: 'rem',
1304
- type: syntaxRuleType.Native
1218
+ type: syntaxRuleType.Native,
1219
+ namespaces: [
1220
+ 'border-radius'
1221
+ ]
1305
1222
  },
1306
1223
  'border-bottom-right-radius': {
1307
1224
  key: 'rbr',
1308
1225
  unit: 'rem',
1309
- type: syntaxRuleType.Native
1226
+ type: syntaxRuleType.Native,
1227
+ namespaces: [
1228
+ 'border-radius'
1229
+ ]
1310
1230
  },
1311
1231
  'border-top-radius': {
1312
1232
  key: 'rt',
1313
1233
  unit: 'rem',
1314
1234
  type: syntaxRuleType.Shorthand,
1315
- declare (value) {
1316
- return {
1317
- 'border-top-left-radius': value,
1318
- 'border-top-right-radius': value
1319
- };
1320
- }
1235
+ declarations: [
1236
+ 'border-top-left-radius',
1237
+ 'border-top-right-radius'
1238
+ ],
1239
+ namespaces: [
1240
+ 'border-radius'
1241
+ ]
1321
1242
  },
1322
1243
  'border-bottom-radius': {
1323
1244
  key: 'rb',
1324
1245
  unit: 'rem',
1325
1246
  type: syntaxRuleType.Shorthand,
1326
- declare (value) {
1327
- return {
1328
- 'border-bottom-left-radius': value,
1329
- 'border-bottom-right-radius': value
1330
- };
1331
- }
1247
+ declarations: [
1248
+ 'border-bottom-left-radius',
1249
+ 'border-bottom-right-radius'
1250
+ ],
1251
+ namespaces: [
1252
+ 'border-radius'
1253
+ ]
1332
1254
  },
1333
1255
  'border-left-radius': {
1334
1256
  key: 'rl',
1335
1257
  unit: 'rem',
1336
1258
  type: syntaxRuleType.Shorthand,
1337
- declare (value) {
1338
- return {
1339
- 'border-top-left-radius': value,
1340
- 'border-bottom-left-radius': value
1341
- };
1342
- }
1259
+ declarations: [
1260
+ 'border-top-left-radius',
1261
+ 'border-bottom-left-radius'
1262
+ ],
1263
+ namespaces: [
1264
+ 'border-radius'
1265
+ ]
1343
1266
  },
1344
1267
  'border-right-radius': {
1345
1268
  key: 'rr',
1346
1269
  unit: 'rem',
1347
1270
  type: syntaxRuleType.Shorthand,
1348
- declare (value) {
1349
- return {
1350
- 'border-top-right-radius': value,
1351
- 'border-bottom-right-radius': value
1352
- };
1353
- }
1271
+ declarations: [
1272
+ 'border-top-right-radius',
1273
+ 'border-bottom-right-radius'
1274
+ ],
1275
+ namespaces: [
1276
+ 'border-radius'
1277
+ ]
1354
1278
  },
1355
1279
  'border-radius': {
1356
1280
  key: 'r',
@@ -1359,169 +1283,147 @@ const rules = {
1359
1283
  },
1360
1284
  // border style
1361
1285
  'border-top-style': {
1362
- ambiguousKeys: [
1286
+ aliasGroups: [
1363
1287
  'bt',
1364
1288
  'border-top'
1365
1289
  ],
1366
- ambiguousValues: common.BORDER_STYLE_VALUES,
1290
+ values: common.BORDER_STYLE_VALUES,
1367
1291
  type: syntaxRuleType.Native
1368
1292
  },
1369
1293
  'border-bottom-style': {
1370
- ambiguousKeys: [
1294
+ aliasGroups: [
1371
1295
  'bb',
1372
1296
  'border-bottom'
1373
1297
  ],
1374
- ambiguousValues: common.BORDER_STYLE_VALUES,
1298
+ values: common.BORDER_STYLE_VALUES,
1375
1299
  type: syntaxRuleType.Native
1376
1300
  },
1377
1301
  'border-left-style': {
1378
- ambiguousKeys: [
1302
+ aliasGroups: [
1379
1303
  'bl',
1380
1304
  'border-left'
1381
1305
  ],
1382
- ambiguousValues: common.BORDER_STYLE_VALUES,
1306
+ values: common.BORDER_STYLE_VALUES,
1383
1307
  type: syntaxRuleType.Native
1384
1308
  },
1385
1309
  'border-right-style': {
1386
- ambiguousKeys: [
1310
+ aliasGroups: [
1387
1311
  'br',
1388
1312
  'border-right'
1389
1313
  ],
1390
- ambiguousValues: common.BORDER_STYLE_VALUES,
1314
+ values: common.BORDER_STYLE_VALUES,
1391
1315
  type: syntaxRuleType.Native
1392
1316
  },
1393
1317
  'border-x-style': {
1394
- ambiguousKeys: [
1318
+ aliasGroups: [
1395
1319
  'bx',
1396
1320
  'border-x'
1397
1321
  ],
1398
- ambiguousValues: common.BORDER_STYLE_VALUES,
1322
+ values: common.BORDER_STYLE_VALUES,
1399
1323
  type: syntaxRuleType.Shorthand,
1400
- declare (value) {
1401
- return {
1402
- 'border-left-style': value,
1403
- 'border-right-style': value
1404
- };
1405
- }
1324
+ declarations: [
1325
+ 'border-left-style',
1326
+ 'border-right-style'
1327
+ ]
1406
1328
  },
1407
1329
  'border-y-style': {
1408
- ambiguousKeys: [
1330
+ aliasGroups: [
1409
1331
  'by',
1410
1332
  'border-y'
1411
1333
  ],
1412
- ambiguousValues: common.BORDER_STYLE_VALUES,
1334
+ values: common.BORDER_STYLE_VALUES,
1413
1335
  type: syntaxRuleType.Shorthand,
1414
- declare (value) {
1415
- return {
1416
- 'border-top-style': value,
1417
- 'border-bottom-style': value
1418
- };
1419
- }
1336
+ declarations: [
1337
+ 'border-top-style',
1338
+ 'border-bottom-style'
1339
+ ]
1420
1340
  },
1421
1341
  'border-style': {
1422
- ambiguousKeys: [
1342
+ aliasGroups: [
1423
1343
  'b',
1424
1344
  'border'
1425
1345
  ],
1426
- ambiguousValues: common.BORDER_STYLE_VALUES,
1346
+ values: common.BORDER_STYLE_VALUES,
1427
1347
  type: syntaxRuleType.NativeShorthand
1428
1348
  },
1429
1349
  // border width
1430
1350
  'border-top-width': {
1431
- ambiguousKeys: [
1351
+ aliasGroups: [
1432
1352
  'bt',
1433
1353
  'border-top'
1434
1354
  ],
1435
- ambiguousValues: [
1436
- common.NUMBER_VALUE_REGEX
1437
- ],
1355
+ kind: 'number',
1438
1356
  unit: 'rem',
1439
1357
  type: syntaxRuleType.Native
1440
1358
  },
1441
1359
  'border-bottom-width': {
1442
- ambiguousKeys: [
1360
+ aliasGroups: [
1443
1361
  'bb',
1444
1362
  'border-bottom'
1445
1363
  ],
1446
- ambiguousValues: [
1447
- common.NUMBER_VALUE_REGEX
1448
- ],
1364
+ kind: 'number',
1449
1365
  unit: 'rem',
1450
1366
  type: syntaxRuleType.Native
1451
1367
  },
1452
1368
  'border-left-width': {
1453
- ambiguousKeys: [
1369
+ aliasGroups: [
1454
1370
  'bl',
1455
1371
  'border-left'
1456
1372
  ],
1457
- ambiguousValues: [
1458
- common.NUMBER_VALUE_REGEX
1459
- ],
1373
+ kind: 'number',
1460
1374
  unit: 'rem',
1461
1375
  type: syntaxRuleType.Native
1462
1376
  },
1463
1377
  'border-right-width': {
1464
- ambiguousKeys: [
1378
+ aliasGroups: [
1465
1379
  'br',
1466
1380
  'border-right'
1467
1381
  ],
1468
- ambiguousValues: [
1469
- common.NUMBER_VALUE_REGEX
1470
- ],
1382
+ kind: 'number',
1471
1383
  unit: 'rem',
1472
1384
  type: syntaxRuleType.Native
1473
1385
  },
1474
1386
  'border-x-width': {
1475
- ambiguousKeys: [
1387
+ aliasGroups: [
1476
1388
  'bx',
1477
1389
  'border-x'
1478
1390
  ],
1479
- ambiguousValues: [
1480
- common.NUMBER_VALUE_REGEX
1481
- ],
1391
+ kind: 'number',
1482
1392
  unit: 'rem',
1483
1393
  type: syntaxRuleType.Shorthand,
1484
- declare (value) {
1485
- return {
1486
- 'border-left-width': value,
1487
- 'border-right-width': value
1488
- };
1489
- }
1394
+ declarations: [
1395
+ 'border-left-width',
1396
+ 'border-right-width'
1397
+ ]
1490
1398
  },
1491
1399
  'border-y-width': {
1492
- ambiguousKeys: [
1400
+ aliasGroups: [
1493
1401
  'by',
1494
1402
  'border-y'
1495
1403
  ],
1496
- ambiguousValues: [
1497
- common.NUMBER_VALUE_REGEX
1498
- ],
1404
+ kind: 'number',
1499
1405
  unit: 'rem',
1500
1406
  type: syntaxRuleType.Shorthand,
1501
- declare (value) {
1502
- return {
1503
- 'border-top-width': value,
1504
- 'border-bottom-width': value
1505
- };
1506
- }
1407
+ declarations: [
1408
+ 'border-top-width',
1409
+ 'border-bottom-width'
1410
+ ]
1507
1411
  },
1508
1412
  'border-width': {
1509
- ambiguousKeys: [
1413
+ aliasGroups: [
1510
1414
  'b',
1511
1415
  'border'
1512
1416
  ],
1513
- ambiguousValues: [
1514
- common.NUMBER_VALUE_REGEX
1515
- ],
1417
+ kind: 'number',
1516
1418
  unit: 'rem',
1517
1419
  type: syntaxRuleType.NativeShorthand
1518
1420
  },
1519
1421
  // border image
1520
1422
  'border-image-repeat': {
1521
- ambiguousKeys: [
1423
+ aliasGroups: [
1522
1424
  'border-image'
1523
1425
  ],
1524
- ambiguousValues: [
1426
+ values: [
1525
1427
  'stretch',
1526
1428
  'repeat',
1527
1429
  'round',
@@ -1530,38 +1432,34 @@ const rules = {
1530
1432
  type: syntaxRuleType.Native
1531
1433
  },
1532
1434
  'border-image-slice': {
1533
- ambiguousKeys: [
1435
+ aliasGroups: [
1534
1436
  'border-image'
1535
1437
  ],
1536
1438
  type: syntaxRuleType.Native
1537
1439
  },
1538
1440
  'border-image-source': {
1539
- ambiguousKeys: [
1441
+ aliasGroups: [
1540
1442
  'border-image'
1541
1443
  ],
1542
- ambiguousValues: [
1543
- common.IMAGE_VALUE_REGEX
1544
- ],
1444
+ kind: 'image',
1545
1445
  type: syntaxRuleType.Native
1546
1446
  },
1547
1447
  'border-image-width': {
1548
- ambiguousKeys: [
1448
+ aliasGroups: [
1549
1449
  'border-image'
1550
1450
  ],
1551
- ambiguousValues: [
1552
- 'auto',
1553
- common.NUMBER_VALUE_REGEX
1451
+ values: [
1452
+ 'auto'
1554
1453
  ],
1454
+ kind: 'number',
1555
1455
  unit: 'rem',
1556
1456
  type: syntaxRuleType.Native
1557
1457
  },
1558
1458
  'border-image-outset': {
1559
- ambiguousKeys: [
1459
+ aliasGroups: [
1560
1460
  'border-image'
1561
1461
  ],
1562
- ambiguousValues: [
1563
- common.NUMBER_VALUE_REGEX
1564
- ],
1462
+ kind: 'number',
1565
1463
  unit: 'rem',
1566
1464
  type: syntaxRuleType.Native
1567
1465
  },
@@ -1573,82 +1471,85 @@ const rules = {
1573
1471
  key: 'bt',
1574
1472
  type: syntaxRuleType.NativeShorthand,
1575
1473
  unit: 'rem',
1576
- transformValueComponents: autofillSolidStyle,
1577
- variables: [
1578
- 'frame'
1474
+ transformer: 'auto-fill-solid',
1475
+ namespaces: [
1476
+ 'color',
1477
+ 'color.line'
1579
1478
  ]
1580
1479
  },
1581
1480
  'border-bottom': {
1582
1481
  key: 'bb',
1583
1482
  type: syntaxRuleType.NativeShorthand,
1584
1483
  unit: 'rem',
1585
- transformValueComponents: autofillSolidStyle,
1586
- variables: [
1587
- 'frame'
1484
+ transformer: 'auto-fill-solid',
1485
+ namespaces: [
1486
+ 'color',
1487
+ 'color.line'
1588
1488
  ]
1589
1489
  },
1590
1490
  'border-left': {
1591
1491
  key: 'bl',
1592
1492
  type: syntaxRuleType.NativeShorthand,
1593
1493
  unit: 'rem',
1594
- transformValueComponents: autofillSolidStyle,
1595
- variables: [
1596
- 'frame'
1494
+ transformer: 'auto-fill-solid',
1495
+ namespaces: [
1496
+ 'color',
1497
+ 'color.line'
1597
1498
  ]
1598
1499
  },
1599
1500
  'border-right': {
1600
1501
  key: 'br',
1601
1502
  type: syntaxRuleType.NativeShorthand,
1602
1503
  unit: 'rem',
1603
- transformValueComponents: autofillSolidStyle,
1604
- variables: [
1605
- 'frame'
1504
+ transformer: 'auto-fill-solid',
1505
+ namespaces: [
1506
+ 'color',
1507
+ 'color.line'
1606
1508
  ]
1607
1509
  },
1608
1510
  'border-x': {
1609
1511
  key: 'bx',
1610
1512
  unit: 'rem',
1611
1513
  type: syntaxRuleType.Shorthand,
1612
- transformValueComponents: autofillSolidStyle,
1613
- variables: [
1614
- 'frame'
1615
- ],
1616
- declare (value) {
1617
- return {
1618
- 'border-left': value,
1619
- 'border-right': value
1620
- };
1621
- }
1514
+ transformer: 'auto-fill-solid',
1515
+ namespaces: [
1516
+ 'color',
1517
+ 'color.line'
1518
+ ],
1519
+ declarations: [
1520
+ 'border-left',
1521
+ 'border-right'
1522
+ ]
1622
1523
  },
1623
1524
  'border-y': {
1624
1525
  key: 'by',
1625
1526
  unit: 'rem',
1626
1527
  type: syntaxRuleType.Shorthand,
1627
- transformValueComponents: autofillSolidStyle,
1628
- variables: [
1629
- 'frame'
1630
- ],
1631
- declare (value) {
1632
- return {
1633
- 'border-top': value,
1634
- 'border-bottom': value
1635
- };
1636
- }
1528
+ transformer: 'auto-fill-solid',
1529
+ namespaces: [
1530
+ 'color',
1531
+ 'color.line'
1532
+ ],
1533
+ declarations: [
1534
+ 'border-top',
1535
+ 'border-bottom'
1536
+ ]
1637
1537
  },
1638
1538
  border: {
1639
1539
  key: 'b',
1640
1540
  unit: 'rem',
1641
1541
  type: syntaxRuleType.NativeShorthand,
1642
- transformValueComponents: autofillSolidStyle,
1643
- variables: [
1644
- 'frame'
1542
+ transformer: 'auto-fill-solid',
1543
+ namespaces: [
1544
+ 'color',
1545
+ 'color.line'
1645
1546
  ]
1646
1547
  },
1647
1548
  'background-attachment': {
1648
- ambiguousKeys: [
1549
+ aliasGroups: [
1649
1550
  'bg'
1650
1551
  ],
1651
- ambiguousValues: [
1552
+ values: [
1652
1553
  'fixed',
1653
1554
  'local',
1654
1555
  'scroll'
@@ -1660,33 +1561,28 @@ const rules = {
1660
1561
  type: syntaxRuleType.Native
1661
1562
  },
1662
1563
  'background-color': {
1663
- ambiguousKeys: [
1564
+ aliasGroups: [
1664
1565
  'bg'
1665
1566
  ],
1666
- ambiguousValues: [
1667
- common.COLOR_VALUE_REGEX
1668
- ],
1669
- type: syntaxRuleType.Native
1567
+ kind: 'color',
1568
+ type: syntaxRuleType.Native,
1569
+ namespaces: [
1570
+ 'color'
1571
+ ]
1670
1572
  },
1671
1573
  'background-clip': {
1672
1574
  key: 'bg-clip',
1673
- type: syntaxRuleType.Native,
1674
- declare (value) {
1675
- return {
1676
- '-webkit-background-clip': value,
1677
- 'background-clip': value
1678
- };
1679
- }
1575
+ type: syntaxRuleType.Native
1680
1576
  },
1681
1577
  'background-origin': {
1682
1578
  key: 'bg-origin',
1683
1579
  type: syntaxRuleType.Native
1684
1580
  },
1685
1581
  'background-position': {
1686
- ambiguousKeys: [
1582
+ aliasGroups: [
1687
1583
  'bg'
1688
1584
  ],
1689
- ambiguousValues: [
1585
+ values: [
1690
1586
  'top',
1691
1587
  'bottom',
1692
1588
  'right',
@@ -1697,10 +1593,10 @@ const rules = {
1697
1593
  unit: 'px'
1698
1594
  },
1699
1595
  'background-repeat': {
1700
- ambiguousKeys: [
1596
+ aliasGroups: [
1701
1597
  'bg'
1702
1598
  ],
1703
- ambiguousValues: [
1599
+ values: [
1704
1600
  'space',
1705
1601
  'round',
1706
1602
  'repeat',
@@ -1711,39 +1607,45 @@ const rules = {
1711
1607
  type: syntaxRuleType.Native
1712
1608
  },
1713
1609
  'background-size': {
1714
- ambiguousKeys: [
1610
+ aliasGroups: [
1715
1611
  'bg'
1716
1612
  ],
1717
- ambiguousValues: [
1613
+ values: [
1718
1614
  'auto',
1719
1615
  'cover',
1720
- 'contain',
1721
- common.NUMBER_VALUE_REGEX
1616
+ 'contain'
1722
1617
  ],
1618
+ kind: 'number',
1723
1619
  unit: 'rem',
1724
1620
  type: syntaxRuleType.Native
1725
1621
  },
1726
1622
  'background-image': {
1727
- ambiguousKeys: [
1623
+ aliasGroups: [
1728
1624
  'bg'
1729
1625
  ],
1730
- ambiguousValues: [
1731
- common.IMAGE_VALUE_REGEX
1732
- ],
1733
- type: syntaxRuleType.Native
1626
+ kind: 'image',
1627
+ type: syntaxRuleType.Native,
1628
+ namespaces: [
1629
+ 'color'
1630
+ ]
1734
1631
  },
1735
1632
  background: {
1736
1633
  key: 'bg',
1737
- type: syntaxRuleType.NativeShorthand
1634
+ type: syntaxRuleType.NativeShorthand,
1635
+ namespaces: [
1636
+ 'color'
1637
+ ]
1738
1638
  },
1739
- gradient: {
1740
- matcher: /^gradient\(/,
1741
- type: syntaxRuleType.Shorthand,
1742
- declare (value) {
1743
- return {
1744
- 'background-image': 'linear-' + value
1745
- };
1746
- }
1639
+ 'gradient()': {
1640
+ declarations: {
1641
+ 'background-image': [
1642
+ 'linear-',
1643
+ undefined
1644
+ ]
1645
+ },
1646
+ namespaces: [
1647
+ 'color'
1648
+ ]
1747
1649
  },
1748
1650
  'mix-blend-mode': {
1749
1651
  key: 'blend',
@@ -1752,62 +1654,122 @@ const rules = {
1752
1654
  'backdrop-filter': {
1753
1655
  key: 'bd',
1754
1656
  type: syntaxRuleType.Native,
1755
- declare (value) {
1756
- return {
1757
- '-webkit-backdrop-filter': value,
1758
- 'backdrop-filter': value
1759
- };
1760
- }
1657
+ declarations: [
1658
+ '-webkit-backdrop-filter',
1659
+ 'backdrop-filter'
1660
+ ],
1661
+ namespaces: [
1662
+ 'color'
1663
+ ]
1761
1664
  },
1762
1665
  filter: {
1763
- matcher: /^(?:blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)\(/,
1764
- type: syntaxRuleType.Native
1666
+ type: syntaxRuleType.Native,
1667
+ namespaces: [
1668
+ 'color'
1669
+ ]
1670
+ },
1671
+ 'blur()': {
1672
+ declarations: [
1673
+ 'filter'
1674
+ ]
1675
+ },
1676
+ 'brightness()': {
1677
+ declarations: [
1678
+ 'filter'
1679
+ ]
1680
+ },
1681
+ 'contrast()': {
1682
+ declarations: [
1683
+ 'filter'
1684
+ ]
1685
+ },
1686
+ 'drop-shadow()': {
1687
+ declarations: [
1688
+ 'filter'
1689
+ ],
1690
+ namespaces: [
1691
+ 'color'
1692
+ ]
1693
+ },
1694
+ 'grayscale()': {
1695
+ declarations: [
1696
+ 'filter'
1697
+ ]
1698
+ },
1699
+ 'hue-rotate()': {
1700
+ declarations: [
1701
+ 'filter'
1702
+ ]
1703
+ },
1704
+ 'invert()': {
1705
+ declarations: [
1706
+ 'filter'
1707
+ ]
1708
+ },
1709
+ 'opacity()': {
1710
+ declarations: [
1711
+ 'filter'
1712
+ ]
1713
+ },
1714
+ 'saturate()': {
1715
+ declarations: [
1716
+ 'filter'
1717
+ ]
1718
+ },
1719
+ 'sepia()': {
1720
+ declarations: [
1721
+ 'filter'
1722
+ ]
1765
1723
  },
1766
1724
  fill: {
1767
- type: syntaxRuleType.Native
1725
+ type: syntaxRuleType.Native,
1726
+ namespaces: [
1727
+ 'color'
1728
+ ]
1768
1729
  },
1769
1730
  'stroke-dasharray': {
1770
1731
  type: syntaxRuleType.Native
1771
1732
  },
1772
1733
  'stroke-dashoffset': {
1773
1734
  type: syntaxRuleType.Native,
1774
- variables: [
1735
+ namespaces: [
1775
1736
  'spacing'
1776
1737
  ]
1777
1738
  },
1778
1739
  'stroke-width': {
1779
- ambiguousKeys: [
1740
+ aliasGroups: [
1780
1741
  'stroke'
1781
1742
  ],
1782
- ambiguousValues: [
1783
- common.NUMBER_VALUE_REGEX
1784
- ],
1743
+ kind: 'number',
1785
1744
  type: syntaxRuleType.Native
1786
1745
  },
1787
1746
  stroke: {
1788
- type: syntaxRuleType.Native
1747
+ type: syntaxRuleType.Native,
1748
+ namespaces: [
1749
+ 'color'
1750
+ ]
1789
1751
  },
1790
1752
  x: {
1791
1753
  type: syntaxRuleType.Native,
1792
- variables: [
1754
+ namespaces: [
1793
1755
  'spacing'
1794
1756
  ]
1795
1757
  },
1796
1758
  y: {
1797
1759
  type: syntaxRuleType.Native,
1798
- variables: [
1760
+ namespaces: [
1799
1761
  'spacing'
1800
1762
  ]
1801
1763
  },
1802
1764
  cx: {
1803
1765
  type: syntaxRuleType.Native,
1804
- variables: [
1766
+ namespaces: [
1805
1767
  'spacing'
1806
1768
  ]
1807
1769
  },
1808
1770
  cy: {
1809
1771
  type: syntaxRuleType.Native,
1810
- variables: [
1772
+ namespaces: [
1811
1773
  'spacing'
1812
1774
  ]
1813
1775
  },
@@ -1828,13 +1790,13 @@ const rules = {
1828
1790
  'grid-column-span': {
1829
1791
  key: 'grid-col-span',
1830
1792
  type: syntaxRuleType.Shorthand,
1831
- transformValue (value) {
1832
- return 'span' + ' ' + value + '/' + 'span' + ' ' + value;
1833
- },
1834
- declare (value) {
1835
- return {
1836
- 'grid-column': value
1837
- };
1793
+ declarations: {
1794
+ 'grid-column': [
1795
+ 'span ',
1796
+ undefined,
1797
+ '/span ',
1798
+ undefined
1799
+ ]
1838
1800
  }
1839
1801
  },
1840
1802
  'grid-column': {
@@ -1843,11 +1805,13 @@ const rules = {
1843
1805
  },
1844
1806
  'grid-columns': {
1845
1807
  key: 'grid-cols',
1846
- declare (value) {
1847
- return {
1848
- display: 'grid',
1849
- 'grid-template-columns': 'repeat' + '(' + value + ',' + 'minmax' + '(' + 0 + ',' + 1 + 'fr' + '))'
1850
- };
1808
+ declarations: {
1809
+ display: 'grid',
1810
+ 'grid-template-columns': [
1811
+ 'repeat(',
1812
+ undefined,
1813
+ ',minmax(0,1fr))'
1814
+ ]
1851
1815
  },
1852
1816
  type: syntaxRuleType.Shorthand
1853
1817
  },
@@ -1859,25 +1823,27 @@ const rules = {
1859
1823
  },
1860
1824
  'grid-row-span': {
1861
1825
  type: syntaxRuleType.Shorthand,
1862
- transformValue (value) {
1863
- return 'span' + ' ' + value + '/' + 'span' + ' ' + value;
1864
- },
1865
- declare (value) {
1866
- return {
1867
- 'grid-row': value
1868
- };
1826
+ declarations: {
1827
+ 'grid-row': [
1828
+ 'span ',
1829
+ undefined,
1830
+ '/span ',
1831
+ undefined
1832
+ ]
1869
1833
  }
1870
1834
  },
1871
1835
  'grid-row': {
1872
1836
  type: syntaxRuleType.NativeShorthand
1873
1837
  },
1874
1838
  'grid-rows': {
1875
- declare (value) {
1876
- return {
1877
- display: 'grid',
1878
- 'grid-auto-flow': 'column',
1879
- 'grid-template-rows': 'repeat' + '(' + value + ',' + 'minmax' + '(' + 0 + ',' + 1 + 'fr' + '))'
1880
- };
1839
+ declarations: {
1840
+ display: 'grid',
1841
+ 'grid-auto-flow': 'column',
1842
+ 'grid-template-rows': [
1843
+ 'repeat(',
1844
+ undefined,
1845
+ ',minmax(0,1fr))'
1846
+ ]
1881
1847
  },
1882
1848
  type: syntaxRuleType.Shorthand
1883
1849
  },
@@ -1917,7 +1883,7 @@ const rules = {
1917
1883
  key: 'gap-x',
1918
1884
  unit: 'rem',
1919
1885
  type: syntaxRuleType.Native,
1920
- variables: [
1886
+ namespaces: [
1921
1887
  'spacing'
1922
1888
  ]
1923
1889
  },
@@ -1925,14 +1891,14 @@ const rules = {
1925
1891
  key: 'gap-y',
1926
1892
  unit: 'rem',
1927
1893
  type: syntaxRuleType.Native,
1928
- variables: [
1894
+ namespaces: [
1929
1895
  'spacing'
1930
1896
  ]
1931
1897
  },
1932
1898
  gap: {
1933
1899
  unit: 'rem',
1934
1900
  type: syntaxRuleType.NativeShorthand,
1935
- variables: [
1901
+ namespaces: [
1936
1902
  'spacing'
1937
1903
  ]
1938
1904
  },
@@ -1991,91 +1957,92 @@ const rules = {
1991
1957
  type: syntaxRuleType.NativeShorthand
1992
1958
  },
1993
1959
  'list-style-position': {
1994
- ambiguousKeys: [
1960
+ aliasGroups: [
1995
1961
  'list-style'
1996
1962
  ],
1997
- ambiguousValues: [
1963
+ values: [
1998
1964
  'inside',
1999
1965
  'outside'
2000
1966
  ],
2001
1967
  type: syntaxRuleType.Native
2002
1968
  },
2003
1969
  'list-style-type': {
2004
- ambiguousKeys: [
1970
+ aliasGroups: [
2005
1971
  'list-style'
2006
1972
  ],
2007
- ambiguousValues: [
1973
+ values: [
2008
1974
  'disc',
2009
1975
  'decimal'
2010
1976
  ],
2011
1977
  type: syntaxRuleType.Native
2012
1978
  },
2013
1979
  'list-style-image': {
2014
- ambiguousKeys: [
1980
+ aliasGroups: [
2015
1981
  'list-style'
2016
1982
  ],
2017
- ambiguousValues: [
2018
- common.IMAGE_VALUE_REGEX
2019
- ],
1983
+ kind: 'image',
2020
1984
  type: syntaxRuleType.Native
2021
1985
  },
2022
1986
  'list-style': {
2023
1987
  type: syntaxRuleType.NativeShorthand
2024
1988
  },
2025
1989
  'outline-color': {
2026
- ambiguousKeys: [
1990
+ aliasGroups: [
2027
1991
  'outline'
2028
1992
  ],
2029
- ambiguousValues: [
2030
- common.COLOR_VALUE_REGEX
2031
- ],
1993
+ kind: 'color',
2032
1994
  type: syntaxRuleType.Native,
2033
- variables: [
2034
- 'frame'
1995
+ namespaces: [
1996
+ 'color',
1997
+ 'color.line'
2035
1998
  ]
2036
1999
  },
2037
2000
  'outline-offset': {
2038
2001
  unit: 'rem',
2039
2002
  type: syntaxRuleType.Native,
2040
- variables: [
2003
+ namespaces: [
2041
2004
  'spacing'
2042
2005
  ]
2043
2006
  },
2044
2007
  'outline-style': {
2045
- ambiguousKeys: [
2008
+ aliasGroups: [
2046
2009
  'outline'
2047
2010
  ],
2048
- ambiguousValues: common.BORDER_STYLE_VALUES,
2011
+ values: common.BORDER_STYLE_VALUES,
2049
2012
  type: syntaxRuleType.Native
2050
2013
  },
2051
2014
  'outline-width': {
2052
- ambiguousKeys: [
2015
+ aliasGroups: [
2053
2016
  'outline'
2054
2017
  ],
2055
- ambiguousValues: [
2018
+ values: [
2056
2019
  'medium',
2057
2020
  'thick',
2058
- 'thin',
2059
- common.NUMBER_VALUE_REGEX
2021
+ 'thin'
2060
2022
  ],
2023
+ kind: 'number',
2061
2024
  unit: 'rem',
2062
2025
  type: syntaxRuleType.Native
2063
2026
  },
2064
2027
  outline: {
2065
2028
  unit: 'rem',
2066
2029
  type: syntaxRuleType.NativeShorthand,
2067
- variables: [
2030
+ namespaces: [
2068
2031
  'outline-width',
2069
2032
  'outline-style',
2070
2033
  'outline-offset',
2071
2034
  'outline-color',
2072
- 'frame'
2035
+ 'color.line',
2036
+ 'color'
2073
2037
  ],
2074
- transformValueComponents: autofillSolidStyle
2038
+ transformer: 'auto-fill-solid'
2075
2039
  },
2076
2040
  'accent-color': {
2077
2041
  key: 'accent',
2078
- type: syntaxRuleType.Native
2042
+ type: syntaxRuleType.Native,
2043
+ namespaces: [
2044
+ 'color'
2045
+ ]
2079
2046
  },
2080
2047
  appearance: {
2081
2048
  type: syntaxRuleType.Native
@@ -2083,8 +2050,9 @@ const rules = {
2083
2050
  'caret-color': {
2084
2051
  key: 'caret',
2085
2052
  type: syntaxRuleType.Native,
2086
- variables: [
2087
- 'text'
2053
+ namespaces: [
2054
+ 'color',
2055
+ 'color.text'
2088
2056
  ]
2089
2057
  },
2090
2058
  'scroll-behavior': {
@@ -2095,7 +2063,7 @@ const rules = {
2095
2063
  key: 'scroll-ml',
2096
2064
  type: syntaxRuleType.Native,
2097
2065
  unit: 'rem',
2098
- variables: [
2066
+ namespaces: [
2099
2067
  'spacing'
2100
2068
  ]
2101
2069
  },
@@ -2103,7 +2071,7 @@ const rules = {
2103
2071
  key: 'scroll-mr',
2104
2072
  type: syntaxRuleType.Native,
2105
2073
  unit: 'rem',
2106
- variables: [
2074
+ namespaces: [
2107
2075
  'spacing'
2108
2076
  ]
2109
2077
  },
@@ -2111,7 +2079,7 @@ const rules = {
2111
2079
  key: 'scroll-mt',
2112
2080
  type: syntaxRuleType.Native,
2113
2081
  unit: 'rem',
2114
- variables: [
2082
+ namespaces: [
2115
2083
  'spacing'
2116
2084
  ]
2117
2085
  },
@@ -2119,7 +2087,7 @@ const rules = {
2119
2087
  key: 'scroll-mb',
2120
2088
  type: syntaxRuleType.Native,
2121
2089
  unit: 'rem',
2122
- variables: [
2090
+ namespaces: [
2123
2091
  'spacing'
2124
2092
  ]
2125
2093
  },
@@ -2127,13 +2095,11 @@ const rules = {
2127
2095
  key: 'scroll-mx',
2128
2096
  unit: 'rem',
2129
2097
  type: syntaxRuleType.Shorthand,
2130
- declare (value) {
2131
- return {
2132
- 'scroll-margin-left': value,
2133
- 'scroll-margin-right': value
2134
- };
2135
- },
2136
- variables: [
2098
+ declarations: [
2099
+ 'scroll-margin-left',
2100
+ 'scroll-margin-right'
2101
+ ],
2102
+ namespaces: [
2137
2103
  'spacing'
2138
2104
  ]
2139
2105
  },
@@ -2141,13 +2107,11 @@ const rules = {
2141
2107
  key: 'scroll-my',
2142
2108
  unit: 'rem',
2143
2109
  type: syntaxRuleType.Shorthand,
2144
- declare (value) {
2145
- return {
2146
- 'scroll-margin-top': value,
2147
- 'scroll-margin-bottom': value
2148
- };
2149
- },
2150
- variables: [
2110
+ declarations: [
2111
+ 'scroll-margin-top',
2112
+ 'scroll-margin-bottom'
2113
+ ],
2114
+ namespaces: [
2151
2115
  'spacing'
2152
2116
  ]
2153
2117
  },
@@ -2155,7 +2119,7 @@ const rules = {
2155
2119
  key: 'scroll-m',
2156
2120
  unit: 'rem',
2157
2121
  type: syntaxRuleType.NativeShorthand,
2158
- variables: [
2122
+ namespaces: [
2159
2123
  'spacing'
2160
2124
  ]
2161
2125
  },
@@ -2164,7 +2128,7 @@ const rules = {
2164
2128
  key: 'scroll-pl',
2165
2129
  type: syntaxRuleType.Native,
2166
2130
  unit: 'rem',
2167
- variables: [
2131
+ namespaces: [
2168
2132
  'spacing'
2169
2133
  ]
2170
2134
  },
@@ -2172,7 +2136,7 @@ const rules = {
2172
2136
  key: 'scroll-pr',
2173
2137
  type: syntaxRuleType.Native,
2174
2138
  unit: 'rem',
2175
- variables: [
2139
+ namespaces: [
2176
2140
  'spacing'
2177
2141
  ]
2178
2142
  },
@@ -2180,7 +2144,7 @@ const rules = {
2180
2144
  key: 'scroll-pt',
2181
2145
  type: syntaxRuleType.Native,
2182
2146
  unit: 'rem',
2183
- variables: [
2147
+ namespaces: [
2184
2148
  'spacing'
2185
2149
  ]
2186
2150
  },
@@ -2188,7 +2152,7 @@ const rules = {
2188
2152
  key: 'scroll-pb',
2189
2153
  type: syntaxRuleType.Native,
2190
2154
  unit: 'rem',
2191
- variables: [
2155
+ namespaces: [
2192
2156
  'spacing'
2193
2157
  ]
2194
2158
  },
@@ -2196,13 +2160,11 @@ const rules = {
2196
2160
  key: 'scroll-px',
2197
2161
  unit: 'rem',
2198
2162
  type: syntaxRuleType.Shorthand,
2199
- declare (value) {
2200
- return {
2201
- 'scroll-padding-left': value,
2202
- 'scroll-padding-right': value
2203
- };
2204
- },
2205
- variables: [
2163
+ declarations: [
2164
+ 'scroll-padding-left',
2165
+ 'scroll-padding-right'
2166
+ ],
2167
+ namespaces: [
2206
2168
  'spacing'
2207
2169
  ]
2208
2170
  },
@@ -2210,13 +2172,11 @@ const rules = {
2210
2172
  key: 'scroll-py',
2211
2173
  unit: 'rem',
2212
2174
  type: syntaxRuleType.Shorthand,
2213
- declare (value) {
2214
- return {
2215
- 'scroll-padding-top': value,
2216
- 'scroll-padding-bottom': value
2217
- };
2218
- },
2219
- variables: [
2175
+ declarations: [
2176
+ 'scroll-padding-top',
2177
+ 'scroll-padding-bottom'
2178
+ ],
2179
+ namespaces: [
2220
2180
  'spacing'
2221
2181
  ]
2222
2182
  },
@@ -2224,16 +2184,16 @@ const rules = {
2224
2184
  key: 'scroll-p',
2225
2185
  unit: 'rem',
2226
2186
  type: syntaxRuleType.NativeShorthand,
2227
- variables: [
2187
+ namespaces: [
2228
2188
  'spacing'
2229
2189
  ]
2230
2190
  },
2231
2191
  // scroll snap
2232
2192
  'scroll-snap-align': {
2233
- ambiguousKeys: [
2193
+ aliasGroups: [
2234
2194
  'scroll-snap'
2235
2195
  ],
2236
- ambiguousValues: [
2196
+ values: [
2237
2197
  'start',
2238
2198
  'end',
2239
2199
  'center'
@@ -2241,20 +2201,20 @@ const rules = {
2241
2201
  type: syntaxRuleType.Native
2242
2202
  },
2243
2203
  'scroll-snap-stop': {
2244
- ambiguousKeys: [
2204
+ aliasGroups: [
2245
2205
  'scroll-snap'
2246
2206
  ],
2247
- ambiguousValues: [
2207
+ values: [
2248
2208
  'normal',
2249
2209
  'always'
2250
2210
  ],
2251
2211
  type: syntaxRuleType.Native
2252
2212
  },
2253
2213
  'scroll-snap-type': {
2254
- ambiguousKeys: [
2214
+ aliasGroups: [
2255
2215
  'scroll-snap'
2256
2216
  ],
2257
- ambiguousValues: [
2217
+ values: [
2258
2218
  'x',
2259
2219
  'y',
2260
2220
  'block',
@@ -2274,24 +2234,14 @@ const rules = {
2274
2234
  type: syntaxRuleType.Native
2275
2235
  },
2276
2236
  'shape-outside': {
2277
- ambiguousKeys: [
2278
- 'shape'
2279
- ],
2280
- ambiguousValues: [
2281
- /(?:inset|circle|ellipse|polygon|url|linear-gradient)\(.*\)/
2282
- ],
2237
+ key: 'shape',
2283
2238
  type: syntaxRuleType.Native
2284
2239
  },
2285
2240
  'shape-margin': {
2286
- ambiguousKeys: [
2287
- 'shape'
2288
- ],
2289
- ambiguousValues: [
2290
- common.NUMBER_VALUE_REGEX
2291
- ],
2241
+ kind: 'number',
2292
2242
  unit: 'rem',
2293
2243
  type: syntaxRuleType.Native,
2294
- variables: [
2244
+ namespaces: [
2295
2245
  'spacing'
2296
2246
  ]
2297
2247
  },
@@ -2307,12 +2257,20 @@ const rules = {
2307
2257
  },
2308
2258
  'mask-image': {
2309
2259
  type: syntaxRuleType.Native,
2310
- declare (value) {
2311
- return {
2312
- '-webkit-mask-image': value,
2313
- 'mask-image': value
2314
- };
2315
- }
2260
+ declarations: [
2261
+ '-webkit-mask-image',
2262
+ 'mask-image'
2263
+ ]
2264
+ },
2265
+ group: {
2266
+ matcher: '^\\{.+?\\}',
2267
+ type: syntaxRuleType.Shorthand,
2268
+ declarer: 'core.group'
2269
+ },
2270
+ variable: {
2271
+ matcher: '^\\$[\\w-]+:',
2272
+ type: syntaxRuleType.Shorthand,
2273
+ declarer: 'core.variable'
2316
2274
  }
2317
2275
  };
2318
2276