{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["\nimport parser from 'postcss-selector-parser';\nimport type { PluginCreator } from 'postcss';\n\nconst creator: PluginCreator<{ preserve?: boolean, replaceWith?: string }> = (opts?: { preserve?: boolean, replaceWith?: string }) => {\n\topts = Object(opts);\n\tconst preserve = Boolean('preserve' in opts ? opts.preserve : true);\n\tconst replaceWith = String(opts.replaceWith || '.focus-visible');\n\tconst replacementAST = parser().astSync(replaceWith);\n\n\treturn {\n\t\tpostcssPlugin: 'postcss-focus-visible',\n\t\tRule(rule, { result }) {\n\t\t\tif (!rule.selector.includes(':focus-visible')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet modifiedSelector;\n\n\t\t\ttry {\n\t\t\t\tconst modifiedSelectorAST = parser((selectors) => {\n\t\t\t\t\tselectors.walkPseudos((pseudo) => {\n\t\t\t\t\t\tif (pseudo.value !== ':focus-visible') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (pseudo.nodes && pseudo.nodes.length) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tpseudo.replaceWith(replacementAST.clone({}));\n\t\t\t\t\t});\n\t\t\t\t}).processSync(rule.selector);\n\n\t\t\t\tmodifiedSelector = String(modifiedSelectorAST);\n\t\t\t} catch (_) {\n\t\t\t\trule.warn(result, `Failed to parse selector : ${rule.selector}`);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof modifiedSelector === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (modifiedSelector === rule.selector) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst clone = rule.clone({ selector: modifiedSelector });\n\n\t\t\tif (preserve) {\n\t\t\t\trule.before(clone);\n\t\t\t} else {\n\t\t\t\trule.replaceWith(clone);\n\t\t\t}\n\t\t},\n\t};\n};\n\ncreator.postcss = true;\n\nexport default creator;\n"],"names":["creator","opts","Object","preserve","Boolean","replaceWith","String","replacementAST","parser","astSync","postcssPlugin","Rule","rule","result","selector","includes","modifiedSelector","modifiedSelectorAST","selectors","walkPseudos","pseudo","value","nodes","length","clone","processSync","_","warn","before","postcss"],"mappings":"uIAIMA,EAAwEC,IAC7EA,EAAOC,OAAOD,GACd,MAAME,EAAWC,UAAQ,aAAcH,IAAOA,EAAKE,UAC7CE,EAAcC,OAAOL,EAAKI,aAAe,kBACzCE,EAAiBC,YAASC,QAAQJ,GAExC,MAAO,CACNK,cAAe,wBACfC,KAAKC,GAAMC,OAAEA,IACZ,IAAKD,EAAKE,SAASC,SAAS,kBAC3B,OAGD,IAAIC,EAEJ,IACC,MAAMC,EAAsBT,WAAQU,IACnCA,EAAUC,aAAaC,IACD,mBAAjBA,EAAOC,QAIPD,EAAOE,OAASF,EAAOE,MAAMC,QAIjCH,EAAOf,YAAYE,EAAeiB,MAAM,YAEvCC,YAAYb,EAAKE,UAEpBE,EAAmBV,OAAOW,GACzB,MAAOS,GAER,YADAd,EAAKe,KAAKd,EAAQ,8BAA8BD,EAAKE,YAItD,QAAgC,IAArBE,EACV,OAGD,GAAIA,IAAqBJ,EAAKE,SAC7B,OAGD,MAAMU,EAAQZ,EAAKY,MAAM,CAAEV,SAAUE,IAEjCb,EACHS,EAAKgB,OAAOJ,GAEZZ,EAAKP,YAAYmB,MAMrBxB,EAAQ6B,SAAU"}