tailwindcss 0.0.0-insiders.da7396c → 0.0.0-insiders.dab8b04

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 +107 -1
  2. package/lib/cli.js +66 -31
  3. package/lib/corePlugins.js +185 -281
  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 +2 -0
  9. package/lib/lib/expandApplyAtRules.js +0 -40
  10. package/lib/lib/expandTailwindAtRules.js +41 -38
  11. package/lib/lib/generateRules.js +10 -3
  12. package/lib/lib/normalizeTailwindDirectives.js +10 -2
  13. package/lib/lib/partitionApplyAtRules.js +53 -0
  14. package/lib/lib/resolveDefaultsAtRules.js +4 -4
  15. package/lib/lib/setupContextUtils.js +52 -54
  16. package/lib/lib/setupTrackingContext.js +11 -10
  17. package/lib/lib/sharedState.js +33 -4
  18. package/{nesting → lib/postcss-plugins/nesting}/README.md +0 -0
  19. package/lib/postcss-plugins/nesting/index.js +17 -0
  20. package/lib/postcss-plugins/nesting/plugin.js +53 -0
  21. package/lib/processTailwindFeatures.js +10 -2
  22. package/lib/util/color.js +23 -8
  23. package/lib/util/createPlugin.js +1 -2
  24. package/lib/util/createUtilityPlugin.js +4 -8
  25. package/lib/util/flattenColorPalette.js +1 -3
  26. package/lib/util/normalizeConfig.js +19 -16
  27. package/lib/util/normalizeScreens.js +2 -4
  28. package/lib/util/pluginUtils.js +6 -13
  29. package/lib/util/resolveConfig.js +9 -18
  30. package/lib/util/resolveConfigPath.js +1 -2
  31. package/lib/util/toColorValue.js +1 -2
  32. package/lib/util/transformThemeValue.js +4 -8
  33. package/nesting/index.js +2 -12
  34. package/package.json +16 -19
  35. package/peers/index.js +957 -926
  36. package/src/cli.js +62 -15
  37. package/src/corePlugins.js +122 -155
  38. package/src/css/preflight.css +1 -1
  39. package/src/featureFlags.js +1 -5
  40. package/src/index.js +1 -7
  41. package/src/lib/collapseDuplicateDeclarations.js +66 -1
  42. package/src/lib/defaultExtractor.js +2 -0
  43. package/src/lib/expandApplyAtRules.js +0 -42
  44. package/src/lib/expandTailwindAtRules.js +43 -27
  45. package/src/lib/generateRules.js +8 -1
  46. package/src/lib/normalizeTailwindDirectives.js +7 -1
  47. package/src/lib/partitionApplyAtRules.js +52 -0
  48. package/src/lib/resolveDefaultsAtRules.js +5 -5
  49. package/src/lib/setupContextUtils.js +39 -18
  50. package/src/lib/setupTrackingContext.js +11 -10
  51. package/src/lib/sharedState.js +40 -4
  52. package/src/postcss-plugins/nesting/README.md +42 -0
  53. package/src/postcss-plugins/nesting/index.js +13 -0
  54. package/{nesting → src/postcss-plugins/nesting}/plugin.js +7 -4
  55. package/src/processTailwindFeatures.js +12 -2
  56. package/src/util/color.js +20 -7
  57. package/src/util/normalizeConfig.js +12 -4
  58. package/src/util/pluginUtils.js +1 -1
  59. package/lib/lib/setupWatchingContext.js +0 -288
  60. package/src/lib/setupWatchingContext.js +0 -311
package/CHANGELOG.md CHANGED
@@ -9,7 +9,102 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ### Fixed
11
11
 
12
+ - Fix preflight border color fallback ([#7288](https://github.com/tailwindlabs/tailwindcss/pull/7288))
13
+
14
+ ## [3.0.18] - 2022-01-28
15
+
16
+ ### Fixed
17
+
18
+ - Fix `@apply` order regression (in `addComponents`, `addUtilities`, ...) ([#7232](https://github.com/tailwindlabs/tailwindcss/pull/7232))
19
+ - Quick fix for incorrect arbitrary properties when using URLs ([#7252](https://github.com/tailwindlabs/tailwindcss/pull/7252))
20
+
21
+ ## [3.0.17] - 2022-01-26
22
+
23
+ ### Fixed
24
+
25
+ - Remove false positive warning in CLI when using the `--content` option ([#7220](https://github.com/tailwindlabs/tailwindcss/pull/7220))
26
+
27
+ ## [3.0.16] - 2022-01-24
28
+
29
+ ### Fixed
30
+
31
+ - Ensure to transpile the PostCSS Nesting plugin (tailwindcss/nesting) ([#7080](https://github.com/tailwindlabs/tailwindcss/pull/7080))
32
+ - Improve various warnings ([#7118](https://github.com/tailwindlabs/tailwindcss/pull/7118))
33
+ - Fix grammatical mistake ([cca5a38](https://github.com/tailwindlabs/tailwindcss/commit/cca5a3804e1d3ee0214491921e1aec35bf62a813))
34
+
35
+ ## [3.0.15] - 2022-01-15
36
+
37
+ ### Fixed
38
+
39
+ - Temporarily remove optional chaining in nesting plugin ([#7077](https://github.com/tailwindlabs/tailwindcss/pull/7077))
40
+
41
+ ## [3.0.14] - 2022-01-14
42
+
43
+ ### Added
44
+
45
+ - Show warnings for invalid content config ([#7065](https://github.com/tailwindlabs/tailwindcss/pull/7065))
46
+
47
+ ### Fixed
48
+
49
+ - Only emit utility/component variants when those layers exist ([#7066](https://github.com/tailwindlabs/tailwindcss/pull/7066))
50
+ - Ensure nesting plugins can receive options ([#7016](https://github.com/tailwindlabs/tailwindcss/pull/7016))
51
+
52
+ ## [3.0.13] - 2022-01-11
53
+
54
+ ### Fixed
55
+
56
+ - Fix consecutive builds with at apply producing different CSS ([#6999](https://github.com/tailwindlabs/tailwindcss/pull/6999))
57
+
58
+ ## [3.0.12] - 2022-01-07
59
+
60
+ ### Fixed
61
+
62
+ - Allow use of falsy values in theme config ([#6917](https://github.com/tailwindlabs/tailwindcss/pull/6917))
63
+ - Ensure we can apply classes that are grouped with non-class selectors ([#6922](https://github.com/tailwindlabs/tailwindcss/pull/6922))
64
+ - Improve standalone CLI compatibility on Linux by switching to the `linuxstatic` build target ([#6914](https://github.com/tailwindlabs/tailwindcss/pull/6914))
65
+ - Ensure `@apply` works consistently with or without `@layer` ([#6938](https://github.com/tailwindlabs/tailwindcss/pull/6938))
66
+ - Only emit defaults when using base layer ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
67
+ - Emit plugin defaults regardless of usage ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
68
+ - Move default border color back to preflight ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
69
+ - Change `experimental.optimizeUniversalDefaults` to only work with `@tailwind base` ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
70
+
71
+ ## [3.0.11] - 2022-01-05
72
+
73
+ ### Fixed
74
+
75
+ - Preserve casing of CSS variables added by plugins ([#6888](https://github.com/tailwindlabs/tailwindcss/pull/6888))
76
+ - Ignore content paths that are passed in but don't actually exist ([#6901](https://github.com/tailwindlabs/tailwindcss/pull/6901))
77
+ - Revert change that applies Tailwind's defaults in isolated environments like CSS modules ([9fdc391](https://github.com/tailwindlabs/tailwindcss/commit/9fdc391d4ff93e7e350f5ce439060176b1f0162f))
78
+
79
+ ## [3.0.10] - 2022-01-04
80
+
81
+ ### Fixed
82
+
83
+ - Fix `@apply` in files without `@tailwind` directives ([#6580](https://github.com/tailwindlabs/tailwindcss/pull/6580), [#6875](https://github.com/tailwindlabs/tailwindcss/pull/6875))
84
+ - CLI: avoid unnecessary writes to output files ([#6550](https://github.com/tailwindlabs/tailwindcss/pull/6550))
85
+
86
+ ### Added
87
+
88
+ - Allow piping data into the CLI ([#6876](https://github.com/tailwindlabs/tailwindcss/pull/6876))
89
+
90
+ ## [3.0.9] - 2022-01-03
91
+
92
+ ### Fixed
93
+
94
+ - Improve `DEBUG` flag ([#6797](https://github.com/tailwindlabs/tailwindcss/pull/6797), [#6804](https://github.com/tailwindlabs/tailwindcss/pull/6804))
95
+ - Ensure we can use `<` and `>` characters in modifiers ([#6851](https://github.com/tailwindlabs/tailwindcss/pull/6851))
96
+ - Validate `theme()` works in arbitrary values ([#6852](https://github.com/tailwindlabs/tailwindcss/pull/6852))
97
+ - Properly detect `theme()` value usage in arbitrary properties ([#6854](https://github.com/tailwindlabs/tailwindcss/pull/6854))
98
+ - Improve collapsing of duplicate declarations ([#6856](https://github.com/tailwindlabs/tailwindcss/pull/6856))
99
+ - Remove support for `TAILWIND_MODE=watch` ([#6858](https://github.com/tailwindlabs/tailwindcss/pull/6858))
100
+
101
+ ## [3.0.8] - 2021-12-28
102
+
103
+ ### Fixed
104
+
12
105
  - Reduce specificity of `abbr` rule in preflight ([#6671](https://github.com/tailwindlabs/tailwindcss/pull/6671))
106
+ - Support HSL with hue units in arbitrary values ([#6726](https://github.com/tailwindlabs/tailwindcss/pull/6726))
107
+ - Add `node16-linux-arm64` target for standalone CLI ([#6693](https://github.com/tailwindlabs/tailwindcss/pull/6693))
13
108
 
14
109
  ## [3.0.7] - 2021-12-17
15
110
 
@@ -1743,7 +1838,18 @@ No release notes
1743
1838
 
1744
1839
  - Everything!
1745
1840
 
1746
- [unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.7...HEAD
1841
+ [unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.18...HEAD
1842
+ [3.0.18]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.17...v3.0.18
1843
+ [3.0.17]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.16...v3.0.17
1844
+ [3.0.16]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.15...v3.0.16
1845
+ [3.0.15]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.14...v3.0.15
1846
+ [3.0.14]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.13...v3.0.14
1847
+ [3.0.13]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.12...v3.0.13
1848
+ [3.0.12]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.11...v3.0.12
1849
+ [3.0.11]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.10...v3.0.11
1850
+ [3.0.10]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.9...v3.0.10
1851
+ [3.0.9]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.8...v3.0.9
1852
+ [3.0.8]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.7...v3.0.8
1747
1853
  [3.0.7]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.6...v3.0.7
1748
1854
  [3.0.6]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.5...v3.0.6
1749
1855
  [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,9 +399,7 @@ async function build() {
383
399
  ];
384
400
  }
385
401
  function resolveConfig() {
386
- let config = configPath ? require(configPath) : {
387
- };
388
- let resolvedConfig = (0, _resolveConfig).default(config);
402
+ let config = configPath ? require(configPath) : {};
389
403
  if (args['--purge']) {
390
404
  _log.default.warn('purge-flag-deprecated', [
391
405
  'The `--purge` flag has been deprecated.',
@@ -396,9 +410,16 @@ async function build() {
396
410
  }
397
411
  }
398
412
  if (args['--content']) {
399
- resolvedConfig.content.files = args['--content'].split(/(?<!{[^}]+),/);
413
+ let files = args['--content'].split(/(?<!{[^}]+),/);
414
+ let resolvedConfig = (0, _resolveConfig).default(config, {
415
+ content: {
416
+ files
417
+ }
418
+ });
419
+ resolvedConfig.content.files = files;
420
+ return resolvedConfig;
400
421
  }
401
- return resolvedConfig;
422
+ return (0, _resolveConfig).default(config);
402
423
  }
403
424
  function extractFileGlobs(config) {
404
425
  return config.content.files.filter((file)=>{
@@ -463,8 +484,7 @@ async function build() {
463
484
  // Try to load a local `autoprefixer` version first
464
485
  try {
465
486
  return require('autoprefixer');
466
- } catch {
467
- }
487
+ } catch {}
468
488
  return (0, _indexJs).lazyAutoprefixer();
469
489
  })(),
470
490
  args['--minify'] && (()=>{
@@ -479,8 +499,7 @@ async function build() {
479
499
  // Try to load a local `cssnano` version first
480
500
  try {
481
501
  return require('cssnano');
482
- } catch {
483
- }
502
+ } catch {}
484
503
  return (0, _indexJs).lazyCssnano()(options);
485
504
  })(),
486
505
  ].filter(Boolean);
@@ -499,10 +518,8 @@ async function build() {
499
518
  return process.stdout.write(result.css);
500
519
  }
501
520
  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
- ),
521
+ outputFile(output, result.css),
522
+ result.map && outputFile(output + '.map', result.map.toString()),
506
523
  ].filter(Boolean));
507
524
  }).then(()=>{
508
525
  let end = process.hrtime.bigint();
@@ -510,7 +527,18 @@ async function build() {
510
527
  console.error('Done in', (end - start) / BigInt(1000000) + 'ms.');
511
528
  });
512
529
  }
513
- let css1 = input ? _fs.default.readFileSync(_path.default.resolve(input), 'utf8') : '@tailwind base; @tailwind components; @tailwind utilities';
530
+ let css1 = await (()=>{
531
+ // Piping in data, let's drain the stdin
532
+ if (input === '-') {
533
+ return drainStdin();
534
+ }
535
+ // Input file has been provided
536
+ if (input) {
537
+ return _fs.default.readFileSync(_path.default.resolve(input), 'utf8');
538
+ }
539
+ // No input file provided, fallback to default atrules
540
+ return '@tailwind base; @tailwind components; @tailwind utilities';
541
+ })();
514
542
  return processCSS(css1);
515
543
  }
516
544
  let context = null;
@@ -547,8 +575,7 @@ async function build() {
547
575
  // Try to load a local `autoprefixer` version first
548
576
  try {
549
577
  return require('autoprefixer');
550
- } catch {
551
- }
578
+ } catch {}
552
579
  return (0, _indexJs).lazyAutoprefixer();
553
580
  })(),
554
581
  args['--minify'] && (()=>{
@@ -563,8 +590,7 @@ async function build() {
563
590
  // Try to load a local `cssnano` version first
564
591
  try {
565
592
  return require('cssnano');
566
- } catch {
567
- }
593
+ } catch {}
568
594
  return (0, _indexJs).lazyCssnano()(options);
569
595
  })(),
570
596
  ].filter(Boolean);
@@ -619,11 +645,9 @@ async function build() {
619
645
  if (!output) {
620
646
  return process.stdout.write(result.css);
621
647
  }
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
- ),
648
+ return Promise.all([
649
+ outputFile(output, result.css),
650
+ result.map && outputFile(output + '.map', result.map.toString()),
627
651
  ].filter(Boolean));
628
652
  }).then(()=>{
629
653
  let end = process.hrtime.bigint();
@@ -636,7 +660,18 @@ async function build() {
636
660
  }
637
661
  });
638
662
  }
639
- let css2 = input ? _fs.default.readFileSync(_path.default.resolve(input), 'utf8') : '@tailwind base; @tailwind components; @tailwind utilities';
663
+ let css2 = await (()=>{
664
+ // Piping in data, let's drain the stdin
665
+ if (input === '-') {
666
+ return drainStdin();
667
+ }
668
+ // Input file has been provided
669
+ if (input) {
670
+ return _fs.default.readFileSync(_path.default.resolve(input), 'utf8');
671
+ }
672
+ // No input file provided, fallback to default atrules
673
+ return '@tailwind base; @tailwind components; @tailwind utilities';
674
+ })();
640
675
  let result1 = await processCSS(css2);
641
676
  env.DEBUG && console.timeEnd('Finished in');
642
677
  return result1;