tailwindcss 0.0.0-insiders.fda68f7 → 0.0.0-oxide.6bf5e56

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 (195) hide show
  1. package/CHANGELOG.md +603 -2
  2. package/LICENSE +1 -2
  3. package/README.md +14 -6
  4. package/colors.d.ts +3 -0
  5. package/colors.js +2 -304
  6. package/defaultConfig.d.ts +3 -0
  7. package/defaultConfig.js +2 -4
  8. package/defaultTheme.d.ts +4 -0
  9. package/defaultTheme.js +2 -4
  10. package/lib/cli/build/deps.js +54 -0
  11. package/lib/cli/build/index.js +48 -0
  12. package/lib/cli/build/plugin.js +367 -0
  13. package/lib/cli/build/utils.js +78 -0
  14. package/lib/cli/build/watching.js +178 -0
  15. package/lib/cli/help/index.js +71 -0
  16. package/lib/cli/index.js +18 -0
  17. package/lib/cli/init/index.js +46 -0
  18. package/lib/cli/shared.js +13 -0
  19. package/lib/cli-peer-dependencies.js +22 -14
  20. package/lib/cli.js +217 -743
  21. package/lib/constants.js +41 -34
  22. package/lib/corePluginList.js +178 -5
  23. package/lib/corePlugins.js +3879 -2941
  24. package/lib/css/preflight.css +22 -9
  25. package/lib/featureFlags.js +61 -50
  26. package/lib/index.js +45 -28
  27. package/lib/lib/cacheInvalidation.js +90 -0
  28. package/lib/lib/collapseAdjacentRules.js +52 -36
  29. package/lib/lib/collapseDuplicateDeclarations.js +83 -0
  30. package/lib/lib/content.js +176 -0
  31. package/lib/lib/defaultExtractor.js +236 -0
  32. package/lib/lib/detectNesting.js +37 -0
  33. package/lib/lib/evaluateTailwindFunctions.js +203 -161
  34. package/lib/lib/expandApplyAtRules.js +502 -221
  35. package/lib/lib/expandTailwindAtRules.js +258 -243
  36. package/lib/lib/findAtConfigPath.js +44 -0
  37. package/lib/lib/generateRules.js +775 -320
  38. package/lib/lib/getModuleDependencies.js +44 -46
  39. package/lib/lib/normalizeTailwindDirectives.js +79 -60
  40. package/lib/lib/offsets.js +217 -0
  41. package/lib/lib/partitionApplyAtRules.js +56 -0
  42. package/lib/lib/regex.js +60 -0
  43. package/lib/lib/resolveDefaultsAtRules.js +150 -94
  44. package/lib/lib/setupContextUtils.js +1146 -599
  45. package/lib/lib/setupTrackingContext.js +129 -177
  46. package/lib/lib/sharedState.js +53 -21
  47. package/lib/lib/substituteScreenAtRules.js +26 -28
  48. package/{nesting → lib/postcss-plugins/nesting}/README.md +2 -2
  49. package/lib/postcss-plugins/nesting/index.js +19 -0
  50. package/lib/postcss-plugins/nesting/plugin.js +87 -0
  51. package/lib/processTailwindFeatures.js +58 -53
  52. package/lib/public/colors.js +331 -0
  53. package/lib/public/create-plugin.js +15 -0
  54. package/lib/public/default-config.js +16 -0
  55. package/lib/public/default-theme.js +16 -0
  56. package/lib/public/resolve-config.js +22 -0
  57. package/lib/util/bigSign.js +7 -6
  58. package/lib/util/buildMediaQuery.js +21 -32
  59. package/lib/util/cloneDeep.js +16 -14
  60. package/lib/util/cloneNodes.js +29 -15
  61. package/lib/util/color.js +90 -66
  62. package/lib/util/configurePlugins.js +17 -15
  63. package/lib/util/createPlugin.js +23 -26
  64. package/lib/util/createUtilityPlugin.js +46 -46
  65. package/lib/util/dataTypes.js +242 -0
  66. package/lib/util/defaults.js +20 -15
  67. package/lib/util/escapeClassName.js +18 -17
  68. package/lib/util/escapeCommas.js +7 -6
  69. package/lib/util/flattenColorPalette.js +13 -12
  70. package/lib/util/formatVariantSelector.js +285 -0
  71. package/lib/util/getAllConfigs.js +44 -18
  72. package/lib/util/hashConfig.js +15 -12
  73. package/lib/util/isKeyframeRule.js +7 -6
  74. package/lib/util/isPlainObject.js +11 -11
  75. package/lib/util/isSyntacticallyValidPropertyValue.js +72 -0
  76. package/lib/util/log.js +52 -33
  77. package/lib/util/nameClass.js +37 -26
  78. package/lib/util/negateValue.js +31 -17
  79. package/lib/util/normalizeConfig.js +281 -0
  80. package/lib/util/normalizeScreens.js +170 -0
  81. package/lib/util/parseAnimationValue.js +85 -54
  82. package/lib/util/parseBoxShadowValue.js +84 -0
  83. package/lib/util/parseDependency.js +41 -70
  84. package/lib/util/parseGlob.js +34 -0
  85. package/lib/util/parseObjectStyles.js +30 -24
  86. package/lib/util/pluginUtils.js +252 -287
  87. package/lib/util/prefixSelector.js +20 -20
  88. package/lib/util/removeAlphaVariables.js +29 -0
  89. package/lib/util/resolveConfig.js +221 -256
  90. package/lib/util/resolveConfigPath.js +43 -48
  91. package/lib/util/responsive.js +18 -14
  92. package/lib/util/splitAtTopLevelOnly.js +43 -0
  93. package/lib/util/tap.js +8 -7
  94. package/lib/util/toColorValue.js +7 -6
  95. package/lib/util/toPath.js +27 -8
  96. package/lib/util/transformThemeValue.js +67 -28
  97. package/lib/util/validateConfig.js +24 -0
  98. package/lib/util/validateFormalSyntax.js +24 -0
  99. package/lib/util/withAlphaVariable.js +67 -57
  100. package/nesting/index.js +2 -12
  101. package/package.json +60 -65
  102. package/peers/index.js +76445 -84221
  103. package/plugin.d.ts +11 -0
  104. package/plugin.js +1 -2
  105. package/resolveConfig.d.ts +12 -0
  106. package/resolveConfig.js +2 -7
  107. package/scripts/create-plugin-list.js +2 -2
  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 +3 -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 +50 -575
  123. package/src/corePluginList.js +1 -1
  124. package/src/corePlugins.js +2405 -1948
  125. package/src/css/preflight.css +22 -9
  126. package/src/featureFlags.js +26 -10
  127. package/src/index.js +19 -6
  128. package/src/lib/cacheInvalidation.js +52 -0
  129. package/src/lib/collapseAdjacentRules.js +21 -2
  130. package/src/lib/collapseDuplicateDeclarations.js +93 -0
  131. package/src/lib/content.js +212 -0
  132. package/src/lib/defaultExtractor.js +211 -0
  133. package/src/lib/detectNesting.js +39 -0
  134. package/src/lib/evaluateTailwindFunctions.js +84 -10
  135. package/src/lib/expandApplyAtRules.js +508 -153
  136. package/src/lib/expandTailwindAtRules.js +130 -104
  137. package/src/lib/findAtConfigPath.js +48 -0
  138. package/src/lib/generateRules.js +596 -70
  139. package/src/lib/normalizeTailwindDirectives.js +10 -3
  140. package/src/lib/offsets.js +270 -0
  141. package/src/lib/partitionApplyAtRules.js +52 -0
  142. package/src/lib/regex.js +74 -0
  143. package/src/lib/resolveDefaultsAtRules.js +105 -47
  144. package/src/lib/setupContextUtils.js +828 -196
  145. package/src/lib/setupTrackingContext.js +19 -54
  146. package/src/lib/sharedState.js +45 -7
  147. package/src/lib/substituteScreenAtRules.js +6 -3
  148. package/src/postcss-plugins/nesting/README.md +42 -0
  149. package/src/postcss-plugins/nesting/index.js +13 -0
  150. package/src/postcss-plugins/nesting/plugin.js +80 -0
  151. package/src/processTailwindFeatures.js +19 -2
  152. package/src/public/colors.js +300 -0
  153. package/src/public/create-plugin.js +2 -0
  154. package/src/public/default-config.js +4 -0
  155. package/src/public/default-theme.js +4 -0
  156. package/src/public/resolve-config.js +7 -0
  157. package/src/util/buildMediaQuery.js +14 -16
  158. package/src/util/cloneNodes.js +19 -2
  159. package/src/util/color.js +31 -14
  160. package/src/util/createUtilityPlugin.js +2 -11
  161. package/src/util/dataTypes.js +256 -0
  162. package/src/util/defaults.js +6 -0
  163. package/src/util/formatVariantSelector.js +319 -0
  164. package/src/util/getAllConfigs.js +19 -0
  165. package/src/util/isSyntacticallyValidPropertyValue.js +61 -0
  166. package/src/util/log.js +23 -22
  167. package/src/util/nameClass.js +14 -6
  168. package/src/util/negateValue.js +15 -5
  169. package/src/util/normalizeConfig.js +300 -0
  170. package/src/util/normalizeScreens.js +140 -0
  171. package/src/util/parseAnimationValue.js +7 -1
  172. package/src/util/parseBoxShadowValue.js +72 -0
  173. package/src/util/parseDependency.js +37 -38
  174. package/src/util/parseGlob.js +24 -0
  175. package/src/util/pluginUtils.js +216 -197
  176. package/src/util/prefixSelector.js +7 -8
  177. package/src/util/removeAlphaVariables.js +24 -0
  178. package/src/util/resolveConfig.js +86 -91
  179. package/src/util/splitAtTopLevelOnly.js +45 -0
  180. package/src/util/toPath.js +23 -1
  181. package/src/util/transformThemeValue.js +33 -8
  182. package/src/util/validateConfig.js +13 -0
  183. package/src/util/validateFormalSyntax.js +34 -0
  184. package/src/util/withAlphaVariable.js +14 -9
  185. package/stubs/defaultConfig.stub.js +186 -117
  186. package/stubs/simpleConfig.stub.js +1 -1
  187. package/types/config.d.ts +362 -0
  188. package/types/generated/.gitkeep +0 -0
  189. package/types/generated/colors.d.ts +276 -0
  190. package/types/generated/corePluginList.d.ts +1 -0
  191. package/types/generated/default-theme.d.ts +342 -0
  192. package/types/index.d.ts +7 -0
  193. package/lib/lib/setupWatchingContext.js +0 -331
  194. package/nesting/plugin.js +0 -41
  195. package/src/lib/setupWatchingContext.js +0 -306
@@ -1,105 +1,161 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
6
- exports.default = resolveDefaultsAtRules;
7
-
8
- var _postcss = _interopRequireDefault(require("postcss"));
9
-
10
- var _postcssSelectorParser = _interopRequireDefault(require("postcss-selector-parser"));
11
-
12
- var _featureFlags = require("../featureFlags");
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
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");
18
+ function _interopRequireDefault(obj) {
19
+ return obj && obj.__esModule ? obj : {
20
+ default: obj
21
+ };
22
+ }
23
+ let getNode = {
24
+ id (node) {
25
+ return _postcssSelectorParser.default.attribute({
26
+ attribute: "id",
27
+ operator: "=",
28
+ value: node.value,
29
+ quoteMark: '"'
30
+ });
31
+ }
32
+ };
16
33
  function minimumImpactSelector(nodes) {
17
- let pseudos = nodes.filter(n => n.type === 'pseudo');
18
- let [bestNode] = nodes;
19
-
20
- for (let [type, getNode = n => n] of [['class'], ['id', n => _postcssSelectorParser.default.attribute({
21
- attribute: 'id',
22
- operator: '=',
23
- value: n.value,
24
- quoteMark: '"'
25
- })], ['attribute']]) {
26
- let match = nodes.find(n => n.type === type);
27
-
28
- if (match) {
29
- bestNode = getNode(match);
30
- break;
34
+ let rest = nodes.filter((node)=>{
35
+ // Keep non-pseudo nodes
36
+ if (node.type !== "pseudo") return true;
37
+ // Keep pseudo nodes that have subnodes
38
+ // E.g.: `:not()` contains subnodes inside the parentheses
39
+ if (node.nodes.length > 0) return true;
40
+ // Keep pseudo `elements`
41
+ // This implicitly means that we ignore pseudo `classes`
42
+ return node.value.startsWith("::") || [
43
+ ":before",
44
+ ":after",
45
+ ":first-line",
46
+ ":first-letter"
47
+ ].includes(node.value);
48
+ }).reverse();
49
+ let searchFor = new Set([
50
+ "tag",
51
+ "class",
52
+ "id",
53
+ "attribute"
54
+ ]);
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;
59
+ rest = rest.slice(0, splitPointIdx);
60
+ let combinatorIdx = rest.findIndex((n)=>n.type === "combinator" && n.value === ">");
61
+ if (combinatorIdx !== -1) {
62
+ rest.splice(0, combinatorIdx);
63
+ rest.unshift(_postcssSelectorParser.default.universal());
31
64
  }
32
- }
33
-
34
- return [bestNode, ...pseudos].join('').trim();
65
+ return [
66
+ bestNode,
67
+ ...rest.reverse()
68
+ ].join("").trim();
35
69
  }
36
-
37
- let elementSelectorParser = (0, _postcssSelectorParser.default)(selectors => {
38
- return selectors.map(s => {
39
- let nodes = s.split(n => n.type === 'combinator').pop().filter(n => n.type !== 'pseudo' || n.value.startsWith('::'));
40
- return minimumImpactSelector(nodes);
41
- });
70
+ let elementSelectorParser = (0, _postcssSelectorParser.default)((selectors)=>{
71
+ return selectors.map((s)=>{
72
+ let nodes = s.split((n)=>n.type === "combinator" && n.value === " ").pop();
73
+ return minimumImpactSelector(nodes);
74
+ });
42
75
  });
43
76
  let cache = new Map();
44
-
45
77
  function extractElementSelector(selector) {
46
- if (!cache.has(selector)) {
47
- cache.set(selector, elementSelectorParser.transformSync(selector));
48
- }
49
-
50
- return cache.get(selector);
78
+ if (!cache.has(selector)) {
79
+ cache.set(selector, elementSelectorParser.transformSync(selector));
80
+ }
81
+ return cache.get(selector);
51
82
  }
52
-
53
- function resolveDefaultsAtRules({
54
- tailwindConfig
55
- }) {
56
- return root => {
57
- let variableNodeMap = new Map();
58
- let universals = new Set();
59
- root.walkAtRules('defaults', rule => {
60
- if (rule.nodes && rule.nodes.length > 0) {
61
- universals.add(rule);
62
- return;
63
- }
64
-
65
- let variable = rule.params;
66
-
67
- if (!variableNodeMap.has(variable)) {
68
- variableNodeMap.set(variable, new Set());
69
- }
70
-
71
- variableNodeMap.get(variable).add(rule.parent);
72
- rule.remove();
73
- });
74
-
75
- for (let universal of universals) {
76
- var _variableNodeMap$get;
77
-
78
- let selectors = new Set();
79
- let rules = (_variableNodeMap$get = variableNodeMap.get(universal.params)) !== null && _variableNodeMap$get !== void 0 ? _variableNodeMap$get : [];
80
-
81
- for (let rule of rules) {
82
- for (let selector of extractElementSelector(rule.selector)) {
83
- selectors.add(selector);
83
+ function resolveDefaultsAtRules({ tailwindConfig }) {
84
+ return (root)=>{
85
+ let variableNodeMap = new Map();
86
+ /** @type {Set<import('postcss').AtRule>} */ let universals = new Set();
87
+ root.walkAtRules("defaults", (rule)=>{
88
+ if (rule.nodes && rule.nodes.length > 0) {
89
+ universals.add(rule);
90
+ return;
91
+ }
92
+ let variable = rule.params;
93
+ if (!variableNodeMap.has(variable)) {
94
+ variableNodeMap.set(variable, new Set());
95
+ }
96
+ variableNodeMap.get(variable).add(rule.parent);
97
+ rule.remove();
98
+ });
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
+ }
132
+ }
133
+ universal.remove();
134
+ }
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;
150
+ }
151
+ universal1.remove();
152
+ }
153
+ let backdropRule = universalRule1.clone({
154
+ selectors: [
155
+ "::backdrop"
156
+ ]
157
+ });
158
+ universalRule1.after(backdropRule);
84
159
  }
85
- }
86
-
87
- if (selectors.size === 0) {
88
- universal.remove();
89
- continue;
90
- }
91
-
92
- let universalRule = _postcss.default.rule();
93
-
94
- if ((0, _featureFlags.flagEnabled)(tailwindConfig, 'optimizeUniversalDefaults')) {
95
- universalRule.selectors = [...selectors];
96
- } else {
97
- universalRule.selectors = ['*', '::before', '::after'];
98
- }
99
-
100
- universalRule.append(universal.nodes);
101
- universal.before(universalRule);
102
- universal.remove();
103
- }
104
- };
105
- }
160
+ };
161
+ }