tailwindcss 3.0.0-alpha.1 → 3.0.0-alpha.2

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 (60) hide show
  1. package/CHANGELOG.md +67 -1
  2. package/lib/cli.js +66 -62
  3. package/lib/constants.js +1 -1
  4. package/lib/corePluginList.js +7 -1
  5. package/lib/corePlugins.js +264 -203
  6. package/lib/css/preflight.css +12 -0
  7. package/lib/featureFlags.js +10 -7
  8. package/lib/lib/collapseDuplicateDeclarations.js +29 -0
  9. package/lib/lib/evaluateTailwindFunctions.js +3 -3
  10. package/lib/lib/expandApplyAtRules.js +7 -7
  11. package/lib/lib/expandTailwindAtRules.js +2 -1
  12. package/lib/lib/generateRules.js +115 -19
  13. package/lib/lib/resolveDefaultsAtRules.js +44 -47
  14. package/lib/lib/setupContextUtils.js +72 -15
  15. package/lib/lib/setupWatchingContext.js +5 -1
  16. package/lib/lib/sharedState.js +2 -2
  17. package/lib/processTailwindFeatures.js +4 -0
  18. package/lib/util/createUtilityPlugin.js +5 -5
  19. package/lib/util/dataTypes.js +24 -4
  20. package/lib/util/formatVariantSelector.js +102 -0
  21. package/lib/util/nameClass.js +1 -1
  22. package/lib/util/negateValue.js +3 -1
  23. package/lib/util/normalizeConfig.js +22 -8
  24. package/lib/util/parseBoxShadowValue.js +77 -0
  25. package/lib/util/pluginUtils.js +62 -158
  26. package/lib/util/prefixSelector.js +1 -3
  27. package/lib/util/resolveConfig.js +13 -9
  28. package/lib/util/transformThemeValue.js +23 -13
  29. package/package.json +11 -11
  30. package/peers/index.js +873 -2505
  31. package/src/cli.js +9 -2
  32. package/src/corePluginList.js +1 -1
  33. package/src/corePlugins.js +282 -348
  34. package/src/css/preflight.css +12 -0
  35. package/src/featureFlags.js +10 -4
  36. package/src/lib/collapseDuplicateDeclarations.js +28 -0
  37. package/src/lib/expandTailwindAtRules.js +3 -2
  38. package/src/lib/generateRules.js +121 -11
  39. package/src/lib/resolveDefaultsAtRules.js +39 -43
  40. package/src/lib/setupContextUtils.js +71 -9
  41. package/src/lib/setupWatchingContext.js +7 -0
  42. package/src/lib/sharedState.js +1 -1
  43. package/src/processTailwindFeatures.js +5 -0
  44. package/src/util/createUtilityPlugin.js +2 -2
  45. package/src/util/dataTypes.js +32 -5
  46. package/src/util/formatVariantSelector.js +105 -0
  47. package/src/util/nameClass.js +1 -1
  48. package/src/util/negateValue.js +4 -2
  49. package/src/util/normalizeConfig.js +17 -1
  50. package/src/util/parseBoxShadowValue.js +71 -0
  51. package/src/util/pluginUtils.js +50 -146
  52. package/src/util/prefixSelector.js +1 -4
  53. package/src/util/resolveConfig.js +7 -1
  54. package/src/util/transformThemeValue.js +22 -7
  55. package/stubs/defaultConfig.stub.js +101 -58
  56. package/peers/.svgo.yml +0 -75
  57. package/peers/orders/concentric-css.json +0 -299
  58. package/peers/orders/smacss.json +0 -299
  59. package/peers/orders/source.json +0 -295
  60. package/src/.DS_Store +0 -0
@@ -2,21 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.variantPlugins = exports.corePlugins = void 0;
5
+ exports.corePlugins = exports.variantPlugins = void 0;
6
6
  var _fs = _interopRequireDefault(require("fs"));
7
+ var path = _interopRequireWildcard(require("path"));
7
8
  var _postcss = _interopRequireDefault(require("postcss"));
8
9
  var _createUtilityPlugin = _interopRequireDefault(require("./util/createUtilityPlugin"));
9
10
  var _buildMediaQuery = _interopRequireDefault(require("./util/buildMediaQuery"));
10
- var _prefixSelector = _interopRequireDefault(require("./util/prefixSelector"));
11
11
  var _parseAnimationValue = _interopRequireDefault(require("./util/parseAnimationValue"));
12
12
  var _flattenColorPalette = _interopRequireDefault(require("./util/flattenColorPalette"));
13
13
  var _withAlphaVariable = _interopRequireWildcard(require("./util/withAlphaVariable"));
14
14
  var _toColorValue = _interopRequireDefault(require("./util/toColorValue"));
15
15
  var _isPlainObject = _interopRequireDefault(require("./util/isPlainObject"));
16
16
  var _transformThemeValue = _interopRequireDefault(require("./util/transformThemeValue"));
17
- var _pluginUtils = require("./util/pluginUtils");
18
17
  var _packageJson = require("../package.json");
19
18
  var _log = _interopRequireDefault(require("./util/log"));
19
+ var _parseBoxShadowValue = require("./util/parseBoxShadowValue");
20
20
  function _interopRequireDefault(obj) {
21
21
  return obj && obj.__esModule ? obj : {
22
22
  default: obj
@@ -46,54 +46,20 @@ function _interopRequireWildcard(obj) {
46
46
  }
47
47
  }
48
48
  let variantPlugins = {
49
- pseudoElementVariants: ({ config , addVariant })=>{
50
- addVariant('first-letter', (0, _pluginUtils).transformAllSelectors((selector)=>{
51
- return (0, _pluginUtils).updateAllClasses(selector, (className, { withPseudo })=>{
52
- return withPseudo(`first-letter${config('separator')}${className}`, '::first-letter');
53
- });
54
- }));
55
- addVariant('first-line', (0, _pluginUtils).transformAllSelectors((selector)=>{
56
- return (0, _pluginUtils).updateAllClasses(selector, (className, { withPseudo })=>{
57
- return withPseudo(`first-line${config('separator')}${className}`, '::first-line');
58
- });
59
- }));
49
+ pseudoElementVariants: ({ addVariant })=>{
50
+ addVariant('first-letter', '&::first-letter');
51
+ addVariant('first-line', '&::first-line');
60
52
  addVariant('marker', [
61
- (0, _pluginUtils).transformAllSelectors((selector)=>{
62
- let variantSelector = (0, _pluginUtils).updateAllClasses(selector, (className)=>{
63
- return `marker${config('separator')}${className}`;
64
- });
65
- return `${variantSelector} *::marker`;
66
- }),
67
- (0, _pluginUtils).transformAllSelectors((selector)=>{
68
- return (0, _pluginUtils).updateAllClasses(selector, (className, { withPseudo })=>{
69
- return withPseudo(`marker${config('separator')}${className}`, '::marker');
70
- });
71
- }),
53
+ '& *::marker',
54
+ '&::marker'
72
55
  ]);
73
56
  addVariant('selection', [
74
- (0, _pluginUtils).transformAllSelectors((selector)=>{
75
- let variantSelector = (0, _pluginUtils).updateAllClasses(selector, (className)=>{
76
- return `selection${config('separator')}${className}`;
77
- });
78
- return `${variantSelector} *::selection`;
79
- }),
80
- (0, _pluginUtils).transformAllSelectors((selector)=>{
81
- return (0, _pluginUtils).updateAllClasses(selector, (className, { withPseudo })=>{
82
- return withPseudo(`selection${config('separator')}${className}`, '::selection');
83
- });
84
- }),
57
+ '& *::selection',
58
+ '&::selection'
85
59
  ]);
86
- addVariant('file', (0, _pluginUtils).transformAllSelectors((selector)=>{
87
- return (0, _pluginUtils).updateAllClasses(selector, (className, { withPseudo })=>{
88
- return withPseudo(`file${config('separator')}${className}`, '::file-selector-button');
89
- });
90
- }));
91
- addVariant('before', (0, _pluginUtils).transformAllSelectors((selector)=>{
92
- return (0, _pluginUtils).updateAllClasses(selector, (className, { withPseudo })=>{
93
- return withPseudo(`before${config('separator')}${className}`, '::before');
94
- });
95
- }, {
96
- withRule: (rule)=>{
60
+ addVariant('file', '&::file-selector-button');
61
+ addVariant('before', ({ container })=>{
62
+ container.walkRules((rule)=>{
97
63
  let foundContent = false;
98
64
  rule.walkDecls('content', ()=>{
99
65
  foundContent = true;
@@ -101,17 +67,14 @@ let variantPlugins = {
101
67
  if (!foundContent) {
102
68
  rule.prepend(_postcss.default.decl({
103
69
  prop: 'content',
104
- value: '""'
70
+ value: 'var(--tw-content)'
105
71
  }));
106
72
  }
107
- }
108
- }));
109
- addVariant('after', (0, _pluginUtils).transformAllSelectors((selector)=>{
110
- return (0, _pluginUtils).updateAllClasses(selector, (className, { withPseudo })=>{
111
- return withPseudo(`after${config('separator')}${className}`, '::after');
112
73
  });
113
- }, {
114
- withRule: (rule)=>{
74
+ return '&::before';
75
+ });
76
+ addVariant('after', ({ container })=>{
77
+ container.walkRules((rule)=>{
115
78
  let foundContent = false;
116
79
  rule.walkDecls('content', ()=>{
117
80
  foundContent = true;
@@ -119,13 +82,14 @@ let variantPlugins = {
119
82
  if (!foundContent) {
120
83
  rule.prepend(_postcss.default.decl({
121
84
  prop: 'content',
122
- value: '""'
85
+ value: 'var(--tw-content)'
123
86
  }));
124
87
  }
125
- }
126
- }));
88
+ });
89
+ return '&::after';
90
+ });
127
91
  },
128
- pseudoClassVariants: ({ config , addVariant })=>{
92
+ pseudoClassVariants: ({ addVariant })=>{
129
93
  let pseudoVariants = [
130
94
  // Positional
131
95
  [
@@ -179,94 +143,40 @@ let variantPlugins = {
179
143
  'focus-visible',
180
144
  'active',
181
145
  'disabled',
182
- ];
183
- for (let variant of pseudoVariants){
184
- let [variantName, state] = Array.isArray(variant) ? variant : [
146
+ ].map((variant)=>Array.isArray(variant) ? variant : [
185
147
  variant,
186
148
  `:${variant}`
187
- ];
188
- addVariant(variantName, (0, _pluginUtils).transformAllClasses((className, { withAttr , withPseudo })=>{
189
- if (state.startsWith(':')) {
190
- return withPseudo(`${variantName}${config('separator')}${className}`, state);
191
- } else if (state.startsWith('[')) {
192
- return withAttr(`${variantName}${config('separator')}${className}`, state);
193
- }
194
- }));
149
+ ]
150
+ );
151
+ for (let [variantName, state] of pseudoVariants){
152
+ addVariant(variantName, `&${state}`);
195
153
  }
196
- let groupMarker = (0, _prefixSelector).default(config('prefix'), '.group');
197
- for (let variant1 of pseudoVariants){
198
- let [variantName, state] = Array.isArray(variant1) ? variant1 : [
199
- variant1,
200
- `:${variant1}`
201
- ];
202
- let groupVariantName = `group-${variantName}`;
203
- addVariant(groupVariantName, (0, _pluginUtils).transformAllSelectors((selector)=>{
204
- let variantSelector = (0, _pluginUtils).updateAllClasses(selector, (className)=>{
205
- if (`.${className}` === groupMarker) return className;
206
- return `${groupVariantName}${config('separator')}${className}`;
207
- });
208
- if (variantSelector === selector) {
209
- return null;
210
- }
211
- return (0, _pluginUtils).applyStateToMarker(variantSelector, groupMarker, state, (marker, selector)=>`${marker} ${selector}`
212
- );
213
- }));
154
+ for (let [variantName1, state1] of pseudoVariants){
155
+ addVariant(`group-${variantName1}`, `:merge(.group)${state1} &`);
214
156
  }
215
- let peerMarker = (0, _prefixSelector).default(config('prefix'), '.peer');
216
- for (let variant2 of pseudoVariants){
217
- let [variantName, state] = Array.isArray(variant2) ? variant2 : [
218
- variant2,
219
- `:${variant2}`
220
- ];
221
- let peerVariantName = `peer-${variantName}`;
222
- addVariant(peerVariantName, (0, _pluginUtils).transformAllSelectors((selector)=>{
223
- let variantSelector = (0, _pluginUtils).updateAllClasses(selector, (className)=>{
224
- if (`.${className}` === peerMarker) return className;
225
- return `${peerVariantName}${config('separator')}${className}`;
226
- });
227
- if (variantSelector === selector) {
228
- return null;
229
- }
230
- return (0, _pluginUtils).applyStateToMarker(variantSelector, peerMarker, state, (marker, selector)=>selector.trim().startsWith('~') ? `${marker}${selector}` : `${marker} ~ ${selector}`
231
- );
232
- }));
157
+ for (let [variantName2, state2] of pseudoVariants){
158
+ addVariant(`peer-${variantName2}`, `:merge(.peer)${state2} ~ &`);
233
159
  }
234
160
  },
235
- directionVariants: ({ config , addVariant })=>{
236
- addVariant('ltr', (0, _pluginUtils).transformAllSelectors((selector)=>{
161
+ directionVariants: ({ addVariant })=>{
162
+ addVariant('ltr', ()=>{
237
163
  _log.default.warn('rtl-experimental', [
238
164
  'The RTL features in Tailwind CSS are currently in preview.',
239
165
  'Preview features are not covered by semver, and may be improved in breaking ways at any time.',
240
166
  ]);
241
- return `[dir="ltr"] ${(0, _pluginUtils).updateAllClasses(selector, (className)=>`ltr${config('separator')}${className}`
242
- )}`;
243
- }));
244
- addVariant('rtl', (0, _pluginUtils).transformAllSelectors((selector)=>{
167
+ return '[dir="ltr"] &';
168
+ });
169
+ addVariant('rtl', ()=>{
245
170
  _log.default.warn('rtl-experimental', [
246
171
  'The RTL features in Tailwind CSS are currently in preview.',
247
172
  'Preview features are not covered by semver, and may be improved in breaking ways at any time.',
248
173
  ]);
249
- return `[dir="rtl"] ${(0, _pluginUtils).updateAllClasses(selector, (className)=>`rtl${config('separator')}${className}`
250
- )}`;
251
- }));
174
+ return '[dir="rtl"] &';
175
+ });
252
176
  },
253
- reducedMotionVariants: ({ config , addVariant })=>{
254
- addVariant('motion-safe', (0, _pluginUtils).transformLastClasses((className)=>{
255
- return `motion-safe${config('separator')}${className}`;
256
- }, {
257
- wrap: ()=>_postcss.default.atRule({
258
- name: 'media',
259
- params: '(prefers-reduced-motion: no-preference)'
260
- })
261
- }));
262
- addVariant('motion-reduce', (0, _pluginUtils).transformLastClasses((className)=>{
263
- return `motion-reduce${config('separator')}${className}`;
264
- }, {
265
- wrap: ()=>_postcss.default.atRule({
266
- name: 'media',
267
- params: '(prefers-reduced-motion: reduce)'
268
- })
269
- }));
177
+ reducedMotionVariants: ({ addVariant })=>{
178
+ addVariant('motion-safe', '@media (prefers-reduced-motion: no-preference)');
179
+ addVariant('motion-reduce', '@media (prefers-reduced-motion: reduce)');
270
180
  },
271
181
  darkVariants: ({ config , addVariant })=>{
272
182
  let mode = config('darkMode', 'media');
@@ -278,46 +188,26 @@ let variantPlugins = {
278
188
  ]);
279
189
  }
280
190
  if (mode === 'class') {
281
- addVariant('dark', (0, _pluginUtils).transformAllSelectors((selector)=>{
282
- let variantSelector = (0, _pluginUtils).updateLastClasses(selector, (className)=>{
283
- return `dark${config('separator')}${className}`;
284
- });
285
- if (variantSelector === selector) {
286
- return null;
287
- }
288
- let darkSelector = (0, _prefixSelector).default(config('prefix'), `.dark`);
289
- return `${darkSelector} ${variantSelector}`;
290
- }));
191
+ addVariant('dark', '.dark &');
291
192
  } else if (mode === 'media') {
292
- addVariant('dark', (0, _pluginUtils).transformLastClasses((className)=>{
293
- return `dark${config('separator')}${className}`;
294
- }, {
295
- wrap: ()=>_postcss.default.atRule({
296
- name: 'media',
297
- params: '(prefers-color-scheme: dark)'
298
- })
299
- }));
193
+ addVariant('dark', '@media (prefers-color-scheme: dark)');
300
194
  }
301
195
  },
302
- screenVariants: ({ config , theme , addVariant })=>{
196
+ printVariant: ({ addVariant })=>{
197
+ addVariant('print', '@media print');
198
+ },
199
+ screenVariants: ({ theme , addVariant })=>{
303
200
  for(let screen in theme('screens')){
304
201
  let size = theme('screens')[screen];
305
202
  let query = (0, _buildMediaQuery).default(size);
306
- addVariant(screen, (0, _pluginUtils).transformLastClasses((className)=>{
307
- return `${screen}${config('separator')}${className}`;
308
- }, {
309
- wrap: ()=>_postcss.default.atRule({
310
- name: 'media',
311
- params: query
312
- })
313
- }));
203
+ addVariant(screen, `@media ${query}`);
314
204
  }
315
205
  }
316
206
  };
317
207
  exports.variantPlugins = variantPlugins;
318
- let corePlugins = {
208
+ let corePlugins1 = {
319
209
  preflight: ({ addBase })=>{
320
- let preflightStyles = _postcss.default.parse(_fs.default.readFileSync(`${__dirname}/css/preflight.css`, 'utf8'));
210
+ let preflightStyles = _postcss.default.parse(_fs.default.readFileSync(path.join(__dirname, './css/preflight.css'), 'utf8'));
321
211
  addBase([
322
212
  _postcss.default.comment({
323
213
  text: `! tailwindcss v${_packageJson.version} | MIT License | https://tailwindcss.com`
@@ -326,8 +216,8 @@ let corePlugins = {
326
216
  ]);
327
217
  },
328
218
  container: (()=>{
329
- function extractMinWidths(breakpoints) {
330
- return Object.values(breakpoints !== null && breakpoints !== void 0 ? breakpoints : {
219
+ function extractMinWidths(breakpoints1) {
220
+ return Object.values(breakpoints1 !== null && breakpoints1 !== void 0 ? breakpoints1 : {
331
221
  }).flatMap((breakpoints)=>{
332
222
  if (typeof breakpoints === 'string') {
333
223
  breakpoints = {
@@ -539,7 +429,9 @@ let corePlugins = {
539
429
  ]
540
430
  ],
541
431
  ],
542
- ]),
432
+ ], {
433
+ supportsNegativeValues: true
434
+ }),
543
435
  isolation: ({ addUtilities })=>{
544
436
  addUtilities({
545
437
  '.isolate': {
@@ -557,8 +449,12 @@ let corePlugins = {
557
449
  'zIndex'
558
450
  ]
559
451
  ]
560
- ]),
561
- order: (0, _createUtilityPlugin).default('order'),
452
+ ], {
453
+ supportsNegativeValues: true
454
+ }),
455
+ order: (0, _createUtilityPlugin).default('order', undefined, {
456
+ supportsNegativeValues: true
457
+ }),
562
458
  gridColumn: (0, _createUtilityPlugin).default('gridColumn', [
563
459
  [
564
460
  'col',
@@ -685,7 +581,9 @@ let corePlugins = {
685
581
  ]
686
582
  ],
687
583
  ],
688
- ]),
584
+ ], {
585
+ supportsNegativeValues: true
586
+ }),
689
587
  boxSizing: ({ addUtilities })=>{
690
588
  addUtilities({
691
589
  '.box-border': {
@@ -826,7 +724,13 @@ let corePlugins = {
826
724
  [
827
725
  'flex-shrink'
828
726
  ]
829
- ]
727
+ ],
728
+ [
729
+ 'shrink',
730
+ [
731
+ 'flex-shrink'
732
+ ]
733
+ ],
830
734
  ]),
831
735
  flexGrow: (0, _createUtilityPlugin).default('flexGrow', [
832
736
  [
@@ -834,6 +738,20 @@ let corePlugins = {
834
738
  [
835
739
  'flex-grow'
836
740
  ]
741
+ ],
742
+ [
743
+ 'grow',
744
+ [
745
+ 'flex-grow'
746
+ ]
747
+ ],
748
+ ]),
749
+ flexBasis: (0, _createUtilityPlugin).default('flexBasis', [
750
+ [
751
+ 'basis',
752
+ [
753
+ 'flex-basis'
754
+ ]
837
755
  ]
838
756
  ]),
839
757
  tableLayout: ({ addUtilities })=>{
@@ -897,7 +815,9 @@ let corePlugins = {
897
815
  ],
898
816
  ],
899
817
  ],
900
- ]),
818
+ ], {
819
+ supportsNegativeValues: true
820
+ }),
901
821
  rotate: (0, _createUtilityPlugin).default('rotate', [
902
822
  [
903
823
  'rotate',
@@ -912,9 +832,11 @@ let corePlugins = {
912
832
  'transform',
913
833
  'var(--tw-transform)'
914
834
  ]
915
- ]
835
+ ],
916
836
  ],
917
- ]),
837
+ ], {
838
+ supportsNegativeValues: true
839
+ }),
918
840
  skew: (0, _createUtilityPlugin).default('skew', [
919
841
  [
920
842
  [
@@ -948,7 +870,9 @@ let corePlugins = {
948
870
  ],
949
871
  ],
950
872
  ],
951
- ]),
873
+ ], {
874
+ supportsNegativeValues: true
875
+ }),
952
876
  scale: (0, _createUtilityPlugin).default('scale', [
953
877
  [
954
878
  'scale',
@@ -1066,8 +990,8 @@ let corePlugins = {
1066
990
  ];
1067
991
  }));
1068
992
  matchUtilities({
1069
- animate: (value)=>{
1070
- let animations = (0, _parseAnimationValue).default(value);
993
+ animate: (value1)=>{
994
+ let animations = (0, _parseAnimationValue).default(value1);
1071
995
  return [
1072
996
  ...animations.flatMap((animation)=>keyframes[animation.name]
1073
997
  ),
@@ -1260,7 +1184,9 @@ let corePlugins = {
1260
1184
  ]
1261
1185
  ],
1262
1186
  ],
1263
- ]),
1187
+ ], {
1188
+ supportsNegativeValues: true
1189
+ }),
1264
1190
  scrollPadding: (0, _createUtilityPlugin).default('scrollPadding', [
1265
1191
  [
1266
1192
  'scroll-p',
@@ -1658,7 +1584,8 @@ let corePlugins = {
1658
1584
  };
1659
1585
  }
1660
1586
  }, {
1661
- values: theme('space')
1587
+ values: theme('space'),
1588
+ supportsNegativeValues: true
1662
1589
  });
1663
1590
  addUtilities({
1664
1591
  '.space-y-reverse > :not([hidden]) ~ :not([hidden])': {
@@ -2608,7 +2535,9 @@ let corePlugins = {
2608
2535
  'text-indent'
2609
2536
  ]
2610
2537
  ]
2611
- ]),
2538
+ ], {
2539
+ supportsNegativeValues: true
2540
+ }),
2612
2541
  verticalAlign: ({ addUtilities , matchUtilities })=>{
2613
2542
  addUtilities({
2614
2543
  '.align-baseline': {
@@ -2728,40 +2657,64 @@ let corePlugins = {
2728
2657
  },
2729
2658
  fontVariantNumeric: ({ addUtilities })=>{
2730
2659
  addUtilities({
2731
- '.ordinal, .slashed-zero, .lining-nums, .oldstyle-nums, .proportional-nums, .tabular-nums, .diagonal-fractions, .stacked-fractions': {
2660
+ '@defaults font-variant-numeric': {
2732
2661
  '--tw-ordinal': 'var(--tw-empty,/*!*/ /*!*/)',
2733
2662
  '--tw-slashed-zero': 'var(--tw-empty,/*!*/ /*!*/)',
2734
2663
  '--tw-numeric-figure': 'var(--tw-empty,/*!*/ /*!*/)',
2735
2664
  '--tw-numeric-spacing': 'var(--tw-empty,/*!*/ /*!*/)',
2736
2665
  '--tw-numeric-fraction': 'var(--tw-empty,/*!*/ /*!*/)',
2737
- 'font-variant-numeric': 'var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)'
2666
+ '--tw-font-variant-numeric': 'var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)'
2738
2667
  },
2739
2668
  '.normal-nums': {
2740
2669
  'font-variant-numeric': 'normal'
2741
2670
  },
2742
2671
  '.ordinal': {
2743
- '--tw-ordinal': 'ordinal'
2672
+ '@defaults font-variant-numeric': {
2673
+ },
2674
+ '--tw-ordinal': 'ordinal',
2675
+ 'font-variant-numeric': 'var(--tw-font-variant-numeric)'
2744
2676
  },
2745
2677
  '.slashed-zero': {
2746
- '--tw-slashed-zero': 'slashed-zero'
2678
+ '@defaults font-variant-numeric': {
2679
+ },
2680
+ '--tw-slashed-zero': 'slashed-zero',
2681
+ 'font-variant-numeric': 'var(--tw-font-variant-numeric)'
2747
2682
  },
2748
2683
  '.lining-nums': {
2749
- '--tw-numeric-figure': 'lining-nums'
2684
+ '@defaults font-variant-numeric': {
2685
+ },
2686
+ '--tw-numeric-figure': 'lining-nums',
2687
+ 'font-variant-numeric': 'var(--tw-font-variant-numeric)'
2750
2688
  },
2751
2689
  '.oldstyle-nums': {
2752
- '--tw-numeric-figure': 'oldstyle-nums'
2690
+ '@defaults font-variant-numeric': {
2691
+ },
2692
+ '--tw-numeric-figure': 'oldstyle-nums',
2693
+ 'font-variant-numeric': 'var(--tw-font-variant-numeric)'
2753
2694
  },
2754
2695
  '.proportional-nums': {
2755
- '--tw-numeric-spacing': 'proportional-nums'
2696
+ '@defaults font-variant-numeric': {
2697
+ },
2698
+ '--tw-numeric-spacing': 'proportional-nums',
2699
+ 'font-variant-numeric': 'var(--tw-font-variant-numeric)'
2756
2700
  },
2757
2701
  '.tabular-nums': {
2758
- '--tw-numeric-spacing': 'tabular-nums'
2702
+ '@defaults font-variant-numeric': {
2703
+ },
2704
+ '--tw-numeric-spacing': 'tabular-nums',
2705
+ 'font-variant-numeric': 'var(--tw-font-variant-numeric)'
2759
2706
  },
2760
2707
  '.diagonal-fractions': {
2761
- '--tw-numeric-fraction': 'diagonal-fractions'
2708
+ '@defaults font-variant-numeric': {
2709
+ },
2710
+ '--tw-numeric-fraction': 'diagonal-fractions',
2711
+ 'font-variant-numeric': 'var(--tw-font-variant-numeric)'
2762
2712
  },
2763
2713
  '.stacked-fractions': {
2764
- '--tw-numeric-fraction': 'stacked-fractions'
2714
+ '@defaults font-variant-numeric': {
2715
+ },
2716
+ '--tw-numeric-fraction': 'stacked-fractions',
2717
+ 'font-variant-numeric': 'var(--tw-font-variant-numeric)'
2765
2718
  }
2766
2719
  });
2767
2720
  },
@@ -2780,7 +2733,9 @@ let corePlugins = {
2780
2733
  'letterSpacing'
2781
2734
  ]
2782
2735
  ]
2783
- ]),
2736
+ ], {
2737
+ supportsNegativeValues: true
2738
+ }),
2784
2739
  textColor: ({ matchUtilities , theme , corePlugins })=>{
2785
2740
  matchUtilities({
2786
2741
  text: (value)=>{
@@ -2821,6 +2776,21 @@ let corePlugins = {
2821
2776
  }
2822
2777
  });
2823
2778
  },
2779
+ textDecorationColor: ({ matchUtilities , theme })=>{
2780
+ matchUtilities({
2781
+ decoration: (value)=>{
2782
+ return {
2783
+ 'text-decoration-color': (0, _toColorValue).default(value)
2784
+ };
2785
+ }
2786
+ }, {
2787
+ values: (0, _flattenColorPalette).default(theme('textDecorationColor')),
2788
+ type: [
2789
+ 'color',
2790
+ 'any'
2791
+ ]
2792
+ });
2793
+ },
2824
2794
  fontSmoothing: ({ addUtilities })=>{
2825
2795
  addUtilities({
2826
2796
  '.antialiased': {
@@ -3026,38 +2996,115 @@ let corePlugins = {
3026
2996
  '@defaults box-shadow': {
3027
2997
  '--tw-ring-offset-shadow': '0 0 #0000',
3028
2998
  '--tw-ring-shadow': '0 0 #0000',
3029
- '--tw-shadow': '0 0 #0000'
2999
+ '--tw-shadow': '0 0 #0000',
3000
+ '--tw-shadow-colored': '0 0 #0000'
3030
3001
  }
3031
3002
  });
3032
3003
  matchUtilities({
3033
3004
  shadow: (value)=>{
3034
3005
  value = transformValue(value);
3006
+ let ast = (0, _parseBoxShadowValue).parseBoxShadowValue(value);
3007
+ for (let shadow of ast){
3008
+ // Don't override color if the whole shadow is a variable
3009
+ if (!shadow.valid) {
3010
+ continue;
3011
+ }
3012
+ shadow.color = 'var(--tw-shadow-color)';
3013
+ }
3035
3014
  return {
3036
3015
  '@defaults box-shadow': {
3037
3016
  },
3038
3017
  '--tw-shadow': value === 'none' ? '0 0 #0000' : value,
3018
+ '--tw-shadow-colored': value === 'none' ? '0 0 #0000' : (0, _parseBoxShadowValue).formatBoxShadowValue(ast),
3039
3019
  'box-shadow': defaultBoxShadow
3040
3020
  };
3041
3021
  }
3042
3022
  }, {
3043
- values: theme('boxShadow')
3023
+ values: theme('boxShadow'),
3024
+ type: [
3025
+ 'shadow'
3026
+ ]
3044
3027
  });
3045
3028
  };
3046
3029
  })(),
3047
- outline: ({ matchUtilities , theme })=>{
3030
+ boxShadowColor: ({ matchUtilities , theme })=>{
3031
+ matchUtilities({
3032
+ shadow: (value)=>{
3033
+ return {
3034
+ '--tw-shadow-color': (0, _toColorValue).default(value),
3035
+ '--tw-shadow': 'var(--tw-shadow-colored)'
3036
+ };
3037
+ }
3038
+ }, {
3039
+ values: (0, _flattenColorPalette).default(theme('boxShadowColor')),
3040
+ type: [
3041
+ 'color'
3042
+ ]
3043
+ });
3044
+ },
3045
+ outlineStyle: ({ addUtilities })=>{
3046
+ addUtilities({
3047
+ '.outline-none': {
3048
+ outline: '2px solid transparent',
3049
+ 'outline-offset': '2px'
3050
+ },
3051
+ '.outline': {
3052
+ 'outline-style': 'solid'
3053
+ },
3054
+ '.outline-dashed': {
3055
+ 'outline-style': 'dashed'
3056
+ },
3057
+ '.outline-dotted': {
3058
+ 'outline-style': 'dotted'
3059
+ },
3060
+ '.outline-double': {
3061
+ 'outline-style': 'double'
3062
+ },
3063
+ '.outline-hidden': {
3064
+ 'outline-style': 'hidden'
3065
+ }
3066
+ });
3067
+ },
3068
+ outlineWidth: (0, _createUtilityPlugin).default('outlineWidth', [
3069
+ [
3070
+ 'outline',
3071
+ [
3072
+ 'outline-width'
3073
+ ]
3074
+ ]
3075
+ ], {
3076
+ type: [
3077
+ 'length',
3078
+ 'number',
3079
+ 'percentage'
3080
+ ]
3081
+ }),
3082
+ outlineOffset: (0, _createUtilityPlugin).default('outlineOffset', [
3083
+ [
3084
+ 'outline-offset',
3085
+ [
3086
+ 'outline-offset'
3087
+ ]
3088
+ ]
3089
+ ], {
3090
+ type: [
3091
+ 'length',
3092
+ 'number',
3093
+ 'percentage'
3094
+ ]
3095
+ }),
3096
+ outlineColor: ({ matchUtilities , theme })=>{
3048
3097
  matchUtilities({
3049
3098
  outline: (value)=>{
3050
- value = Array.isArray(value) ? value : value.split(',');
3051
- let [outline, outlineOffset = '0'] = Array.isArray(value) ? value : [
3052
- value
3053
- ];
3054
3099
  return {
3055
- outline,
3056
- 'outline-offset': outlineOffset
3100
+ 'outline-color': (0, _toColorValue).default(value)
3057
3101
  };
3058
3102
  }
3059
3103
  }, {
3060
- values: theme('outline')
3104
+ values: (0, _flattenColorPalette).default(theme('outlineColor')),
3105
+ type: [
3106
+ 'color'
3107
+ ]
3061
3108
  });
3062
3109
  },
3063
3110
  ringWidth: ({ matchUtilities , addBase , addUtilities , theme })=>{
@@ -3071,7 +3118,8 @@ let corePlugins = {
3071
3118
  '--tw-ring-color': ringColorDefault,
3072
3119
  '--tw-ring-offset-shadow': '0 0 #0000',
3073
3120
  '--tw-ring-shadow': '0 0 #0000',
3074
- '--tw-shadow': '0 0 #0000'
3121
+ '--tw-shadow': '0 0 #0000',
3122
+ '--tw-shadow-colored': '0 0 #0000'
3075
3123
  }
3076
3124
  });
3077
3125
  matchUtilities({
@@ -3229,7 +3277,8 @@ let corePlugins = {
3229
3277
  };
3230
3278
  }
3231
3279
  }, {
3232
- values: theme('hueRotate')
3280
+ values: theme('hueRotate'),
3281
+ supportsNegativeValues: true
3233
3282
  });
3234
3283
  },
3235
3284
  invert: ({ matchUtilities , theme })=>{
@@ -3377,7 +3426,8 @@ let corePlugins = {
3377
3426
  };
3378
3427
  }
3379
3428
  }, {
3380
- values: theme('backdropHueRotate')
3429
+ values: theme('backdropHueRotate'),
3430
+ supportsNegativeValues: true
3381
3431
  });
3382
3432
  },
3383
3433
  backdropInvert: ({ matchUtilities , theme })=>{
@@ -3526,6 +3576,17 @@ let corePlugins = {
3526
3576
  ]
3527
3577
  ]
3528
3578
  ]),
3529
- content: (0, _createUtilityPlugin).default('content')
3579
+ content: (0, _createUtilityPlugin).default('content', [
3580
+ [
3581
+ 'content',
3582
+ [
3583
+ '--tw-content',
3584
+ [
3585
+ 'content',
3586
+ 'var(--tw-content)'
3587
+ ]
3588
+ ]
3589
+ ],
3590
+ ])
3530
3591
  };
3531
- exports.corePlugins = corePlugins;
3592
+ exports.corePlugins = corePlugins1;