PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` 'use strict'; const browserslist = require('browserslist'); const plugins = require('./plugins'); /** @typedef {{lint?: boolean}} Options */ /** * @type {import('postcss').PluginCreator} * @param {Options} opts * @return {import('postcss').Plugin} */ function pluginCreator(opts = {}) { return { postcssPlugin: 'stylehacks', OnceExit(css, { result }) { /** @type {typeof result.opts & browserslist.Options} */ const resultOpts = result.opts || {}; const browsers = browserslist(null, { stats: resultOpts.stats, path: __dirname, env: resultOpts.env, }); /** @type {import('./plugin').Plugin[]} */ const processors = []; for (const Plugin of plugins) { const hack = new Plugin(result); if (!browsers.some((browser) => hack.targets.has(browser))) { processors.push(hack); } } css.walk((node) => { processors.forEach((proc) => { if (!proc.nodeTypes.has(node.type)) { return; } if (opts.lint) { return proc.detectAndWarn(node); } return proc.detectAndResolve(node); }); }); }, }; } /** @type {(node: import('postcss').Node) => boolean} */ pluginCreator.detect = (node) => { return plugins.some((Plugin) => { const hack = new Plugin(); return hack.any(node); }); }; pluginCreator.postcss = true; module.exports = pluginCreator;