jsx-email
Version:
Render JSX email components to HTML email
28 lines • 1.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.plugin = exports.replacer = exports.reReplace = exports.reFunction = void 0;
exports.reFunction = /((rgb|hsl)a?)\(\s*(\d+)\s*(\d+)\s*(\d+)(?:\s*\/\s*([\d%.]+))?\s*\)/i;
exports.reReplace = new RegExp(exports.reFunction.source, 'gi');
const replacer = (_, name, __, r, g, b, a) => {
const values = [r, g, b, !!a && a !== '1' ? a : ''].filter(Boolean).join(',');
return `${name}(${values})`;
};
exports.replacer = replacer;
const plugin = () => {
return {
Declaration: (decl) => {
const { value } = decl;
if (!exports.reFunction.test(value))
return;
const replaced = value.replaceAll(exports.reReplace, exports.replacer);
if (value === replaced)
return;
decl.cloneBefore({ value: replaced });
decl.remove();
},
postcssPlugin: 'jsx-color-functions'
};
};
exports.plugin = plugin;
exports.plugin.postcss = true;
//# sourceMappingURL=color-functions.js.map