tailwindcss 3.2.6 → 3.3.0

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 (83) hide show
  1. package/CHANGELOG.md +52 -8
  2. package/lib/cli/build/index.js +7 -3
  3. package/lib/cli/build/plugin.js +28 -19
  4. package/lib/cli/build/watching.js +4 -2
  5. package/lib/cli/index.js +12 -21
  6. package/lib/cli/init/index.js +21 -6
  7. package/lib/corePluginList.js +4 -0
  8. package/lib/corePlugins.js +282 -26
  9. package/lib/css/preflight.css +2 -0
  10. package/lib/featureFlags.js +8 -1
  11. package/lib/lib/expandApplyAtRules.js +2 -1
  12. package/lib/lib/generateRules.js +20 -16
  13. package/lib/lib/getModuleDependencies.js +79 -33
  14. package/lib/lib/load-config.js +36 -0
  15. package/lib/lib/setupContextUtils.js +10 -2
  16. package/lib/lib/setupTrackingContext.js +4 -4
  17. package/lib/oxide/cli/build/index.js +7 -3
  18. package/lib/oxide/cli/build/plugin.js +27 -18
  19. package/lib/oxide/cli/build/watching.js +1 -1
  20. package/lib/oxide/cli/index.js +10 -16
  21. package/lib/oxide/cli/init/index.js +19 -4
  22. package/lib/public/colors.js +44 -22
  23. package/lib/public/default-config.js +2 -2
  24. package/lib/public/default-theme.js +2 -2
  25. package/lib/public/load-config.js +10 -0
  26. package/lib/util/applyImportantSelector.js +22 -0
  27. package/lib/util/dataTypes.js +3 -0
  28. package/lib/util/formatVariantSelector.js +2 -12
  29. package/lib/util/getAllConfigs.js +2 -2
  30. package/lib/util/normalizeConfig.js +16 -3
  31. package/lib/util/pluginUtils.js +14 -26
  32. package/lib/util/resolveConfigPath.js +19 -7
  33. package/lib/util/splitAtTopLevelOnly.js +7 -1
  34. package/loadConfig.d.ts +4 -0
  35. package/loadConfig.js +2 -0
  36. package/package.json +5 -4
  37. package/src/cli/build/index.js +7 -7
  38. package/src/cli/build/plugin.js +28 -23
  39. package/src/cli/build/watching.js +4 -2
  40. package/src/cli/index.js +8 -26
  41. package/src/cli/init/index.js +37 -8
  42. package/src/corePluginList.js +1 -1
  43. package/src/corePlugins.js +184 -27
  44. package/src/css/preflight.css +2 -0
  45. package/src/featureFlags.js +7 -0
  46. package/src/lib/expandApplyAtRules.js +2 -1
  47. package/src/lib/generateRules.js +35 -15
  48. package/src/lib/getModuleDependencies.js +70 -30
  49. package/src/lib/load-config.ts +27 -0
  50. package/src/lib/setupContextUtils.js +9 -2
  51. package/src/lib/setupTrackingContext.js +4 -4
  52. package/src/oxide/cli/build/index.ts +7 -7
  53. package/src/oxide/cli/build/plugin.ts +28 -22
  54. package/src/oxide/cli/build/watching.ts +1 -1
  55. package/src/oxide/cli/index.ts +7 -15
  56. package/src/oxide/cli/init/index.ts +34 -7
  57. package/src/public/colors.js +22 -0
  58. package/src/public/default-config.js +1 -1
  59. package/src/public/default-theme.js +2 -2
  60. package/src/public/load-config.js +2 -0
  61. package/src/util/applyImportantSelector.js +19 -0
  62. package/src/util/dataTypes.js +4 -0
  63. package/src/util/formatVariantSelector.js +1 -1
  64. package/src/util/getAllConfigs.js +2 -2
  65. package/src/util/normalizeConfig.js +19 -1
  66. package/src/util/pluginUtils.js +20 -31
  67. package/src/util/resolveConfigPath.js +12 -1
  68. package/src/util/splitAtTopLevelOnly.js +8 -1
  69. package/stubs/.gitignore +1 -0
  70. package/stubs/.prettierrc.json +6 -0
  71. package/stubs/{defaultConfig.stub.js → config.full.js} +38 -3
  72. package/stubs/{simpleConfig.stub.js → config.simple.js} +0 -1
  73. package/stubs/postcss.config.js +6 -0
  74. package/stubs/tailwind.config.cjs +2 -0
  75. package/stubs/tailwind.config.js +2 -0
  76. package/stubs/tailwind.config.ts +3 -0
  77. package/types/config.d.ts +7 -1
  78. package/types/generated/colors.d.ts +22 -0
  79. package/types/generated/corePluginList.d.ts +1 -1
  80. package/types/generated/default-theme.d.ts +31 -2
  81. package/lib/constants.js +0 -44
  82. package/src/constants.js +0 -17
  83. /package/stubs/{defaultPostCssConfig.stub.js → postcss.config.cjs} +0 -0
package/CHANGELOG.md CHANGED
@@ -9,11 +9,53 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  - Nothing yet!
11
11
 
12
+ ## [3.3.0] - 2023-03-27
13
+
14
+ ### Added
15
+
16
+ - Support ESM and TypeScript config files ([#10785](https://github.com/tailwindlabs/tailwindcss/pull/10785))
17
+ - Extend default color palette with new 950 shades ([#10879](https://github.com/tailwindlabs/tailwindcss/pull/10879))
18
+ - Add `line-height` modifier support to `font-size` utilities ([#9875](https://github.com/tailwindlabs/tailwindcss/pull/9875))
19
+ - Add support for using variables as arbitrary values without `var(...)` ([#9880](https://github.com/tailwindlabs/tailwindcss/pull/9880), [#9962](https://github.com/tailwindlabs/tailwindcss/pull/9962))
20
+ - Add logical properties support for inline direction ([#10166](https://github.com/tailwindlabs/tailwindcss/pull/10166))
21
+ - Add `hyphens` utilities ([#10071](https://github.com/tailwindlabs/tailwindcss/pull/10071))
22
+ - Add `from-{position}`, `via-{position}` and `to-{position}` utilities ([#10886](https://github.com/tailwindlabs/tailwindcss/pull/10886))
23
+ - Add `list-style-image` utilities ([#10817](https://github.com/tailwindlabs/tailwindcss/pull/10817))
24
+ - Add `caption-side` utilities ([#10470](https://github.com/tailwindlabs/tailwindcss/pull/10470))
25
+ - Add `line-clamp` utilities from `@tailwindcss/line-clamp` to core ([#10768](https://github.com/tailwindlabs/tailwindcss/pull/10768), [#10876](https://github.com/tailwindlabs/tailwindcss/pull/10876), [#10862](https://github.com/tailwindlabs/tailwindcss/pull/10862))
26
+ - Add `delay-0` and `duration-0` utilities ([#10294](https://github.com/tailwindlabs/tailwindcss/pull/10294))
27
+ - Add `justify-normal` and `justify-stretch` utilities ([#10560](https://github.com/tailwindlabs/tailwindcss/pull/10560))
28
+ - Add `content-normal` and `content-stretch` utilities ([#10645](https://github.com/tailwindlabs/tailwindcss/pull/10645))
29
+ - Add `whitespace-break-spaces` utility ([#10729](https://github.com/tailwindlabs/tailwindcss/pull/10729))
30
+ - Add support for configuring default `font-variation-settings` for a `font-family` ([#10034](https://github.com/tailwindlabs/tailwindcss/pull/10034), [#10515](https://github.com/tailwindlabs/tailwindcss/pull/10515))
31
+
32
+ ### Fixed
33
+
34
+ - Disallow using multiple selectors in arbitrary variants ([#10655](https://github.com/tailwindlabs/tailwindcss/pull/10655))
35
+ - Sort class lists deterministically for Prettier plugin ([#10672](https://github.com/tailwindlabs/tailwindcss/pull/10672))
36
+ - Ensure CLI builds have a non-zero exit code on failure ([#10703](https://github.com/tailwindlabs/tailwindcss/pull/10703))
37
+ - Ensure module dependencies for value `null`, is an empty `Set` ([#10877](https://github.com/tailwindlabs/tailwindcss/pull/10877))
38
+ - Fix format assumption when resolving module dependencies ([#10878](https://github.com/tailwindlabs/tailwindcss/pull/10878))
39
+
40
+ ### Changed
41
+
42
+ - Mark `rtl` and `ltr` variants as stable and remove warnings ([#10764](https://github.com/tailwindlabs/tailwindcss/pull/10764))
43
+ - Use `inset` instead of `top`, `right`, `bottom`, and `left` properties ([#10765](https://github.com/tailwindlabs/tailwindcss/pull/10765))
44
+ - Make `dark` and `rtl`/`ltr` variants insensitive to DOM order ([#10766](https://github.com/tailwindlabs/tailwindcss/pull/10766))
45
+ - Use `:is` to make important selector option insensitive to DOM order ([#10835](https://github.com/tailwindlabs/tailwindcss/pull/10835))
46
+
47
+ ## [3.2.7] - 2023-02-16
48
+
49
+ ### Fixed
50
+
51
+ - Fix use of `:where(.btn)` when matching `!btn` ([#10601](https://github.com/tailwindlabs/tailwindcss/pull/10601))
52
+ - Revert including `outline-color` in `transition` and `transition-colors` by default ([#10604](https://github.com/tailwindlabs/tailwindcss/pull/10604))
53
+
12
54
  ## [3.2.6] - 2023-02-08
13
55
 
14
56
  ### Fixed
15
57
 
16
- - drop oxide api shim ([add16364b4b1100e1af23ad1ca6900a0b53cbba0](https://github.com/tailwindlabs/tailwindcss/commit/add16364b4b1100e1af23ad1ca6900a0b53cbba0))
58
+ - Fix installation failing with yarn and pnpm by dropping `oxide-api-shim` ([add1636](https://github.com/tailwindlabs/tailwindcss/commit/add16364b4b1100e1af23ad1ca6900a0b53cbba0))
17
59
 
18
60
  ## [3.2.5] - 2023-02-08
19
61
 
@@ -26,7 +68,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
26
68
  - Cleanup unused `variantOrder` ([#9829](https://github.com/tailwindlabs/tailwindcss/pull/9829))
27
69
  - Fix `foo-[abc]/[def]` not being handled correctly ([#9866](https://github.com/tailwindlabs/tailwindcss/pull/9866))
28
70
  - Add container queries plugin to standalone CLI ([#9865](https://github.com/tailwindlabs/tailwindcss/pull/9865))
29
- - Support renaming of output files by `PostCSS` plugin. ([#9944](https://github.com/tailwindlabs/tailwindcss/pull/9944))
71
+ - Support renaming of output files by PostCSS plugins in CLI ([#9944](https://github.com/tailwindlabs/tailwindcss/pull/9944))
30
72
  - Improve return value of `resolveConfig`, unwrap `ResolvableTo` ([#9972](https://github.com/tailwindlabs/tailwindcss/pull/9972))
31
73
  - Clip unbalanced brackets in arbitrary values ([#9973](https://github.com/tailwindlabs/tailwindcss/pull/9973))
32
74
  - Don’t reorder webkit scrollbar pseudo elements ([#9991](https://github.com/tailwindlabs/tailwindcss/pull/9991))
@@ -55,7 +97,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
55
97
 
56
98
  - Alphabetize `theme` keys in default config ([#9953](https://github.com/tailwindlabs/tailwindcss/pull/9953))
57
99
  - Update esbuild to v17 ([#10368](https://github.com/tailwindlabs/tailwindcss/pull/10368))
58
- - Include `outline-color` in `transition` and `transition-colors` utilitires ([#10385](https://github.com/tailwindlabs/tailwindcss/pull/10385))
100
+ - Include `outline-color` in `transition` and `transition-colors` utilities ([#10385](https://github.com/tailwindlabs/tailwindcss/pull/10385))
59
101
 
60
102
  ## [3.2.4] - 2022-11-11
61
103
 
@@ -97,7 +139,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
97
139
  - Fix missing `supports` in types ([#9616](https://github.com/tailwindlabs/tailwindcss/pull/9616))
98
140
  - Fix missing PostCSS dependencies in the CLI ([#9617](https://github.com/tailwindlabs/tailwindcss/pull/9617))
99
141
  - Ensure `micromatch` is a proper CLI dependency ([#9620](https://github.com/tailwindlabs/tailwindcss/pull/9620))
100
- - Ensure modifier values exist when using a `modifiers` object for `matchVariant` ([ba6551db0f2726461371b4f3c6cd4c7090888504](https://github.com/tailwindlabs/tailwindcss/commit/ba6551db0f2726461371b4f3c6cd4c7090888504))
142
+ - Ensure modifier values exist when using a `modifiers` object for `matchVariant` ([ba6551d](https://github.com/tailwindlabs/tailwindcss/commit/ba6551db0f2726461371b4f3c6cd4c7090888504))
101
143
 
102
144
  ## [3.2.0] - 2022-10-19
103
145
 
@@ -288,7 +330,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
288
330
  - Split box shadows on top-level commas only ([#7479](https://github.com/tailwindlabs/tailwindcss/pull/7479))
289
331
  - Use local user CSS cache for `@apply` ([#7524](https://github.com/tailwindlabs/tailwindcss/pull/7524))
290
332
  - Invalidate context when main CSS changes ([#7626](https://github.com/tailwindlabs/tailwindcss/pull/7626))
291
- - Only add `!` to selector class matching template candidate when using important modifier with mutli-class selectors ([#7664](https://github.com/tailwindlabs/tailwindcss/pull/7664))
333
+ - Only add `!` to selector class matching template candidate when using important modifier with multi-class selectors ([#7664](https://github.com/tailwindlabs/tailwindcss/pull/7664))
292
334
  - Correctly parse and prefix animation names with dots ([#7163](https://github.com/tailwindlabs/tailwindcss/pull/7163))
293
335
  - Fix extraction from template literal/function with array ([#7481](https://github.com/tailwindlabs/tailwindcss/pull/7481))
294
336
  - Don't output unparsable arbitrary values ([#7789](https://github.com/tailwindlabs/tailwindcss/pull/7789))
@@ -732,7 +774,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
732
774
  - Remove outdated focus style fix in Preflight ([#4780](https://github.com/tailwindlabs/tailwindcss/pull/4780))
733
775
  - Enable `purge` if provided on the CLI ([#4772](https://github.com/tailwindlabs/tailwindcss/pull/4772))
734
776
  - JIT: Fix error when not using a config file with postcss-cli ([#4773](https://github.com/tailwindlabs/tailwindcss/pull/4773))
735
- - Fix issue with `resolveConfig` not being importable in Next.js pags ([#4725](https://github.com/tailwindlabs/tailwindcss/pull/4725))
777
+ - Fix issue with `resolveConfig` not being importable in Next.js pages ([#4725](https://github.com/tailwindlabs/tailwindcss/pull/4725))
736
778
 
737
779
  ## [2.2.2] - 2021-06-18
738
780
 
@@ -867,7 +909,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
867
909
 
868
910
  ### Fixed
869
911
 
870
- - Fix issue with `@apply` not working as expected with `!important` inside an atrule ([#2824](https://github.com/tailwindlabs/tailwindcss/pull/2824))
912
+ - Fix issue with `@apply` not working as expected with `!important` inside an at-rule ([#2824](https://github.com/tailwindlabs/tailwindcss/pull/2824))
871
913
  - Fix issue with `@apply` not working as expected with defined classes ([#2832](https://github.com/tailwindlabs/tailwindcss/pull/2832))
872
914
  - Fix memory leak, and broken `@apply` when splitting up files ([#3032](https://github.com/tailwindlabs/tailwindcss/pull/3032))
873
915
 
@@ -2169,7 +2211,9 @@ No release notes
2169
2211
 
2170
2212
  - Everything!
2171
2213
 
2172
- [unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v3.2.6...HEAD
2214
+ [unreleased]: https://github.com/tailwindlabs/tailwindcss/compare/v3.3.0...HEAD
2215
+ [3.3.0]: https://github.com/tailwindlabs/tailwindcss/compare/v3.2.7...v3.3.0
2216
+ [3.2.7]: https://github.com/tailwindlabs/tailwindcss/compare/v3.2.6...v3.2.7
2173
2217
  [3.2.6]: https://github.com/tailwindlabs/tailwindcss/compare/v3.2.5...v3.2.6
2174
2218
  [3.2.5]: https://github.com/tailwindlabs/tailwindcss/compare/v3.2.4...v3.2.5
2175
2219
  [3.2.4]: https://github.com/tailwindlabs/tailwindcss/compare/v3.2.3...v3.2.4
@@ -9,13 +9,14 @@ Object.defineProperty(exports, "build", {
9
9
  });
10
10
  const _fs = /*#__PURE__*/ _interopRequireDefault(require("fs"));
11
11
  const _path = /*#__PURE__*/ _interopRequireDefault(require("path"));
12
+ const _resolveConfigPathJs = require("../../util/resolveConfigPath.js");
12
13
  const _pluginJs = require("./plugin.js");
13
14
  function _interopRequireDefault(obj) {
14
15
  return obj && obj.__esModule ? obj : {
15
16
  default: obj
16
17
  };
17
18
  }
18
- async function build(args, configs) {
19
+ async function build(args) {
19
20
  let input = args["--input"];
20
21
  let shouldWatch = args["--watch"];
21
22
  // TODO: Deprecate this in future versions
@@ -32,7 +33,7 @@ async function build(args, configs) {
32
33
  process.exit(9);
33
34
  }
34
35
  // TODO: Reference the @config path here if exists
35
- let configPath = args["--config"] ? args["--config"] : ((defaultPath)=>_fs.default.existsSync(defaultPath) ? defaultPath : null)(_path.default.resolve(`./${configs.tailwind}`));
36
+ let configPath = args["--config"] ? args["--config"] : (0, _resolveConfigPathJs.resolveDefaultConfigPath)();
36
37
  let processor = await (0, _pluginJs.createProcessor)(args, configPath);
37
38
  if (shouldWatch) {
38
39
  // Abort the watcher if stdin is closed to avoid zombie processes
@@ -43,6 +44,9 @@ async function build(args, configs) {
43
44
  process.stdin.resume();
44
45
  await processor.watch();
45
46
  } else {
46
- await processor.build();
47
+ await processor.build().catch((e)=>{
48
+ console.error(e);
49
+ process.exit(1);
50
+ });
47
51
  }
48
52
  }
@@ -20,12 +20,13 @@ const _deps = require("./deps");
20
20
  const _utils = require("./utils");
21
21
  const _sharedState = require("../../lib/sharedState");
22
22
  const _resolveConfigJs = /*#__PURE__*/ _interopRequireDefault(require("../../../resolveConfig.js"));
23
- const _getModuleDependenciesJs = /*#__PURE__*/ _interopRequireDefault(require("../../lib/getModuleDependencies.js"));
24
23
  const _contentJs = require("../../lib/content.js");
25
24
  const _watchingJs = require("./watching.js");
26
25
  const _fastGlob = /*#__PURE__*/ _interopRequireDefault(require("fast-glob"));
27
26
  const _findAtConfigPathJs = require("../../lib/findAtConfigPath.js");
28
27
  const _log = /*#__PURE__*/ _interopRequireDefault(require("../../util/log"));
28
+ const _loadConfig = require("../../lib/load-config");
29
+ const _getModuleDependencies = /*#__PURE__*/ _interopRequireDefault(require("../../lib/getModuleDependencies"));
29
30
  function _interopRequireDefault(obj) {
30
31
  return obj && obj.__esModule ? obj : {
31
32
  default: obj
@@ -109,7 +110,7 @@ let state = {
109
110
  /** @type {any} */ context: null,
110
111
  /** @type {ReturnType<typeof createWatcher> | null} */ watcher: null,
111
112
  /** @type {{content: string, extension: string}[]} */ changedContent: [],
112
- configDependencies: new Set(),
113
+ /** @type {ReturnType<typeof load> | null} */ configBag: null,
113
114
  contextDependencies: new Set(),
114
115
  /** @type {import('../../lib/content.js').ContentPath[]} */ contentPaths: [],
115
116
  refreshContentPaths () {
@@ -127,32 +128,35 @@ let state = {
127
128
  },
128
129
  loadConfig (configPath, content) {
129
130
  if (this.watcher && configPath) {
130
- this.refreshConfigDependencies(configPath);
131
+ this.refreshConfigDependencies();
131
132
  }
132
- let config = configPath ? require(configPath) : {};
133
+ let config = (0, _loadConfig.loadConfig)(configPath);
134
+ let dependencies = (0, _getModuleDependencies.default)(configPath);
135
+ this.configBag = {
136
+ config,
137
+ dependencies,
138
+ dispose () {
139
+ for (let file of dependencies){
140
+ delete require.cache[require.resolve(file)];
141
+ }
142
+ }
143
+ };
133
144
  // @ts-ignore
134
- config = (0, _resolveConfigJs.default)(config, {
145
+ this.configBag.config = (0, _resolveConfigJs.default)(this.configBag.config, {
135
146
  content: {
136
147
  files: []
137
148
  }
138
149
  });
139
150
  // Override content files if `--content` has been passed explicitly
140
151
  if ((content === null || content === void 0 ? void 0 : content.length) > 0) {
141
- config.content.files = content;
152
+ this.configBag.config.content.files = content;
142
153
  }
143
- return config;
154
+ return this.configBag.config;
144
155
  },
145
- refreshConfigDependencies (configPath) {
156
+ refreshConfigDependencies () {
157
+ var _this_configBag;
146
158
  _sharedState.env.DEBUG && console.time("Module dependencies");
147
- for (let file of this.configDependencies){
148
- delete require.cache[require.resolve(file)];
149
- }
150
- if (configPath) {
151
- let deps = (0, _getModuleDependenciesJs.default)(configPath).map(({ file })=>file);
152
- for (let dependency of deps){
153
- this.configDependencies.add(dependency);
154
- }
155
- }
159
+ (_this_configBag = this.configBag) === null || _this_configBag === void 0 ? void 0 : _this_configBag.dispose();
156
160
  _sharedState.env.DEBUG && console.timeEnd("Module dependencies");
157
161
  },
158
162
  readContentPaths () {
@@ -326,7 +330,11 @@ async function createProcessor(args, cliConfigPath) {
326
330
  // If you fix it and then save the main CSS file so there's no error
327
331
  // The watcher will start watching the imported CSS files and will be
328
332
  // resilient to future errors.
329
- console.error(err);
333
+ if (state.watcher) {
334
+ console.error(err);
335
+ } else {
336
+ return Promise.reject(err);
337
+ }
330
338
  });
331
339
  }
332
340
  /**
@@ -349,7 +357,8 @@ async function createProcessor(args, cliConfigPath) {
349
357
  * @param {{file: string, content(): Promise<string>, extension: string}[]} changes
350
358
  */ async rebuild (changes) {
351
359
  let needsNewContext = changes.some((change)=>{
352
- return state.configDependencies.has(change.file) || state.contextDependencies.has(change.file);
360
+ var _state_configBag;
361
+ return ((_state_configBag = state.configBag) === null || _state_configBag === void 0 ? void 0 : _state_configBag.dependencies.has(change.file)) || state.contextDependencies.has(change.file);
353
362
  });
354
363
  if (needsNewContext) {
355
364
  state.context = null;
@@ -64,7 +64,9 @@ function createWatcher(args, { state , rebuild }) {
64
64
  // Clear all pending rebuilds for the about-to-be-built files
65
65
  changes.forEach((change)=>pendingRebuilds.delete(change.file));
66
66
  // Resolve the promise even when the rebuild fails
67
- return rebuild(changes).then(()=>{}, ()=>{});
67
+ return rebuild(changes).then(()=>{}, (e)=>{
68
+ console.error(e.toString());
69
+ });
68
70
  }
69
71
  /**
70
72
  *
@@ -171,7 +173,7 @@ function createWatcher(args, { state , rebuild }) {
171
173
  fswatcher: watcher,
172
174
  refreshWatchedFiles () {
173
175
  watcher.add(Array.from(state.contextDependencies));
174
- watcher.add(Array.from(state.configDependencies));
176
+ watcher.add(Array.from(state.configBag.dependencies));
175
177
  watcher.add(state.contentPatterns.all);
176
178
  }
177
179
  };
package/lib/cli/index.js CHANGED
@@ -14,23 +14,6 @@ function _interopRequireDefault(obj) {
14
14
  default: obj
15
15
  };
16
16
  }
17
- function isESM() {
18
- const pkgPath = _path.default.resolve("./package.json");
19
- try {
20
- let pkg = JSON.parse(_fs.default.readFileSync(pkgPath, "utf8"));
21
- return pkg.type && pkg.type === "module";
22
- } catch (err) {
23
- return false;
24
- }
25
- }
26
- let configs = isESM() ? {
27
- tailwind: "tailwind.config.cjs",
28
- postcss: "postcss.config.cjs"
29
- } : {
30
- tailwind: "tailwind.config.js",
31
- postcss: "postcss.config.js"
32
- };
33
- // ---
34
17
  function oneOf(...options) {
35
18
  return Object.assign((value = true)=>{
36
19
  for (let option of options){
@@ -48,13 +31,21 @@ let commands = {
48
31
  init: {
49
32
  run: _init.init,
50
33
  args: {
51
- "--full": {
34
+ "--esm": {
52
35
  type: Boolean,
53
- description: `Initialize a full \`${configs.tailwind}\` file`
36
+ description: `Initialize configuration file as ESM`
37
+ },
38
+ "--ts": {
39
+ type: Boolean,
40
+ description: `Initialize configuration file as TypeScript`
54
41
  },
55
42
  "--postcss": {
56
43
  type: Boolean,
57
- description: `Initialize a \`${configs.postcss}\` file`
44
+ description: `Initialize a \`postcss.config.js\` file`
45
+ },
46
+ "--full": {
47
+ type: Boolean,
48
+ description: `Include the default values for all options in the generated configuration file`
58
49
  },
59
50
  "-f": "--full",
60
51
  "-p": "--postcss"
@@ -236,4 +227,4 @@ if (args["--help"]) {
236
227
  });
237
228
  process.exit(0);
238
229
  }
239
- run(args, configs);
230
+ run(args);
@@ -14,25 +14,40 @@ function _interopRequireDefault(obj) {
14
14
  default: obj
15
15
  };
16
16
  }
17
- function init(args, configs) {
17
+ function isESM() {
18
+ const pkgPath = _path.default.resolve("./package.json");
19
+ try {
20
+ let pkg = JSON.parse(_fs.default.readFileSync(pkgPath, "utf8"));
21
+ return pkg.type && pkg.type === "module";
22
+ } catch (err) {
23
+ return false;
24
+ }
25
+ }
26
+ function init(args) {
18
27
  let messages = [];
28
+ let isProjectESM = args["--ts"] || args["--esm"] || isESM();
29
+ let syntax = args["--ts"] ? "ts" : isProjectESM ? "js" : "cjs";
30
+ let extension = args["--ts"] ? "ts" : "js";
19
31
  var _args___;
20
- let tailwindConfigLocation = _path.default.resolve((_args___ = args["_"][1]) !== null && _args___ !== void 0 ? _args___ : `./${configs.tailwind}`);
32
+ let tailwindConfigLocation = _path.default.resolve((_args___ = args["_"][1]) !== null && _args___ !== void 0 ? _args___ : `./tailwind.config.${extension}`);
21
33
  if (_fs.default.existsSync(tailwindConfigLocation)) {
22
34
  messages.push(`${_path.default.basename(tailwindConfigLocation)} already exists.`);
23
35
  } else {
24
- let stubFile = _fs.default.readFileSync(args["--full"] ? _path.default.resolve(__dirname, "../../../stubs/defaultConfig.stub.js") : _path.default.resolve(__dirname, "../../../stubs/simpleConfig.stub.js"), "utf8");
36
+ let stubContentsFile = _fs.default.readFileSync(args["--full"] ? _path.default.resolve(__dirname, "../../../stubs/config.full.js") : _path.default.resolve(__dirname, "../../../stubs/config.simple.js"), "utf8");
37
+ let stubFile = _fs.default.readFileSync(_path.default.resolve(__dirname, `../../../stubs/tailwind.config.${syntax}`), "utf8");
25
38
  // Change colors import
26
- stubFile = stubFile.replace("../colors", "tailwindcss/colors");
39
+ stubContentsFile = stubContentsFile.replace("../colors", "tailwindcss/colors");
40
+ // Replace contents of {ts,js,cjs} file with the stub {simple,full}.
41
+ stubFile = stubFile.replace("__CONFIG__", stubContentsFile.replace("module.exports =", "").trim()).trim() + "\n\n";
27
42
  _fs.default.writeFileSync(tailwindConfigLocation, stubFile, "utf8");
28
43
  messages.push(`Created Tailwind CSS config file: ${_path.default.basename(tailwindConfigLocation)}`);
29
44
  }
30
45
  if (args["--postcss"]) {
31
- let postcssConfigLocation = _path.default.resolve(`./${configs.postcss}`);
46
+ let postcssConfigLocation = _path.default.resolve("./postcss.config.js");
32
47
  if (_fs.default.existsSync(postcssConfigLocation)) {
33
48
  messages.push(`${_path.default.basename(postcssConfigLocation)} already exists.`);
34
49
  } else {
35
- let stubFile1 = _fs.default.readFileSync(_path.default.resolve(__dirname, "../../../stubs/defaultPostCssConfig.stub.js"), "utf8");
50
+ let stubFile1 = _fs.default.readFileSync(isProjectESM ? _path.default.resolve(__dirname, "../../../stubs/postcss.config.js") : _path.default.resolve(__dirname, "../../../stubs/postcss.config.cjs"), "utf8");
36
51
  _fs.default.writeFileSync(postcssConfigLocation, stubFile1, "utf8");
37
52
  messages.push(`Created PostCSS config file: ${_path.default.basename(postcssConfigLocation)}`);
38
53
  }
@@ -27,6 +27,7 @@ const _default = [
27
27
  "clear",
28
28
  "margin",
29
29
  "boxSizing",
30
+ "lineClamp",
30
31
  "display",
31
32
  "aspectRatio",
32
33
  "height",
@@ -40,6 +41,7 @@ const _default = [
40
41
  "flexGrow",
41
42
  "flexBasis",
42
43
  "tableLayout",
44
+ "captionSide",
43
45
  "borderCollapse",
44
46
  "borderSpacing",
45
47
  "transformOrigin",
@@ -60,6 +62,7 @@ const _default = [
60
62
  "scrollPadding",
61
63
  "listStylePosition",
62
64
  "listStyleType",
65
+ "listStyleImage",
63
66
  "appearance",
64
67
  "columns",
65
68
  "breakBefore",
@@ -91,6 +94,7 @@ const _default = [
91
94
  "overscrollBehavior",
92
95
  "scrollBehavior",
93
96
  "textOverflow",
97
+ "hyphens",
94
98
  "whitespace",
95
99
  "wordBreak",
96
100
  "borderRadius",