tailwindcss 0.0.0-insiders.e8e64f0 → 0.0.0-insiders.ea80db2

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 (89) hide show
  1. package/CHANGELOG.md +184 -2
  2. package/LICENSE +1 -2
  3. package/colors.d.ts +3 -0
  4. package/defaultConfig.d.ts +3 -0
  5. package/defaultTheme.d.ts +3 -0
  6. package/lib/cli.js +92 -37
  7. package/lib/corePluginList.js +1 -0
  8. package/lib/corePlugins.js +272 -291
  9. package/lib/css/preflight.css +2 -2
  10. package/lib/featureFlags.js +4 -7
  11. package/lib/index.js +12 -3
  12. package/lib/lib/cacheInvalidation.js +69 -0
  13. package/lib/lib/collapseAdjacentRules.js +14 -1
  14. package/lib/lib/collapseDuplicateDeclarations.js +52 -1
  15. package/lib/lib/defaultExtractor.js +16 -6
  16. package/lib/lib/expandApplyAtRules.js +173 -57
  17. package/lib/lib/expandTailwindAtRules.js +55 -42
  18. package/lib/lib/generateRules.js +165 -69
  19. package/lib/lib/normalizeTailwindDirectives.js +10 -2
  20. package/lib/lib/partitionApplyAtRules.js +53 -0
  21. package/lib/lib/resolveDefaultsAtRules.js +10 -6
  22. package/lib/lib/setupContextUtils.js +121 -85
  23. package/lib/lib/setupTrackingContext.js +8 -7
  24. package/lib/lib/sharedState.js +38 -5
  25. package/{nesting → lib/postcss-plugins/nesting}/README.md +0 -0
  26. package/lib/postcss-plugins/nesting/index.js +17 -0
  27. package/lib/postcss-plugins/nesting/plugin.js +85 -0
  28. package/lib/processTailwindFeatures.js +10 -2
  29. package/lib/util/cloneNodes.js +12 -1
  30. package/lib/util/color.js +27 -11
  31. package/lib/util/createPlugin.js +1 -2
  32. package/lib/util/createUtilityPlugin.js +4 -8
  33. package/lib/util/flattenColorPalette.js +1 -3
  34. package/lib/util/log.js +7 -7
  35. package/lib/util/normalizeConfig.js +19 -16
  36. package/lib/util/normalizeScreens.js +2 -4
  37. package/lib/util/parseBoxShadowValue.js +44 -4
  38. package/lib/util/pluginUtils.js +6 -13
  39. package/lib/util/prefixSelector.js +4 -5
  40. package/lib/util/resolveConfig.js +31 -18
  41. package/lib/util/resolveConfigPath.js +1 -2
  42. package/lib/util/toColorValue.js +1 -2
  43. package/lib/util/transformThemeValue.js +4 -8
  44. package/nesting/index.js +2 -12
  45. package/package.json +35 -38
  46. package/peers/index.js +3401 -4354
  47. package/plugin.d.ts +6 -0
  48. package/scripts/generate-types.js +52 -0
  49. package/src/cli.js +96 -26
  50. package/src/corePluginList.js +1 -1
  51. package/src/corePlugins.js +213 -165
  52. package/src/css/preflight.css +2 -2
  53. package/src/featureFlags.js +3 -7
  54. package/src/index.js +14 -6
  55. package/src/lib/cacheInvalidation.js +52 -0
  56. package/src/lib/collapseAdjacentRules.js +16 -1
  57. package/src/lib/collapseDuplicateDeclarations.js +66 -1
  58. package/src/lib/defaultExtractor.js +23 -4
  59. package/src/lib/expandApplyAtRules.js +184 -53
  60. package/src/lib/expandTailwindAtRules.js +66 -30
  61. package/src/lib/generateRules.js +154 -68
  62. package/src/lib/normalizeTailwindDirectives.js +7 -1
  63. package/src/lib/partitionApplyAtRules.js +52 -0
  64. package/src/lib/resolveDefaultsAtRules.js +11 -7
  65. package/src/lib/setupContextUtils.js +112 -47
  66. package/src/lib/setupTrackingContext.js +8 -7
  67. package/src/lib/sharedState.js +42 -4
  68. package/src/postcss-plugins/nesting/README.md +42 -0
  69. package/src/postcss-plugins/nesting/index.js +13 -0
  70. package/src/postcss-plugins/nesting/plugin.js +80 -0
  71. package/src/processTailwindFeatures.js +12 -2
  72. package/src/util/cloneNodes.js +14 -1
  73. package/src/util/color.js +25 -10
  74. package/src/util/log.js +7 -7
  75. package/src/util/normalizeConfig.js +12 -4
  76. package/src/util/parseBoxShadowValue.js +51 -3
  77. package/src/util/pluginUtils.js +1 -1
  78. package/src/util/prefixSelector.js +7 -5
  79. package/src/util/resolveConfig.js +30 -0
  80. package/stubs/defaultConfig.stub.js +3 -0
  81. package/types/config.d.ts +323 -0
  82. package/types/generated/.gitkeep +0 -0
  83. package/types/generated/colors.d.ts +276 -0
  84. package/types/generated/corePluginList.d.ts +1 -0
  85. package/types/index.d.ts +1 -0
  86. package/types.d.ts +1 -0
  87. package/lib/lib/setupWatchingContext.js +0 -288
  88. package/nesting/plugin.js +0 -41
  89. package/src/lib/setupWatchingContext.js +0 -311
package/CHANGELOG.md CHANGED
@@ -7,7 +7,173 @@ 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
+ ### Fixed
11
+
12
+ - Prevent nesting plugin from breaking other plugins ([#7563](https://github.com/tailwindlabs/tailwindcss/pull/7563))
13
+ - Recursively collapse adjacent rules ([#7565](https://github.com/tailwindlabs/tailwindcss/pull/7565))
14
+ - Preserve source maps for generated CSS ([#7588](https://github.com/tailwindlabs/tailwindcss/pull/7588))
15
+ - Split box shadows on top-level commas only ([#7479](https://github.com/tailwindlabs/tailwindcss/pull/7479))
16
+ - Use local user CSS cache for `@apply` ([#7524](https://github.com/tailwindlabs/tailwindcss/pull/7524))
17
+ - Invalidate context when main CSS changes ([#7626](https://github.com/tailwindlabs/tailwindcss/pull/7626))
18
+ - Only add `!` to selector class matching template candidate when using important modifier with mutli-class selectors ([#7664](https://github.com/tailwindlabs/tailwindcss/pull/7664))
19
+ - Correctly parse and prefix animation names with dots ([#7163](https://github.com/tailwindlabs/tailwindcss/pull/7163))
20
+ - Fix extraction from template literal/function with array ([#7481](https://github.com/tailwindlabs/tailwindcss/pull/7481))
21
+ - Don't output unparsable arbitrary values ([#7789](https://github.com/tailwindlabs/tailwindcss/pull/7789))
22
+ - Fix generation of `div:not(.foo)` if `.foo` is never defined ([#7815](https://github.com/tailwindlabs/tailwindcss/pull/7815))
23
+ - Allow for custom properties in `rgb`, `rgba`, `hsl` and `hsla` colors ([#7933](https://github.com/tailwindlabs/tailwindcss/pull/7933))
24
+ - Remove autoprefixer as explicit peer-dependency to avoid invalid warnings in situations where it isn't actually needed ([#7949](https://github.com/tailwindlabs/tailwindcss/pull/7949))
25
+
26
+ ### Changed
27
+
28
+ - Replace `chalk` with `picocolors` ([#6039](https://github.com/tailwindlabs/tailwindcss/pull/6039))
29
+ - Replace `cosmiconfig` with `lilconfig` ([#6039](https://github.com/tailwindlabs/tailwindcss/pull/6038))
30
+ - Update `cssnano` to avoid removing empty variables when minifying ([#7818](https://github.com/tailwindlabs/tailwindcss/pull/7818))
31
+
32
+ ### Added
33
+
34
+ - Allow default ring color to be a function ([#7587](https://github.com/tailwindlabs/tailwindcss/pull/7587))
35
+ - Add `rgb` and `hsl` color helpers for CSS variables ([#7665](https://github.com/tailwindlabs/tailwindcss/pull/7665))
36
+ - Support PostCSS `Document` nodes ([#7291](https://github.com/tailwindlabs/tailwindcss/pull/7291))
37
+ - Add `text-start` and `text-end` utilities ([#6656](https://github.com/tailwindlabs/tailwindcss/pull/6656))
38
+ - Support customizing class name when using `darkMode: 'class'` ([#5800](https://github.com/tailwindlabs/tailwindcss/pull/5800))
39
+ - Add `--poll` option to the CLI ([#7725](https://github.com/tailwindlabs/tailwindcss/pull/7725))
40
+ - Add new `border-spacing` utilities ([#7102](https://github.com/tailwindlabs/tailwindcss/pull/7102))
41
+ - Add `enabled` variant ([#7905](https://github.com/tailwindlabs/tailwindcss/pull/7905))
42
+ - Add TypeScript types for the `tailwind.config.js` file ([#7891](https://github.com/tailwindlabs/tailwindcss/pull/7891))
43
+ - Add `backdrop` variant ([#7924](https://github.com/tailwindlabs/tailwindcss/pull/7924))
44
+
45
+ ## [3.0.23] - 2022-02-16
46
+
47
+ ### Fixed
48
+
49
+ - Remove opacity variables from `:visited` pseudo class ([#7458](https://github.com/tailwindlabs/tailwindcss/pull/7458))
50
+ - Support arbitrary values + calc + theme with quotes ([#7462](https://github.com/tailwindlabs/tailwindcss/pull/7462))
51
+ - Don't duplicate layer output when scanning content with variants + wildcards ([#7478](https://github.com/tailwindlabs/tailwindcss/pull/7478))
52
+ - Implement `getClassOrder` instead of `sortClassList` ([#7459](https://github.com/tailwindlabs/tailwindcss/pull/7459))
53
+
54
+ ## [3.0.22] - 2022-02-11
55
+
56
+ ### Fixed
57
+
58
+ - Temporarily move `postcss` to dependencies ([#7424](https://github.com/tailwindlabs/tailwindcss/pull/7424))
59
+
60
+ ## [3.0.21] - 2022-02-10
61
+
62
+ ### Fixed
63
+
64
+ - Move prettier plugin to dev dependencies ([#7418](https://github.com/tailwindlabs/tailwindcss/pull/7418))
65
+
66
+ ## [3.0.20] - 2022-02-10
67
+
68
+ ### Added
69
+
70
+ - Expose `context.sortClassList(classes)` ([#7412](https://github.com/tailwindlabs/tailwindcss/pull/7412))
71
+
72
+ ## [3.0.19] - 2022-02-07
73
+
74
+ ### Fixed
75
+
76
+ - Fix preflight border color fallback ([#7288](https://github.com/tailwindlabs/tailwindcss/pull/7288))
77
+ - Correctly parse shadow lengths without a leading zero ([#7289](https://github.com/tailwindlabs/tailwindcss/pull/7289))
78
+ - Don't crash when scanning extremely long class candidates ([#7331](https://github.com/tailwindlabs/tailwindcss/pull/7331))
79
+ - Use less hacky fix for URLs detected as custom properties ([#7275](https://github.com/tailwindlabs/tailwindcss/pull/7275))
80
+ - Correctly generate negative utilities when dash is before the prefix ([#7295](https://github.com/tailwindlabs/tailwindcss/pull/7295))
81
+ - Detect prefixed negative utilities in the safelist ([#7295](https://github.com/tailwindlabs/tailwindcss/pull/7295))
82
+
83
+ ## [3.0.18] - 2022-01-28
84
+
85
+ ### Fixed
86
+
87
+ - Fix `@apply` order regression (in `addComponents`, `addUtilities`, ...) ([#7232](https://github.com/tailwindlabs/tailwindcss/pull/7232))
88
+ - Quick fix for incorrect arbitrary properties when using URLs ([#7252](https://github.com/tailwindlabs/tailwindcss/pull/7252))
89
+
90
+ ## [3.0.17] - 2022-01-26
91
+
92
+ ### Fixed
93
+
94
+ - Remove false positive warning in CLI when using the `--content` option ([#7220](https://github.com/tailwindlabs/tailwindcss/pull/7220))
95
+
96
+ ## [3.0.16] - 2022-01-24
97
+
98
+ ### Fixed
99
+
100
+ - Ensure to transpile the PostCSS Nesting plugin (tailwindcss/nesting) ([#7080](https://github.com/tailwindlabs/tailwindcss/pull/7080))
101
+ - Improve various warnings ([#7118](https://github.com/tailwindlabs/tailwindcss/pull/7118))
102
+ - Fix grammatical mistake ([cca5a38](https://github.com/tailwindlabs/tailwindcss/commit/cca5a3804e1d3ee0214491921e1aec35bf62a813))
103
+
104
+ ## [3.0.15] - 2022-01-15
105
+
106
+ ### Fixed
107
+
108
+ - Temporarily remove optional chaining in nesting plugin ([#7077](https://github.com/tailwindlabs/tailwindcss/pull/7077))
109
+
110
+ ## [3.0.14] - 2022-01-14
111
+
112
+ ### Added
113
+
114
+ - Show warnings for invalid content config ([#7065](https://github.com/tailwindlabs/tailwindcss/pull/7065))
115
+
116
+ ### Fixed
117
+
118
+ - Only emit utility/component variants when those layers exist ([#7066](https://github.com/tailwindlabs/tailwindcss/pull/7066))
119
+ - Ensure nesting plugins can receive options ([#7016](https://github.com/tailwindlabs/tailwindcss/pull/7016))
120
+
121
+ ## [3.0.13] - 2022-01-11
122
+
123
+ ### Fixed
124
+
125
+ - Fix consecutive builds with at apply producing different CSS ([#6999](https://github.com/tailwindlabs/tailwindcss/pull/6999))
126
+
127
+ ## [3.0.12] - 2022-01-07
128
+
129
+ ### Fixed
130
+
131
+ - Allow use of falsy values in theme config ([#6917](https://github.com/tailwindlabs/tailwindcss/pull/6917))
132
+ - Ensure we can apply classes that are grouped with non-class selectors ([#6922](https://github.com/tailwindlabs/tailwindcss/pull/6922))
133
+ - Improve standalone CLI compatibility on Linux by switching to the `linuxstatic` build target ([#6914](https://github.com/tailwindlabs/tailwindcss/pull/6914))
134
+ - Ensure `@apply` works consistently with or without `@layer` ([#6938](https://github.com/tailwindlabs/tailwindcss/pull/6938))
135
+ - Only emit defaults when using base layer ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
136
+ - Emit plugin defaults regardless of usage ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
137
+ - Move default border color back to preflight ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
138
+ - Change `experimental.optimizeUniversalDefaults` to only work with `@tailwind base` ([#6926](https://github.com/tailwindlabs/tailwindcss/pull/6926))
139
+
140
+ ## [3.0.11] - 2022-01-05
141
+
142
+ ### Fixed
143
+
144
+ - Preserve casing of CSS variables added by plugins ([#6888](https://github.com/tailwindlabs/tailwindcss/pull/6888))
145
+ - Ignore content paths that are passed in but don't actually exist ([#6901](https://github.com/tailwindlabs/tailwindcss/pull/6901))
146
+ - Revert change that applies Tailwind's defaults in isolated environments like CSS modules ([9fdc391](https://github.com/tailwindlabs/tailwindcss/commit/9fdc391d4ff93e7e350f5ce439060176b1f0162f))
147
+
148
+ ## [3.0.10] - 2022-01-04
149
+
150
+ ### Fixed
151
+
152
+ - Fix `@apply` in files without `@tailwind` directives ([#6580](https://github.com/tailwindlabs/tailwindcss/pull/6580), [#6875](https://github.com/tailwindlabs/tailwindcss/pull/6875))
153
+ - CLI: avoid unnecessary writes to output files ([#6550](https://github.com/tailwindlabs/tailwindcss/pull/6550))
154
+
155
+ ### Added
156
+
157
+ - Allow piping data into the CLI ([#6876](https://github.com/tailwindlabs/tailwindcss/pull/6876))
158
+
159
+ ## [3.0.9] - 2022-01-03
160
+
161
+ ### Fixed
162
+
163
+ - Improve `DEBUG` flag ([#6797](https://github.com/tailwindlabs/tailwindcss/pull/6797), [#6804](https://github.com/tailwindlabs/tailwindcss/pull/6804))
164
+ - Ensure we can use `<` and `>` characters in modifiers ([#6851](https://github.com/tailwindlabs/tailwindcss/pull/6851))
165
+ - Validate `theme()` works in arbitrary values ([#6852](https://github.com/tailwindlabs/tailwindcss/pull/6852))
166
+ - Properly detect `theme()` value usage in arbitrary properties ([#6854](https://github.com/tailwindlabs/tailwindcss/pull/6854))
167
+ - Improve collapsing of duplicate declarations ([#6856](https://github.com/tailwindlabs/tailwindcss/pull/6856))
168
+ - Remove support for `TAILWIND_MODE=watch` ([#6858](https://github.com/tailwindlabs/tailwindcss/pull/6858))
169
+
170
+ ## [3.0.8] - 2021-12-28
171
+
172
+ ### Fixed
173
+
174
+ - Reduce specificity of `abbr` rule in preflight ([#6671](https://github.com/tailwindlabs/tailwindcss/pull/6671))
175
+ - Support HSL with hue units in arbitrary values ([#6726](https://github.com/tailwindlabs/tailwindcss/pull/6726))
176
+ - Add `node16-linux-arm64` target for standalone CLI ([#6693](https://github.com/tailwindlabs/tailwindcss/pull/6693))
11
177
 
12
178
  ## [3.0.7] - 2021-12-17
13
179
 
@@ -1741,7 +1907,23 @@ No release notes
1741
1907
 
1742
1908
  - Everything!
1743
1909
 
1744
- [unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.7...HEAD
1910
+ [unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.23...HEAD
1911
+ [3.0.23]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.22...v3.0.23
1912
+ [3.0.22]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.21...v3.0.22
1913
+ [3.0.21]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.20...v3.0.21
1914
+ [3.0.20]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.19...v3.0.20
1915
+ [3.0.19]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.18...v3.0.19
1916
+ [3.0.18]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.17...v3.0.18
1917
+ [3.0.17]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.16...v3.0.17
1918
+ [3.0.16]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.15...v3.0.16
1919
+ [3.0.15]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.14...v3.0.15
1920
+ [3.0.14]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.13...v3.0.14
1921
+ [3.0.13]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.12...v3.0.13
1922
+ [3.0.12]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.11...v3.0.12
1923
+ [3.0.11]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.10...v3.0.11
1924
+ [3.0.10]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.9...v3.0.10
1925
+ [3.0.9]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.8...v3.0.9
1926
+ [3.0.8]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.7...v3.0.8
1745
1927
  [3.0.7]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.6...v3.0.7
1746
1928
  [3.0.6]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.5...v3.0.6
1747
1929
  [3.0.5]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.4...v3.0.5
package/LICENSE CHANGED
@@ -1,7 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) Adam Wathan <adam.wathan@gmail.com>
4
- Copyright (c) Jonathan Reinink <jonathan@reinink.ca>
3
+ Copyright (c) Tailwind Labs, Inc.
5
4
 
6
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
7
6
  of this software and associated documentation files (the "Software"), to deal
package/colors.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { DefaultColors } from './types/generated/colors'
2
+ declare const colors: DefaultColors
3
+ export = colors
@@ -0,0 +1,3 @@
1
+ import type { Config } from './types/config'
2
+ declare const config: Config
3
+ export = config
@@ -0,0 +1,3 @@
1
+ import type { Config } from './types/config'
2
+ declare const theme: Config['theme']
3
+ export = theme
package/lib/cli.js CHANGED
@@ -6,7 +6,7 @@ var _path = _interopRequireDefault(require("path"));
6
6
  var _arg = _interopRequireDefault(require("arg"));
7
7
  var _fs = _interopRequireDefault(require("fs"));
8
8
  var _postcssLoadConfig = _interopRequireDefault(require("postcss-load-config"));
9
- var _cosmiconfig = require("cosmiconfig");
9
+ var _lilconfig = require("lilconfig");
10
10
  var _plugins // Little bit scary, looking at private/internal API
11
11
  = _interopRequireDefault(require("postcss-load-config/src/plugins"));
12
12
  var _processTailwindFeatures = _interopRequireDefault(require("./processTailwindFeatures"));
@@ -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] = {
@@ -122,6 +140,10 @@ let commands = {
122
140
  type: Boolean,
123
141
  description: 'Initialize a `postcss.config.js` file'
124
142
  },
143
+ '--types': {
144
+ type: Boolean,
145
+ description: 'Add TypeScript types for the `tailwind.config.js` file'
146
+ },
125
147
  '-f': '--full',
126
148
  '-p': '--postcss'
127
149
  }
@@ -141,6 +163,10 @@ let commands = {
141
163
  type: Boolean,
142
164
  description: 'Watch for changes and rebuild as needed'
143
165
  },
166
+ '--poll': {
167
+ type: Boolean,
168
+ description: 'Use polling instead of filesystem events when watching'
169
+ },
144
170
  '--content': {
145
171
  type: String,
146
172
  description: 'Content paths to use for removing unused classes'
@@ -169,7 +195,8 @@ let commands = {
169
195
  '-i': '--input',
170
196
  '-o': '--output',
171
197
  '-m': '--minify',
172
- '-w': '--watch'
198
+ '-w': '--watch',
199
+ '-p': '--poll'
173
200
  }
174
201
  }
175
202
  };
@@ -185,7 +212,7 @@ if (process.stdout.isTTY /* Detect redirecting output to a file */ && (process.
185
212
  help({
186
213
  usage: [
187
214
  'tailwindcss [--input input.css] [--output output.css] [--watch] [options...]',
188
- 'tailwindcss init [--full] [--postcss] [options...]',
215
+ 'tailwindcss init [--full] [--postcss] [--types] [options...]',
189
216
  ],
190
217
  commands: Object.keys(commands).filter((command2)=>command2 !== 'build'
191
218
  ).map((command3)=>`${command3} [options]`
@@ -304,6 +331,10 @@ function init() {
304
331
  messages.push(`${_path.default.basename(tailwindConfigLocation)} already exists.`);
305
332
  } else {
306
333
  let stubFile = _fs.default.readFileSync(args['--full'] ? _path.default.resolve(__dirname, '../stubs/defaultConfig.stub.js') : _path.default.resolve(__dirname, '../stubs/simpleConfig.stub.js'), 'utf8');
334
+ if (args['--types']) {
335
+ let typesHeading = "/** @type {import('tailwindcss/types').Config} */";
336
+ stubFile = stubFile.replace(`module.exports = `, `${typesHeading}\nconst config = `) + '\nmodule.exports = config';
337
+ }
307
338
  // Change colors import
308
339
  stubFile = stubFile.replace('../colors', 'tailwindcss/colors');
309
340
  _fs.default.writeFileSync(tailwindConfigLocation, stubFile, 'utf8');
@@ -330,13 +361,18 @@ async function build() {
330
361
  let input = args['--input'];
331
362
  let output = args['--output'];
332
363
  let shouldWatch = args['--watch'];
364
+ let shouldPoll = args['--poll'];
365
+ let shouldCoalesceWriteEvents = shouldPoll || process.platform === 'win32';
333
366
  let includePostCss = args['--postcss'];
367
+ // Polling interval in milliseconds
368
+ // Used only when polling or coalescing add/change events on Windows
369
+ let pollInterval = 10;
334
370
  // TODO: Deprecate this in future versions
335
371
  if (!input && args['_'][1]) {
336
372
  console.error('[deprecation] Running tailwindcss without -i, please provide an input file.');
337
373
  input = args['--input'] = args['_'][1];
338
374
  }
339
- if (input && !_fs.default.existsSync(input = _path.default.resolve(input))) {
375
+ if (input && input !== '-' && !_fs.default.existsSync(input = _path.default.resolve(input))) {
340
376
  console.error(`Specified input file ${args['--input']} does not exist.`);
341
377
  process.exit(9);
342
378
  }
@@ -350,14 +386,12 @@ async function build() {
350
386
  let customPostCssPath = typeof args['--postcss'] === 'string' ? args['--postcss'] : undefined;
351
387
  let { plugins: configPlugins } = customPostCssPath ? await (async ()=>{
352
388
  let file = _path.default.resolve(customPostCssPath);
353
- // 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);
389
+ // Implementation, see: https://unpkg.com/browse/postcss-load-config@3.1.0/src/index.js
390
+ let { config ={} } = await (0, _lilconfig).lilconfig('postcss').load(file);
356
391
  if (typeof config === 'function') {
357
392
  config = config();
358
393
  } else {
359
- config = Object.assign({
360
- }, config);
394
+ config = Object.assign({}, config);
361
395
  }
362
396
  if (!config.plugins) {
363
397
  config.plugins = [];
@@ -383,9 +417,7 @@ async function build() {
383
417
  ];
384
418
  }
385
419
  function resolveConfig() {
386
- let config = configPath ? require(configPath) : {
387
- };
388
- let resolvedConfig = (0, _resolveConfig).default(config);
420
+ let config = configPath ? require(configPath) : {};
389
421
  if (args['--purge']) {
390
422
  _log.default.warn('purge-flag-deprecated', [
391
423
  'The `--purge` flag has been deprecated.',
@@ -396,9 +428,16 @@ async function build() {
396
428
  }
397
429
  }
398
430
  if (args['--content']) {
399
- resolvedConfig.content.files = args['--content'].split(/(?<!{[^}]+),/);
431
+ let files = args['--content'].split(/(?<!{[^}]+),/);
432
+ let resolvedConfig = (0, _resolveConfig).default(config, {
433
+ content: {
434
+ files
435
+ }
436
+ });
437
+ resolvedConfig.content.files = files;
438
+ return resolvedConfig;
400
439
  }
401
- return resolvedConfig;
440
+ return (0, _resolveConfig).default(config);
402
441
  }
403
442
  function extractFileGlobs(config) {
404
443
  return config.content.files.filter((file)=>{
@@ -463,8 +502,7 @@ async function build() {
463
502
  // Try to load a local `autoprefixer` version first
464
503
  try {
465
504
  return require('autoprefixer');
466
- } catch {
467
- }
505
+ } catch {}
468
506
  return (0, _indexJs).lazyAutoprefixer();
469
507
  })(),
470
508
  args['--minify'] && (()=>{
@@ -479,8 +517,7 @@ async function build() {
479
517
  // Try to load a local `cssnano` version first
480
518
  try {
481
519
  return require('cssnano');
482
- } catch {
483
- }
520
+ } catch {}
484
521
  return (0, _indexJs).lazyCssnano()(options);
485
522
  })(),
486
523
  ].filter(Boolean);
@@ -499,10 +536,8 @@ async function build() {
499
536
  return process.stdout.write(result.css);
500
537
  }
501
538
  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
- ),
539
+ outputFile(output, result.css),
540
+ result.map && outputFile(output + '.map', result.map.toString()),
506
541
  ].filter(Boolean));
507
542
  }).then(()=>{
508
543
  let end = process.hrtime.bigint();
@@ -510,7 +545,18 @@ async function build() {
510
545
  console.error('Done in', (end - start) / BigInt(1000000) + 'ms.');
511
546
  });
512
547
  }
513
- let css1 = input ? _fs.default.readFileSync(_path.default.resolve(input), 'utf8') : '@tailwind base; @tailwind components; @tailwind utilities';
548
+ let css1 = await (()=>{
549
+ // Piping in data, let's drain the stdin
550
+ if (input === '-') {
551
+ return drainStdin();
552
+ }
553
+ // Input file has been provided
554
+ if (input) {
555
+ return _fs.default.readFileSync(_path.default.resolve(input), 'utf8');
556
+ }
557
+ // No input file provided, fallback to default atrules
558
+ return '@tailwind base; @tailwind components; @tailwind utilities';
559
+ })();
514
560
  return processCSS(css1);
515
561
  }
516
562
  let context = null;
@@ -547,8 +593,7 @@ async function build() {
547
593
  // Try to load a local `autoprefixer` version first
548
594
  try {
549
595
  return require('autoprefixer');
550
- } catch {
551
- }
596
+ } catch {}
552
597
  return (0, _indexJs).lazyAutoprefixer();
553
598
  })(),
554
599
  args['--minify'] && (()=>{
@@ -563,8 +608,7 @@ async function build() {
563
608
  // Try to load a local `cssnano` version first
564
609
  try {
565
610
  return require('cssnano');
566
- } catch {
567
- }
611
+ } catch {}
568
612
  return (0, _indexJs).lazyCssnano()(options);
569
613
  })(),
570
614
  ].filter(Boolean);
@@ -619,11 +663,9 @@ async function build() {
619
663
  if (!output) {
620
664
  return process.stdout.write(result.css);
621
665
  }
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
- ),
666
+ return Promise.all([
667
+ outputFile(output, result.css),
668
+ result.map && outputFile(output + '.map', result.map.toString()),
627
669
  ].filter(Boolean));
628
670
  }).then(()=>{
629
671
  let end = process.hrtime.bigint();
@@ -636,7 +678,18 @@ async function build() {
636
678
  }
637
679
  });
638
680
  }
639
- let css2 = input ? _fs.default.readFileSync(_path.default.resolve(input), 'utf8') : '@tailwind base; @tailwind components; @tailwind utilities';
681
+ let css2 = await (()=>{
682
+ // Piping in data, let's drain the stdin
683
+ if (input === '-') {
684
+ return drainStdin();
685
+ }
686
+ // Input file has been provided
687
+ if (input) {
688
+ return _fs.default.readFileSync(_path.default.resolve(input), 'utf8');
689
+ }
690
+ // No input file provided, fallback to default atrules
691
+ return '@tailwind base; @tailwind components; @tailwind utilities';
692
+ })();
640
693
  let result1 = await processCSS(css2);
641
694
  env.DEBUG && console.timeEnd('Finished in');
642
695
  return result1;
@@ -649,10 +702,12 @@ async function build() {
649
702
  ...contextDependencies,
650
703
  ...extractFileGlobs(config1)
651
704
  ], {
705
+ usePolling: shouldPoll,
706
+ interval: shouldPoll ? pollInterval : undefined,
652
707
  ignoreInitial: true,
653
- awaitWriteFinish: process.platform === 'win32' ? {
708
+ awaitWriteFinish: shouldCoalesceWriteEvents ? {
654
709
  stabilityThreshold: 50,
655
- pollInterval: 10
710
+ pollInterval: pollInterval
656
711
  } : false
657
712
  });
658
713
  let chain = Promise.resolve();
@@ -38,6 +38,7 @@ var _default = [
38
38
  "flexBasis",
39
39
  "tableLayout",
40
40
  "borderCollapse",
41
+ "borderSpacing",
41
42
  "transformOrigin",
42
43
  "translate",
43
44
  "rotate",