/opt/canhelp/node_modules/tailwindcss/src/lib
NameSizeModeActions
cacheInvalidation.js13860644editdlrm
collapseAdjacentRules.js15310644editdlrm
collapseDuplicateDeclarations.js29520644editdlrm
content.js91960644editdlrm
defaultExtractor.js75510644editdlrm
evaluateTailwindFunctions.js74150644editdlrm
expandApplyAtRules.js194070644editdlrm
expandTailwindAtRules.js82420644editdlrm
findAtConfigPath.js13630644editdlrm
generateRules.js290730644editdlrm
getModuleDependencies.js22500644editdlrm
load-config.ts10590644editdlrm
normalizeTailwindDirectives.js28580644editdlrm
offsets.js121900644editdlrm
partitionApplyAtRules.js10090644editdlrm
regex.js18560644editdlrm
remap-bitfield.js25480644editdlrm
resolveDefaultsAtRules.js47570644editdlrm
setupContextUtils.js426430644editdlrm
setupTrackingContext.js64140644editdlrm
sharedState.js14450644editdlrm
substituteScreenAtRules.js6000644editdlrm
Edit: /opt/canhelp/node_modules/tailwindcss/src/lib/collapseAdjacentRules.js (1531B)
let comparisonMap = { atrule: ['name', 'params'], rule: ['selector'], } let types = new Set(Object.keys(comparisonMap)) export default function collapseAdjacentRules() { function collapseRulesIn(root) { let currentRule = null root.each((node) => { if (!types.has(node.type)) { currentRule = null return } if (currentRule === null) { currentRule = node return } let properties = comparisonMap[node.type] if (node.type === 'atrule' && node.name === 'font-face') { currentRule = node } else if ( properties.every( (property) => (node[property] ?? '').replace(/\s+/g, ' ') === (currentRule[property] ?? '').replace(/\s+/g, ' ') ) ) { // An AtRule may not have children (for example if we encounter duplicate @import url(…) rules) if (node.nodes) { currentRule.append(node.nodes) } node.remove() } else { currentRule = node } }) // After we've collapsed adjacent rules & at-rules, we need to collapse // adjacent rules & at-rules that are children of at-rules. // We do not care about nesting rules because Tailwind CSS // explicitly does not handle rule nesting on its own as // the user is expected to use a nesting plugin root.each((node) => { if (node.type === 'atrule') { collapseRulesIn(node) } }) } return (root) => { collapseRulesIn(root) } }