{"version":3,"sources":["jsdelivr-header.js","/npm/postcss-unique-selectors@7.0.6/src/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aACA,MAAM,eAAiB,QAAQ,2BAM/B,SAAS,uBAAuB,GAE9B,MAAM,EAAkB,IAAI,IA8B5B,OAFA,gBAzBgC,IAC9B,IAAK,MAAM,KAAQ,EAAQ,MAAO,CAEhC,MAAM,EAAW,GAGX,EAAU,EAAK,QACrB,EAAQ,MAAM,IACK,YAAb,EAAI,OACN,EAAS,KAAK,EAAI,OAClB,EAAI,SACN,IAEF,MAAM,EAAM,EAAQ,WAAW,OAEzB,EAAe,EAAgB,IAAI,GACpC,EAEM,EAAS,QAElB,EAAgB,IAAI,EAAK,GAAG,IAAe,EAAS,KAAK,OAHzD,EAAgB,IAAI,EAAK,EAAK,WAKlC,KAGqC,YAAY,GAE5C,IAAI,EAAgB,WACxB,MAAK,EAAE,IAAK,KAAQ,EAAI,EAAI,EAAI,EAAI,GAAK,EAAI,IAC7C,KAAI,EAAE,CAAE,KAAc,IACtB,MACL,CAKA,SAAS,gBACP,MAAO,CACL,cAAe,2BACf,QAAA,CAAS,GACP,EAAI,WAAW,IACT,EAAM,KAAK,UAAY,EAAM,KAAK,SAAS,IAC7C,EAAM,KAAK,SAAS,IAAM,uBACxB,EAAM,KAAK,SAAS,KAGtB,EAAM,SAAW,uBAAuB,EAAM,SAChD,GAEJ,EAEJ,CAEA,cAAc,SAAU,EACxB,OAAO,QAAU","file":"/npm/postcss-unique-selectors@7.0.6/src/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/postcss-unique-selectors@7.0.6/src/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\nconst selectorParser = require('postcss-selector-parser');\n\n/**\n * @param {string} selectors\n * @return {string}\n */\nfunction generateUniqueSelector(selectors) {\n  /** @type {Map<string, string>} */\n  const uniqueSelectors = new Map();\n\n  /** @type {selectorParser.SyncProcessor<void>} */\n  const collectUniqueSelectors = (selNode) => {\n    for (const node of selNode.nodes) {\n      /** @type {string[]} */\n      const comments = [];\n\n      // Duplicates are removed by stripping the comments and using the results as the Map key.\n      const keyNode = node.clone();\n      keyNode.walk((sel) => {\n        if (sel.type === 'comment') {\n          comments.push(sel.value);\n          sel.remove();\n        }\n      });\n      const key = keyNode.toString().trim();\n\n      const dupeSelector = uniqueSelectors.get(key);\n      if (!dupeSelector) {\n        uniqueSelectors.set(key, node.toString());\n      } else if (comments.length) {\n        // If the duplicate selector has a comment, it is concatenated to the end of the selector.\n        uniqueSelectors.set(key, `${dupeSelector}${comments.join('')}`);\n      }\n    }\n  };\n\n  selectorParser(collectUniqueSelectors).processSync(selectors);\n\n  return [...uniqueSelectors.entries()]\n    .sort(([a], [b]) => (a > b ? 1 : a < b ? -1 : 0))\n    .map(([, selector]) => selector)\n    .join();\n}\n/**\n * @type {import('postcss').PluginCreator<void>}\n * @return {import('postcss').Plugin}\n */\nfunction pluginCreator() {\n  return {\n    postcssPlugin: 'postcss-unique-selectors',\n    OnceExit(css) {\n      css.walkRules((nodes) => {\n        if (nodes.raws.selector && nodes.raws.selector.raw) {\n          nodes.raws.selector.raw = generateUniqueSelector(\n            nodes.raws.selector.raw\n          );\n        } else {\n          nodes.selector = generateUniqueSelector(nodes.selector);\n        }\n      });\n    },\n  };\n}\n\npluginCreator.postcss = true;\nmodule.exports = pluginCreator;\n"]}