tailwindcss 0.0.0-insiders.df011dc → 0.0.0-insiders.e2d5f21
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 +106 -1
- package/README.md +1 -1
- package/colors.js +1 -304
- package/defaultConfig.js +1 -4
- package/defaultTheme.js +1 -4
- package/lib/cli-peer-dependencies.js +4 -9
- package/lib/cli.js +646 -705
- package/lib/constants.js +15 -15
- package/lib/corePluginList.js +174 -4
- package/lib/corePlugins.js +3637 -2934
- package/lib/css/preflight.css +14 -1
- package/lib/featureFlags.js +44 -44
- package/lib/index.js +25 -24
- package/lib/lib/collapseAdjacentRules.js +33 -35
- package/lib/lib/collapseDuplicateDeclarations.js +29 -0
- package/lib/lib/detectNesting.js +34 -0
- package/lib/lib/evaluateTailwindFunctions.js +134 -155
- package/lib/lib/expandApplyAtRules.js +183 -200
- package/lib/lib/expandTailwindAtRules.js +219 -232
- package/lib/lib/generateRules.js +478 -311
- package/lib/lib/getModuleDependencies.js +36 -41
- package/lib/lib/normalizeTailwindDirectives.js +66 -58
- package/lib/lib/resolveDefaultsAtRules.js +110 -90
- package/lib/lib/setupContextUtils.js +740 -580
- package/lib/lib/setupTrackingContext.js +142 -162
- package/lib/lib/setupWatchingContext.js +235 -278
- package/lib/lib/sharedState.js +7 -17
- package/lib/lib/substituteScreenAtRules.js +22 -26
- package/lib/processTailwindFeatures.js +38 -44
- package/lib/public/colors.js +329 -0
- package/lib/public/create-plugin.js +13 -0
- package/lib/public/default-config.js +14 -0
- package/lib/public/default-theme.js +14 -0
- package/lib/public/resolve-config.js +19 -0
- package/lib/util/bigSign.js +3 -5
- package/lib/util/buildMediaQuery.js +15 -31
- package/lib/util/cloneDeep.js +14 -13
- package/lib/util/cloneNodes.js +9 -13
- package/lib/util/color.js +69 -59
- package/lib/util/configurePlugins.js +13 -14
- package/lib/util/createPlugin.js +21 -24
- package/lib/util/createUtilityPlugin.js +47 -45
- package/lib/util/dataTypes.js +231 -0
- package/lib/util/defaults.js +10 -14
- package/lib/util/escapeClassName.js +12 -14
- package/lib/util/escapeCommas.js +3 -5
- package/lib/util/flattenColorPalette.js +14 -10
- package/lib/util/formatVariantSelector.js +186 -0
- package/lib/util/getAllConfigs.js +23 -16
- package/lib/util/hashConfig.js +10 -10
- package/lib/util/isKeyframeRule.js +3 -5
- package/lib/util/isPlainObject.js +7 -10
- package/lib/util/isValidArbitraryValue.js +64 -0
- package/lib/util/log.js +39 -30
- package/lib/util/nameClass.js +23 -23
- package/lib/util/negateValue.js +14 -15
- package/lib/util/normalizeConfig.js +208 -0
- package/lib/util/normalizeScreens.js +58 -0
- package/lib/util/parseAnimationValue.js +82 -53
- package/lib/util/parseBoxShadowValue.js +77 -0
- package/lib/util/parseDependency.js +49 -60
- package/lib/util/parseObjectStyles.js +23 -20
- package/lib/util/pluginUtils.js +153 -285
- package/lib/util/prefixSelector.js +14 -16
- package/lib/util/resolveConfig.js +194 -249
- package/lib/util/resolveConfigPath.js +38 -45
- package/lib/util/responsive.js +12 -11
- package/lib/util/tap.js +4 -6
- package/lib/util/toColorValue.js +4 -5
- package/lib/util/toPath.js +4 -6
- package/lib/util/transformThemeValue.js +57 -26
- package/lib/util/withAlphaVariable.js +56 -54
- package/package.json +27 -37
- package/peers/index.js +73099 -84294
- package/plugin.js +1 -3
- package/resolveConfig.js +1 -7
- package/scripts/create-plugin-list.js +2 -2
- package/src/cli.js +27 -18
- package/src/corePluginList.js +1 -1
- package/src/corePlugins.js +2124 -1968
- package/src/css/preflight.css +14 -1
- package/src/featureFlags.js +12 -6
- package/src/lib/collapseDuplicateDeclarations.js +28 -0
- package/src/lib/detectNesting.js +39 -0
- package/src/lib/evaluateTailwindFunctions.js +5 -2
- package/src/lib/expandTailwindAtRules.js +24 -32
- package/src/lib/generateRules.js +230 -20
- package/src/lib/normalizeTailwindDirectives.js +3 -2
- package/src/lib/resolveDefaultsAtRules.js +46 -30
- package/src/lib/setupContextUtils.js +275 -113
- package/src/lib/setupTrackingContext.js +9 -8
- package/src/lib/setupWatchingContext.js +12 -7
- package/src/lib/sharedState.js +1 -4
- package/src/lib/substituteScreenAtRules.js +6 -3
- package/src/processTailwindFeatures.js +8 -1
- package/src/public/colors.js +300 -0
- package/src/public/create-plugin.js +2 -0
- package/src/public/default-config.js +4 -0
- package/src/public/default-theme.js +4 -0
- package/src/public/resolve-config.js +7 -0
- package/src/util/buildMediaQuery.js +14 -18
- package/src/util/createUtilityPlugin.js +2 -11
- package/src/util/dataTypes.js +246 -0
- package/src/util/formatVariantSelector.js +196 -0
- package/src/util/isValidArbitraryValue.js +61 -0
- package/src/util/log.js +18 -21
- package/src/util/nameClass.js +10 -6
- package/src/util/negateValue.js +4 -2
- package/src/util/normalizeConfig.js +249 -0
- package/src/util/normalizeScreens.js +42 -0
- package/src/util/parseAnimationValue.js +7 -1
- package/src/util/parseBoxShadowValue.js +71 -0
- package/src/util/parseDependency.js +4 -0
- package/src/util/pluginUtils.js +101 -204
- package/src/util/prefixSelector.js +1 -4
- package/src/util/resolveConfig.js +12 -65
- package/src/util/transformThemeValue.js +22 -7
- package/src/util/withAlphaVariable.js +13 -8
- package/stubs/defaultConfig.stub.js +163 -97
- package/stubs/simpleConfig.stub.js +0 -1
package/lib/util/pluginUtils.js
CHANGED
|
@@ -1,318 +1,186 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
exports.applyPseudoToMarker = applyPseudoToMarker;
|
|
7
5
|
exports.updateAllClasses = updateAllClasses;
|
|
8
|
-
exports.updateLastClasses = updateLastClasses;
|
|
9
|
-
exports.transformAllSelectors = transformAllSelectors;
|
|
10
|
-
exports.transformAllClasses = transformAllClasses;
|
|
11
|
-
exports.transformLastClasses = transformLastClasses;
|
|
12
6
|
exports.asValue = asValue;
|
|
13
|
-
exports.asUnit = asUnit;
|
|
14
7
|
exports.asColor = asColor;
|
|
15
|
-
exports.asAngle = asAngle;
|
|
16
|
-
exports.asLength = asLength;
|
|
17
8
|
exports.asLookupValue = asLookupValue;
|
|
18
9
|
exports.coerceValue = coerceValue;
|
|
19
|
-
|
|
20
10
|
var _postcssSelectorParser = _interopRequireDefault(require("postcss-selector-parser"));
|
|
21
|
-
|
|
22
11
|
var _escapeCommas = _interopRequireDefault(require("./escapeCommas"));
|
|
23
|
-
|
|
24
12
|
var _withAlphaVariable = require("./withAlphaVariable");
|
|
25
|
-
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
function
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return join(`${[marker, ...states].join(':')}`, selector);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
function updateAllClasses(selectors, updateClass) {
|
|
46
|
-
let parser = (0, _postcssSelectorParser.default)(selectors => {
|
|
47
|
-
selectors.walkClasses(sel => {
|
|
48
|
-
let updatedClass = updateClass(sel.value, {
|
|
49
|
-
withPseudo(className, pseudo) {
|
|
50
|
-
sel.parent.insertAfter(sel, _postcssSelectorParser.default.pseudo({
|
|
51
|
-
value: `${pseudo}`
|
|
52
|
-
}));
|
|
53
|
-
return className;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
});
|
|
57
|
-
sel.value = updatedClass;
|
|
58
|
-
|
|
59
|
-
if (sel.raws && sel.raws.value) {
|
|
60
|
-
sel.raws.value = (0, _escapeCommas.default)(sel.raws.value);
|
|
61
|
-
}
|
|
13
|
+
var _dataTypes = require("./dataTypes");
|
|
14
|
+
var _negateValue = _interopRequireDefault(require("./negateValue"));
|
|
15
|
+
function _interopRequireDefault(obj) {
|
|
16
|
+
return obj && obj.__esModule ? obj : {
|
|
17
|
+
default: obj
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function updateAllClasses(selectors1, updateClass) {
|
|
21
|
+
let parser = (0, _postcssSelectorParser).default((selectors)=>{
|
|
22
|
+
selectors.walkClasses((sel)=>{
|
|
23
|
+
let updatedClass = updateClass(sel.value);
|
|
24
|
+
sel.value = updatedClass;
|
|
25
|
+
if (sel.raws && sel.raws.value) {
|
|
26
|
+
sel.raws.value = (0, _escapeCommas).default(sel.raws.value);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
62
29
|
});
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
return result;
|
|
30
|
+
let result = parser.processSync(selectors1);
|
|
31
|
+
return result;
|
|
66
32
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
selectors.each(sel => {
|
|
71
|
-
let lastClass = sel.filter(({
|
|
72
|
-
type
|
|
73
|
-
}) => type === 'class').pop();
|
|
74
|
-
|
|
75
|
-
if (lastClass === undefined) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
let updatedClass = updateClass(lastClass.value, {
|
|
80
|
-
withPseudo(className, pseudo) {
|
|
81
|
-
lastClass.parent.insertAfter(lastClass, _postcssSelectorParser.default.pseudo({
|
|
82
|
-
value: `${pseudo}`
|
|
83
|
-
}));
|
|
84
|
-
return className;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
});
|
|
88
|
-
lastClass.value = updatedClass;
|
|
89
|
-
|
|
90
|
-
if (lastClass.raws && lastClass.raws.value) {
|
|
91
|
-
lastClass.raws.value = (0, _escapeCommas.default)(lastClass.raws.value);
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
let result = parser.processSync(selectors);
|
|
96
|
-
return result;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
function splitByNotEscapedCommas(str) {
|
|
100
|
-
let chunks = [];
|
|
101
|
-
let currentChunk = '';
|
|
102
|
-
|
|
103
|
-
for (let i = 0; i < str.length; i++) {
|
|
104
|
-
if (str[i] === ',' && str[i - 1] !== '\\') {
|
|
105
|
-
chunks.push(currentChunk);
|
|
106
|
-
currentChunk = '';
|
|
107
|
-
} else {
|
|
108
|
-
currentChunk += str[i];
|
|
33
|
+
function resolveArbitraryValue(modifier, validate) {
|
|
34
|
+
if (!isArbitraryValue(modifier)) {
|
|
35
|
+
return undefined;
|
|
109
36
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
return chunks;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
function transformAllSelectors(transformSelector, {
|
|
117
|
-
wrap,
|
|
118
|
-
withRule
|
|
119
|
-
} = {}) {
|
|
120
|
-
return ({
|
|
121
|
-
container
|
|
122
|
-
}) => {
|
|
123
|
-
container.walkRules(rule => {
|
|
124
|
-
if ((0, _isKeyframeRule.default)(rule)) {
|
|
125
|
-
return rule;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
let transformed = splitByNotEscapedCommas(rule.selector).map(transformSelector).join(',');
|
|
129
|
-
rule.selector = transformed;
|
|
130
|
-
|
|
131
|
-
if (withRule) {
|
|
132
|
-
withRule(rule);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
return rule;
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
if (wrap) {
|
|
139
|
-
let wrapper = wrap();
|
|
140
|
-
let nodes = container.nodes;
|
|
141
|
-
container.removeAll();
|
|
142
|
-
wrapper.append(nodes);
|
|
143
|
-
container.append(wrapper);
|
|
37
|
+
let value = modifier.slice(1, -1);
|
|
38
|
+
if (!validate(value)) {
|
|
39
|
+
return undefined;
|
|
144
40
|
}
|
|
145
|
-
|
|
41
|
+
return (0, _dataTypes).normalize(value);
|
|
146
42
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
return ({
|
|
153
|
-
container
|
|
154
|
-
}) => {
|
|
155
|
-
container.walkRules(rule => {
|
|
156
|
-
let selector = rule.selector;
|
|
157
|
-
let variantSelector = updateAllClasses(selector, transformClass);
|
|
158
|
-
rule.selector = variantSelector;
|
|
159
|
-
|
|
160
|
-
if (withRule) {
|
|
161
|
-
withRule(rule);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
return rule;
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
if (wrap) {
|
|
168
|
-
let wrapper = wrap();
|
|
169
|
-
let nodes = container.nodes;
|
|
170
|
-
container.removeAll();
|
|
171
|
-
wrapper.append(nodes);
|
|
172
|
-
container.append(wrapper);
|
|
43
|
+
function asNegativeValue(modifier, lookup = {
|
|
44
|
+
}, validate) {
|
|
45
|
+
let positiveValue = lookup[modifier];
|
|
46
|
+
if (positiveValue !== undefined) {
|
|
47
|
+
return (0, _negateValue).default(positiveValue);
|
|
173
48
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
} = {}) {
|
|
181
|
-
return ({
|
|
182
|
-
container
|
|
183
|
-
}) => {
|
|
184
|
-
container.walkRules(rule => {
|
|
185
|
-
let selector = rule.selector;
|
|
186
|
-
let variantSelector = updateLastClasses(selector, transformClass);
|
|
187
|
-
rule.selector = variantSelector;
|
|
188
|
-
|
|
189
|
-
if (withRule) {
|
|
190
|
-
withRule(rule);
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
return rule;
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
if (wrap) {
|
|
197
|
-
let wrapper = wrap();
|
|
198
|
-
let nodes = container.nodes;
|
|
199
|
-
container.removeAll();
|
|
200
|
-
wrapper.append(nodes);
|
|
201
|
-
container.append(wrapper);
|
|
49
|
+
if (isArbitraryValue(modifier)) {
|
|
50
|
+
let resolved = resolveArbitraryValue(modifier, validate);
|
|
51
|
+
if (resolved === undefined) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
return (0, _negateValue).default(resolved);
|
|
202
55
|
}
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
function asValue(modifier, lookup = {}, {
|
|
207
|
-
validate = () => true
|
|
208
|
-
} = {}) {
|
|
209
|
-
let value = lookup[modifier];
|
|
210
|
-
|
|
211
|
-
if (value !== undefined) {
|
|
212
|
-
return value;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
if (modifier[0] !== '[' || modifier[modifier.length - 1] !== ']') {
|
|
216
|
-
return undefined;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
value = modifier.slice(1, -1);
|
|
220
|
-
|
|
221
|
-
if (!validate(value)) {
|
|
222
|
-
return undefined;
|
|
223
|
-
} // convert `_` to ` `, escept for escaped underscores `\_`
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
value = value.replace(/([^\\])_/g, '$1 ').replace(/^_/g, ' ').replace(/\\_/g, '_'); // add spaces around operators inside calc() that do not follow an operator or (
|
|
227
|
-
|
|
228
|
-
return value.replace(/(-?\d*\.?\d(?!\b-.+[,)](?![^+\-/*])\D)(?:%|[a-z]+)?|\))([+\-/*])/g, '$1 $2 ');
|
|
229
56
|
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
57
|
+
function asValue(modifier, options = {
|
|
58
|
+
}, { validate =()=>true
|
|
59
|
+
} = {
|
|
60
|
+
}) {
|
|
61
|
+
var ref;
|
|
62
|
+
let value = (ref = options.values) === null || ref === void 0 ? void 0 : ref[modifier];
|
|
63
|
+
if (value !== undefined) {
|
|
64
|
+
return value;
|
|
65
|
+
}
|
|
66
|
+
if (options.supportsNegativeValues && modifier.startsWith('-')) {
|
|
67
|
+
return asNegativeValue(modifier.slice(1), options.values, validate);
|
|
236
68
|
}
|
|
237
|
-
|
|
69
|
+
return resolveArbitraryValue(modifier, validate);
|
|
238
70
|
}
|
|
239
|
-
|
|
240
71
|
function isArbitraryValue(input) {
|
|
241
|
-
|
|
72
|
+
return input.startsWith('[') && input.endsWith(']');
|
|
242
73
|
}
|
|
243
|
-
|
|
244
74
|
function splitAlpha(modifier) {
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
return [modifier.slice(0, slashIdx), modifier.slice(slashIdx + 1)];
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
function asColor(modifier, lookup = {}, tailwindConfig = {}) {
|
|
255
|
-
if (lookup[modifier] !== undefined) {
|
|
256
|
-
return lookup[modifier];
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
let [color, alpha] = splitAlpha(modifier);
|
|
260
|
-
|
|
261
|
-
if (lookup[color] !== undefined) {
|
|
262
|
-
var _tailwindConfig$theme, _tailwindConfig$theme2;
|
|
263
|
-
|
|
264
|
-
if (isArbitraryValue(alpha)) {
|
|
265
|
-
return (0, _withAlphaVariable.withAlphaValue)(lookup[color], alpha.slice(1, -1));
|
|
75
|
+
let slashIdx = modifier.lastIndexOf('/');
|
|
76
|
+
if (slashIdx === -1 || slashIdx === modifier.length - 1) {
|
|
77
|
+
return [
|
|
78
|
+
modifier
|
|
79
|
+
];
|
|
266
80
|
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
81
|
+
return [
|
|
82
|
+
modifier.slice(0, slashIdx),
|
|
83
|
+
modifier.slice(slashIdx + 1)
|
|
84
|
+
];
|
|
85
|
+
}
|
|
86
|
+
function asColor(modifier, options = {
|
|
87
|
+
}, { tailwindConfig ={
|
|
88
|
+
} } = {
|
|
89
|
+
}) {
|
|
90
|
+
var ref;
|
|
91
|
+
if (((ref = options.values) === null || ref === void 0 ? void 0 : ref[modifier]) !== undefined) {
|
|
92
|
+
var ref1;
|
|
93
|
+
return (ref1 = options.values) === null || ref1 === void 0 ? void 0 : ref1[modifier];
|
|
270
94
|
}
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
95
|
+
let [color, alpha] = splitAlpha(modifier);
|
|
96
|
+
if (alpha !== undefined) {
|
|
97
|
+
var ref2, ref3, ref4;
|
|
98
|
+
var ref5;
|
|
99
|
+
let normalizedColor = (ref5 = (ref2 = options.values) === null || ref2 === void 0 ? void 0 : ref2[color]) !== null && ref5 !== void 0 ? ref5 : isArbitraryValue(color) ? color.slice(1, -1) : undefined;
|
|
100
|
+
if (normalizedColor === undefined) {
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
if (isArbitraryValue(alpha)) {
|
|
104
|
+
return (0, _withAlphaVariable).withAlphaValue(normalizedColor, alpha.slice(1, -1));
|
|
105
|
+
}
|
|
106
|
+
if (((ref3 = tailwindConfig.theme) === null || ref3 === void 0 ? void 0 : (ref4 = ref3.opacity) === null || ref4 === void 0 ? void 0 : ref4[alpha]) === undefined) {
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
return (0, _withAlphaVariable).withAlphaValue(normalizedColor, tailwindConfig.theme.opacity[alpha]);
|
|
110
|
+
}
|
|
111
|
+
return asValue(modifier, options, {
|
|
112
|
+
validate: _dataTypes.color
|
|
113
|
+
});
|
|
282
114
|
}
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
115
|
+
function asLookupValue(modifier, options = {
|
|
116
|
+
}) {
|
|
117
|
+
var ref;
|
|
118
|
+
return (ref = options.values) === null || ref === void 0 ? void 0 : ref[modifier];
|
|
286
119
|
}
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
120
|
+
function guess(validate) {
|
|
121
|
+
return (modifier, options)=>{
|
|
122
|
+
return asValue(modifier, options, {
|
|
123
|
+
validate
|
|
124
|
+
});
|
|
125
|
+
};
|
|
290
126
|
}
|
|
291
|
-
|
|
292
127
|
let typeMap = {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
128
|
+
any: asValue,
|
|
129
|
+
color: asColor,
|
|
130
|
+
url: guess(_dataTypes.url),
|
|
131
|
+
image: guess(_dataTypes.image),
|
|
132
|
+
length: guess(_dataTypes.length),
|
|
133
|
+
percentage: guess(_dataTypes.percentage),
|
|
134
|
+
position: guess(_dataTypes.position),
|
|
135
|
+
lookup: asLookupValue,
|
|
136
|
+
'generic-name': guess(_dataTypes.genericName),
|
|
137
|
+
'family-name': guess(_dataTypes.familyName),
|
|
138
|
+
number: guess(_dataTypes.number),
|
|
139
|
+
'line-width': guess(_dataTypes.lineWidth),
|
|
140
|
+
'absolute-size': guess(_dataTypes.absoluteSize),
|
|
141
|
+
'relative-size': guess(_dataTypes.relativeSize),
|
|
142
|
+
shadow: guess(_dataTypes.shadow)
|
|
298
143
|
};
|
|
299
|
-
|
|
144
|
+
let supportedTypes = Object.keys(typeMap);
|
|
300
145
|
function splitAtFirst(input, delim) {
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
146
|
+
let idx = input.indexOf(delim);
|
|
147
|
+
if (idx === -1) return [
|
|
148
|
+
undefined,
|
|
149
|
+
input
|
|
150
|
+
];
|
|
151
|
+
return [
|
|
152
|
+
input.slice(0, idx),
|
|
153
|
+
input.slice(idx + 1)
|
|
154
|
+
];
|
|
155
|
+
}
|
|
156
|
+
function coerceValue(types, modifier, options, tailwindConfig) {
|
|
157
|
+
if (isArbitraryValue(modifier)) {
|
|
158
|
+
let arbitraryValue = modifier.slice(1, -1);
|
|
159
|
+
let [explicitType, value] = splitAtFirst(arbitraryValue, ':');
|
|
160
|
+
// It could be that this resolves to `url(https` which is not a valid
|
|
161
|
+
// identifier. We currently only support "simple" words with dashes or
|
|
162
|
+
// underscores. E.g.: family-name
|
|
163
|
+
if (!/^[\w-_]+$/g.test(explicitType)) {
|
|
164
|
+
value = arbitraryValue;
|
|
165
|
+
} else if (explicitType !== undefined && !supportedTypes.includes(explicitType)) {
|
|
166
|
+
return [];
|
|
167
|
+
}
|
|
168
|
+
if (value.length > 0 && supportedTypes.includes(explicitType)) {
|
|
169
|
+
return [
|
|
170
|
+
asValue(`[${value}]`, options),
|
|
171
|
+
explicitType
|
|
172
|
+
];
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Find first matching type
|
|
176
|
+
for (let type of [].concat(types)){
|
|
177
|
+
let result = typeMap[type](modifier, options, {
|
|
178
|
+
tailwindConfig
|
|
179
|
+
});
|
|
180
|
+
if (result) return [
|
|
181
|
+
result,
|
|
182
|
+
type
|
|
183
|
+
];
|
|
312
184
|
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
return [typeMap[scaleType](modifier, values, tailwindConfig), scaleType];
|
|
318
|
-
}
|
|
185
|
+
return [];
|
|
186
|
+
}
|
|
@@ -1,23 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
5
|
exports.default = _default;
|
|
7
|
-
|
|
8
6
|
var _postcssSelectorParser = _interopRequireDefault(require("postcss-selector-parser"));
|
|
9
|
-
|
|
10
7
|
var _tap = require("./tap");
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
function _interopRequireDefault(obj) {
|
|
9
|
+
return obj && obj.__esModule ? obj : {
|
|
10
|
+
default: obj
|
|
11
|
+
};
|
|
12
|
+
}
|
|
14
13
|
function _default(prefix, selector) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
}
|
|
14
|
+
return (0, _postcssSelectorParser).default((selectors)=>{
|
|
15
|
+
selectors.walkClasses((classSelector)=>{
|
|
16
|
+
(0, _tap).tap(classSelector.value, (baseClass)=>{
|
|
17
|
+
classSelector.value = `${prefix}${baseClass}`;
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
}).processSync(selector);
|
|
21
|
+
}
|