tailwindcss 0.0.0-insiders.808e69b → 0.0.0-insiders.8293c2d

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 (53) hide show
  1. package/CHANGELOG.md +67 -2
  2. package/lib/cli.js +57 -28
  3. package/lib/corePlugins.js +183 -280
  4. package/lib/css/preflight.css +1 -1
  5. package/lib/featureFlags.js +2 -5
  6. package/lib/index.js +1 -3
  7. package/lib/lib/collapseDuplicateDeclarations.js +52 -1
  8. package/lib/lib/defaultExtractor.js +10 -2
  9. package/lib/lib/expandApplyAtRules.js +0 -40
  10. package/lib/lib/expandTailwindAtRules.js +22 -29
  11. package/lib/lib/generateRules.js +1 -2
  12. package/lib/lib/normalizeTailwindDirectives.js +8 -1
  13. package/lib/lib/partitionApplyAtRules.js +53 -0
  14. package/lib/lib/resolveDefaultsAtRules.js +4 -4
  15. package/lib/lib/setupContextUtils.js +48 -52
  16. package/lib/lib/setupTrackingContext.js +11 -10
  17. package/lib/lib/sharedState.js +33 -4
  18. package/lib/processTailwindFeatures.js +5 -2
  19. package/lib/util/color.js +23 -8
  20. package/lib/util/createPlugin.js +1 -2
  21. package/lib/util/createUtilityPlugin.js +4 -8
  22. package/lib/util/flattenColorPalette.js +1 -3
  23. package/lib/util/normalizeConfig.js +11 -12
  24. package/lib/util/normalizeScreens.js +2 -4
  25. package/lib/util/pluginUtils.js +6 -13
  26. package/lib/util/resolveConfig.js +9 -18
  27. package/lib/util/resolveConfigPath.js +1 -2
  28. package/lib/util/toColorValue.js +1 -2
  29. package/lib/util/transformThemeValue.js +4 -8
  30. package/nesting/plugin.js +4 -1
  31. package/package.json +16 -19
  32. package/peers/index.js +724 -737
  33. package/src/cli.js +57 -12
  34. package/src/corePlugins.js +121 -155
  35. package/src/css/preflight.css +1 -1
  36. package/src/featureFlags.js +1 -5
  37. package/src/index.js +1 -7
  38. package/src/lib/collapseDuplicateDeclarations.js +66 -1
  39. package/src/lib/defaultExtractor.js +17 -0
  40. package/src/lib/expandApplyAtRules.js +0 -42
  41. package/src/lib/expandTailwindAtRules.js +21 -21
  42. package/src/lib/normalizeTailwindDirectives.js +6 -1
  43. package/src/lib/partitionApplyAtRules.js +52 -0
  44. package/src/lib/resolveDefaultsAtRules.js +5 -5
  45. package/src/lib/setupContextUtils.js +37 -17
  46. package/src/lib/setupTrackingContext.js +11 -10
  47. package/src/lib/sharedState.js +40 -4
  48. package/src/processTailwindFeatures.js +6 -2
  49. package/src/util/color.js +20 -7
  50. package/src/util/normalizeConfig.js +6 -0
  51. package/src/util/pluginUtils.js +1 -1
  52. package/lib/lib/setupWatchingContext.js +0 -288
  53. package/src/lib/setupWatchingContext.js +0 -311
package/CHANGELOG.md CHANGED
@@ -7,7 +7,66 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
- - Nothing yet!
10
+ ### Added
11
+
12
+ - Show warnings for invalid content config ([#7065](https://github.com/tailwindlabs/tailwindcss/pull/7065))
13
+
14
+ ## [3.0.13] - 2022-01-11
15
+
16
+ ### Fixed
17
+
18
+ - Fix consecutive builds with at apply producing different CSS ([#6999](https://github.com/tailwindlabs/tailwindcss/pull/6999))
19
+
20
+ ## [3.0.12] - 2022-01-07
21
+
22
+ ### Fixed
23
+
24
+ - Allow use of falsy values in theme config ([#6917](https://github.com/tailwindlabs/tailwindcss/pull/6917))
25
+ - Ensure we can apply classes that are grouped with non-class selectors ([#6922](https://github.com/tailwindlabs/tailwindcss/pull/6922))
26
+ - Improve standalone CLI compatibility on Linux by switching to the `linuxstatic` build target ([#6914](https://github.com/tailwindlabs/tailwindcss/pull/6914))
27
+ - Ensure `@apply` works consistently with or without `@layer` ([#6938](https://github.com/tailwindlabs/tailwindcss/pull/6938))
28
+ - Only emit defaults when using base layer ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
29
+ - Emit plugin defaults regardless of usage ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
30
+ - Move default border color back to preflight ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
31
+ - Change `experimental.optimizeUniversalDefaults` to only work with `@tailwind base` ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
32
+
33
+ ## [3.0.11] - 2022-01-05
34
+
35
+ ### Fixed
36
+
37
+ - Preserve casing of CSS variables added by plugins ([#6888](https://github.com/tailwindlabs/tailwindcss/pull/6888))
38
+ - Ignore content paths that are passed in but don't actually exist ([#6901](https://github.com/tailwindlabs/tailwindcss/pull/6901))
39
+ - Revert change that applies Tailwind's defaults in isolated environments like CSS modules ([9fdc391](https://github.com/tailwindlabs/tailwindcss/commit/9fdc391d4ff93e7e350f5ce439060176b1f0162f))
40
+
41
+ ## [3.0.10] - 2022-01-04
42
+
43
+ ### Fixed
44
+
45
+ - Fix `@apply` in files without `@tailwind` directives ([#6580](https://github.com/tailwindlabs/tailwindcss/pull/6580), [#6875](https://github.com/tailwindlabs/tailwindcss/pull/6875))
46
+ - CLI: avoid unnecessary writes to output files ([#6550](https://github.com/tailwindlabs/tailwindcss/pull/6550))
47
+
48
+ ### Added
49
+
50
+ - Allow piping data into the CLI ([#6876](https://github.com/tailwindlabs/tailwindcss/pull/6876))
51
+
52
+ ## [3.0.9] - 2022-01-03
53
+
54
+ ### Fixed
55
+
56
+ - Improve `DEBUG` flag ([#6797](https://github.com/tailwindlabs/tailwindcss/pull/6797), [#6804](https://github.com/tailwindlabs/tailwindcss/pull/6804))
57
+ - Ensure we can use `<` and `>` characters in modifiers ([#6851](https://github.com/tailwindlabs/tailwindcss/pull/6851))
58
+ - Validate `theme()` works in arbitrary values ([#6852](https://github.com/tailwindlabs/tailwindcss/pull/6852))
59
+ - Properly detect `theme()` value usage in arbitrary properties ([#6854](https://github.com/tailwindlabs/tailwindcss/pull/6854))
60
+ - Improve collapsing of duplicate declarations ([#6856](https://github.com/tailwindlabs/tailwindcss/pull/6856))
61
+ - Remove support for `TAILWIND_MODE=watch` ([#6858](https://github.com/tailwindlabs/tailwindcss/pull/6858))
62
+
63
+ ## [3.0.8] - 2021-12-28
64
+
65
+ ### Fixed
66
+
67
+ - Reduce specificity of `abbr` rule in preflight ([#6671](https://github.com/tailwindlabs/tailwindcss/pull/6671))
68
+ - Support HSL with hue units in arbitrary values ([#6726](https://github.com/tailwindlabs/tailwindcss/pull/6726))
69
+ - Add `node16-linux-arm64` target for standalone CLI ([#6693](https://github.com/tailwindlabs/tailwindcss/pull/6693))
11
70
 
12
71
  ## [3.0.7] - 2021-12-17
13
72
 
@@ -1741,7 +1800,13 @@ No release notes
1741
1800
 
1742
1801
  - Everything!
1743
1802
 
1744
- [unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.7...HEAD
1803
+ [unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.13...HEAD
1804
+ [3.0.13]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.12...v3.0.13
1805
+ [3.0.12]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.11...v3.0.12
1806
+ [3.0.11]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.10...v3.0.11
1807
+ [3.0.10]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.9...v3.0.10
1808
+ [3.0.9]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.8...v3.0.9
1809
+ [3.0.8]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.7...v3.0.8
1745
1810
  [3.0.7]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.6...v3.0.7
1746
1811
  [3.0.6]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.5...v3.0.6
1747
1812
  [3.0.5]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.4...v3.0.5
package/lib/cli.js CHANGED
@@ -40,6 +40,25 @@ function formatNodes(root) {
40
40
  root.first.raws.before = '';
41
41
  }
42
42
  }
43
+ async function outputFile(file, contents) {
44
+ if (_fs.default.existsSync(file) && await _fs.default.promises.readFile(file, 'utf8') === contents) {
45
+ return; // Skip writing the file
46
+ }
47
+ // Write the file
48
+ await _fs.default.promises.writeFile(file, contents, 'utf8');
49
+ }
50
+ function drainStdin() {
51
+ return new Promise((resolve, reject)=>{
52
+ let result = '';
53
+ process.stdin.on('data', (chunk)=>{
54
+ result += chunk;
55
+ });
56
+ process.stdin.on('end', ()=>resolve(result)
57
+ );
58
+ process.stdin.on('error', (err)=>reject(err)
59
+ );
60
+ });
61
+ }
43
62
  function help({ message , usage , commands: commands1 , options }) {
44
63
  let indent = 2;
45
64
  // Render header
@@ -70,8 +89,7 @@ function help({ message , usage , commands: commands1 , options }) {
70
89
  }
71
90
  // Render options
72
91
  if (options) {
73
- let groupedOptions = {
74
- };
92
+ let groupedOptions = {};
75
93
  for (let [key, value] of Object.entries(options)){
76
94
  if (typeof value === 'object') {
77
95
  groupedOptions[key] = {
@@ -336,7 +354,7 @@ async function build() {
336
354
  console.error('[deprecation] Running tailwindcss without -i, please provide an input file.');
337
355
  input = args['--input'] = args['_'][1];
338
356
  }
339
- if (input && !_fs.default.existsSync(input = _path.default.resolve(input))) {
357
+ if (input && input !== '-' && !_fs.default.existsSync(input = _path.default.resolve(input))) {
340
358
  console.error(`Specified input file ${args['--input']} does not exist.`);
341
359
  process.exit(9);
342
360
  }
@@ -351,13 +369,11 @@ async function build() {
351
369
  let { plugins: configPlugins } = customPostCssPath ? await (async ()=>{
352
370
  let file = _path.default.resolve(customPostCssPath);
353
371
  // Implementation, see: https://unpkg.com/browse/postcss-load-config@3.0.1/src/index.js
354
- let { config ={
355
- } } = await (0, _cosmiconfig).cosmiconfig('postcss').load(file);
372
+ let { config ={} } = await (0, _cosmiconfig).cosmiconfig('postcss').load(file);
356
373
  if (typeof config === 'function') {
357
374
  config = config();
358
375
  } else {
359
- config = Object.assign({
360
- }, config);
376
+ config = Object.assign({}, config);
361
377
  }
362
378
  if (!config.plugins) {
363
379
  config.plugins = [];
@@ -383,8 +399,7 @@ async function build() {
383
399
  ];
384
400
  }
385
401
  function resolveConfig() {
386
- let config = configPath ? require(configPath) : {
387
- };
402
+ let config = configPath ? require(configPath) : {};
388
403
  let resolvedConfig = (0, _resolveConfig).default(config);
389
404
  if (args['--purge']) {
390
405
  _log.default.warn('purge-flag-deprecated', [
@@ -463,8 +478,7 @@ async function build() {
463
478
  // Try to load a local `autoprefixer` version first
464
479
  try {
465
480
  return require('autoprefixer');
466
- } catch {
467
- }
481
+ } catch {}
468
482
  return (0, _indexJs).lazyAutoprefixer();
469
483
  })(),
470
484
  args['--minify'] && (()=>{
@@ -479,8 +493,7 @@ async function build() {
479
493
  // Try to load a local `cssnano` version first
480
494
  try {
481
495
  return require('cssnano');
482
- } catch {
483
- }
496
+ } catch {}
484
497
  return (0, _indexJs).lazyCssnano()(options);
485
498
  })(),
486
499
  ].filter(Boolean);
@@ -499,10 +512,8 @@ async function build() {
499
512
  return process.stdout.write(result.css);
500
513
  }
501
514
  return Promise.all([
502
- _fs.default.promises.writeFile(output, result.css, ()=>true
503
- ),
504
- result.map && _fs.default.writeFile(output + '.map', result.map.toString(), ()=>true
505
- ),
515
+ outputFile(output, result.css),
516
+ result.map && outputFile(output + '.map', result.map.toString()),
506
517
  ].filter(Boolean));
507
518
  }).then(()=>{
508
519
  let end = process.hrtime.bigint();
@@ -510,7 +521,18 @@ async function build() {
510
521
  console.error('Done in', (end - start) / BigInt(1000000) + 'ms.');
511
522
  });
512
523
  }
513
- let css1 = input ? _fs.default.readFileSync(_path.default.resolve(input), 'utf8') : '@tailwind base; @tailwind components; @tailwind utilities';
524
+ let css1 = await (()=>{
525
+ // Piping in data, let's drain the stdin
526
+ if (input === '-') {
527
+ return drainStdin();
528
+ }
529
+ // Input file has been provided
530
+ if (input) {
531
+ return _fs.default.readFileSync(_path.default.resolve(input), 'utf8');
532
+ }
533
+ // No input file provided, fallback to default atrules
534
+ return '@tailwind base; @tailwind components; @tailwind utilities';
535
+ })();
514
536
  return processCSS(css1);
515
537
  }
516
538
  let context = null;
@@ -547,8 +569,7 @@ async function build() {
547
569
  // Try to load a local `autoprefixer` version first
548
570
  try {
549
571
  return require('autoprefixer');
550
- } catch {
551
- }
572
+ } catch {}
552
573
  return (0, _indexJs).lazyAutoprefixer();
553
574
  })(),
554
575
  args['--minify'] && (()=>{
@@ -563,8 +584,7 @@ async function build() {
563
584
  // Try to load a local `cssnano` version first
564
585
  try {
565
586
  return require('cssnano');
566
- } catch {
567
- }
587
+ } catch {}
568
588
  return (0, _indexJs).lazyCssnano()(options);
569
589
  })(),
570
590
  ].filter(Boolean);
@@ -619,11 +639,9 @@ async function build() {
619
639
  if (!output) {
620
640
  return process.stdout.write(result.css);
621
641
  }
622
- await Promise.all([
623
- _fs.default.promises.writeFile(output, result.css, ()=>true
624
- ),
625
- result.map && _fs.default.writeFile(output + '.map', result.map.toString(), ()=>true
626
- ),
642
+ return Promise.all([
643
+ outputFile(output, result.css),
644
+ result.map && outputFile(output + '.map', result.map.toString()),
627
645
  ].filter(Boolean));
628
646
  }).then(()=>{
629
647
  let end = process.hrtime.bigint();
@@ -636,7 +654,18 @@ async function build() {
636
654
  }
637
655
  });
638
656
  }
639
- let css2 = input ? _fs.default.readFileSync(_path.default.resolve(input), 'utf8') : '@tailwind base; @tailwind components; @tailwind utilities';
657
+ let css2 = await (()=>{
658
+ // Piping in data, let's drain the stdin
659
+ if (input === '-') {
660
+ return drainStdin();
661
+ }
662
+ // Input file has been provided
663
+ if (input) {
664
+ return _fs.default.readFileSync(_path.default.resolve(input), 'utf8');
665
+ }
666
+ // No input file provided, fallback to default atrules
667
+ return '@tailwind base; @tailwind components; @tailwind utilities';
668
+ })();
640
669
  let result1 = await processCSS(css2);
641
670
  env.DEBUG && console.timeEnd('Finished in');
642
671
  return result1;