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