tailwindcss 0.0.0-insiders.30b76cf → 0.0.0-insiders.3229ca0

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 +73 -2
  2. package/lib/cli.js +39 -35
  3. package/lib/constants.js +1 -1
  4. package/lib/corePluginList.js +9 -1
  5. package/lib/corePlugins.js +347 -245
  6. package/lib/css/preflight.css +14 -1
  7. package/lib/featureFlags.js +3 -3
  8. package/lib/lib/collapseDuplicateDeclarations.js +29 -0
  9. package/lib/lib/detectNesting.js +17 -2
  10. package/lib/lib/evaluateTailwindFunctions.js +9 -5
  11. package/lib/lib/expandApplyAtRules.js +7 -7
  12. package/lib/lib/expandTailwindAtRules.js +4 -1
  13. package/lib/lib/generateRules.js +144 -18
  14. package/lib/lib/resolveDefaultsAtRules.js +2 -2
  15. package/lib/lib/setupContextUtils.js +70 -76
  16. package/lib/lib/setupWatchingContext.js +5 -1
  17. package/lib/lib/sharedState.js +2 -2
  18. package/lib/lib/substituteScreenAtRules.js +7 -4
  19. package/lib/processTailwindFeatures.js +2 -0
  20. package/lib/util/buildMediaQuery.js +13 -24
  21. package/lib/util/createUtilityPlugin.js +2 -2
  22. package/lib/util/dataTypes.js +38 -7
  23. package/lib/util/formatVariantSelector.js +186 -0
  24. package/lib/util/isValidArbitraryValue.js +64 -0
  25. package/lib/util/nameClass.js +1 -0
  26. package/lib/util/normalizeConfig.js +22 -8
  27. package/lib/util/normalizeScreens.js +61 -0
  28. package/lib/util/parseBoxShadowValue.js +77 -0
  29. package/lib/util/pluginUtils.js +21 -145
  30. package/lib/util/prefixSelector.js +1 -3
  31. package/lib/util/resolveConfig.js +12 -12
  32. package/lib/util/transformThemeValue.js +23 -13
  33. package/package.json +12 -12
  34. package/peers/index.js +4431 -5425
  35. package/src/cli.js +9 -2
  36. package/src/corePluginList.js +1 -1
  37. package/src/corePlugins.js +301 -348
  38. package/src/css/preflight.css +14 -1
  39. package/src/lib/collapseDuplicateDeclarations.js +28 -0
  40. package/src/lib/detectNesting.js +22 -3
  41. package/src/lib/evaluateTailwindFunctions.js +5 -2
  42. package/src/lib/expandTailwindAtRules.js +5 -2
  43. package/src/lib/generateRules.js +150 -10
  44. package/src/lib/setupContextUtils.js +66 -63
  45. package/src/lib/setupWatchingContext.js +7 -0
  46. package/src/lib/sharedState.js +1 -1
  47. package/src/lib/substituteScreenAtRules.js +6 -3
  48. package/src/processTailwindFeatures.js +2 -0
  49. package/src/util/buildMediaQuery.js +14 -18
  50. package/src/util/dataTypes.js +43 -11
  51. package/src/util/formatVariantSelector.js +196 -0
  52. package/src/util/isValidArbitraryValue.js +61 -0
  53. package/src/util/nameClass.js +1 -1
  54. package/src/util/normalizeConfig.js +17 -1
  55. package/src/util/normalizeScreens.js +45 -0
  56. package/src/util/parseBoxShadowValue.js +71 -0
  57. package/src/util/pluginUtils.js +14 -137
  58. package/src/util/prefixSelector.js +1 -4
  59. package/src/util/transformThemeValue.js +22 -7
  60. package/stubs/defaultConfig.stub.js +75 -14
package/CHANGELOG.md CHANGED
@@ -7,10 +7,59 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Fixed
11
+
12
+ - Enforce the order of some variants (like `before` and `after`) ([#6018](https://github.com/tailwindlabs/tailwindcss/pull/6018))
13
+
14
+ ### Added
15
+
16
+ - Add `placeholder` variant ([#6106](https://github.com/tailwindlabs/tailwindcss/pull/6106))
17
+ - Add composable `touch-action` utilities ([#6115](https://github.com/tailwindlabs/tailwindcss/pull/6115))
18
+ - Add support for "arbitrary properties" ([#6161](https://github.com/tailwindlabs/tailwindcss/pull/6161))
19
+ - Add `portrait` and `landscape` variants ([#6046](https://github.com/tailwindlabs/tailwindcss/pull/6046))
20
+ - Add `text-decoration-style`, `text-decoration-thickness`, and `text-underline-offset` utilities ([#6004](https://github.com/tailwindlabs/tailwindcss/pull/6004))
21
+ - Add `menu` reset to preflight ([#6213](https://github.com/tailwindlabs/tailwindcss/pull/6213))
22
+ - Allow `0` as a valid `length` value ([#6233](https://github.com/tailwindlabs/tailwindcss/pull/6233), [#6259](https://github.com/tailwindlabs/tailwindcss/pull/6259))
23
+ - Add CSS functions to data types ([#6258](https://github.com/tailwindlabs/tailwindcss/pull/6258))
24
+ - Support negative values for `scale-*` utilities ([c48e629](https://github.com/tailwindlabs/tailwindcss/commit/c48e629955585ad18dadba9f470fda59cc448ab7))
25
+ - Improve `length` data type, by validating each value individually ([#6283](https://github.com/tailwindlabs/tailwindcss/pull/6283))
26
+
27
+ ### Changed
28
+
29
+ - Deprecate `decoration-slice` and `decoration-break` in favor `box-decoration-slice` and `box-decoration-break` _(non-breaking)_ ([#6004](https://github.com/tailwindlabs/tailwindcss/pull/6004))
30
+
31
+ ## [3.0.0-alpha.2] - 2021-11-08
32
+
33
+ ### Changed
34
+
35
+ - Don't use pointer cursor on disabled buttons by default ([#5772](https://github.com/tailwindlabs/tailwindcss/pull/5772))
36
+ - Set default content value in preflight instead of within each before/after utility ([#5820](https://github.com/tailwindlabs/tailwindcss/pull/5820))
37
+ - Remove `prefix` as a function ([#5829](https://github.com/tailwindlabs/tailwindcss/pull/5829))
38
+
10
39
  ### Added
11
40
 
12
41
  - Add `flex-basis` utilities ([#5671](https://github.com/tailwindlabs/tailwindcss/pull/5671))
13
42
  - Make negative values a first-class feature ([#5709](https://github.com/tailwindlabs/tailwindcss/pull/5709))
43
+ - Add `fit-content` values for `min/max-width/height` utilities ([#5638](https://github.com/tailwindlabs/tailwindcss/pull/5638))
44
+ - Add `min/max-content` values for `min/max-height` utilities ([#5729](https://github.com/tailwindlabs/tailwindcss/pull/5729))
45
+ - Add all standard `cursor-*` values by default ([#5734](https://github.com/tailwindlabs/tailwindcss/pull/5734))
46
+ - Add `grow-*` and `shrink-*` utilities, deprecate `flex-grow-*` and `flex-shrink-*` ([#5733](https://github.com/tailwindlabs/tailwindcss/pull/5733))
47
+ - Add `text-decoration-color` utilities ([#5760](https://github.com/tailwindlabs/tailwindcss/pull/5760))
48
+ - Add new declarative `addVariant` API ([#5809](https://github.com/tailwindlabs/tailwindcss/pull/5809))
49
+ - Add first-class `print` variant for targeting printed media ([#5885](https://github.com/tailwindlabs/tailwindcss/pull/5885))
50
+ - Add full color palette for `fill-*` and `stroke-*` utilities (#5933[](https://github.com/tailwindlabs/tailwindcss/pull/5933))
51
+ - Add composable API for colored box shadows ([#5979](https://github.com/tailwindlabs/tailwindcss/pull/5979))
52
+
53
+ ### Fixed
54
+
55
+ - Configure chokidar's `awaitWriteFinish` setting to avoid occasional stale builds on Windows ([#5774](https://github.com/tailwindlabs/tailwindcss/pull/5774))
56
+ - Fix CLI `--content` option ([#5775](https://github.com/tailwindlabs/tailwindcss/pull/5775))
57
+ - Fix before/after utilities overriding custom content values at larger breakpoints ([#5820](https://github.com/tailwindlabs/tailwindcss/pull/5820))
58
+ - Cleanup duplicate properties ([#5830](https://github.com/tailwindlabs/tailwindcss/pull/5830))
59
+ - Allow `_` inside `url()` when using arbitrary values ([#5853](https://github.com/tailwindlabs/tailwindcss/pull/5853))
60
+ - Prevent crashes when using comments in `@layer` AtRules ([#5854](https://github.com/tailwindlabs/tailwindcss/pull/5854))
61
+ - Handle color transformations properly with `theme(...)` for all relevant plugins ([#4533](https://github.com/tailwindlabs/tailwindcss/pull/4533), [#5871](https://github.com/tailwindlabs/tailwindcss/pull/5871))
62
+ - Ensure `@apply`-ing a utility with multiple definitions works ([#5870](https://github.com/tailwindlabs/tailwindcss/pull/5870))
14
63
 
15
64
  ## [3.0.0-alpha.1] - 2021-10-01
16
65
 
@@ -51,6 +100,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
51
100
  - Fix using negated `content` globs ([#5625](https://github.com/tailwindlabs/tailwindcss/pull/5625))
52
101
  - Fix using backslashes in `content` globs ([#5628](https://github.com/tailwindlabs/tailwindcss/pull/5628))
53
102
 
103
+ ## [2.2.19] - 2021-10-29
104
+
105
+ ### Fixed
106
+
107
+ - Ensure `corePlugins` order is consisent in AOT mode ([#5928](https://github.com/tailwindlabs/tailwindcss/pull/5928))
108
+
109
+ ## [2.2.18] - 2021-10-29
110
+
111
+ ### Fixed
112
+
113
+ - Bump versions for security vulnerabilities ([#5924](https://github.com/tailwindlabs/tailwindcss/pull/5924))
114
+
115
+ ## [2.2.17] - 2021-10-13
116
+
117
+ ### Fixed
118
+
119
+ - Configure chokidar's `awaitWriteFinish` setting to avoid occasional stale builds on Windows ([#5758](https://github.com/tailwindlabs/tailwindcss/pull/5758))
120
+
54
121
  ## [2.2.16] - 2021-09-26
55
122
 
56
123
  ### Fixed
@@ -1609,8 +1676,12 @@ No release notes
1609
1676
 
1610
1677
  - Everything!
1611
1678
 
1612
- [unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.0-alpha.1...HEAD
1613
- [3.0.0-alpha.1]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.16...v3.0.0-alpha.1
1679
+ [unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.0-alpha.2...HEAD
1680
+ [3.0.0-alpha.2]: https://github.com/tailwindlabs/tailwindcss/compare/v3.0.0-alpha.1...v3.0.0-alpha.2
1681
+ [3.0.0-alpha.1]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.19...v3.0.0-alpha.1
1682
+ [2.2.19]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.18...v2.2.19
1683
+ [2.2.18]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.17...v2.2.18
1684
+ [2.2.17]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.16...v2.2.17
1614
1685
  [2.2.16]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.15...v2.2.16
1615
1686
  [2.2.15]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.14...v2.2.15
1616
1687
  [2.2.14]: https://github.com/tailwindlabs/tailwindcss/compare/v2.2.13...v2.2.14
package/lib/cli.js CHANGED
@@ -22,7 +22,7 @@ function _interopRequireDefault(obj) {
22
22
  };
23
23
  }
24
24
  let env = {
25
- DEBUG: process.env.DEBUG !== undefined
25
+ DEBUG: process.env.DEBUG !== undefined && process.env.DEBUG !== '0'
26
26
  };
27
27
  // ---
28
28
  function indentRecursive(node, indent = 0) {
@@ -40,7 +40,7 @@ function formatNodes(root) {
40
40
  root.first.raws.before = '';
41
41
  }
42
42
  }
43
- function help({ message , usage , commands , options }) {
43
+ function help({ message , usage , commands: commands1 , options }) {
44
44
  let indent = 2;
45
45
  // Render header
46
46
  console.log();
@@ -61,11 +61,11 @@ function help({ message , usage , commands , options }) {
61
61
  }
62
62
  }
63
63
  // Render commands
64
- if (commands && commands.length > 0) {
64
+ if (commands1 && commands1.length > 0) {
65
65
  console.log();
66
66
  console.log('Commands:');
67
- for (let command of commands){
68
- console.log(' '.repeat(indent), command);
67
+ for (let command1 of commands1){
68
+ console.log(' '.repeat(indent), command1);
69
69
  }
70
70
  }
71
71
  // Render options
@@ -86,12 +86,12 @@ function help({ message , usage , commands , options }) {
86
86
  }
87
87
  console.log();
88
88
  console.log('Options:');
89
- for (let { flags , description , deprecated } of Object.values(groupedOptions)){
89
+ for (let { flags: flags1 , description , deprecated } of Object.values(groupedOptions)){
90
90
  if (deprecated) continue;
91
- if (flags.length === 1) {
92
- console.log(' '.repeat(indent + 4 /* 4 = "-i, ".length */ ), flags.slice().reverse().join(', ').padEnd(20, ' '), description);
91
+ if (flags1.length === 1) {
92
+ console.log(' '.repeat(indent + 4 /* 4 = "-i, ".length */ ), flags1.slice().reverse().join(', ').padEnd(20, ' '), description);
93
93
  } else {
94
- console.log(' '.repeat(indent), flags.slice().reverse().join(', ').padEnd(24, ' '), description);
94
+ console.log(' '.repeat(indent), flags1.slice().reverse().join(', ').padEnd(24, ' '), description);
95
95
  }
96
96
  }
97
97
  }
@@ -187,8 +187,8 @@ if (process.stdout.isTTY /* Detect redirecting output to a file */ && (process.
187
187
  'tailwindcss [--input input.css] [--output output.css] [--watch] [options...]',
188
188
  'tailwindcss init [--full] [--postcss] [options...]',
189
189
  ],
190
- commands: Object.keys(commands).filter((command)=>command !== 'build'
191
- ).map((command)=>`${command} [options]`
190
+ commands: Object.keys(commands).filter((command2)=>command2 !== 'build'
191
+ ).map((command3)=>`${command3} [options]`
192
192
  ),
193
193
  options: {
194
194
  ...commands.build.args,
@@ -210,8 +210,8 @@ if (commands[command] === undefined) {
210
210
  usage: [
211
211
  'tailwindcss <command> [options]'
212
212
  ],
213
- commands: Object.keys(commands).filter((command)=>command !== 'build'
214
- ).map((command)=>`${command} [options]`
213
+ commands: Object.keys(commands).filter((command4)=>command4 !== 'build'
214
+ ).map((command5)=>`${command5} [options]`
215
215
  ),
216
216
  options: sharedFlags
217
217
  });
@@ -247,16 +247,16 @@ let args = (()=>{
247
247
  handler = flags[handler];
248
248
  }
249
249
  if (!handler) continue;
250
- let args = [];
250
+ let args1 = [];
251
251
  let offset = i + 1;
252
252
  // Parse args for current flag
253
253
  while(result['_'][offset] && !result['_'][offset].startsWith('-')){
254
- args.push(result['_'][offset++]);
254
+ args1.push(result['_'][offset++]);
255
255
  }
256
256
  // Cleanup manually parsed flags + args
257
- result['_'].splice(i, 1 + args.length);
257
+ result['_'].splice(i, 1 + args1.length);
258
258
  // Set the resolved value in the `result` object
259
- result[flagName] = handler.type(args.length === 0 ? undefined : args.length === 1 ? args[0] : args, flagName);
259
+ result[flagName] = handler.type(args1.length === 0 ? undefined : args1.length === 1 ? args1[0] : args1, flagName);
260
260
  }
261
261
  // Ensure that the `command` is always the first argument in the `args`.
262
262
  // This is important so that we don't have to check if a default command
@@ -396,7 +396,7 @@ async function build() {
396
396
  }
397
397
  }
398
398
  if (args['--content']) {
399
- resolvedConfig.content = args['--content'].split(/(?<!{[^}]+),/);
399
+ resolvedConfig.content.files = args['--content'].split(/(?<!{[^}]+),/);
400
400
  }
401
401
  return resolvedConfig;
402
402
  }
@@ -510,8 +510,8 @@ async function build() {
510
510
  console.error('Done in', (end - start) / BigInt(1000000) + 'ms.');
511
511
  });
512
512
  }
513
- let css = input ? _fs.default.readFileSync(_path.default.resolve(input), 'utf8') : '@tailwind base; @tailwind components; @tailwind utilities';
514
- return processCSS(css);
513
+ let css1 = input ? _fs.default.readFileSync(_path.default.resolve(input), 'utf8') : '@tailwind base; @tailwind components; @tailwind utilities';
514
+ return processCSS(css1);
515
515
  }
516
516
  let context = null;
517
517
  async function startWatcher() {
@@ -521,8 +521,8 @@ async function build() {
521
521
  let watcher = null;
522
522
  function refreshConfig() {
523
523
  env.DEBUG && console.time('Module dependencies');
524
- for (let file of configDependencies){
525
- delete require.cache[require.resolve(file)];
524
+ for (let file1 of configDependencies){
525
+ delete require.cache[require.resolve(file1)];
526
526
  }
527
527
  if (configPath) {
528
528
  configDependencies = (0, _getModuleDependencies).default(configPath).map(({ file })=>file
@@ -636,36 +636,40 @@ async function build() {
636
636
  }
637
637
  });
638
638
  }
639
- let css = input ? _fs.default.readFileSync(_path.default.resolve(input), 'utf8') : '@tailwind base; @tailwind components; @tailwind utilities';
640
- let result1 = await processCSS(css);
639
+ let css2 = input ? _fs.default.readFileSync(_path.default.resolve(input), 'utf8') : '@tailwind base; @tailwind components; @tailwind utilities';
640
+ let result1 = await processCSS(css2);
641
641
  env.DEBUG && console.timeEnd('Finished in');
642
642
  return result1;
643
643
  }
644
- let config = refreshConfig(configPath);
644
+ let config1 = refreshConfig(configPath);
645
645
  if (input) {
646
646
  contextDependencies.add(_path.default.resolve(input));
647
647
  }
648
648
  watcher = _chokidar.default.watch([
649
649
  ...contextDependencies,
650
- ...extractFileGlobs(config)
650
+ ...extractFileGlobs(config1)
651
651
  ], {
652
- ignoreInitial: true
652
+ ignoreInitial: true,
653
+ awaitWriteFinish: process.platform === 'win32' ? {
654
+ stabilityThreshold: 50,
655
+ pollInterval: 10
656
+ } : false
653
657
  });
654
658
  let chain = Promise.resolve();
655
659
  watcher.on('change', async (file)=>{
656
660
  if (contextDependencies.has(file)) {
657
661
  env.DEBUG && console.time('Resolve config');
658
662
  context = null;
659
- config = refreshConfig(configPath);
663
+ config1 = refreshConfig(configPath);
660
664
  env.DEBUG && console.timeEnd('Resolve config');
661
665
  env.DEBUG && console.time('Watch new files');
662
- let globs = extractFileGlobs(config);
666
+ let globs = extractFileGlobs(config1);
663
667
  watcher.add(configDependencies);
664
668
  watcher.add(globs);
665
669
  env.DEBUG && console.timeEnd('Watch new files');
666
670
  chain = chain.then(async ()=>{
667
- changedContent.push(...getChangedContent(config));
668
- await rebuild(config);
671
+ changedContent.push(...getChangedContent(config1));
672
+ await rebuild(config1);
669
673
  });
670
674
  } else {
671
675
  chain = chain.then(async ()=>{
@@ -673,7 +677,7 @@ async function build() {
673
677
  content: _fs.default.readFileSync(_path.default.resolve(file), 'utf8'),
674
678
  extension: _path.default.extname(file).slice(1)
675
679
  });
676
- await rebuild(config);
680
+ await rebuild(config1);
677
681
  });
678
682
  }
679
683
  });
@@ -683,12 +687,12 @@ async function build() {
683
687
  content: _fs.default.readFileSync(_path.default.resolve(file), 'utf8'),
684
688
  extension: _path.default.extname(file).slice(1)
685
689
  });
686
- await rebuild(config);
690
+ await rebuild(config1);
687
691
  });
688
692
  });
689
693
  chain = chain.then(()=>{
690
- changedContent.push(...getChangedContent(config));
691
- return rebuild(config);
694
+ changedContent.push(...getChangedContent(config1));
695
+ return rebuild(config1);
692
696
  });
693
697
  }
694
698
  if (shouldWatch) {
package/lib/constants.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.simpleConfigStubFile = exports.defaultPostCssConfigFile = exports.defaultConfigStubFile = exports.supportedPostCssConfigFile = exports.cjsConfigFile = exports.supportedConfigFiles = exports.defaultPostCssConfigStubFile = exports.cli = exports.cjsPostCssConfigFile = exports.defaultConfigFile = void 0;
5
+ exports.defaultPostCssConfigStubFile = exports.simpleConfigStubFile = exports.defaultConfigStubFile = exports.supportedPostCssConfigFile = exports.supportedConfigFiles = exports.cjsPostCssConfigFile = exports.cjsConfigFile = exports.defaultPostCssConfigFile = exports.defaultConfigFile = exports.cli = void 0;
6
6
  var _path = _interopRequireDefault(require("path"));
7
7
  function _interopRequireDefault(obj) {
8
8
  return obj && obj.__esModule ? obj : {
@@ -125,6 +125,10 @@ var _default = [
125
125
  "textColor",
126
126
  "textOpacity",
127
127
  "textDecoration",
128
+ "textDecorationColor",
129
+ "textDecorationStyle",
130
+ "textDecorationThickness",
131
+ "textUnderlineOffset",
128
132
  "fontSmoothing",
129
133
  "placeholderColor",
130
134
  "placeholderOpacity",
@@ -134,7 +138,11 @@ var _default = [
134
138
  "backgroundBlendMode",
135
139
  "mixBlendMode",
136
140
  "boxShadow",
137
- "outline",
141
+ "boxShadowColor",
142
+ "outlineStyle",
143
+ "outlineWidth",
144
+ "outlineOffset",
145
+ "outlineColor",
138
146
  "ringWidth",
139
147
  "ringColor",
140
148
  "ringOpacity",