tailwindcss 0.0.0-insiders.fe08e91 → 0.0.0-oxide.c7d416b

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 (183) hide show
  1. package/CHANGELOG.md +379 -3
  2. package/LICENSE +1 -2
  3. package/README.md +12 -8
  4. package/colors.d.ts +3 -0
  5. package/defaultConfig.d.ts +3 -0
  6. package/defaultTheme.d.ts +4 -0
  7. package/lib/cli/build/deps.js +54 -0
  8. package/lib/cli/build/index.js +48 -0
  9. package/lib/cli/build/plugin.js +367 -0
  10. package/lib/cli/build/utils.js +78 -0
  11. package/lib/cli/build/watching.js +178 -0
  12. package/lib/cli/help/index.js +71 -0
  13. package/lib/cli/index.js +239 -0
  14. package/lib/cli/init/index.js +46 -0
  15. package/lib/cli/shared.js +13 -0
  16. package/lib/cli-peer-dependencies.js +20 -7
  17. package/lib/cli.js +4 -740
  18. package/lib/constants.js +27 -20
  19. package/lib/corePluginList.js +6 -3
  20. package/lib/corePlugins.js +2064 -1811
  21. package/lib/css/preflight.css +5 -5
  22. package/lib/featureFlags.js +31 -22
  23. package/lib/index.js +4 -28
  24. package/lib/lib/cacheInvalidation.js +90 -0
  25. package/lib/lib/collapseAdjacentRules.js +27 -9
  26. package/lib/lib/collapseDuplicateDeclarations.js +12 -9
  27. package/lib/lib/content.js +176 -0
  28. package/lib/lib/defaultExtractor.js +225 -31
  29. package/lib/lib/detectNesting.js +13 -10
  30. package/lib/lib/evaluateTailwindFunctions.js +118 -55
  31. package/lib/lib/expandApplyAtRules.js +439 -190
  32. package/lib/lib/expandTailwindAtRules.js +151 -134
  33. package/lib/lib/findAtConfigPath.js +44 -0
  34. package/lib/lib/generateRules.js +454 -187
  35. package/lib/lib/getModuleDependencies.js +11 -8
  36. package/lib/lib/normalizeTailwindDirectives.js +36 -32
  37. package/lib/lib/offsets.js +217 -0
  38. package/lib/lib/partitionApplyAtRules.js +56 -0
  39. package/lib/lib/regex.js +60 -0
  40. package/lib/lib/resolveDefaultsAtRules.js +89 -67
  41. package/lib/lib/setupContextUtils.js +667 -376
  42. package/lib/lib/setupTrackingContext.js +38 -67
  43. package/lib/lib/sharedState.js +27 -14
  44. package/lib/lib/substituteScreenAtRules.js +11 -9
  45. package/lib/plugin.js +48 -0
  46. package/{nesting → lib/postcss-plugins/nesting}/README.md +2 -2
  47. package/lib/postcss-plugins/nesting/index.js +19 -0
  48. package/lib/postcss-plugins/nesting/plugin.js +87 -0
  49. package/lib/processTailwindFeatures.js +35 -25
  50. package/lib/public/colors.js +247 -245
  51. package/lib/public/create-plugin.js +6 -4
  52. package/lib/public/default-config.js +7 -5
  53. package/lib/public/default-theme.js +7 -5
  54. package/lib/public/resolve-config.js +8 -5
  55. package/lib/util/bigSign.js +4 -1
  56. package/lib/util/buildMediaQuery.js +11 -6
  57. package/lib/util/cloneDeep.js +7 -6
  58. package/lib/util/cloneNodes.js +21 -3
  59. package/lib/util/color.js +53 -54
  60. package/lib/util/configurePlugins.js +5 -2
  61. package/lib/util/createPlugin.js +6 -6
  62. package/lib/util/createUtilityPlugin.js +12 -14
  63. package/lib/util/dataTypes.js +119 -110
  64. package/lib/util/defaults.js +4 -1
  65. package/lib/util/escapeClassName.js +7 -4
  66. package/lib/util/escapeCommas.js +5 -2
  67. package/lib/util/flattenColorPalette.js +9 -12
  68. package/lib/util/formatVariantSelector.js +184 -85
  69. package/lib/util/getAllConfigs.js +27 -8
  70. package/lib/util/hashConfig.js +6 -3
  71. package/lib/util/isKeyframeRule.js +5 -2
  72. package/lib/util/isPlainObject.js +5 -2
  73. package/lib/util/{isValidArbitraryValue.js → isSyntacticallyValidPropertyValue.js} +23 -15
  74. package/lib/util/log.js +20 -14
  75. package/lib/util/nameClass.js +20 -9
  76. package/lib/util/negateValue.js +23 -8
  77. package/lib/util/normalizeConfig.js +116 -72
  78. package/lib/util/normalizeScreens.js +120 -11
  79. package/lib/util/parseAnimationValue.js +42 -40
  80. package/lib/util/parseBoxShadowValue.js +30 -23
  81. package/lib/util/parseDependency.js +38 -56
  82. package/lib/util/parseGlob.js +34 -0
  83. package/lib/util/parseObjectStyles.js +11 -8
  84. package/lib/util/pluginUtils.js +147 -50
  85. package/lib/util/prefixSelector.js +10 -8
  86. package/lib/util/removeAlphaVariables.js +29 -0
  87. package/lib/util/resolveConfig.js +97 -85
  88. package/lib/util/resolveConfigPath.js +11 -9
  89. package/lib/util/responsive.js +8 -5
  90. package/lib/util/splitAtTopLevelOnly.js +43 -0
  91. package/lib/util/tap.js +4 -1
  92. package/lib/util/toColorValue.js +5 -3
  93. package/lib/util/toPath.js +20 -4
  94. package/lib/util/transformThemeValue.js +37 -29
  95. package/lib/util/validateConfig.js +24 -0
  96. package/lib/util/validateFormalSyntax.js +24 -0
  97. package/lib/util/withAlphaVariable.js +23 -15
  98. package/nesting/index.js +2 -12
  99. package/oxide/README.md +1 -0
  100. package/oxide/package.json +18 -0
  101. package/oxide/packages/tailwindcss/dist/cli.js +2 -0
  102. package/oxide/packages/tailwindcss/dist/postcss-plugin.js +2 -0
  103. package/oxide/packages/tailwindcss/package.json +34 -0
  104. package/package.json +49 -42
  105. package/peers/index.js +11381 -7950
  106. package/plugin.d.ts +11 -0
  107. package/resolveConfig.d.ts +12 -0
  108. package/scripts/generate-types.js +105 -0
  109. package/scripts/release-channel.js +18 -0
  110. package/scripts/release-notes.js +21 -0
  111. package/scripts/type-utils.js +27 -0
  112. package/src/cli/build/deps.js +56 -0
  113. package/src/cli/build/index.js +49 -0
  114. package/src/cli/build/plugin.js +439 -0
  115. package/src/cli/build/utils.js +76 -0
  116. package/src/cli/build/watching.js +227 -0
  117. package/src/cli/help/index.js +70 -0
  118. package/src/cli/index.js +234 -0
  119. package/src/cli/init/index.js +50 -0
  120. package/src/cli/shared.js +6 -0
  121. package/src/cli-peer-dependencies.js +7 -1
  122. package/src/cli.js +4 -810
  123. package/src/corePluginList.js +1 -1
  124. package/src/corePlugins.js +532 -217
  125. package/src/css/preflight.css +5 -5
  126. package/src/featureFlags.js +15 -9
  127. package/src/index.js +4 -27
  128. package/src/lib/cacheInvalidation.js +52 -0
  129. package/src/lib/collapseAdjacentRules.js +21 -2
  130. package/src/lib/content.js +212 -0
  131. package/src/lib/defaultExtractor.js +196 -33
  132. package/src/lib/evaluateTailwindFunctions.js +78 -7
  133. package/src/lib/expandApplyAtRules.js +482 -183
  134. package/src/lib/expandTailwindAtRules.js +106 -85
  135. package/src/lib/findAtConfigPath.js +48 -0
  136. package/src/lib/generateRules.js +418 -129
  137. package/src/lib/normalizeTailwindDirectives.js +1 -0
  138. package/src/lib/offsets.js +270 -0
  139. package/src/lib/partitionApplyAtRules.js +52 -0
  140. package/src/lib/regex.js +74 -0
  141. package/src/lib/resolveDefaultsAtRules.js +51 -30
  142. package/src/lib/setupContextUtils.js +556 -208
  143. package/src/lib/setupTrackingContext.js +11 -48
  144. package/src/lib/sharedState.js +5 -0
  145. package/src/plugin.js +47 -0
  146. package/src/postcss-plugins/nesting/README.md +42 -0
  147. package/src/postcss-plugins/nesting/index.js +13 -0
  148. package/src/postcss-plugins/nesting/plugin.js +80 -0
  149. package/src/processTailwindFeatures.js +8 -0
  150. package/src/util/buildMediaQuery.js +5 -3
  151. package/src/util/cloneNodes.js +19 -2
  152. package/src/util/color.js +25 -21
  153. package/src/util/dataTypes.js +29 -21
  154. package/src/util/formatVariantSelector.js +184 -61
  155. package/src/util/getAllConfigs.js +19 -0
  156. package/src/util/{isValidArbitraryValue.js → isSyntacticallyValidPropertyValue.js} +1 -1
  157. package/src/util/log.js +8 -8
  158. package/src/util/nameClass.js +4 -0
  159. package/src/util/negateValue.js +11 -3
  160. package/src/util/normalizeConfig.js +44 -6
  161. package/src/util/normalizeScreens.js +99 -4
  162. package/src/util/parseBoxShadowValue.js +4 -3
  163. package/src/util/parseDependency.js +37 -42
  164. package/src/util/parseGlob.js +24 -0
  165. package/src/util/pluginUtils.js +132 -10
  166. package/src/util/prefixSelector.js +7 -5
  167. package/src/util/removeAlphaVariables.js +24 -0
  168. package/src/util/resolveConfig.js +70 -32
  169. package/src/util/splitAtTopLevelOnly.js +45 -0
  170. package/src/util/toPath.js +1 -1
  171. package/src/util/transformThemeValue.js +13 -3
  172. package/src/util/validateConfig.js +13 -0
  173. package/src/util/validateFormalSyntax.js +34 -0
  174. package/src/util/withAlphaVariable.js +1 -1
  175. package/stubs/defaultConfig.stub.js +23 -20
  176. package/stubs/simpleConfig.stub.js +1 -0
  177. package/types/config.d.ts +362 -0
  178. package/types/generated/.gitkeep +0 -0
  179. package/types/generated/colors.d.ts +276 -0
  180. package/types/generated/corePluginList.d.ts +1 -0
  181. package/types/generated/default-theme.d.ts +342 -0
  182. package/types/index.d.ts +7 -0
  183. package/nesting/plugin.js +0 -41
@@ -2,11 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.default = resolveDefaultsAtRules;
6
- exports.elementSelectorParser = void 0;
7
- var _postcss = _interopRequireDefault(require("postcss"));
8
- var _postcssSelectorParser = _interopRequireDefault(require("postcss-selector-parser"));
9
- var _featureFlags = require("../featureFlags");
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ elementSelectorParser: ()=>elementSelectorParser,
13
+ default: ()=>resolveDefaultsAtRules
14
+ });
15
+ const _postcss = /*#__PURE__*/ _interopRequireDefault(require("postcss"));
16
+ const _postcssSelectorParser = /*#__PURE__*/ _interopRequireDefault(require("postcss-selector-parser"));
17
+ const _featureFlags = require("../featureFlags");
10
18
  function _interopRequireDefault(obj) {
11
19
  return obj && obj.__esModule ? obj : {
12
20
  default: obj
@@ -15,8 +23,8 @@ function _interopRequireDefault(obj) {
15
23
  let getNode = {
16
24
  id (node) {
17
25
  return _postcssSelectorParser.default.attribute({
18
- attribute: 'id',
19
- operator: '=',
26
+ attribute: "id",
27
+ operator: "=",
20
28
  value: node.value,
21
29
  quoteMark: '"'
22
30
  });
@@ -25,33 +33,31 @@ let getNode = {
25
33
  function minimumImpactSelector(nodes) {
26
34
  let rest = nodes.filter((node)=>{
27
35
  // Keep non-pseudo nodes
28
- if (node.type !== 'pseudo') return true;
36
+ if (node.type !== "pseudo") return true;
29
37
  // Keep pseudo nodes that have subnodes
30
38
  // E.g.: `:not()` contains subnodes inside the parentheses
31
39
  if (node.nodes.length > 0) return true;
32
40
  // Keep pseudo `elements`
33
41
  // This implicitly means that we ignore pseudo `classes`
34
- return node.value.startsWith('::') || [
35
- ':before',
36
- ':after',
37
- ':first-line',
38
- ':first-letter'
42
+ return node.value.startsWith("::") || [
43
+ ":before",
44
+ ":after",
45
+ ":first-line",
46
+ ":first-letter"
39
47
  ].includes(node.value);
40
48
  }).reverse();
41
49
  let searchFor = new Set([
42
- 'tag',
43
- 'class',
44
- 'id',
45
- 'attribute'
50
+ "tag",
51
+ "class",
52
+ "id",
53
+ "attribute"
46
54
  ]);
47
- let splitPointIdx = rest.findIndex((n)=>searchFor.has(n.type)
48
- );
49
- if (splitPointIdx === -1) return rest.reverse().join('').trim();
50
- let node1 = rest[splitPointIdx];
51
- let bestNode = getNode[node1.type] ? getNode[node1.type](node1) : node1;
55
+ let splitPointIdx = rest.findIndex((n)=>searchFor.has(n.type));
56
+ if (splitPointIdx === -1) return rest.reverse().join("").trim();
57
+ let node = rest[splitPointIdx];
58
+ let bestNode = getNode[node.type] ? getNode[node.type](node) : node;
52
59
  rest = rest.slice(0, splitPointIdx);
53
- let combinatorIdx = rest.findIndex((n)=>n.type === 'combinator' && n.value === '>'
54
- );
60
+ let combinatorIdx = rest.findIndex((n)=>n.type === "combinator" && n.value === ">");
55
61
  if (combinatorIdx !== -1) {
56
62
  rest.splice(0, combinatorIdx);
57
63
  rest.unshift(_postcssSelectorParser.default.universal());
@@ -59,16 +65,14 @@ function minimumImpactSelector(nodes) {
59
65
  return [
60
66
  bestNode,
61
67
  ...rest.reverse()
62
- ].join('').trim();
68
+ ].join("").trim();
63
69
  }
64
- let elementSelectorParser = (0, _postcssSelectorParser).default((selectors)=>{
70
+ let elementSelectorParser = (0, _postcssSelectorParser.default)((selectors)=>{
65
71
  return selectors.map((s)=>{
66
- let nodes = s.split((n)=>n.type === 'combinator' && n.value === ' '
67
- ).pop();
72
+ let nodes = s.split((n)=>n.type === "combinator" && n.value === " ").pop();
68
73
  return minimumImpactSelector(nodes);
69
74
  });
70
75
  });
71
- exports.elementSelectorParser = elementSelectorParser;
72
76
  let cache = new Map();
73
77
  function extractElementSelector(selector) {
74
78
  if (!cache.has(selector)) {
@@ -80,7 +84,7 @@ function resolveDefaultsAtRules({ tailwindConfig }) {
80
84
  return (root)=>{
81
85
  let variableNodeMap = new Map();
82
86
  /** @type {Set<import('postcss').AtRule>} */ let universals = new Set();
83
- root.walkAtRules('defaults', (rule)=>{
87
+ root.walkAtRules("defaults", (rule)=>{
84
88
  if (rule.nodes && rule.nodes.length > 0) {
85
89
  universals.add(rule);
86
90
  return;
@@ -92,48 +96,66 @@ function resolveDefaultsAtRules({ tailwindConfig }) {
92
96
  variableNodeMap.get(variable).add(rule.parent);
93
97
  rule.remove();
94
98
  });
95
- for (let universal of universals){
96
- /** @type {Map<string, Set<string>>} */ let selectorGroups = new Map();
97
- var ref;
98
- let rules = (ref = variableNodeMap.get(universal.params)) !== null && ref !== void 0 ? ref : [];
99
- for (let rule of rules){
100
- for (let selector of extractElementSelector(rule.selector)){
101
- // If selector contains a vendor prefix after a pseudo element or class,
102
- // we consider them separately because merging the declarations into
103
- // a single rule will cause browsers that do not understand the
104
- // vendor prefix to throw out the whole rule
105
- let selectorGroupName = selector.includes(':-') || selector.includes('::-') ? selector : '__DEFAULT__';
106
- var ref1;
107
- let selectors = (ref1 = selectorGroups.get(selectorGroupName)) !== null && ref1 !== void 0 ? ref1 : new Set();
108
- selectorGroups.set(selectorGroupName, selectors);
109
- selectors.add(selector);
99
+ if ((0, _featureFlags.flagEnabled)(tailwindConfig, "optimizeUniversalDefaults")) {
100
+ for (let universal of universals){
101
+ /** @type {Map<string, Set<string>>} */ let selectorGroups = new Map();
102
+ var ref;
103
+ let rules = (ref = variableNodeMap.get(universal.params)) !== null && ref !== void 0 ? ref : [];
104
+ for (let rule of rules){
105
+ for (let selector of extractElementSelector(rule.selector)){
106
+ // If selector contains a vendor prefix after a pseudo element or class,
107
+ // we consider them separately because merging the declarations into
108
+ // a single rule will cause browsers that do not understand the
109
+ // vendor prefix to throw out the whole rule
110
+ let selectorGroupName = selector.includes(":-") || selector.includes("::-") ? selector : "__DEFAULT__";
111
+ var ref1;
112
+ let selectors = (ref1 = selectorGroups.get(selectorGroupName)) !== null && ref1 !== void 0 ? ref1 : new Set();
113
+ selectorGroups.set(selectorGroupName, selectors);
114
+ selectors.add(selector);
115
+ }
116
+ }
117
+ if ((0, _featureFlags.flagEnabled)(tailwindConfig, "optimizeUniversalDefaults")) {
118
+ if (selectorGroups.size === 0) {
119
+ universal.remove();
120
+ continue;
121
+ }
122
+ for (let [, selectors1] of selectorGroups){
123
+ let universalRule = _postcss.default.rule({
124
+ source: universal.source
125
+ });
126
+ universalRule.selectors = [
127
+ ...selectors1
128
+ ];
129
+ universalRule.append(universal.nodes.map((node)=>node.clone()));
130
+ universal.before(universalRule);
131
+ }
110
132
  }
111
- }
112
- if (selectorGroups.size === 0) {
113
133
  universal.remove();
114
- continue;
115
134
  }
116
- if ((0, _featureFlags).flagEnabled(tailwindConfig, 'optimizeUniversalDefaults')) {
117
- for (let [, selectors] of selectorGroups){
118
- let universalRule = _postcss.default.rule();
119
- universalRule.selectors = [
120
- ...selectors
121
- ];
122
- universalRule.append(universal.nodes.map((node)=>node.clone()
123
- ));
124
- universal.before(universalRule);
135
+ } else if (universals.size) {
136
+ let universalRule1 = _postcss.default.rule({
137
+ selectors: [
138
+ "*",
139
+ "::before",
140
+ "::after"
141
+ ]
142
+ });
143
+ for (let universal1 of universals){
144
+ universalRule1.append(universal1.nodes);
145
+ if (!universalRule1.parent) {
146
+ universal1.before(universalRule1);
147
+ }
148
+ if (!universalRule1.source) {
149
+ universalRule1.source = universal1.source;
125
150
  }
126
- } else {
127
- let universalRule = _postcss.default.rule();
128
- universalRule.selectors = [
129
- '*',
130
- '::before',
131
- '::after'
132
- ];
133
- universalRule.append(universal.nodes);
134
- universal.before(universalRule);
151
+ universal1.remove();
135
152
  }
136
- universal.remove();
153
+ let backdropRule = universalRule1.clone({
154
+ selectors: [
155
+ "::backdrop"
156
+ ]
157
+ });
158
+ universalRule1.after(backdropRule);
137
159
  }
138
160
  };
139
161
  }