tailwindcss 0.0.0-insiders.dd06552 → 0.0.0-insiders.e292888

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 (71) hide show
  1. package/CHANGELOG.md +143 -3
  2. package/README.md +8 -4
  3. package/colors.js +2 -1
  4. package/defaultConfig.js +2 -1
  5. package/defaultTheme.js +2 -1
  6. package/lib/cli.js +115 -86
  7. package/lib/corePlugins.js +236 -351
  8. package/lib/css/preflight.css +4 -4
  9. package/lib/featureFlags.js +2 -3
  10. package/lib/index.js +1 -3
  11. package/lib/lib/collapseDuplicateDeclarations.js +52 -1
  12. package/lib/lib/defaultExtractor.js +42 -0
  13. package/lib/lib/evaluateTailwindFunctions.js +1 -1
  14. package/lib/lib/expandApplyAtRules.js +96 -47
  15. package/lib/lib/expandTailwindAtRules.js +48 -44
  16. package/lib/lib/generateRules.js +31 -4
  17. package/lib/lib/normalizeTailwindDirectives.js +8 -1
  18. package/lib/lib/partitionApplyAtRules.js +53 -0
  19. package/lib/lib/resolveDefaultsAtRules.js +26 -12
  20. package/lib/lib/setupContextUtils.js +83 -53
  21. package/lib/lib/setupTrackingContext.js +11 -10
  22. package/lib/lib/sharedState.js +33 -4
  23. package/lib/processTailwindFeatures.js +5 -2
  24. package/lib/util/color.js +23 -8
  25. package/lib/util/createPlugin.js +1 -2
  26. package/lib/util/createUtilityPlugin.js +4 -8
  27. package/lib/util/defaults.js +6 -0
  28. package/lib/util/flattenColorPalette.js +1 -3
  29. package/lib/util/log.js +4 -0
  30. package/lib/util/normalizeConfig.js +41 -13
  31. package/lib/util/normalizeScreens.js +6 -5
  32. package/lib/util/pluginUtils.js +6 -13
  33. package/lib/util/resolveConfig.js +26 -27
  34. package/lib/util/resolveConfigPath.js +1 -2
  35. package/lib/util/toColorValue.js +1 -2
  36. package/lib/util/toPath.js +6 -1
  37. package/lib/util/transformThemeValue.js +4 -8
  38. package/nesting/plugin.js +4 -1
  39. package/package.json +18 -20
  40. package/peers/index.js +771 -782
  41. package/plugin.js +2 -1
  42. package/resolveConfig.js +2 -1
  43. package/src/cli.js +57 -12
  44. package/src/corePlugins.js +161 -209
  45. package/src/css/preflight.css +4 -4
  46. package/src/featureFlags.js +1 -1
  47. package/src/index.js +1 -7
  48. package/src/lib/collapseDuplicateDeclarations.js +66 -1
  49. package/src/lib/defaultExtractor.js +48 -0
  50. package/src/lib/evaluateTailwindFunctions.js +1 -1
  51. package/src/lib/expandApplyAtRules.js +101 -45
  52. package/src/lib/expandTailwindAtRules.js +51 -34
  53. package/src/lib/generateRules.js +35 -2
  54. package/src/lib/normalizeTailwindDirectives.js +6 -1
  55. package/src/lib/partitionApplyAtRules.js +52 -0
  56. package/src/lib/resolveDefaultsAtRules.js +31 -10
  57. package/src/lib/setupContextUtils.js +74 -21
  58. package/src/lib/setupTrackingContext.js +11 -10
  59. package/src/lib/sharedState.js +40 -4
  60. package/src/processTailwindFeatures.js +6 -2
  61. package/src/util/color.js +20 -7
  62. package/src/util/defaults.js +6 -0
  63. package/src/util/log.js +4 -0
  64. package/src/util/normalizeConfig.js +20 -1
  65. package/src/util/normalizeScreens.js +6 -3
  66. package/src/util/pluginUtils.js +1 -1
  67. package/src/util/resolveConfig.js +11 -1
  68. package/src/util/toPath.js +23 -1
  69. package/stubs/defaultConfig.stub.js +2 -2
  70. package/lib/lib/setupWatchingContext.js +0 -288
  71. package/src/lib/setupWatchingContext.js +0 -311
package/CHANGELOG.md CHANGED
@@ -7,6 +7,133 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Added
11
+
12
+ - Show warnings for invalid content config ([#7065](https://github.com/tailwindlabs/tailwindcss/pull/7065))
13
+
14
+ ### Fixed
15
+
16
+ - Only emit utility/component variants when those layers exist ([#7066](https://github.com/tailwindlabs/tailwindcss/pull/7066))
17
+
18
+ ## [3.0.13] - 2022-01-11
19
+
20
+ ### Fixed
21
+
22
+ - Fix consecutive builds with at apply producing different CSS ([#6999](https://github.com/tailwindlabs/tailwindcss/pull/6999))
23
+
24
+ ## [3.0.12] - 2022-01-07
25
+
26
+ ### Fixed
27
+
28
+ - Allow use of falsy values in theme config ([#6917](https://github.com/tailwindlabs/tailwindcss/pull/6917))
29
+ - Ensure we can apply classes that are grouped with non-class selectors ([#6922](https://github.com/tailwindlabs/tailwindcss/pull/6922))
30
+ - Improve standalone CLI compatibility on Linux by switching to the `linuxstatic` build target ([#6914](https://github.com/tailwindlabs/tailwindcss/pull/6914))
31
+ - Ensure `@apply` works consistently with or without `@layer` ([#6938](https://github.com/tailwindlabs/tailwindcss/pull/6938))
32
+ - Only emit defaults when using base layer ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
33
+ - Emit plugin defaults regardless of usage ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
34
+ - Move default border color back to preflight ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
35
+ - Change `experimental.optimizeUniversalDefaults` to only work with `@tailwind base` ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
36
+
37
+ ## [3.0.11] - 2022-01-05
38
+
39
+ ### Fixed
40
+
41
+ - Preserve casing of CSS variables added by plugins ([#6888](https://github.com/tailwindlabs/tailwindcss/pull/6888))
42
+ - Ignore content paths that are passed in but don't actually exist ([#6901](https://github.com/tailwindlabs/tailwindcss/pull/6901))
43
+ - Revert change that applies Tailwind's defaults in isolated environments like CSS modules ([9fdc391](https://github.com/tailwindlabs/tailwindcss/commit/9fdc391d4ff93e7e350f5ce439060176b1f0162f))
44
+
45
+ ## [3.0.10] - 2022-01-04
46
+
47
+ ### Fixed
48
+
49
+ - Fix `@apply` in files without `@tailwind` directives ([#6580](https://github.com/tailwindlabs/tailwindcss/pull/6580), [#6875](https://github.com/tailwindlabs/tailwindcss/pull/6875))
50
+ - CLI: avoid unnecessary writes to output files ([#6550](https://github.com/tailwindlabs/tailwindcss/pull/6550))
51
+
52
+ ### Added
53
+
54
+ - Allow piping data into the CLI ([#6876](https://github.com/tailwindlabs/tailwindcss/pull/6876))
55
+
56
+ ## [3.0.9] - 2022-01-03
57
+
58
+ ### Fixed
59
+
60
+ - Improve `DEBUG` flag ([#6797](https://github.com/tailwindlabs/tailwindcss/pull/6797), [#6804](https://github.com/tailwindlabs/tailwindcss/pull/6804))
61
+ - Ensure we can use `<` and `>` characters in modifiers ([#6851](https://github.com/tailwindlabs/tailwindcss/pull/6851))
62
+ - Validate `theme()` works in arbitrary values ([#6852](https://github.com/tailwindlabs/tailwindcss/pull/6852))
63
+ - Properly detect `theme()` value usage in arbitrary properties ([#6854](https://github.com/tailwindlabs/tailwindcss/pull/6854))
64
+ - Improve collapsing of duplicate declarations ([#6856](https://github.com/tailwindlabs/tailwindcss/pull/6856))
65
+ - Remove support for `TAILWIND_MODE=watch` ([#6858](https://github.com/tailwindlabs/tailwindcss/pull/6858))
66
+
67
+ ## [3.0.8] - 2021-12-28
68
+
69
+ ### Fixed
70
+
71
+ - Reduce specificity of `abbr` rule in preflight ([#6671](https://github.com/tailwindlabs/tailwindcss/pull/6671))
72
+ - Support HSL with hue units in arbitrary values ([#6726](https://github.com/tailwindlabs/tailwindcss/pull/6726))
73
+ - Add `node16-linux-arm64` target for standalone CLI ([#6693](https://github.com/tailwindlabs/tailwindcss/pull/6693))
74
+
75
+ ## [3.0.7] - 2021-12-17
76
+
77
+ ### Fixed
78
+
79
+ - Don't mutate custom color palette when overriding per-plugin colors ([#6546](https://github.com/tailwindlabs/tailwindcss/pull/6546))
80
+ - Improve circular dependency detection when using `@apply` ([#6588](https://github.com/tailwindlabs/tailwindcss/pull/6588))
81
+ - Only generate variants for non-`user` layers ([#6589](https://github.com/tailwindlabs/tailwindcss/pull/6589))
82
+ - Properly extract classes with arbitrary values in arrays and classes followed by escaped quotes ([#6590](https://github.com/tailwindlabs/tailwindcss/pull/6590))
83
+ - Improve jsx interpolation candidate matching ([#6593](https://github.com/tailwindlabs/tailwindcss/pull/6593))
84
+ - Ensure `@apply` of a rule inside an AtRule works ([#6594](https://github.com/tailwindlabs/tailwindcss/pull/6594))
85
+
86
+ ## [3.0.6] - 2021-12-16
87
+
88
+ ### Fixed
89
+
90
+ - Support square bracket notation in paths ([#6519](https://github.com/tailwindlabs/tailwindcss/pull/6519))
91
+ - Ensure all plugins are executed for a given candidate ([#6540](https://github.com/tailwindlabs/tailwindcss/pull/6540))
92
+
93
+ ## [3.0.5] - 2021-12-15
94
+
95
+ ### Fixed
96
+
97
+ - Revert: add `li` to list-style reset ([9777562d](https://github.com/tailwindlabs/tailwindcss/commit/9777562da37ee631bbf77374c0d14825f09ef9af))
98
+
99
+ ## [3.0.4] - 2021-12-15
100
+
101
+ ### Fixed
102
+
103
+ - Insert always-on defaults layer in correct spot ([#6526](https://github.com/tailwindlabs/tailwindcss/pull/6526))
104
+
105
+ ## [3.0.3] - 2021-12-15
106
+
107
+ ### Added
108
+
109
+ - Warn about invalid globs in `content` ([#6449](https://github.com/tailwindlabs/tailwindcss/pull/6449))
110
+ - Add standalone tailwindcss CLI ([#6506](https://github.com/tailwindlabs/tailwindcss/pull/6506))
111
+ - Add `li` to list-style reset ([00f60e6](https://github.com/tailwindlabs/tailwindcss/commit/00f60e61013c6e4e3419e4b699371a13eb30b75d))
112
+
113
+ ### Fixed
114
+
115
+ - Don't output unparsable values ([#6469](https://github.com/tailwindlabs/tailwindcss/pull/6469))
116
+ - Fix text decoration utilities from overriding the new text decoration color/style/thickness utilities when used with a modifier ([#6378](https://github.com/tailwindlabs/tailwindcss/pull/6378))
117
+ - Move defaults to their own always-on layer ([#6500](https://github.com/tailwindlabs/tailwindcss/pull/6500))
118
+ - Support negative values in safelist patterns ([#6480](https://github.com/tailwindlabs/tailwindcss/pull/6480))
119
+
120
+ ## [3.0.2] - 2021-12-13
121
+
122
+ ### Fixed
123
+
124
+ - Temporarily disable optimize universal defaults, fixes issue with transforms/filters/rings not being `@apply`-able in CSS modules/Svelte components/Vue components ([#6461](https://github.com/tailwindlabs/tailwindcss/pull/6461))
125
+
126
+ ## [3.0.1] - 2021-12-10
127
+
128
+ ### Fixed
129
+
130
+ - Ensure complex variants with multiple classes work ([#6311](https://github.com/tailwindlabs/tailwindcss/pull/6311))
131
+ - Re-add `default` interop to public available functions ([#6348](https://github.com/tailwindlabs/tailwindcss/pull/6348))
132
+ - Detect circular dependencies when using `@apply` ([#6365](https://github.com/tailwindlabs/tailwindcss/pull/6365))
133
+ - Fix defaults optimization when vendor prefixes are involved ([#6369](https://github.com/tailwindlabs/tailwindcss/pull/6369))
134
+
135
+ ## [3.0.0] - 2021-12-09
136
+
10
137
  ### Fixed
11
138
 
12
139
  - Enforce the order of some variants (like `before` and `after`) ([#6018](https://github.com/tailwindlabs/tailwindcss/pull/6018))
@@ -14,7 +141,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
14
141
  ### Added
15
142
 
16
143
  - Add `placeholder` variant ([#6106](https://github.com/tailwindlabs/tailwindcss/pull/6106))
17
- - Add tuple syntax for configuring screens while guaranteeing order ([#5956](https://github.com/tailwindlabs/tailwindcss/pull/5956))
18
144
  - Add composable `touch-action` utilities ([#6115](https://github.com/tailwindlabs/tailwindcss/pull/6115))
19
145
  - Add support for "arbitrary properties" ([#6161](https://github.com/tailwindlabs/tailwindcss/pull/6161))
20
146
  - Add `portrait` and `landscape` variants ([#6046](https://github.com/tailwindlabs/tailwindcss/pull/6046))
@@ -22,7 +148,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
22
148
  - Add `menu` reset to preflight ([#6213](https://github.com/tailwindlabs/tailwindcss/pull/6213))
23
149
  - Allow `0` as a valid `length` value ([#6233](https://github.com/tailwindlabs/tailwindcss/pull/6233), [#6259](https://github.com/tailwindlabs/tailwindcss/pull/6259))
24
150
  - Add CSS functions to data types ([#6258](https://github.com/tailwindlabs/tailwindcss/pull/6258))
25
- - Add CSS functions to data types ([#6258](https://github.com/tailwindlabs/tailwindcss/pull/6258))
26
151
  - Support negative values for `scale-*` utilities ([c48e629](https://github.com/tailwindlabs/tailwindcss/commit/c48e629955585ad18dadba9f470fda59cc448ab7))
27
152
  - Improve `length` data type, by validating each value individually ([#6283](https://github.com/tailwindlabs/tailwindcss/pull/6283))
28
153
 
@@ -49,6 +174,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
49
174
  - Add `text-decoration-color` utilities ([#5760](https://github.com/tailwindlabs/tailwindcss/pull/5760))
50
175
  - Add new declarative `addVariant` API ([#5809](https://github.com/tailwindlabs/tailwindcss/pull/5809))
51
176
  - Add first-class `print` variant for targeting printed media ([#5885](https://github.com/tailwindlabs/tailwindcss/pull/5885))
177
+ - Add `outline-style`, `outline-color`, `outline-width` and `outline-offset` utilities ([#5887](https://github.com/tailwindlabs/tailwindcss/pull/5887))
52
178
  - Add full color palette for `fill-*` and `stroke-*` utilities (#5933[](https://github.com/tailwindlabs/tailwindcss/pull/5933))
53
179
  - Add composable API for colored box shadows ([#5979](https://github.com/tailwindlabs/tailwindcss/pull/5979))
54
180
 
@@ -1678,7 +1804,21 @@ No release notes
1678
1804
 
1679
1805
  - Everything!
1680
1806
 
1681
- [unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.0-alpha.2...HEAD
1807
+ [unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.13...HEAD
1808
+ [3.0.13]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.12...v3.0.13
1809
+ [3.0.12]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.11...v3.0.12
1810
+ [3.0.11]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.10...v3.0.11
1811
+ [3.0.10]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.9...v3.0.10
1812
+ [3.0.9]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.8...v3.0.9
1813
+ [3.0.8]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.7...v3.0.8
1814
+ [3.0.7]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.6...v3.0.7
1815
+ [3.0.6]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.5...v3.0.6
1816
+ [3.0.5]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.4...v3.0.5
1817
+ [3.0.4]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.3...v3.0.4
1818
+ [3.0.3]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.2...v3.0.3
1819
+ [3.0.2]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.1...v3.0.2
1820
+ [3.0.1]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.0...v3.0.1
1821
+ [3.0.0]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.0-alpha.2...v3.0.0
1682
1822
  [3.0.0-alpha.2]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.0-alpha.1...v3.0.0-alpha.2
1683
1823
  [3.0.0-alpha.1]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.19...v3.0.0-alpha.1
1684
1824
  [2.2.19]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.18...v2.2.19
package/README.md CHANGED
@@ -1,10 +1,14 @@
1
1
  <p>
2
- <a href="https://tailwindcss.com/" target="_blank">
3
- <img alt="Tailwind CSS" width="350" src="https://refactoringui.nyc3.cdn.digitaloceanspaces.com/tailwind-logo-sticker.svg">
4
- </a><br>
5
- A utility-first CSS framework for rapidly building custom user interfaces.
2
+ <a href="https://tailwindcss.com/#gh-light-mode-only" target="_blank">
3
+ <img src="./.github/logo-light.svg" alt="Tailwind CSS" width="350" height="70">
4
+ </a>
5
+ <a href="https://tailwindcss.com/#gh-dark-mode-only" target="_blank">
6
+ <img src="./.github/logo-dark.svg" alt="Tailwind CSS" width="350" height="70">
7
+ </a>
6
8
  </p>
7
9
 
10
+ A utility-first CSS framework for rapidly building custom user interfaces.
11
+
8
12
  <p>
9
13
  <a href="https://github.com/tailwindlabs/tailwindcss/actions"><img src="https://img.shields.io/github/workflow/status/tailwindlabs/tailwindcss/Node.js%20CI" alt="Build Status"></a>
10
14
  <a href="https://www.npmjs.com/package/tailwindcss"><img src="https://img.shields.io/npm/dt/tailwindcss.svg" alt="Total Downloads"></a>
package/colors.js CHANGED
@@ -1 +1,2 @@
1
- module.exports = require('./lib/public/colors').default
1
+ let colors = require('./lib/public/colors')
2
+ module.exports = (colors.__esModule ? colors : { default: colors }).default
package/defaultConfig.js CHANGED
@@ -1 +1,2 @@
1
- module.exports = require('./lib/public/default-config').default
1
+ let defaultConfig = require('./lib/public/default-config')
2
+ module.exports = (defaultConfig.__esModule ? defaultConfig : { default: defaultConfig }).default
package/defaultTheme.js CHANGED
@@ -1 +1,2 @@
1
- module.exports = require('./lib/public/default-theme').default
1
+ let defaultTheme = require('./lib/public/default-theme')
2
+ module.exports = (defaultTheme.__esModule ? defaultTheme : { default: defaultTheme }).default
package/lib/cli.js CHANGED
@@ -40,7 +40,26 @@ function formatNodes(root) {
40
40
  root.first.raws.before = '';
41
41
  }
42
42
  }
43
- function help({ message , usage , commands , options }) {
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
+ }
62
+ function help({ message , usage , commands: commands1 , options }) {
44
63
  let indent = 2;
45
64
  // Render header
46
65
  console.log();
@@ -61,17 +80,16 @@ function help({ message , usage , commands , options }) {
61
80
  }
62
81
  }
63
82
  // Render commands
64
- if (commands && commands.length > 0) {
83
+ if (commands1 && commands1.length > 0) {
65
84
  console.log();
66
85
  console.log('Commands:');
67
- for (let command of commands){
68
- console.log(' '.repeat(indent), command);
86
+ for (let command1 of commands1){
87
+ console.log(' '.repeat(indent), command1);
69
88
  }
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] = {
@@ -86,12 +104,12 @@ function help({ message , usage , commands , options }) {
86
104
  }
87
105
  console.log();
88
106
  console.log('Options:');
89
- for (let { flags , description , deprecated } of Object.values(groupedOptions)){
107
+ for (let { flags: flags1 , description , deprecated } of Object.values(groupedOptions)){
90
108
  if (deprecated) continue;
91
- if (flags.length === 1) {
92
- console.log(' '.repeat(indent + 4 /* 4 = "-i, ".length */ ), flags.slice().reverse().join(', ').padEnd(20, ' '), description);
109
+ if (flags1.length === 1) {
110
+ console.log(' '.repeat(indent + 4 /* 4 = "-i, ".length */ ), flags1.slice().reverse().join(', ').padEnd(20, ' '), description);
93
111
  } else {
94
- console.log(' '.repeat(indent), flags.slice().reverse().join(', ').padEnd(24, ' '), description);
112
+ console.log(' '.repeat(indent), flags1.slice().reverse().join(', ').padEnd(24, ' '), description);
95
113
  }
96
114
  }
97
115
  }
@@ -110,7 +128,7 @@ function oneOf(...options) {
110
128
  manualParsing: true
111
129
  });
112
130
  }
113
- let commands1 = {
131
+ let commands = {
114
132
  init: {
115
133
  run: init,
116
134
  args: {
@@ -187,31 +205,31 @@ if (process.stdout.isTTY /* Detect redirecting output to a file */ && (process.
187
205
  'tailwindcss [--input input.css] [--output output.css] [--watch] [options...]',
188
206
  'tailwindcss init [--full] [--postcss] [options...]',
189
207
  ],
190
- commands: Object.keys(commands1).filter((command)=>command !== 'build'
191
- ).map((command)=>`${command} [options]`
208
+ commands: Object.keys(commands).filter((command2)=>command2 !== 'build'
209
+ ).map((command3)=>`${command3} [options]`
192
210
  ),
193
211
  options: {
194
- ...commands1.build.args,
212
+ ...commands.build.args,
195
213
  ...sharedFlags
196
214
  }
197
215
  });
198
216
  process.exit(0);
199
217
  }
200
- let command1 = ((arg = '')=>arg.startsWith('-') ? undefined : arg
218
+ let command = ((arg = '')=>arg.startsWith('-') ? undefined : arg
201
219
  )(process.argv[2]) || 'build';
202
- if (commands1[command1] === undefined) {
203
- if (_fs.default.existsSync(_path.default.resolve(command1))) {
220
+ if (commands[command] === undefined) {
221
+ if (_fs.default.existsSync(_path.default.resolve(command))) {
204
222
  // TODO: Deprecate this in future versions
205
223
  // Check if non-existing command, might be a file.
206
- command1 = 'build';
224
+ command = 'build';
207
225
  } else {
208
226
  help({
209
- message: `Invalid command: ${command1}`,
227
+ message: `Invalid command: ${command}`,
210
228
  usage: [
211
229
  'tailwindcss <command> [options]'
212
230
  ],
213
- commands: Object.keys(commands1).filter((command)=>command !== 'build'
214
- ).map((command)=>`${command} [options]`
231
+ commands: Object.keys(commands).filter((command4)=>command4 !== 'build'
232
+ ).map((command5)=>`${command5} [options]`
215
233
  ),
216
234
  options: sharedFlags
217
235
  });
@@ -219,11 +237,11 @@ if (commands1[command1] === undefined) {
219
237
  }
220
238
  }
221
239
  // Execute command
222
- let { args: flags1 , run } = commands1[command1];
223
- let args1 = (()=>{
240
+ let { args: flags , run } = commands[command];
241
+ let args = (()=>{
224
242
  try {
225
243
  let result = (0, _arg).default(Object.fromEntries(Object.entries({
226
- ...flags1,
244
+ ...flags,
227
245
  ...sharedFlags
228
246
  }).filter(([_key, value])=>{
229
247
  var ref;
@@ -240,23 +258,23 @@ let args1 = (()=>{
240
258
  let flag = result['_'][i];
241
259
  if (!flag.startsWith('-')) continue;
242
260
  let flagName = flag;
243
- let handler = flags1[flag];
261
+ let handler = flags[flag];
244
262
  // Resolve flagName & handler
245
263
  while(typeof handler === 'string'){
246
264
  flagName = handler;
247
- handler = flags1[handler];
265
+ handler = flags[handler];
248
266
  }
249
267
  if (!handler) continue;
250
- let args = [];
268
+ let args1 = [];
251
269
  let offset = i + 1;
252
270
  // Parse args for current flag
253
271
  while(result['_'][offset] && !result['_'][offset].startsWith('-')){
254
- args.push(result['_'][offset++]);
272
+ args1.push(result['_'][offset++]);
255
273
  }
256
274
  // Cleanup manually parsed flags + args
257
- result['_'].splice(i, 1 + args.length);
275
+ result['_'].splice(i, 1 + args1.length);
258
276
  // Set the resolved value in the `result` object
259
- result[flagName] = handler.type(args.length === 0 ? undefined : args.length === 1 ? args[0] : args, flagName);
277
+ result[flagName] = handler.type(args1.length === 0 ? undefined : args1.length === 1 ? args1[0] : args1, flagName);
260
278
  }
261
279
  // Ensure that the `command` is always the first argument in the `args`.
262
280
  // This is important so that we don't have to check if a default command
@@ -264,8 +282,8 @@ let args1 = (()=>{
264
282
  //
265
283
  // E.g.: tailwindcss input.css -> _: ['build', 'input.css']
266
284
  // E.g.: tailwindcss build input.css -> _: ['build', 'input.css']
267
- if (result['_'][0] !== command1) {
268
- result['_'].unshift(command1);
285
+ if (result['_'][0] !== command) {
286
+ result['_'].unshift(command);
269
287
  }
270
288
  return result;
271
289
  } catch (err) {
@@ -282,14 +300,14 @@ let args1 = (()=>{
282
300
  throw err;
283
301
  }
284
302
  })();
285
- if (args1['--help']) {
303
+ if (args['--help']) {
286
304
  help({
287
305
  options: {
288
- ...flags1,
306
+ ...flags,
289
307
  ...sharedFlags
290
308
  },
291
309
  usage: [
292
- `tailwindcss ${command1} [options]`
310
+ `tailwindcss ${command} [options]`
293
311
  ]
294
312
  });
295
313
  process.exit(0);
@@ -299,17 +317,17 @@ run();
299
317
  function init() {
300
318
  let messages = [];
301
319
  var ref;
302
- let tailwindConfigLocation = _path.default.resolve((ref = args1['_'][1]) !== null && ref !== void 0 ? ref : './tailwind.config.js');
320
+ let tailwindConfigLocation = _path.default.resolve((ref = args['_'][1]) !== null && ref !== void 0 ? ref : './tailwind.config.js');
303
321
  if (_fs.default.existsSync(tailwindConfigLocation)) {
304
322
  messages.push(`${_path.default.basename(tailwindConfigLocation)} already exists.`);
305
323
  } else {
306
- let stubFile = _fs.default.readFileSync(args1['--full'] ? _path.default.resolve(__dirname, '../stubs/defaultConfig.stub.js') : _path.default.resolve(__dirname, '../stubs/simpleConfig.stub.js'), 'utf8');
324
+ let stubFile = _fs.default.readFileSync(args['--full'] ? _path.default.resolve(__dirname, '../stubs/defaultConfig.stub.js') : _path.default.resolve(__dirname, '../stubs/simpleConfig.stub.js'), 'utf8');
307
325
  // Change colors import
308
326
  stubFile = stubFile.replace('../colors', 'tailwindcss/colors');
309
327
  _fs.default.writeFileSync(tailwindConfigLocation, stubFile, 'utf8');
310
328
  messages.push(`Created Tailwind CSS config file: ${_path.default.basename(tailwindConfigLocation)}`);
311
329
  }
312
- if (args1['--postcss']) {
330
+ if (args['--postcss']) {
313
331
  let postcssConfigLocation = _path.default.resolve('./postcss.config.js');
314
332
  if (_fs.default.existsSync(postcssConfigLocation)) {
315
333
  messages.push(`${_path.default.basename(postcssConfigLocation)} already exists.`);
@@ -327,37 +345,35 @@ function init() {
327
345
  }
328
346
  }
329
347
  async function build() {
330
- let input = args1['--input'];
331
- let output = args1['--output'];
332
- let shouldWatch = args1['--watch'];
333
- let includePostCss = args1['--postcss'];
348
+ let input = args['--input'];
349
+ let output = args['--output'];
350
+ let shouldWatch = args['--watch'];
351
+ let includePostCss = args['--postcss'];
334
352
  // TODO: Deprecate this in future versions
335
- if (!input && args1['_'][1]) {
353
+ if (!input && args['_'][1]) {
336
354
  console.error('[deprecation] Running tailwindcss without -i, please provide an input file.');
337
- input = args1['--input'] = args1['_'][1];
355
+ input = args['--input'] = args['_'][1];
338
356
  }
339
- if (input && !_fs.default.existsSync(input = _path.default.resolve(input))) {
340
- console.error(`Specified input file ${args1['--input']} does not exist.`);
357
+ if (input && input !== '-' && !_fs.default.existsSync(input = _path.default.resolve(input))) {
358
+ console.error(`Specified input file ${args['--input']} does not exist.`);
341
359
  process.exit(9);
342
360
  }
343
- if (args1['--config'] && !_fs.default.existsSync(args1['--config'] = _path.default.resolve(args1['--config']))) {
344
- console.error(`Specified config file ${args1['--config']} does not exist.`);
361
+ if (args['--config'] && !_fs.default.existsSync(args['--config'] = _path.default.resolve(args['--config']))) {
362
+ console.error(`Specified config file ${args['--config']} does not exist.`);
345
363
  process.exit(9);
346
364
  }
347
- let configPath = args1['--config'] ? args1['--config'] : ((defaultPath)=>_fs.default.existsSync(defaultPath) ? defaultPath : null
365
+ let configPath = args['--config'] ? args['--config'] : ((defaultPath)=>_fs.default.existsSync(defaultPath) ? defaultPath : null
348
366
  )(_path.default.resolve('./tailwind.config.js'));
349
367
  async function loadPostCssPlugins() {
350
- let customPostCssPath = typeof args1['--postcss'] === 'string' ? args1['--postcss'] : undefined;
368
+ let customPostCssPath = typeof args['--postcss'] === 'string' ? args['--postcss'] : undefined;
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,20 +399,19 @@ 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
- if (args1['--purge']) {
404
+ if (args['--purge']) {
390
405
  _log.default.warn('purge-flag-deprecated', [
391
406
  'The `--purge` flag has been deprecated.',
392
407
  'Please use `--content` instead.',
393
408
  ]);
394
- if (!args1['--content']) {
395
- args1['--content'] = args1['--purge'];
409
+ if (!args['--content']) {
410
+ args['--content'] = args['--purge'];
396
411
  }
397
412
  }
398
- if (args1['--content']) {
399
- resolvedConfig.content.files = args1['--content'].split(/(?<!{[^}]+),/);
413
+ if (args['--content']) {
414
+ resolvedConfig.content.files = args['--content'].split(/(?<!{[^}]+),/);
400
415
  }
401
416
  return resolvedConfig;
402
417
  }
@@ -457,17 +472,16 @@ async function build() {
457
472
  let plugins = [
458
473
  ...beforePlugins,
459
474
  tailwindPlugin,
460
- !args1['--minify'] && formatNodes,
475
+ !args['--minify'] && formatNodes,
461
476
  ...afterPlugins,
462
- !args1['--no-autoprefixer'] && (()=>{
477
+ !args['--no-autoprefixer'] && (()=>{
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
- args1['--minify'] && (()=>{
484
+ args['--minify'] && (()=>{
471
485
  let options = {
472
486
  preset: [
473
487
  'default',
@@ -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;
@@ -541,17 +563,16 @@ async function build() {
541
563
  let plugins = [
542
564
  ...beforePlugins,
543
565
  '__TAILWIND_PLUGIN_POSITION__',
544
- !args1['--minify'] && formatNodes,
566
+ !args['--minify'] && formatNodes,
545
567
  ...afterPlugins,
546
- !args1['--no-autoprefixer'] && (()=>{
568
+ !args['--no-autoprefixer'] && (()=>{
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
- args1['--minify'] && (()=>{
575
+ args['--minify'] && (()=>{
555
576
  let options = {
556
577
  preset: [
557
578
  'default',
@@ -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;