first commit
This commit is contained in:
69
node_modules/tailwind-merge/dist/lib/modifier-utils.mjs
generated
vendored
Normal file
69
node_modules/tailwind-merge/dist/lib/modifier-utils.mjs
generated
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
var IMPORTANT_MODIFIER = '!';
|
||||
function createSplitModifiers(config) {
|
||||
var separator = config.separator || ':';
|
||||
var isSeparatorSingleCharacter = separator.length === 1;
|
||||
var firstSeparatorCharacter = separator[0];
|
||||
var separatorLength = separator.length;
|
||||
// splitModifiers inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js
|
||||
return function splitModifiers(className) {
|
||||
var modifiers = [];
|
||||
var bracketDepth = 0;
|
||||
var modifierStart = 0;
|
||||
var postfixModifierPosition;
|
||||
for (var index = 0; index < className.length; index++) {
|
||||
var currentCharacter = className[index];
|
||||
if (bracketDepth === 0) {
|
||||
if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {
|
||||
modifiers.push(className.slice(modifierStart, index));
|
||||
modifierStart = index + separatorLength;
|
||||
continue;
|
||||
}
|
||||
if (currentCharacter === '/') {
|
||||
postfixModifierPosition = index;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (currentCharacter === '[') {
|
||||
bracketDepth++;
|
||||
} else if (currentCharacter === ']') {
|
||||
bracketDepth--;
|
||||
}
|
||||
}
|
||||
var baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);
|
||||
var hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);
|
||||
var baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;
|
||||
var maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;
|
||||
return {
|
||||
modifiers: modifiers,
|
||||
hasImportantModifier: hasImportantModifier,
|
||||
baseClassName: baseClassName,
|
||||
maybePostfixModifierPosition: maybePostfixModifierPosition
|
||||
};
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Sorts modifiers according to following schema:
|
||||
* - Predefined modifiers are sorted alphabetically
|
||||
* - When an arbitrary variant appears, it must be preserved which modifiers are before and after it
|
||||
*/
|
||||
function sortModifiers(modifiers) {
|
||||
if (modifiers.length <= 1) {
|
||||
return modifiers;
|
||||
}
|
||||
var sortedModifiers = [];
|
||||
var unsortedModifiers = [];
|
||||
modifiers.forEach(function (modifier) {
|
||||
var isArbitraryVariant = modifier[0] === '[';
|
||||
if (isArbitraryVariant) {
|
||||
sortedModifiers.push.apply(sortedModifiers, unsortedModifiers.sort().concat([modifier]));
|
||||
unsortedModifiers = [];
|
||||
} else {
|
||||
unsortedModifiers.push(modifier);
|
||||
}
|
||||
});
|
||||
sortedModifiers.push.apply(sortedModifiers, unsortedModifiers.sort());
|
||||
return sortedModifiers;
|
||||
}
|
||||
|
||||
export { IMPORTANT_MODIFIER, createSplitModifiers, sortModifiers };
|
||||
//# sourceMappingURL=modifier-utils.mjs.map
|
||||
Reference in New Issue
Block a user