UNPKG

tw-merge

Version:

Merge CSS utility classes without style conflicts - small and zero config

37 lines (35 loc) 1.28 kB
function isNumericValue(value) { var _value$match; if (!value) return true; var arbitraryValue = (_value$match = value.match(/^\[(.*)\]$/)) == null ? void 0 : _value$match[1]; return !isNaN(parseInt(arbitraryValue != null ? arbitraryValue : value)); } function sortContextSection(section, separator) { return section.sort(function (a, b) { if (a.startsWith("[") || b.startsWith("[")) return 0; return a.localeCompare(b); }).join(separator); } function normalizeContext(context, separator) { if (!context) return context; var important = context.endsWith("!"); var variants = context.replace(/:!?$/, "").split(separator); var section = []; var normalizedSections = []; function commitSection() { if (section.length > 0) normalizedSections.push(sortContextSection(section, separator)); } for (var i = 0; i < variants.length; i++) { var variant = variants[i]; if (variant.startsWith("[")) { // is arbitrary variant commitSection(); normalizedSections.push(variant); section = []; } else section.push(variant); } commitSection(); return "" + normalizedSections.join(separator) + separator + (important ? "!" : ""); } export { isNumericValue, normalizeContext }; //# sourceMappingURL=utils.mjs.map