tailwindcss 3.0.0 → 3.0.1
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.
- package/CHANGELOG.md +1860 -0
- package/colors.js +2 -1
- package/defaultConfig.js +2 -1
- package/defaultTheme.js +2 -1
- package/lib/lib/expandApplyAtRules.js +19 -2
- package/lib/lib/resolveDefaultsAtRules.js +23 -9
- package/package.json +3 -3
- package/peers/index.js +191 -117
- package/plugin.js +2 -1
- package/resolveConfig.js +2 -1
- package/src/lib/expandApplyAtRules.js +29 -2
- package/src/lib/resolveDefaultsAtRules.js +28 -7
- package/peers/.svgo.yml +0 -75
- package/peers/orders/concentric-css.json +0 -299
- package/peers/orders/smacss.json +0 -299
- package/peers/orders/source.json +0 -295
- package/src/.DS_Store +0 -0
package/colors.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
let colors = require('./lib/public/colors')
|
|
2
|
+
module.exports = (colors.__esModule ? colors : { default: colors }).default
|
package/defaultConfig.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
let defaultConfig = require('./lib/public/default-config')
|
|
2
|
+
module.exports = (defaultConfig.__esModule ? defaultConfig : { default: defaultConfig }).default
|
package/defaultTheme.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
let defaultTheme = require('./lib/public/default-theme')
|
|
2
|
+
module.exports = (defaultTheme.__esModule ? defaultTheme : { default: defaultTheme }).default
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
exports.default = expandApplyAtRules;
|
|
6
6
|
var _postcss = _interopRequireDefault(require("postcss"));
|
|
7
|
+
var _postcssSelectorParser = _interopRequireDefault(require("postcss-selector-parser"));
|
|
7
8
|
var _generateRules = require("./generateRules");
|
|
8
9
|
var _bigSign = _interopRequireDefault(require("../util/bigSign"));
|
|
9
10
|
var _escapeClassName = _interopRequireDefault(require("../util/escapeClassName"));
|
|
@@ -12,6 +13,18 @@ function _interopRequireDefault(obj) {
|
|
|
12
13
|
default: obj
|
|
13
14
|
};
|
|
14
15
|
}
|
|
16
|
+
function containsBase(selector, classCandidateBase, separator) {
|
|
17
|
+
return (0, _postcssSelectorParser).default((selectors)=>{
|
|
18
|
+
let contains = false;
|
|
19
|
+
selectors.walkClasses((classSelector)=>{
|
|
20
|
+
if (classSelector.value.split(separator).pop() === classCandidateBase) {
|
|
21
|
+
contains = true;
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
return contains;
|
|
26
|
+
}).transformSync(selector);
|
|
27
|
+
}
|
|
15
28
|
function prefix(context, selector) {
|
|
16
29
|
let prefix1 = context.tailwindConfig.prefix;
|
|
17
30
|
return typeof prefix1 === 'function' ? prefix1(selector) : prefix1 + selector;
|
|
@@ -127,8 +140,8 @@ function processApply(root, context) {
|
|
|
127
140
|
*/ // TODO: Should we use postcss-selector-parser for this instead?
|
|
128
141
|
function replaceSelector(selector, utilitySelectors, candidate) {
|
|
129
142
|
let needle = `.${(0, _escapeClassName).default(candidate)}`;
|
|
130
|
-
let utilitySelectorsList = utilitySelectors.split(/\s
|
|
131
|
-
return selector.split(/\s
|
|
143
|
+
let utilitySelectorsList = utilitySelectors.split(/\s*\,(?![^(]*\))\s*/g);
|
|
144
|
+
return selector.split(/\s*\,(?![^(]*\))\s*/g).map((s)=>{
|
|
132
145
|
let replaced = [];
|
|
133
146
|
for (let utilitySelector of utilitySelectorsList){
|
|
134
147
|
let replacedSelector = utilitySelector.replace(needle, s);
|
|
@@ -173,7 +186,11 @@ function processApply(root, context) {
|
|
|
173
186
|
for (const [parent, candidates] of perParentApplies){
|
|
174
187
|
let siblings = [];
|
|
175
188
|
for (let [applyCandidate, important, rules] of candidates){
|
|
189
|
+
let base = applyCandidate.split(context.tailwindConfig.separator).pop();
|
|
176
190
|
for (let [meta, node] of rules){
|
|
191
|
+
if (containsBase(parent.selector, base, context.tailwindConfig.separator) && containsBase(node.selector, base, context.tailwindConfig.separator)) {
|
|
192
|
+
throw node.error(`Circular dependency detected when using: \`@apply ${applyCandidate}\``);
|
|
193
|
+
}
|
|
177
194
|
let root = _postcss.default.root({
|
|
178
195
|
nodes: [
|
|
179
196
|
node.clone()
|
|
@@ -79,7 +79,7 @@ function extractElementSelector(selector) {
|
|
|
79
79
|
function resolveDefaultsAtRules({ tailwindConfig }) {
|
|
80
80
|
return (root)=>{
|
|
81
81
|
let variableNodeMap = new Map();
|
|
82
|
-
let universals = new Set();
|
|
82
|
+
/** @type {Set<import('postcss').AtRule>} */ let universals = new Set();
|
|
83
83
|
root.walkAtRules('defaults', (rule)=>{
|
|
84
84
|
if (rule.nodes && rule.nodes.length > 0) {
|
|
85
85
|
universals.add(rule);
|
|
@@ -93,32 +93,46 @@ function resolveDefaultsAtRules({ tailwindConfig }) {
|
|
|
93
93
|
rule.remove();
|
|
94
94
|
});
|
|
95
95
|
for (let universal of universals){
|
|
96
|
-
let
|
|
96
|
+
/** @type {Map<string, Set<string>>} */ let selectorGroups = new Map();
|
|
97
97
|
var ref;
|
|
98
98
|
let rules = (ref = variableNodeMap.get(universal.params)) !== null && ref !== void 0 ? ref : [];
|
|
99
99
|
for (let rule of rules){
|
|
100
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);
|
|
101
109
|
selectors.add(selector);
|
|
102
110
|
}
|
|
103
111
|
}
|
|
104
|
-
if (
|
|
112
|
+
if (selectorGroups.size === 0) {
|
|
105
113
|
universal.remove();
|
|
106
114
|
continue;
|
|
107
115
|
}
|
|
108
|
-
let universalRule = _postcss.default.rule();
|
|
109
116
|
if ((0, _featureFlags).flagEnabled(tailwindConfig, 'optimizeUniversalDefaults')) {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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);
|
|
125
|
+
}
|
|
113
126
|
} else {
|
|
127
|
+
let universalRule = _postcss.default.rule();
|
|
114
128
|
universalRule.selectors = [
|
|
115
129
|
'*',
|
|
116
130
|
'::before',
|
|
117
131
|
'::after'
|
|
118
132
|
];
|
|
133
|
+
universalRule.append(universal.nodes);
|
|
134
|
+
universal.before(universalRule);
|
|
119
135
|
}
|
|
120
|
-
universalRule.append(universal.nodes);
|
|
121
|
-
universal.before(universalRule);
|
|
122
136
|
universal.remove();
|
|
123
137
|
}
|
|
124
138
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tailwindcss",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "A utility-first CSS framework for rapidly building custom user interfaces.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -45,12 +45,12 @@
|
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@swc/cli": "^0.1.52",
|
|
47
47
|
"@swc/core": "^1.2.118",
|
|
48
|
-
"@swc/jest": "^0.
|
|
48
|
+
"@swc/jest": "^0.2.11",
|
|
49
49
|
"@swc/register": "^0.1.7",
|
|
50
50
|
"autoprefixer": "^10.4.0",
|
|
51
51
|
"cross-env": "^7.0.3",
|
|
52
52
|
"cssnano": "^5.0.12",
|
|
53
|
-
"esbuild": "^0.
|
|
53
|
+
"esbuild": "^0.14.2",
|
|
54
54
|
"eslint": "^8.2.0",
|
|
55
55
|
"eslint-config-prettier": "^8.3.0",
|
|
56
56
|
"eslint-plugin-prettier": "^4.0.0",
|