Files
dewedev/node_modules/postcss-initial/index.js
dwindown 7f2dd5260f Initial commit: Developer Tools MVP with visual editor
- Complete React app with 7 developer tools
- JSON Tool with visual structured editor
- Serialize Tool with visual structured editor
- URL, Base64, CSV/JSON, Beautifier, Diff tools
- Responsive navigation with dropdown menu
- Dark/light mode toggle
- Mobile-responsive design with sticky header
- All tools working with copy/paste functionality
2025-08-02 09:31:26 +07:00

39 lines
1.0 KiB
JavaScript

var makeFallbackFunction = require('./lib/rules-fabric');
module.exports = function postcssInitial(opts) {
opts = opts || {};
opts.reset = opts.reset || 'all';
opts.replace = opts.replace || false;
var getFallback = makeFallbackFunction(opts.reset === 'inherited');
var getPropPrevTo = function (prop, decl) {
var foundPrev = false;
decl.parent.walkDecls(function (child) {
if (child.prop === decl.prop && child.value !== decl.value) {
foundPrev = true;
}
});
return foundPrev;
};
return {
postcssPlugin: 'postcss-initial',
Declaration: function (decl) {
if (!/\binitial\b/.test(decl.value)) {
return;
}
var fallBackRules = getFallback(decl.prop, decl.value);
if (fallBackRules.length === 0) return;
fallBackRules.forEach(function (rule) {
if ( !getPropPrevTo(decl.prop, decl) ) {
decl.cloneBefore(rule);
}
});
if (opts.replace === true) {
decl.remove();
}
}
};
};
module.exports.postcss = true;