{"version":3,"file":"utils.cjs","sources":["../../../../../../../../node_modules/@tailwindcss/typography/src/utils.js"],"sourcesContent":["const isPlainObject = require('lodash.isplainobject')\n\nconst parser = require('postcss-selector-parser')\nconst parseSelector = parser()\n\nmodule.exports = {\n  isUsableColor(color, values) {\n    return isPlainObject(values) && color !== 'gray' && values[600]\n  },\n\n  /**\n   * @param {string} selector\n   */\n  commonTrailingPseudos(selector) {\n    let ast = parseSelector.astSync(selector)\n\n    /** @type {import('postcss-selector-parser').Pseudo[][]} */\n    let matrix = []\n\n    // Put the pseudo elements in reverse order in a sparse, column-major 2D array\n    for (let [i, sel] of ast.nodes.entries()) {\n      for (const [j, child] of [...sel.nodes].reverse().entries()) {\n        // We only care about pseudo elements\n        if (child.type !== 'pseudo' || !child.value.startsWith('::')) {\n          break\n        }\n\n        matrix[j] = matrix[j] || []\n        matrix[j][i] = child\n      }\n    }\n\n    let trailingPseudos = parser.selector()\n\n    // At this point the pseudo elements are in a column-major 2D array\n    // This means each row contains one \"column\" of pseudo elements from each selector\n    // We can compare all the pseudo elements in a row to see if they are the same\n    for (const pseudos of matrix) {\n      // It's a sparse 2D array so there are going to be holes in the rows\n      // We skip those\n      if (!pseudos) {\n        continue\n      }\n\n      let values = new Set([...pseudos.map((p) => p.value)])\n\n      // The pseudo elements are not the same\n      if (values.size > 1) {\n        break\n      }\n\n      pseudos.forEach((pseudo) => pseudo.remove())\n      trailingPseudos.prepend(pseudos[0])\n    }\n\n    if (trailingPseudos.nodes.length) {\n      return [trailingPseudos.toString(), ast.toString()]\n    }\n\n    return [null, selector]\n  },\n}\n"],"names":["require$$0","require$$1"],"mappings":";;;;;AAAA,MAAM,aAAa,GAAGA,6BAA+B;AACrD;AACA,MAAM,MAAM,GAAGC,kBAAkC;AACjD,MAAM,aAAa,GAAG,MAAM,GAAE;AAC9B;AACA,IAAA,KAAc,GAAG;AACjB,EAAE,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE;AAC/B,IAAI,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC;AACnE,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,qBAAqB,CAAC,QAAQ,EAAE;AAClC,IAAI,IAAI,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAC;AAC7C;AACA;AACA,IAAI,IAAI,MAAM,GAAG,GAAE;AACnB;AACA;AACA,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;AAC9C,MAAM,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;AACnE;AACA,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACtE,UAAU,KAAK;AACf,SAAS;AACT;AACA,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,GAAE;AACnC,QAAQ,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAK;AAC5B,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,eAAe,GAAG,MAAM,CAAC,QAAQ,GAAE;AAC3C;AACA;AACA;AACA;AACA,IAAI,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE;AAClC;AACA;AACA,MAAM,IAAI,CAAC,OAAO,EAAE;AACpB,QAAQ,QAAQ;AAChB,OAAO;AACP;AACA,MAAM,IAAI,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC;AAC5D;AACA;AACA,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE;AAC3B,QAAQ,KAAK;AACb,OAAO;AACP;AACA,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,EAAC;AAClD,MAAM,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC;AACzC,KAAK;AACL;AACA,IAAI,IAAI,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE;AACtC,MAAM,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;AACzD,KAAK;AACL;AACA,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC3B,GAAG;AACH;;;;","x_google_ignoreList":[0]}