{"version":3,"file":"postcss-Cq866AE6.mjs","sources":["../node_modules/picocolors/picocolors.browser.js","../__vite-browser-external","../node_modules/postcss/lib/css-syntax-error.js","../node_modules/postcss/lib/stringifier.js","../node_modules/postcss/lib/stringify.js","../node_modules/postcss/lib/symbols.js","../node_modules/postcss/lib/node.js","../node_modules/postcss/lib/comment.js","../node_modules/postcss/lib/declaration.js","../node_modules/postcss/lib/container.js","../node_modules/postcss/lib/at-rule.js","../node_modules/postcss/lib/document.js","../node_modules/nanoid/non-secure/index.cjs","../node_modules/postcss/lib/previous-map.js","../node_modules/postcss/lib/input.js","../node_modules/postcss/lib/root.js","../node_modules/postcss/lib/list.js","../node_modules/postcss/lib/rule.js","../node_modules/postcss/lib/fromJSON.js","../node_modules/postcss/lib/map-generator.js","../node_modules/postcss/lib/tokenize.js","../node_modules/postcss/lib/parser.js","../node_modules/postcss/lib/parse.js","../node_modules/postcss/lib/warning.js","../node_modules/postcss/lib/result.js","../node_modules/postcss/lib/warn-once.js","../node_modules/postcss/lib/lazy-result.js","../node_modules/postcss/lib/no-work-result.js","../node_modules/postcss/lib/processor.js","../node_modules/postcss/lib/postcss.js","../node_modules/postcss/lib/postcss.mjs"],"sourcesContent":["var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x,blackBright:x,redBright:x,greenBright:x,yellowBright:x,blueBright:x,magentaBright:x,cyanBright:x,whiteBright:x,bgBlackBright:x,bgRedBright:x,bgGreenBright:x,bgYellowBright:x,bgBlueBright:x,bgMagentaBright:x,bgCyanBright:x,bgWhiteBright:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","export default {}","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n  constructor(message, line, column, source, file, plugin) {\n    super(message)\n    this.name = 'CssSyntaxError'\n    this.reason = message\n\n    if (file) {\n      this.file = file\n    }\n    if (source) {\n      this.source = source\n    }\n    if (plugin) {\n      this.plugin = plugin\n    }\n    if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n      if (typeof line === 'number') {\n        this.line = line\n        this.column = column\n      } else {\n        this.line = line.line\n        this.column = line.column\n        this.endLine = column.line\n        this.endColumn = column.column\n      }\n    }\n\n    this.setMessage()\n\n    if (Error.captureStackTrace) {\n      Error.captureStackTrace(this, CssSyntaxError)\n    }\n  }\n\n  setMessage() {\n    this.message = this.plugin ? this.plugin + ': ' : ''\n    this.message += this.file ? this.file : '<css input>'\n    if (typeof this.line !== 'undefined') {\n      this.message += ':' + this.line + ':' + this.column\n    }\n    this.message += ': ' + this.reason\n  }\n\n  showSourceCode(color) {\n    if (!this.source) return ''\n\n    let css = this.source\n    if (color == null) color = pico.isColorSupported\n\n    let aside = text => text\n    let mark = text => text\n    let highlight = text => text\n    if (color) {\n      let { bold, gray, red } = pico.createColors(true)\n      mark = text => bold(red(text))\n      aside = text => gray(text)\n      if (terminalHighlight) {\n        highlight = text => terminalHighlight(text)\n      }\n    }\n\n    let lines = css.split(/\\r?\\n/)\n    let start = Math.max(this.line - 3, 0)\n    let end = Math.min(this.line + 2, lines.length)\n    let maxWidth = String(end).length\n\n    return lines\n      .slice(start, end)\n      .map((line, index) => {\n        let number = start + 1 + index\n        let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n        if (number === this.line) {\n          if (line.length > 160) {\n            let padding = 20\n            let subLineStart = Math.max(0, this.column - padding)\n            let subLineEnd = Math.max(\n              this.column + padding,\n              this.endColumn + padding\n            )\n            let subLine = line.slice(subLineStart, subLineEnd)\n\n            let spacing =\n              aside(gutter.replace(/\\d/g, ' ')) +\n              line\n                .slice(0, Math.min(this.column - 1, padding - 1))\n                .replace(/[^\\t]/g, ' ')\n\n            return (\n              mark('>') +\n              aside(gutter) +\n              highlight(subLine) +\n              '\\n ' +\n              spacing +\n              mark('^')\n            )\n          }\n\n          let spacing =\n            aside(gutter.replace(/\\d/g, ' ')) +\n            line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n\n          return (\n            mark('>') +\n            aside(gutter) +\n            highlight(line) +\n            '\\n ' +\n            spacing +\n            mark('^')\n          )\n        }\n\n        return ' ' + aside(gutter) + highlight(line)\n      })\n      .join('\\n')\n  }\n\n  toString() {\n    let code = this.showSourceCode()\n    if (code) {\n      code = '\\n\\n' + code + '\\n'\n    }\n    return this.name + ': ' + this.message + code\n  }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nconst DEFAULT_RAW = {\n  after: '\\n',\n  beforeClose: '\\n',\n  beforeComment: '\\n',\n  beforeDecl: '\\n',\n  beforeOpen: ' ',\n  beforeRule: '\\n',\n  colon: ': ',\n  commentLeft: ' ',\n  commentRight: ' ',\n  emptyBody: '',\n  indent: '    ',\n  semicolon: false\n}\n\nfunction capitalize(str) {\n  return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n  constructor(builder) {\n    this.builder = builder\n  }\n\n  atrule(node, semicolon) {\n    let name = '@' + node.name\n    let params = node.params ? this.rawValue(node, 'params') : ''\n\n    if (typeof node.raws.afterName !== 'undefined') {\n      name += node.raws.afterName\n    } else if (params) {\n      name += ' '\n    }\n\n    if (node.nodes) {\n      this.block(node, name + params)\n    } else {\n      let end = (node.raws.between || '') + (semicolon ? ';' : '')\n      this.builder(name + params + end, node)\n    }\n  }\n\n  beforeAfter(node, detect) {\n    let value\n    if (node.type === 'decl') {\n      value = this.raw(node, null, 'beforeDecl')\n    } else if (node.type === 'comment') {\n      value = this.raw(node, null, 'beforeComment')\n    } else if (detect === 'before') {\n      value = this.raw(node, null, 'beforeRule')\n    } else {\n      value = this.raw(node, null, 'beforeClose')\n    }\n\n    let buf = node.parent\n    let depth = 0\n    while (buf && buf.type !== 'root') {\n      depth += 1\n      buf = buf.parent\n    }\n\n    if (value.includes('\\n')) {\n      let indent = this.raw(node, null, 'indent')\n      if (indent.length) {\n        for (let step = 0; step < depth; step++) value += indent\n      }\n    }\n\n    return value\n  }\n\n  block(node, start) {\n    let between = this.raw(node, 'between', 'beforeOpen')\n    this.builder(start + between + '{', node, 'start')\n\n    let after\n    if (node.nodes && node.nodes.length) {\n      this.body(node)\n      after = this.raw(node, 'after')\n    } else {\n      after = this.raw(node, 'after', 'emptyBody')\n    }\n\n    if (after) this.builder(after)\n    this.builder('}', node, 'end')\n  }\n\n  body(node) {\n    let last = node.nodes.length - 1\n    while (last > 0) {\n      if (node.nodes[last].type !== 'comment') break\n      last -= 1\n    }\n\n    let semicolon = this.raw(node, 'semicolon')\n    for (let i = 0; i < node.nodes.length; i++) {\n      let child = node.nodes[i]\n      let before = this.raw(child, 'before')\n      if (before) this.builder(before)\n      this.stringify(child, last !== i || semicolon)\n    }\n  }\n\n  comment(node) {\n    let left = this.raw(node, 'left', 'commentLeft')\n    let right = this.raw(node, 'right', 'commentRight')\n    this.builder('/*' + left + node.text + right + '*/', node)\n  }\n\n  decl(node, semicolon) {\n    let between = this.raw(node, 'between', 'colon')\n    let string = node.prop + between + this.rawValue(node, 'value')\n\n    if (node.important) {\n      string += node.raws.important || ' !important'\n    }\n\n    if (semicolon) string += ';'\n    this.builder(string, node)\n  }\n\n  document(node) {\n    this.body(node)\n  }\n\n  raw(node, own, detect) {\n    let value\n    if (!detect) detect = own\n\n    // Already had\n    if (own) {\n      value = node.raws[own]\n      if (typeof value !== 'undefined') return value\n    }\n\n    let parent = node.parent\n\n    if (detect === 'before') {\n      // Hack for first rule in CSS\n      if (!parent || (parent.type === 'root' && parent.first === node)) {\n        return ''\n      }\n\n      // `root` nodes in `document` should use only their own raws\n      if (parent && parent.type === 'document') {\n        return ''\n      }\n    }\n\n    // Floating child without parent\n    if (!parent) return DEFAULT_RAW[detect]\n\n    // Detect style by other nodes\n    let root = node.root()\n    if (!root.rawCache) root.rawCache = {}\n    if (typeof root.rawCache[detect] !== 'undefined') {\n      return root.rawCache[detect]\n    }\n\n    if (detect === 'before' || detect === 'after') {\n      return this.beforeAfter(node, detect)\n    } else {\n      let method = 'raw' + capitalize(detect)\n      if (this[method]) {\n        value = this[method](root, node)\n      } else {\n        root.walk(i => {\n          value = i.raws[own]\n          if (typeof value !== 'undefined') return false\n        })\n      }\n    }\n\n    if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n    root.rawCache[detect] = value\n    return value\n  }\n\n  rawBeforeClose(root) {\n    let value\n    root.walk(i => {\n      if (i.nodes && i.nodes.length > 0) {\n        if (typeof i.raws.after !== 'undefined') {\n          value = i.raws.after\n          if (value.includes('\\n')) {\n            value = value.replace(/[^\\n]+$/, '')\n          }\n          return false\n        }\n      }\n    })\n    if (value) value = value.replace(/\\S/g, '')\n    return value\n  }\n\n  rawBeforeComment(root, node) {\n    let value\n    root.walkComments(i => {\n      if (typeof i.raws.before !== 'undefined') {\n        value = i.raws.before\n        if (value.includes('\\n')) {\n          value = value.replace(/[^\\n]+$/, '')\n        }\n        return false\n      }\n    })\n    if (typeof value === 'undefined') {\n      value = this.raw(node, null, 'beforeDecl')\n    } else if (value) {\n      value = value.replace(/\\S/g, '')\n    }\n    return value\n  }\n\n  rawBeforeDecl(root, node) {\n    let value\n    root.walkDecls(i => {\n      if (typeof i.raws.before !== 'undefined') {\n        value = i.raws.before\n        if (value.includes('\\n')) {\n          value = value.replace(/[^\\n]+$/, '')\n        }\n        return false\n      }\n    })\n    if (typeof value === 'undefined') {\n      value = this.raw(node, null, 'beforeRule')\n    } else if (value) {\n      value = value.replace(/\\S/g, '')\n    }\n    return value\n  }\n\n  rawBeforeOpen(root) {\n    let value\n    root.walk(i => {\n      if (i.type !== 'decl') {\n        value = i.raws.between\n        if (typeof value !== 'undefined') return false\n      }\n    })\n    return value\n  }\n\n  rawBeforeRule(root) {\n    let value\n    root.walk(i => {\n      if (i.nodes && (i.parent !== root || root.first !== i)) {\n        if (typeof i.raws.before !== 'undefined') {\n          value = i.raws.before\n          if (value.includes('\\n')) {\n            value = value.replace(/[^\\n]+$/, '')\n          }\n          return false\n        }\n      }\n    })\n    if (value) value = value.replace(/\\S/g, '')\n    return value\n  }\n\n  rawColon(root) {\n    let value\n    root.walkDecls(i => {\n      if (typeof i.raws.between !== 'undefined') {\n        value = i.raws.between.replace(/[^\\s:]/g, '')\n        return false\n      }\n    })\n    return value\n  }\n\n  rawEmptyBody(root) {\n    let value\n    root.walk(i => {\n      if (i.nodes && i.nodes.length === 0) {\n        value = i.raws.after\n        if (typeof value !== 'undefined') return false\n      }\n    })\n    return value\n  }\n\n  rawIndent(root) {\n    if (root.raws.indent) return root.raws.indent\n    let value\n    root.walk(i => {\n      let p = i.parent\n      if (p && p !== root && p.parent && p.parent === root) {\n        if (typeof i.raws.before !== 'undefined') {\n          let parts = i.raws.before.split('\\n')\n          value = parts[parts.length - 1]\n          value = value.replace(/\\S/g, '')\n          return false\n        }\n      }\n    })\n    return value\n  }\n\n  rawSemicolon(root) {\n    let value\n    root.walk(i => {\n      if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n        value = i.raws.semicolon\n        if (typeof value !== 'undefined') return false\n      }\n    })\n    return value\n  }\n\n  rawValue(node, prop) {\n    let value = node[prop]\n    let raw = node.raws[prop]\n    if (raw && raw.value === value) {\n      return raw.raw\n    }\n\n    return value\n  }\n\n  root(node) {\n    this.body(node)\n    if (node.raws.after) this.builder(node.raws.after)\n  }\n\n  rule(node) {\n    this.block(node, this.rawValue(node, 'selector'))\n    if (node.raws.ownSemicolon) {\n      this.builder(node.raws.ownSemicolon, node, 'end')\n    }\n  }\n\n  stringify(node, semicolon) {\n    /* c8 ignore start */\n    if (!this[node.type]) {\n      throw new Error(\n        'Unknown AST node type ' +\n          node.type +\n          '. ' +\n          'Maybe you need to change PostCSS stringifier.'\n      )\n    }\n    /* c8 ignore stop */\n    this[node.type](node, semicolon)\n  }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n  let str = new Stringifier(builder)\n  str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\nlet { isClean, my } = require('./symbols')\n\nfunction cloneNode(obj, parent) {\n  let cloned = new obj.constructor()\n\n  for (let i in obj) {\n    if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n      /* c8 ignore next 2 */\n      continue\n    }\n    if (i === 'proxyCache') continue\n    let value = obj[i]\n    let type = typeof value\n\n    if (i === 'parent' && type === 'object') {\n      if (parent) cloned[i] = parent\n    } else if (i === 'source') {\n      cloned[i] = value\n    } else if (Array.isArray(value)) {\n      cloned[i] = value.map(j => cloneNode(j, cloned))\n    } else {\n      if (type === 'object' && value !== null) value = cloneNode(value)\n      cloned[i] = value\n    }\n  }\n\n  return cloned\n}\n\nfunction sourceOffset(inputCSS, position) {\n  // Not all custom syntaxes support `offset` in `source.start` and `source.end`\n  if (position && typeof position.offset !== 'undefined') {\n    return position.offset\n  }\n\n  let column = 1\n  let line = 1\n  let offset = 0\n\n  for (let i = 0; i < inputCSS.length; i++) {\n    if (line === position.line && column === position.column) {\n      offset = i\n      break\n    }\n\n    if (inputCSS[i] === '\\n') {\n      column = 1\n      line += 1\n    } else {\n      column += 1\n    }\n  }\n\n  return offset\n}\n\nclass Node {\n  get proxyOf() {\n    return this\n  }\n\n  constructor(defaults = {}) {\n    this.raws = {}\n    this[isClean] = false\n    this[my] = true\n\n    for (let name in defaults) {\n      if (name === 'nodes') {\n        this.nodes = []\n        for (let node of defaults[name]) {\n          if (typeof node.clone === 'function') {\n            this.append(node.clone())\n          } else {\n            this.append(node)\n          }\n        }\n      } else {\n        this[name] = defaults[name]\n      }\n    }\n  }\n\n  addToError(error) {\n    error.postcssNode = this\n    if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n      let s = this.source\n      error.stack = error.stack.replace(\n        /\\n\\s{4}at /,\n        `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n      )\n    }\n    return error\n  }\n\n  after(add) {\n    this.parent.insertAfter(this, add)\n    return this\n  }\n\n  assign(overrides = {}) {\n    for (let name in overrides) {\n      this[name] = overrides[name]\n    }\n    return this\n  }\n\n  before(add) {\n    this.parent.insertBefore(this, add)\n    return this\n  }\n\n  cleanRaws(keepBetween) {\n    delete this.raws.before\n    delete this.raws.after\n    if (!keepBetween) delete this.raws.between\n  }\n\n  clone(overrides = {}) {\n    let cloned = cloneNode(this)\n    for (let name in overrides) {\n      cloned[name] = overrides[name]\n    }\n    return cloned\n  }\n\n  cloneAfter(overrides = {}) {\n    let cloned = this.clone(overrides)\n    this.parent.insertAfter(this, cloned)\n    return cloned\n  }\n\n  cloneBefore(overrides = {}) {\n    let cloned = this.clone(overrides)\n    this.parent.insertBefore(this, cloned)\n    return cloned\n  }\n\n  error(message, opts = {}) {\n    if (this.source) {\n      let { end, start } = this.rangeBy(opts)\n      return this.source.input.error(\n        message,\n        { column: start.column, line: start.line },\n        { column: end.column, line: end.line },\n        opts\n      )\n    }\n    return new CssSyntaxError(message)\n  }\n\n  getProxyProcessor() {\n    return {\n      get(node, prop) {\n        if (prop === 'proxyOf') {\n          return node\n        } else if (prop === 'root') {\n          return () => node.root().toProxy()\n        } else {\n          return node[prop]\n        }\n      },\n\n      set(node, prop, value) {\n        if (node[prop] === value) return true\n        node[prop] = value\n        if (\n          prop === 'prop' ||\n          prop === 'value' ||\n          prop === 'name' ||\n          prop === 'params' ||\n          prop === 'important' ||\n          /* c8 ignore next */\n          prop === 'text'\n        ) {\n          node.markDirty()\n        }\n        return true\n      }\n    }\n  }\n\n  /* c8 ignore next 3 */\n  markClean() {\n    this[isClean] = true\n  }\n\n  markDirty() {\n    if (this[isClean]) {\n      this[isClean] = false\n      let next = this\n      while ((next = next.parent)) {\n        next[isClean] = false\n      }\n    }\n  }\n\n  next() {\n    if (!this.parent) return undefined\n    let index = this.parent.index(this)\n    return this.parent.nodes[index + 1]\n  }\n\n  positionBy(opts = {}) {\n    let pos = this.source.start\n    if (opts.index) {\n      pos = this.positionInside(opts.index)\n    } else if (opts.word) {\n      let inputString =\n        'document' in this.source.input\n          ? this.source.input.document\n          : this.source.input.css\n      let stringRepresentation = inputString.slice(\n        sourceOffset(inputString, this.source.start),\n        sourceOffset(inputString, this.source.end)\n      )\n      let index = stringRepresentation.indexOf(opts.word)\n      if (index !== -1) pos = this.positionInside(index)\n    }\n    return pos\n  }\n\n  positionInside(index) {\n    let column = this.source.start.column\n    let line = this.source.start.line\n    let inputString =\n      'document' in this.source.input\n        ? this.source.input.document\n        : this.source.input.css\n    let offset = sourceOffset(inputString, this.source.start)\n    let end = offset + index\n\n    for (let i = offset; i < end; i++) {\n      if (inputString[i] === '\\n') {\n        column = 1\n        line += 1\n      } else {\n        column += 1\n      }\n    }\n\n    return { column, line, offset: end }\n  }\n\n  prev() {\n    if (!this.parent) return undefined\n    let index = this.parent.index(this)\n    return this.parent.nodes[index - 1]\n  }\n\n  rangeBy(opts = {}) {\n    let inputString =\n      'document' in this.source.input\n        ? this.source.input.document\n        : this.source.input.css\n    let start = {\n      column: this.source.start.column,\n      line: this.source.start.line,\n      offset: sourceOffset(inputString, this.source.start)\n    }\n    let end = this.source.end\n      ? {\n          column: this.source.end.column + 1,\n          line: this.source.end.line,\n          offset:\n            typeof this.source.end.offset === 'number'\n              ? // `source.end.offset` is exclusive, so we don't need to add 1\n                this.source.end.offset\n              : // Since line/column in this.source.end is inclusive,\n                // the `sourceOffset(... , this.source.end)` returns an inclusive offset.\n                // So, we add 1 to convert it to exclusive.\n                sourceOffset(inputString, this.source.end) + 1\n        }\n      : {\n          column: start.column + 1,\n          line: start.line,\n          offset: start.offset + 1\n        }\n\n    if (opts.word) {\n      let stringRepresentation = inputString.slice(\n        sourceOffset(inputString, this.source.start),\n        sourceOffset(inputString, this.source.end)\n      )\n      let index = stringRepresentation.indexOf(opts.word)\n      if (index !== -1) {\n        start = this.positionInside(index)\n        end = this.positionInside(index + opts.word.length)\n      }\n    } else {\n      if (opts.start) {\n        start = {\n          column: opts.start.column,\n          line: opts.start.line,\n          offset: sourceOffset(inputString, opts.start)\n        }\n      } else if (opts.index) {\n        start = this.positionInside(opts.index)\n      }\n\n      if (opts.end) {\n        end = {\n          column: opts.end.column,\n          line: opts.end.line,\n          offset: sourceOffset(inputString, opts.end)\n        }\n      } else if (typeof opts.endIndex === 'number') {\n        end = this.positionInside(opts.endIndex)\n      } else if (opts.index) {\n        end = this.positionInside(opts.index + 1)\n      }\n    }\n\n    if (\n      end.line < start.line ||\n      (end.line === start.line && end.column <= start.column)\n    ) {\n      end = {\n        column: start.column + 1,\n        line: start.line,\n        offset: start.offset + 1\n      }\n    }\n\n    return { end, start }\n  }\n\n  raw(prop, defaultType) {\n    let str = new Stringifier()\n    return str.raw(this, prop, defaultType)\n  }\n\n  remove() {\n    if (this.parent) {\n      this.parent.removeChild(this)\n    }\n    this.parent = undefined\n    return this\n  }\n\n  replaceWith(...nodes) {\n    if (this.parent) {\n      let bookmark = this\n      let foundSelf = false\n      for (let node of nodes) {\n        if (node === this) {\n          foundSelf = true\n        } else if (foundSelf) {\n          this.parent.insertAfter(bookmark, node)\n          bookmark = node\n        } else {\n          this.parent.insertBefore(bookmark, node)\n        }\n      }\n\n      if (!foundSelf) {\n        this.remove()\n      }\n    }\n\n    return this\n  }\n\n  root() {\n    let result = this\n    while (result.parent && result.parent.type !== 'document') {\n      result = result.parent\n    }\n    return result\n  }\n\n  toJSON(_, inputs) {\n    let fixed = {}\n    let emitInputs = inputs == null\n    inputs = inputs || new Map()\n    let inputsNextIndex = 0\n\n    for (let name in this) {\n      if (!Object.prototype.hasOwnProperty.call(this, name)) {\n        /* c8 ignore next 2 */\n        continue\n      }\n      if (name === 'parent' || name === 'proxyCache') continue\n      let value = this[name]\n\n      if (Array.isArray(value)) {\n        fixed[name] = value.map(i => {\n          if (typeof i === 'object' && i.toJSON) {\n            return i.toJSON(null, inputs)\n          } else {\n            return i\n          }\n        })\n      } else if (typeof value === 'object' && value.toJSON) {\n        fixed[name] = value.toJSON(null, inputs)\n      } else if (name === 'source') {\n        if (value == null) continue\n        let inputId = inputs.get(value.input)\n        if (inputId == null) {\n          inputId = inputsNextIndex\n          inputs.set(value.input, inputsNextIndex)\n          inputsNextIndex++\n        }\n        fixed[name] = {\n          end: value.end,\n          inputId,\n          start: value.start\n        }\n      } else {\n        fixed[name] = value\n      }\n    }\n\n    if (emitInputs) {\n      fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n    }\n\n    return fixed\n  }\n\n  toProxy() {\n    if (!this.proxyCache) {\n      this.proxyCache = new Proxy(this, this.getProxyProcessor())\n    }\n    return this.proxyCache\n  }\n\n  toString(stringifier = stringify) {\n    if (stringifier.stringify) stringifier = stringifier.stringify\n    let result = ''\n    stringifier(this, i => {\n      result += i\n    })\n    return result\n  }\n\n  warn(result, text, opts = {}) {\n    let data = { node: this }\n    for (let i in opts) data[i] = opts[i]\n    return result.warn(text, data)\n  }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n  constructor(defaults) {\n    super(defaults)\n    this.type = 'comment'\n  }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n  get variable() {\n    return this.prop.startsWith('--') || this.prop[0] === '$'\n  }\n\n  constructor(defaults) {\n    if (\n      defaults &&\n      typeof defaults.value !== 'undefined' &&\n      typeof defaults.value !== 'string'\n    ) {\n      defaults = { ...defaults, value: String(defaults.value) }\n    }\n    super(defaults)\n    this.type = 'decl'\n  }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","'use strict'\n\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Node = require('./node')\nlet { isClean, my } = require('./symbols')\n\nlet AtRule, parse, Root, Rule\n\nfunction cleanSource(nodes) {\n  return nodes.map(i => {\n    if (i.nodes) i.nodes = cleanSource(i.nodes)\n    delete i.source\n    return i\n  })\n}\n\nfunction markTreeDirty(node) {\n  node[isClean] = false\n  if (node.proxyOf.nodes) {\n    for (let i of node.proxyOf.nodes) {\n      markTreeDirty(i)\n    }\n  }\n}\n\nclass Container extends Node {\n  get first() {\n    if (!this.proxyOf.nodes) return undefined\n    return this.proxyOf.nodes[0]\n  }\n\n  get last() {\n    if (!this.proxyOf.nodes) return undefined\n    return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n  }\n\n  append(...children) {\n    for (let child of children) {\n      let nodes = this.normalize(child, this.last)\n      for (let node of nodes) this.proxyOf.nodes.push(node)\n    }\n\n    this.markDirty()\n\n    return this\n  }\n\n  cleanRaws(keepBetween) {\n    super.cleanRaws(keepBetween)\n    if (this.nodes) {\n      for (let node of this.nodes) node.cleanRaws(keepBetween)\n    }\n  }\n\n  each(callback) {\n    if (!this.proxyOf.nodes) return undefined\n    let iterator = this.getIterator()\n\n    let index, result\n    while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n      index = this.indexes[iterator]\n      result = callback(this.proxyOf.nodes[index], index)\n      if (result === false) break\n\n      this.indexes[iterator] += 1\n    }\n\n    delete this.indexes[iterator]\n    return result\n  }\n\n  every(condition) {\n    return this.nodes.every(condition)\n  }\n\n  getIterator() {\n    if (!this.lastEach) this.lastEach = 0\n    if (!this.indexes) this.indexes = {}\n\n    this.lastEach += 1\n    let iterator = this.lastEach\n    this.indexes[iterator] = 0\n\n    return iterator\n  }\n\n  getProxyProcessor() {\n    return {\n      get(node, prop) {\n        if (prop === 'proxyOf') {\n          return node\n        } else if (!node[prop]) {\n          return node[prop]\n        } else if (\n          prop === 'each' ||\n          (typeof prop === 'string' && prop.startsWith('walk'))\n        ) {\n          return (...args) => {\n            return node[prop](\n              ...args.map(i => {\n                if (typeof i === 'function') {\n                  return (child, index) => i(child.toProxy(), index)\n                } else {\n                  return i\n                }\n              })\n            )\n          }\n        } else if (prop === 'every' || prop === 'some') {\n          return cb => {\n            return node[prop]((child, ...other) =>\n              cb(child.toProxy(), ...other)\n            )\n          }\n        } else if (prop === 'root') {\n          return () => node.root().toProxy()\n        } else if (prop === 'nodes') {\n          return node.nodes.map(i => i.toProxy())\n        } else if (prop === 'first' || prop === 'last') {\n          return node[prop].toProxy()\n        } else {\n          return node[prop]\n        }\n      },\n\n      set(node, prop, value) {\n        if (node[prop] === value) return true\n        node[prop] = value\n        if (prop === 'name' || prop === 'params' || prop === 'selector') {\n          node.markDirty()\n        }\n        return true\n      }\n    }\n  }\n\n  index(child) {\n    if (typeof child === 'number') return child\n    if (child.proxyOf) child = child.proxyOf\n    return this.proxyOf.nodes.indexOf(child)\n  }\n\n  insertAfter(exist, add) {\n    let existIndex = this.index(exist)\n    let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n    existIndex = this.index(exist)\n    for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n    let index\n    for (let id in this.indexes) {\n      index = this.indexes[id]\n      if (existIndex < index) {\n        this.indexes[id] = index + nodes.length\n      }\n    }\n\n    this.markDirty()\n\n    return this\n  }\n\n  insertBefore(exist, add) {\n    let existIndex = this.index(exist)\n    let type = existIndex === 0 ? 'prepend' : false\n    let nodes = this.normalize(\n      add,\n      this.proxyOf.nodes[existIndex],\n      type\n    ).reverse()\n    existIndex = this.index(exist)\n    for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n    let index\n    for (let id in this.indexes) {\n      index = this.indexes[id]\n      if (existIndex <= index) {\n        this.indexes[id] = index + nodes.length\n      }\n    }\n\n    this.markDirty()\n\n    return this\n  }\n\n  normalize(nodes, sample) {\n    if (typeof nodes === 'string') {\n      nodes = cleanSource(parse(nodes).nodes)\n    } else if (typeof nodes === 'undefined') {\n      nodes = []\n    } else if (Array.isArray(nodes)) {\n      nodes = nodes.slice(0)\n      for (let i of nodes) {\n        if (i.parent) i.parent.removeChild(i, 'ignore')\n      }\n    } else if (nodes.type === 'root' && this.type !== 'document') {\n      nodes = nodes.nodes.slice(0)\n      for (let i of nodes) {\n        if (i.parent) i.parent.removeChild(i, 'ignore')\n      }\n    } else if (nodes.type) {\n      nodes = [nodes]\n    } else if (nodes.prop) {\n      if (typeof nodes.value === 'undefined') {\n        throw new Error('Value field is missed in node creation')\n      } else if (typeof nodes.value !== 'string') {\n        nodes.value = String(nodes.value)\n      }\n      nodes = [new Declaration(nodes)]\n    } else if (nodes.selector || nodes.selectors) {\n      nodes = [new Rule(nodes)]\n    } else if (nodes.name) {\n      nodes = [new AtRule(nodes)]\n    } else if (nodes.text) {\n      nodes = [new Comment(nodes)]\n    } else {\n      throw new Error('Unknown node type in node creation')\n    }\n\n    let processed = nodes.map(i => {\n      /* c8 ignore next */\n      if (!i[my]) Container.rebuild(i)\n      i = i.proxyOf\n      if (i.parent) i.parent.removeChild(i)\n      if (i[isClean]) markTreeDirty(i)\n\n      if (!i.raws) i.raws = {}\n      if (typeof i.raws.before === 'undefined') {\n        if (sample && typeof sample.raws.before !== 'undefined') {\n          i.raws.before = sample.raws.before.replace(/\\S/g, '')\n        }\n      }\n      i.parent = this.proxyOf\n      return i\n    })\n\n    return processed\n  }\n\n  prepend(...children) {\n    children = children.reverse()\n    for (let child of children) {\n      let nodes = this.normalize(child, this.first, 'prepend').reverse()\n      for (let node of nodes) this.proxyOf.nodes.unshift(node)\n      for (let id in this.indexes) {\n        this.indexes[id] = this.indexes[id] + nodes.length\n      }\n    }\n\n    this.markDirty()\n\n    return this\n  }\n\n  push(child) {\n    child.parent = this\n    this.proxyOf.nodes.push(child)\n    return this\n  }\n\n  removeAll() {\n    for (let node of this.proxyOf.nodes) node.parent = undefined\n    this.proxyOf.nodes = []\n\n    this.markDirty()\n\n    return this\n  }\n\n  removeChild(child) {\n    child = this.index(child)\n    this.proxyOf.nodes[child].parent = undefined\n    this.proxyOf.nodes.splice(child, 1)\n\n    let index\n    for (let id in this.indexes) {\n      index = this.indexes[id]\n      if (index >= child) {\n        this.indexes[id] = index - 1\n      }\n    }\n\n    this.markDirty()\n\n    return this\n  }\n\n  replaceValues(pattern, opts, callback) {\n    if (!callback) {\n      callback = opts\n      opts = {}\n    }\n\n    this.walkDecls(decl => {\n      if (opts.props && !opts.props.includes(decl.prop)) return\n      if (opts.fast && !decl.value.includes(opts.fast)) return\n\n      decl.value = decl.value.replace(pattern, callback)\n    })\n\n    this.markDirty()\n\n    return this\n  }\n\n  some(condition) {\n    return this.nodes.some(condition)\n  }\n\n  walk(callback) {\n    return this.each((child, i) => {\n      let result\n      try {\n        result = callback(child, i)\n      } catch (e) {\n        throw child.addToError(e)\n      }\n      if (result !== false && child.walk) {\n        result = child.walk(callback)\n      }\n\n      return result\n    })\n  }\n\n  walkAtRules(name, callback) {\n    if (!callback) {\n      callback = name\n      return this.walk((child, i) => {\n        if (child.type === 'atrule') {\n          return callback(child, i)\n        }\n      })\n    }\n    if (name instanceof RegExp) {\n      return this.walk((child, i) => {\n        if (child.type === 'atrule' && name.test(child.name)) {\n          return callback(child, i)\n        }\n      })\n    }\n    return this.walk((child, i) => {\n      if (child.type === 'atrule' && child.name === name) {\n        return callback(child, i)\n      }\n    })\n  }\n\n  walkComments(callback) {\n    return this.walk((child, i) => {\n      if (child.type === 'comment') {\n        return callback(child, i)\n      }\n    })\n  }\n\n  walkDecls(prop, callback) {\n    if (!callback) {\n      callback = prop\n      return this.walk((child, i) => {\n        if (child.type === 'decl') {\n          return callback(child, i)\n        }\n      })\n    }\n    if (prop instanceof RegExp) {\n      return this.walk((child, i) => {\n        if (child.type === 'decl' && prop.test(child.prop)) {\n          return callback(child, i)\n        }\n      })\n    }\n    return this.walk((child, i) => {\n      if (child.type === 'decl' && child.prop === prop) {\n        return callback(child, i)\n      }\n    })\n  }\n\n  walkRules(selector, callback) {\n    if (!callback) {\n      callback = selector\n\n      return this.walk((child, i) => {\n        if (child.type === 'rule') {\n          return callback(child, i)\n        }\n      })\n    }\n    if (selector instanceof RegExp) {\n      return this.walk((child, i) => {\n        if (child.type === 'rule' && selector.test(child.selector)) {\n          return callback(child, i)\n        }\n      })\n    }\n    return this.walk((child, i) => {\n      if (child.type === 'rule' && child.selector === selector) {\n        return callback(child, i)\n      }\n    })\n  }\n}\n\nContainer.registerParse = dependant => {\n  parse = dependant\n}\n\nContainer.registerRule = dependant => {\n  Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n  AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n  Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n  if (node.type === 'atrule') {\n    Object.setPrototypeOf(node, AtRule.prototype)\n  } else if (node.type === 'rule') {\n    Object.setPrototypeOf(node, Rule.prototype)\n  } else if (node.type === 'decl') {\n    Object.setPrototypeOf(node, Declaration.prototype)\n  } else if (node.type === 'comment') {\n    Object.setPrototypeOf(node, Comment.prototype)\n  } else if (node.type === 'root') {\n    Object.setPrototypeOf(node, Root.prototype)\n  }\n\n  node[my] = true\n\n  if (node.nodes) {\n    node.nodes.forEach(child => {\n      Container.rebuild(child)\n    })\n  }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n  constructor(defaults) {\n    super(defaults)\n    this.type = 'atrule'\n  }\n\n  append(...children) {\n    if (!this.proxyOf.nodes) this.nodes = []\n    return super.append(...children)\n  }\n\n  prepend(...children) {\n    if (!this.proxyOf.nodes) this.nodes = []\n    return super.prepend(...children)\n  }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n  constructor(defaults) {\n    // type needs to be passed to super, otherwise child roots won't be normalized correctly\n    super({ type: 'document', ...defaults })\n\n    if (!this.nodes) {\n      this.nodes = []\n    }\n  }\n\n  toResult(opts = {}) {\n    let lazy = new LazyResult(new Processor(), this, opts)\n\n    return lazy.stringify()\n  }\n}\n\nDocument.registerLazyResult = dependant => {\n  LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n  Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","// This alphabet uses `A-Za-z0-9_-` symbols.\n// The order of characters is optimized for better gzip and brotli compression.\n// References to the same file (works both for gzip and brotli):\n// `'use`, `andom`, and `rict'`\n// References to the brotli default dictionary:\n// `-26T`, `1983`, `40px`, `75px`, `bush`, `jack`, `mind`, `very`, and `wolf`\nlet urlAlphabet =\n  'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n  return (size = defaultSize) => {\n    let id = ''\n    // A compact alternative for `for (var i = 0; i < step; i++)`.\n    let i = size | 0\n    while (i--) {\n      // `| 0` is more compact and faster than `Math.floor()`.\n      id += alphabet[(Math.random() * alphabet.length) | 0]\n    }\n    return id\n  }\n}\n\nlet nanoid = (size = 21) => {\n  let id = ''\n  // A compact alternative for `for (var i = 0; i < step; i++)`.\n  let i = size | 0\n  while (i--) {\n    // `| 0` is more compact and faster than `Math.floor()`.\n    id += urlAlphabet[(Math.random() * 64) | 0]\n  }\n  return id\n}\n\nmodule.exports = { nanoid, customAlphabet }\n","'use strict'\n\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\n\nfunction fromBase64(str) {\n  if (Buffer) {\n    return Buffer.from(str, 'base64').toString()\n  } else {\n    /* c8 ignore next 2 */\n    return window.atob(str)\n  }\n}\n\nclass PreviousMap {\n  constructor(css, opts) {\n    if (opts.map === false) return\n    this.loadAnnotation(css)\n    this.inline = this.startWith(this.annotation, 'data:')\n\n    let prev = opts.map ? opts.map.prev : undefined\n    let text = this.loadMap(opts.from, prev)\n    if (!this.mapFile && opts.from) {\n      this.mapFile = opts.from\n    }\n    if (this.mapFile) this.root = dirname(this.mapFile)\n    if (text) this.text = text\n  }\n\n  consumer() {\n    if (!this.consumerCache) {\n      this.consumerCache = new SourceMapConsumer(this.text)\n    }\n    return this.consumerCache\n  }\n\n  decodeInline(text) {\n    let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n    let baseUri = /^data:application\\/json;base64,/\n    let charsetUri = /^data:application\\/json;charset=utf-?8,/\n    let uri = /^data:application\\/json,/\n\n    let uriMatch = text.match(charsetUri) || text.match(uri)\n    if (uriMatch) {\n      return decodeURIComponent(text.substr(uriMatch[0].length))\n    }\n\n    let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri)\n    if (baseUriMatch) {\n      return fromBase64(text.substr(baseUriMatch[0].length))\n    }\n\n    let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n    throw new Error('Unsupported source map encoding ' + encoding)\n  }\n\n  getAnnotationURL(sourceMapString) {\n    return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n  }\n\n  isMap(map) {\n    if (typeof map !== 'object') return false\n    return (\n      typeof map.mappings === 'string' ||\n      typeof map._mappings === 'string' ||\n      Array.isArray(map.sections)\n    )\n  }\n\n  loadAnnotation(css) {\n    let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/g)\n    if (!comments) return\n\n    // sourceMappingURLs from comments, strings, etc.\n    let start = css.lastIndexOf(comments.pop())\n    let end = css.indexOf('*/', start)\n\n    if (start > -1 && end > -1) {\n      // Locate the last sourceMappingURL to avoid pickin\n      this.annotation = this.getAnnotationURL(css.substring(start, end))\n    }\n  }\n\n  loadFile(path) {\n    this.root = dirname(path)\n    if (existsSync(path)) {\n      this.mapFile = path\n      return readFileSync(path, 'utf-8').toString().trim()\n    }\n  }\n\n  loadMap(file, prev) {\n    if (prev === false) return false\n\n    if (prev) {\n      if (typeof prev === 'string') {\n        return prev\n      } else if (typeof prev === 'function') {\n        let prevPath = prev(file)\n        if (prevPath) {\n          let map = this.loadFile(prevPath)\n          if (!map) {\n            throw new Error(\n              'Unable to load previous source map: ' + prevPath.toString()\n            )\n          }\n          return map\n        }\n      } else if (prev instanceof SourceMapConsumer) {\n        return SourceMapGenerator.fromSourceMap(prev).toString()\n      } else if (prev instanceof SourceMapGenerator) {\n        return prev.toString()\n      } else if (this.isMap(prev)) {\n        return JSON.stringify(prev)\n      } else {\n        throw new Error(\n          'Unsupported previous source map format: ' + prev.toString()\n        )\n      }\n    } else if (this.inline) {\n      return this.decodeInline(this.annotation)\n    } else if (this.annotation) {\n      let map = this.annotation\n      if (file) map = join(dirname(file), map)\n      return this.loadFile(map)\n    }\n  }\n\n  startWith(string, start) {\n    if (!string) return false\n    return string.substr(0, start.length) === start\n  }\n\n  withContent() {\n    return !!(\n      this.consumer().sourcesContent &&\n      this.consumer().sourcesContent.length > 0\n    )\n  }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet { nanoid } = require('nanoid/non-secure')\nlet { isAbsolute, resolve } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\nlet terminalHighlight = require('./terminal-highlight')\n\nlet lineToIndexCache = Symbol('lineToIndexCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nfunction getLineToIndex(input) {\n  if (input[lineToIndexCache]) return input[lineToIndexCache]\n  let lines = input.css.split('\\n')\n  let lineToIndex = new Array(lines.length)\n  let prevIndex = 0\n\n  for (let i = 0, l = lines.length; i < l; i++) {\n    lineToIndex[i] = prevIndex\n    prevIndex += lines[i].length + 1\n  }\n\n  input[lineToIndexCache] = lineToIndex\n  return lineToIndex\n}\n\nclass Input {\n  get from() {\n    return this.file || this.id\n  }\n\n  constructor(css, opts = {}) {\n    if (\n      css === null ||\n      typeof css === 'undefined' ||\n      (typeof css === 'object' && !css.toString)\n    ) {\n      throw new Error(`PostCSS received ${css} instead of CSS string`)\n    }\n\n    this.css = css.toString()\n\n    if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n      this.hasBOM = true\n      this.css = this.css.slice(1)\n    } else {\n      this.hasBOM = false\n    }\n\n    this.document = this.css\n    if (opts.document) this.document = opts.document.toString()\n\n    if (opts.from) {\n      if (\n        !pathAvailable ||\n        /^\\w+:\\/\\//.test(opts.from) ||\n        isAbsolute(opts.from)\n      ) {\n        this.file = opts.from\n      } else {\n        this.file = resolve(opts.from)\n      }\n    }\n\n    if (pathAvailable && sourceMapAvailable) {\n      let map = new PreviousMap(this.css, opts)\n      if (map.text) {\n        this.map = map\n        let file = map.consumer().file\n        if (!this.file && file) this.file = this.mapResolve(file)\n      }\n    }\n\n    if (!this.file) {\n      this.id = '<input css ' + nanoid(6) + '>'\n    }\n    if (this.map) this.map.file = this.from\n  }\n\n  error(message, line, column, opts = {}) {\n    let endColumn, endLine, endOffset, offset, result\n\n    if (line && typeof line === 'object') {\n      let start = line\n      let end = column\n      if (typeof start.offset === 'number') {\n        offset = start.offset\n        let pos = this.fromOffset(offset)\n        line = pos.line\n        column = pos.col\n      } else {\n        line = start.line\n        column = start.column\n        offset = this.fromLineAndColumn(line, column)\n      }\n      if (typeof end.offset === 'number') {\n        endOffset = end.offset\n        let pos = this.fromOffset(endOffset)\n        endLine = pos.line\n        endColumn = pos.col\n      } else {\n        endLine = end.line\n        endColumn = end.column\n        endOffset = this.fromLineAndColumn(end.line, end.column)\n      }\n    } else if (!column) {\n      offset = line\n      let pos = this.fromOffset(offset)\n      line = pos.line\n      column = pos.col\n    } else {\n      offset = this.fromLineAndColumn(line, column)\n    }\n\n    let origin = this.origin(line, column, endLine, endColumn)\n    if (origin) {\n      result = new CssSyntaxError(\n        message,\n        origin.endLine === undefined\n          ? origin.line\n          : { column: origin.column, line: origin.line },\n        origin.endLine === undefined\n          ? origin.column\n          : { column: origin.endColumn, line: origin.endLine },\n        origin.source,\n        origin.file,\n        opts.plugin\n      )\n    } else {\n      result = new CssSyntaxError(\n        message,\n        endLine === undefined ? line : { column, line },\n        endLine === undefined ? column : { column: endColumn, line: endLine },\n        this.css,\n        this.file,\n        opts.plugin\n      )\n    }\n\n    result.input = { column, endColumn, endLine, endOffset, line, offset, source: this.css }\n    if (this.file) {\n      if (pathToFileURL) {\n        result.input.url = pathToFileURL(this.file).toString()\n      }\n      result.input.file = this.file\n    }\n\n    return result\n  }\n\n  fromLineAndColumn(line, column) {\n    let lineToIndex = getLineToIndex(this)\n    let index = lineToIndex[line - 1]\n    return index + column - 1\n  }\n\n  fromOffset(offset) {\n    let lineToIndex = getLineToIndex(this)\n    let lastLine = lineToIndex[lineToIndex.length - 1]\n\n    let min = 0\n    if (offset >= lastLine) {\n      min = lineToIndex.length - 1\n    } else {\n      let max = lineToIndex.length - 2\n      let mid\n      while (min < max) {\n        mid = min + ((max - min) >> 1)\n        if (offset < lineToIndex[mid]) {\n          max = mid - 1\n        } else if (offset >= lineToIndex[mid + 1]) {\n          min = mid + 1\n        } else {\n          min = mid\n          break\n        }\n      }\n    }\n    return {\n      col: offset - lineToIndex[min] + 1,\n      line: min + 1\n    }\n  }\n\n  mapResolve(file) {\n    if (/^\\w+:\\/\\//.test(file)) {\n      return file\n    }\n    return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n  }\n\n  origin(line, column, endLine, endColumn) {\n    if (!this.map) return false\n    let consumer = this.map.consumer()\n\n    let from = consumer.originalPositionFor({ column, line })\n    if (!from.source) return false\n\n    let to\n    if (typeof endLine === 'number') {\n      to = consumer.originalPositionFor({ column: endColumn, line: endLine })\n    }\n\n    let fromUrl\n\n    if (isAbsolute(from.source)) {\n      fromUrl = pathToFileURL(from.source)\n    } else {\n      fromUrl = new URL(\n        from.source,\n        this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n      )\n    }\n\n    let result = {\n      column: from.column,\n      endColumn: to && to.column,\n      endLine: to && to.line,\n      line: from.line,\n      url: fromUrl.toString()\n    }\n\n    if (fromUrl.protocol === 'file:') {\n      if (fileURLToPath) {\n        result.file = fileURLToPath(fromUrl)\n      } else {\n        /* c8 ignore next 2 */\n        throw new Error(`file: protocol is not available in this PostCSS build`)\n      }\n    }\n\n    let source = consumer.sourceContentFor(from.source)\n    if (source) result.source = source\n\n    return result\n  }\n\n  toJSON() {\n    let json = {}\n    for (let name of ['hasBOM', 'css', 'file', 'id']) {\n      if (this[name] != null) {\n        json[name] = this[name]\n      }\n    }\n    if (this.map) {\n      json.map = { ...this.map }\n      if (json.map.consumerCache) {\n        json.map.consumerCache = undefined\n      }\n    }\n    return json\n  }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n  terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n  constructor(defaults) {\n    super(defaults)\n    this.type = 'root'\n    if (!this.nodes) this.nodes = []\n  }\n\n  normalize(child, sample, type) {\n    let nodes = super.normalize(child)\n\n    if (sample) {\n      if (type === 'prepend') {\n        if (this.nodes.length > 1) {\n          sample.raws.before = this.nodes[1].raws.before\n        } else {\n          delete sample.raws.before\n        }\n      } else if (this.first !== sample) {\n        for (let node of nodes) {\n          node.raws.before = sample.raws.before\n        }\n      }\n    }\n\n    return nodes\n  }\n\n  removeChild(child, ignore) {\n    let index = this.index(child)\n\n    if (!ignore && index === 0 && this.nodes.length > 1) {\n      this.nodes[1].raws.before = this.nodes[index].raws.before\n    }\n\n    return super.removeChild(child)\n  }\n\n  toResult(opts = {}) {\n    let lazy = new LazyResult(new Processor(), this, opts)\n    return lazy.stringify()\n  }\n}\n\nRoot.registerLazyResult = dependant => {\n  LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n  Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet list = {\n  comma(string) {\n    return list.split(string, [','], true)\n  },\n\n  space(string) {\n    let spaces = [' ', '\\n', '\\t']\n    return list.split(string, spaces)\n  },\n\n  split(string, separators, last) {\n    let array = []\n    let current = ''\n    let split = false\n\n    let func = 0\n    let inQuote = false\n    let prevQuote = ''\n    let escape = false\n\n    for (let letter of string) {\n      if (escape) {\n        escape = false\n      } else if (letter === '\\\\') {\n        escape = true\n      } else if (inQuote) {\n        if (letter === prevQuote) {\n          inQuote = false\n        }\n      } else if (letter === '\"' || letter === \"'\") {\n        inQuote = true\n        prevQuote = letter\n      } else if (letter === '(') {\n        func += 1\n      } else if (letter === ')') {\n        if (func > 0) func -= 1\n      } else if (func === 0) {\n        if (separators.includes(letter)) split = true\n      }\n\n      if (split) {\n        if (current !== '') array.push(current.trim())\n        current = ''\n        split = false\n      } else {\n        current += letter\n      }\n    }\n\n    if (last || current !== '') array.push(current.trim())\n    return array\n  }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n  get selectors() {\n    return list.comma(this.selector)\n  }\n\n  set selectors(values) {\n    let match = this.selector ? this.selector.match(/,\\s*/) : null\n    let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n    this.selector = values.join(sep)\n  }\n\n  constructor(defaults) {\n    super(defaults)\n    this.type = 'rule'\n    if (!this.nodes) this.nodes = []\n  }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Input = require('./input')\nlet PreviousMap = require('./previous-map')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n  if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n  let { inputs: ownInputs, ...defaults } = json\n  if (ownInputs) {\n    inputs = []\n    for (let input of ownInputs) {\n      let inputHydrated = { ...input, __proto__: Input.prototype }\n      if (inputHydrated.map) {\n        inputHydrated.map = {\n          ...inputHydrated.map,\n          __proto__: PreviousMap.prototype\n        }\n      }\n      inputs.push(inputHydrated)\n    }\n  }\n  if (defaults.nodes) {\n    defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n  }\n  if (defaults.source) {\n    let { inputId, ...source } = defaults.source\n    defaults.source = source\n    if (inputId != null) {\n      defaults.source.input = inputs[inputId]\n    }\n  }\n  if (defaults.type === 'root') {\n    return new Root(defaults)\n  } else if (defaults.type === 'decl') {\n    return new Declaration(defaults)\n  } else if (defaults.type === 'rule') {\n    return new Rule(defaults)\n  } else if (defaults.type === 'comment') {\n    return new Comment(defaults)\n  } else if (defaults.type === 'atrule') {\n    return new AtRule(defaults)\n  } else {\n    throw new Error('Unknown node type: ' + json.type)\n  }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet { dirname, relative, resolve, sep } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n  constructor(stringify, root, opts, cssString) {\n    this.stringify = stringify\n    this.mapOpts = opts.map || {}\n    this.root = root\n    this.opts = opts\n    this.css = cssString\n    this.originalCSS = cssString\n    this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n\n    this.memoizedFileURLs = new Map()\n    this.memoizedPaths = new Map()\n    this.memoizedURLs = new Map()\n  }\n\n  addAnnotation() {\n    let content\n\n    if (this.isInline()) {\n      content =\n        'data:application/json;base64,' + this.toBase64(this.map.toString())\n    } else if (typeof this.mapOpts.annotation === 'string') {\n      content = this.mapOpts.annotation\n    } else if (typeof this.mapOpts.annotation === 'function') {\n      content = this.mapOpts.annotation(this.opts.to, this.root)\n    } else {\n      content = this.outputFile() + '.map'\n    }\n    let eol = '\\n'\n    if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n    this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n  }\n\n  applyPrevMaps() {\n    for (let prev of this.previous()) {\n      let from = this.toUrl(this.path(prev.file))\n      let root = prev.root || dirname(prev.file)\n      let map\n\n      if (this.mapOpts.sourcesContent === false) {\n        map = new SourceMapConsumer(prev.text)\n        if (map.sourcesContent) {\n          map.sourcesContent = null\n        }\n      } else {\n        map = prev.consumer()\n      }\n\n      this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n    }\n  }\n\n  clearAnnotation() {\n    if (this.mapOpts.annotation === false) return\n\n    if (this.root) {\n      let node\n      for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n        node = this.root.nodes[i]\n        if (node.type !== 'comment') continue\n        if (node.text.startsWith('# sourceMappingURL=')) {\n          this.root.removeChild(i)\n        }\n      }\n    } else if (this.css) {\n      this.css = this.css.replace(/\\n*\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n    }\n  }\n\n  generate() {\n    this.clearAnnotation()\n    if (pathAvailable && sourceMapAvailable && this.isMap()) {\n      return this.generateMap()\n    } else {\n      let result = ''\n      this.stringify(this.root, i => {\n        result += i\n      })\n      return [result]\n    }\n  }\n\n  generateMap() {\n    if (this.root) {\n      this.generateString()\n    } else if (this.previous().length === 1) {\n      let prev = this.previous()[0].consumer()\n      prev.file = this.outputFile()\n      this.map = SourceMapGenerator.fromSourceMap(prev, {\n        ignoreInvalidMapping: true\n      })\n    } else {\n      this.map = new SourceMapGenerator({\n        file: this.outputFile(),\n        ignoreInvalidMapping: true\n      })\n      this.map.addMapping({\n        generated: { column: 0, line: 1 },\n        original: { column: 0, line: 1 },\n        source: this.opts.from\n          ? this.toUrl(this.path(this.opts.from))\n          : '<no source>'\n      })\n    }\n\n    if (this.isSourcesContent()) this.setSourcesContent()\n    if (this.root && this.previous().length > 0) this.applyPrevMaps()\n    if (this.isAnnotation()) this.addAnnotation()\n\n    if (this.isInline()) {\n      return [this.css]\n    } else {\n      return [this.css, this.map]\n    }\n  }\n\n  generateString() {\n    this.css = ''\n    this.map = new SourceMapGenerator({\n      file: this.outputFile(),\n      ignoreInvalidMapping: true\n    })\n\n    let line = 1\n    let column = 1\n\n    let noSource = '<no source>'\n    let mapping = {\n      generated: { column: 0, line: 0 },\n      original: { column: 0, line: 0 },\n      source: ''\n    }\n\n    let last, lines\n    this.stringify(this.root, (str, node, type) => {\n      this.css += str\n\n      if (node && type !== 'end') {\n        mapping.generated.line = line\n        mapping.generated.column = column - 1\n        if (node.source && node.source.start) {\n          mapping.source = this.sourcePath(node)\n          mapping.original.line = node.source.start.line\n          mapping.original.column = node.source.start.column - 1\n          this.map.addMapping(mapping)\n        } else {\n          mapping.source = noSource\n          mapping.original.line = 1\n          mapping.original.column = 0\n          this.map.addMapping(mapping)\n        }\n      }\n\n      lines = str.match(/\\n/g)\n      if (lines) {\n        line += lines.length\n        last = str.lastIndexOf('\\n')\n        column = str.length - last\n      } else {\n        column += str.length\n      }\n\n      if (node && type !== 'start') {\n        let p = node.parent || { raws: {} }\n        let childless =\n          node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n        if (!childless || node !== p.last || p.raws.semicolon) {\n          if (node.source && node.source.end) {\n            mapping.source = this.sourcePath(node)\n            mapping.original.line = node.source.end.line\n            mapping.original.column = node.source.end.column - 1\n            mapping.generated.line = line\n            mapping.generated.column = column - 2\n            this.map.addMapping(mapping)\n          } else {\n            mapping.source = noSource\n            mapping.original.line = 1\n            mapping.original.column = 0\n            mapping.generated.line = line\n            mapping.generated.column = column - 1\n            this.map.addMapping(mapping)\n          }\n        }\n      }\n    })\n  }\n\n  isAnnotation() {\n    if (this.isInline()) {\n      return true\n    }\n    if (typeof this.mapOpts.annotation !== 'undefined') {\n      return this.mapOpts.annotation\n    }\n    if (this.previous().length) {\n      return this.previous().some(i => i.annotation)\n    }\n    return true\n  }\n\n  isInline() {\n    if (typeof this.mapOpts.inline !== 'undefined') {\n      return this.mapOpts.inline\n    }\n\n    let annotation = this.mapOpts.annotation\n    if (typeof annotation !== 'undefined' && annotation !== true) {\n      return false\n    }\n\n    if (this.previous().length) {\n      return this.previous().some(i => i.inline)\n    }\n    return true\n  }\n\n  isMap() {\n    if (typeof this.opts.map !== 'undefined') {\n      return !!this.opts.map\n    }\n    return this.previous().length > 0\n  }\n\n  isSourcesContent() {\n    if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n      return this.mapOpts.sourcesContent\n    }\n    if (this.previous().length) {\n      return this.previous().some(i => i.withContent())\n    }\n    return true\n  }\n\n  outputFile() {\n    if (this.opts.to) {\n      return this.path(this.opts.to)\n    } else if (this.opts.from) {\n      return this.path(this.opts.from)\n    } else {\n      return 'to.css'\n    }\n  }\n\n  path(file) {\n    if (this.mapOpts.absolute) return file\n    if (file.charCodeAt(0) === 60 /* `<` */) return file\n    if (/^\\w+:\\/\\//.test(file)) return file\n    let cached = this.memoizedPaths.get(file)\n    if (cached) return cached\n\n    let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n    if (typeof this.mapOpts.annotation === 'string') {\n      from = dirname(resolve(from, this.mapOpts.annotation))\n    }\n\n    let path = relative(from, file)\n    this.memoizedPaths.set(file, path)\n\n    return path\n  }\n\n  previous() {\n    if (!this.previousMaps) {\n      this.previousMaps = []\n      if (this.root) {\n        this.root.walk(node => {\n          if (node.source && node.source.input.map) {\n            let map = node.source.input.map\n            if (!this.previousMaps.includes(map)) {\n              this.previousMaps.push(map)\n            }\n          }\n        })\n      } else {\n        let input = new Input(this.originalCSS, this.opts)\n        if (input.map) this.previousMaps.push(input.map)\n      }\n    }\n\n    return this.previousMaps\n  }\n\n  setSourcesContent() {\n    let already = {}\n    if (this.root) {\n      this.root.walk(node => {\n        if (node.source) {\n          let from = node.source.input.from\n          if (from && !already[from]) {\n            already[from] = true\n            let fromUrl = this.usesFileUrls\n              ? this.toFileUrl(from)\n              : this.toUrl(this.path(from))\n            this.map.setSourceContent(fromUrl, node.source.input.css)\n          }\n        }\n      })\n    } else if (this.css) {\n      let from = this.opts.from\n        ? this.toUrl(this.path(this.opts.from))\n        : '<no source>'\n      this.map.setSourceContent(from, this.css)\n    }\n  }\n\n  sourcePath(node) {\n    if (this.mapOpts.from) {\n      return this.toUrl(this.mapOpts.from)\n    } else if (this.usesFileUrls) {\n      return this.toFileUrl(node.source.input.from)\n    } else {\n      return this.toUrl(this.path(node.source.input.from))\n    }\n  }\n\n  toBase64(str) {\n    if (Buffer) {\n      return Buffer.from(str).toString('base64')\n    } else {\n      return window.btoa(unescape(encodeURIComponent(str)))\n    }\n  }\n\n  toFileUrl(path) {\n    let cached = this.memoizedFileURLs.get(path)\n    if (cached) return cached\n\n    if (pathToFileURL) {\n      let fileURL = pathToFileURL(path).toString()\n      this.memoizedFileURLs.set(path, fileURL)\n\n      return fileURL\n    } else {\n      throw new Error(\n        '`map.absolute` option is not available in this PostCSS build'\n      )\n    }\n  }\n\n  toUrl(path) {\n    let cached = this.memoizedURLs.get(path)\n    if (cached) return cached\n\n    if (sep === '\\\\') {\n      path = path.replace(/\\\\/g, '/')\n    }\n\n    let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n    this.memoizedURLs.set(path, url)\n\n    return url\n  }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n  let css = input.css.valueOf()\n  let ignore = options.ignoreErrors\n\n  let code, content, escape, next, quote\n  let currentToken, escaped, escapePos, n, prev\n\n  let length = css.length\n  let pos = 0\n  let buffer = []\n  let returned = []\n\n  function position() {\n    return pos\n  }\n\n  function unclosed(what) {\n    throw input.error('Unclosed ' + what, pos)\n  }\n\n  function endOfFile() {\n    return returned.length === 0 && pos >= length\n  }\n\n  function nextToken(opts) {\n    if (returned.length) return returned.pop()\n    if (pos >= length) return\n\n    let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n    code = css.charCodeAt(pos)\n\n    switch (code) {\n      case NEWLINE:\n      case SPACE:\n      case TAB:\n      case CR:\n      case FEED: {\n        next = pos\n        do {\n          next += 1\n          code = css.charCodeAt(next)\n        } while (\n          code === SPACE ||\n          code === NEWLINE ||\n          code === TAB ||\n          code === CR ||\n          code === FEED\n        )\n\n        currentToken = ['space', css.slice(pos, next)]\n        pos = next - 1\n        break\n      }\n\n      case OPEN_SQUARE:\n      case CLOSE_SQUARE:\n      case OPEN_CURLY:\n      case CLOSE_CURLY:\n      case COLON:\n      case SEMICOLON:\n      case CLOSE_PARENTHESES: {\n        let controlChar = String.fromCharCode(code)\n        currentToken = [controlChar, controlChar, pos]\n        break\n      }\n\n      case OPEN_PARENTHESES: {\n        prev = buffer.length ? buffer.pop()[1] : ''\n        n = css.charCodeAt(pos + 1)\n        if (\n          prev === 'url' &&\n          n !== SINGLE_QUOTE &&\n          n !== DOUBLE_QUOTE &&\n          n !== SPACE &&\n          n !== NEWLINE &&\n          n !== TAB &&\n          n !== FEED &&\n          n !== CR\n        ) {\n          next = pos\n          do {\n            escaped = false\n            next = css.indexOf(')', next + 1)\n            if (next === -1) {\n              if (ignore || ignoreUnclosed) {\n                next = pos\n                break\n              } else {\n                unclosed('bracket')\n              }\n            }\n            escapePos = next\n            while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n              escapePos -= 1\n              escaped = !escaped\n            }\n          } while (escaped)\n\n          currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n          pos = next\n        } else {\n          next = css.indexOf(')', pos + 1)\n          content = css.slice(pos, next + 1)\n\n          if (next === -1 || RE_BAD_BRACKET.test(content)) {\n            currentToken = ['(', '(', pos]\n          } else {\n            currentToken = ['brackets', content, pos, next]\n            pos = next\n          }\n        }\n\n        break\n      }\n\n      case SINGLE_QUOTE:\n      case DOUBLE_QUOTE: {\n        quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n        next = pos\n        do {\n          escaped = false\n          next = css.indexOf(quote, next + 1)\n          if (next === -1) {\n            if (ignore || ignoreUnclosed) {\n              next = pos + 1\n              break\n            } else {\n              unclosed('string')\n            }\n          }\n          escapePos = next\n          while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n            escapePos -= 1\n            escaped = !escaped\n          }\n        } while (escaped)\n\n        currentToken = ['string', css.slice(pos, next + 1), pos, next]\n        pos = next\n        break\n      }\n\n      case AT: {\n        RE_AT_END.lastIndex = pos + 1\n        RE_AT_END.test(css)\n        if (RE_AT_END.lastIndex === 0) {\n          next = css.length - 1\n        } else {\n          next = RE_AT_END.lastIndex - 2\n        }\n\n        currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n        pos = next\n        break\n      }\n\n      case BACKSLASH: {\n        next = pos\n        escape = true\n        while (css.charCodeAt(next + 1) === BACKSLASH) {\n          next += 1\n          escape = !escape\n        }\n        code = css.charCodeAt(next + 1)\n        if (\n          escape &&\n          code !== SLASH &&\n          code !== SPACE &&\n          code !== NEWLINE &&\n          code !== TAB &&\n          code !== CR &&\n          code !== FEED\n        ) {\n          next += 1\n          if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n            while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n              next += 1\n            }\n            if (css.charCodeAt(next + 1) === SPACE) {\n              next += 1\n            }\n          }\n        }\n\n        currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n        pos = next\n        break\n      }\n\n      default: {\n        if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n          next = css.indexOf('*/', pos + 2) + 1\n          if (next === 0) {\n            if (ignore || ignoreUnclosed) {\n              next = css.length\n            } else {\n              unclosed('comment')\n            }\n          }\n\n          currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n          pos = next\n        } else {\n          RE_WORD_END.lastIndex = pos + 1\n          RE_WORD_END.test(css)\n          if (RE_WORD_END.lastIndex === 0) {\n            next = css.length - 1\n          } else {\n            next = RE_WORD_END.lastIndex - 2\n          }\n\n          currentToken = ['word', css.slice(pos, next + 1), pos, next]\n          buffer.push(currentToken)\n          pos = next\n        }\n\n        break\n      }\n    }\n\n    pos++\n    return currentToken\n  }\n\n  function back(token) {\n    returned.push(token)\n  }\n\n  return {\n    back,\n    endOfFile,\n    nextToken,\n    position\n  }\n}\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Root = require('./root')\nlet Rule = require('./rule')\nlet tokenizer = require('./tokenize')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n  empty: true,\n  space: true\n}\n\nfunction findLastWithPosition(tokens) {\n  for (let i = tokens.length - 1; i >= 0; i--) {\n    let token = tokens[i]\n    let pos = token[3] || token[2]\n    if (pos) return pos\n  }\n}\n\nclass Parser {\n  constructor(input) {\n    this.input = input\n\n    this.root = new Root()\n    this.current = this.root\n    this.spaces = ''\n    this.semicolon = false\n\n    this.createTokenizer()\n    this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }\n  }\n\n  atrule(token) {\n    let node = new AtRule()\n    node.name = token[1].slice(1)\n    if (node.name === '') {\n      this.unnamedAtrule(node, token)\n    }\n    this.init(node, token[2])\n\n    let type\n    let prev\n    let shift\n    let last = false\n    let open = false\n    let params = []\n    let brackets = []\n\n    while (!this.tokenizer.endOfFile()) {\n      token = this.tokenizer.nextToken()\n      type = token[0]\n\n      if (type === '(' || type === '[') {\n        brackets.push(type === '(' ? ')' : ']')\n      } else if (type === '{' && brackets.length > 0) {\n        brackets.push('}')\n      } else if (type === brackets[brackets.length - 1]) {\n        brackets.pop()\n      }\n\n      if (brackets.length === 0) {\n        if (type === ';') {\n          node.source.end = this.getPosition(token[2])\n          node.source.end.offset++\n          this.semicolon = true\n          break\n        } else if (type === '{') {\n          open = true\n          break\n        } else if (type === '}') {\n          if (params.length > 0) {\n            shift = params.length - 1\n            prev = params[shift]\n            while (prev && prev[0] === 'space') {\n              prev = params[--shift]\n            }\n            if (prev) {\n              node.source.end = this.getPosition(prev[3] || prev[2])\n              node.source.end.offset++\n            }\n          }\n          this.end(token)\n          break\n        } else {\n          params.push(token)\n        }\n      } else {\n        params.push(token)\n      }\n\n      if (this.tokenizer.endOfFile()) {\n        last = true\n        break\n      }\n    }\n\n    node.raws.between = this.spacesAndCommentsFromEnd(params)\n    if (params.length) {\n      node.raws.afterName = this.spacesAndCommentsFromStart(params)\n      this.raw(node, 'params', params)\n      if (last) {\n        token = params[params.length - 1]\n        node.source.end = this.getPosition(token[3] || token[2])\n        node.source.end.offset++\n        this.spaces = node.raws.between\n        node.raws.between = ''\n      }\n    } else {\n      node.raws.afterName = ''\n      node.params = ''\n    }\n\n    if (open) {\n      node.nodes = []\n      this.current = node\n    }\n  }\n\n  checkMissedSemicolon(tokens) {\n    let colon = this.colon(tokens)\n    if (colon === false) return\n\n    let founded = 0\n    let token\n    for (let j = colon - 1; j >= 0; j--) {\n      token = tokens[j]\n      if (token[0] !== 'space') {\n        founded += 1\n        if (founded === 2) break\n      }\n    }\n    // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n    // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n    // And because we need it after that one we do +1 to get the next one.\n    throw this.input.error(\n      'Missed semicolon',\n      token[0] === 'word' ? token[3] + 1 : token[2]\n    )\n  }\n\n  colon(tokens) {\n    let brackets = 0\n    let prev, token, type\n    for (let [i, element] of tokens.entries()) {\n      token = element\n      type = token[0]\n\n      if (type === '(') {\n        brackets += 1\n      }\n      if (type === ')') {\n        brackets -= 1\n      }\n      if (brackets === 0 && type === ':') {\n        if (!prev) {\n          this.doubleColon(token)\n        } else if (prev[0] === 'word' && prev[1] === 'progid') {\n          continue\n        } else {\n          return i\n        }\n      }\n\n      prev = token\n    }\n    return false\n  }\n\n  comment(token) {\n    let node = new Comment()\n    this.init(node, token[2])\n    node.source.end = this.getPosition(token[3] || token[2])\n    node.source.end.offset++\n\n    let text = token[1].slice(2, -2)\n    if (/^\\s*$/.test(text)) {\n      node.text = ''\n      node.raws.left = text\n      node.raws.right = ''\n    } else {\n      let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n      node.text = match[2]\n      node.raws.left = match[1]\n      node.raws.right = match[3]\n    }\n  }\n\n  createTokenizer() {\n    this.tokenizer = tokenizer(this.input)\n  }\n\n  decl(tokens, customProperty) {\n    let node = new Declaration()\n    this.init(node, tokens[0][2])\n\n    let last = tokens[tokens.length - 1]\n    if (last[0] === ';') {\n      this.semicolon = true\n      tokens.pop()\n    }\n\n    node.source.end = this.getPosition(\n      last[3] || last[2] || findLastWithPosition(tokens)\n    )\n    node.source.end.offset++\n\n    while (tokens[0][0] !== 'word') {\n      if (tokens.length === 1) this.unknownWord(tokens)\n      node.raws.before += tokens.shift()[1]\n    }\n    node.source.start = this.getPosition(tokens[0][2])\n\n    node.prop = ''\n    while (tokens.length) {\n      let type = tokens[0][0]\n      if (type === ':' || type === 'space' || type === 'comment') {\n        break\n      }\n      node.prop += tokens.shift()[1]\n    }\n\n    node.raws.between = ''\n\n    let token\n    while (tokens.length) {\n      token = tokens.shift()\n\n      if (token[0] === ':') {\n        node.raws.between += token[1]\n        break\n      } else {\n        if (token[0] === 'word' && /\\w/.test(token[1])) {\n          this.unknownWord([token])\n        }\n        node.raws.between += token[1]\n      }\n    }\n\n    if (node.prop[0] === '_' || node.prop[0] === '*') {\n      node.raws.before += node.prop[0]\n      node.prop = node.prop.slice(1)\n    }\n\n    let firstSpaces = []\n    let next\n    while (tokens.length) {\n      next = tokens[0][0]\n      if (next !== 'space' && next !== 'comment') break\n      firstSpaces.push(tokens.shift())\n    }\n\n    this.precheckMissedSemicolon(tokens)\n\n    for (let i = tokens.length - 1; i >= 0; i--) {\n      token = tokens[i]\n      if (token[1].toLowerCase() === '!important') {\n        node.important = true\n        let string = this.stringFrom(tokens, i)\n        string = this.spacesFromEnd(tokens) + string\n        if (string !== ' !important') node.raws.important = string\n        break\n      } else if (token[1].toLowerCase() === 'important') {\n        let cache = tokens.slice(0)\n        let str = ''\n        for (let j = i; j > 0; j--) {\n          let type = cache[j][0]\n          if (str.trim().startsWith('!') && type !== 'space') {\n            break\n          }\n          str = cache.pop()[1] + str\n        }\n        if (str.trim().startsWith('!')) {\n          node.important = true\n          node.raws.important = str\n          tokens = cache\n        }\n      }\n\n      if (token[0] !== 'space' && token[0] !== 'comment') {\n        break\n      }\n    }\n\n    let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n    if (hasWord) {\n      node.raws.between += firstSpaces.map(i => i[1]).join('')\n      firstSpaces = []\n    }\n    this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n    if (node.value.includes(':') && !customProperty) {\n      this.checkMissedSemicolon(tokens)\n    }\n  }\n\n  doubleColon(token) {\n    throw this.input.error(\n      'Double colon',\n      { offset: token[2] },\n      { offset: token[2] + token[1].length }\n    )\n  }\n\n  emptyRule(token) {\n    let node = new Rule()\n    this.init(node, token[2])\n    node.selector = ''\n    node.raws.between = ''\n    this.current = node\n  }\n\n  end(token) {\n    if (this.current.nodes && this.current.nodes.length) {\n      this.current.raws.semicolon = this.semicolon\n    }\n    this.semicolon = false\n\n    this.current.raws.after = (this.current.raws.after || '') + this.spaces\n    this.spaces = ''\n\n    if (this.current.parent) {\n      this.current.source.end = this.getPosition(token[2])\n      this.current.source.end.offset++\n      this.current = this.current.parent\n    } else {\n      this.unexpectedClose(token)\n    }\n  }\n\n  endFile() {\n    if (this.current.parent) this.unclosedBlock()\n    if (this.current.nodes && this.current.nodes.length) {\n      this.current.raws.semicolon = this.semicolon\n    }\n    this.current.raws.after = (this.current.raws.after || '') + this.spaces\n    this.root.source.end = this.getPosition(this.tokenizer.position())\n  }\n\n  freeSemicolon(token) {\n    this.spaces += token[1]\n    if (this.current.nodes) {\n      let prev = this.current.nodes[this.current.nodes.length - 1]\n      if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n        prev.raws.ownSemicolon = this.spaces\n        this.spaces = ''\n        prev.source.end = this.getPosition(token[2])\n        prev.source.end.offset += prev.raws.ownSemicolon.length\n      }\n    }\n  }\n\n  // Helpers\n\n  getPosition(offset) {\n    let pos = this.input.fromOffset(offset)\n    return {\n      column: pos.col,\n      line: pos.line,\n      offset\n    }\n  }\n\n  init(node, offset) {\n    this.current.push(node)\n    node.source = {\n      input: this.input,\n      start: this.getPosition(offset)\n    }\n    node.raws.before = this.spaces\n    this.spaces = ''\n    if (node.type !== 'comment') this.semicolon = false\n  }\n\n  other(start) {\n    let end = false\n    let type = null\n    let colon = false\n    let bracket = null\n    let brackets = []\n    let customProperty = start[1].startsWith('--')\n\n    let tokens = []\n    let token = start\n    while (token) {\n      type = token[0]\n      tokens.push(token)\n\n      if (type === '(' || type === '[') {\n        if (!bracket) bracket = token\n        brackets.push(type === '(' ? ')' : ']')\n      } else if (customProperty && colon && type === '{') {\n        if (!bracket) bracket = token\n        brackets.push('}')\n      } else if (brackets.length === 0) {\n        if (type === ';') {\n          if (colon) {\n            this.decl(tokens, customProperty)\n            return\n          } else {\n            break\n          }\n        } else if (type === '{') {\n          this.rule(tokens)\n          return\n        } else if (type === '}') {\n          this.tokenizer.back(tokens.pop())\n          end = true\n          break\n        } else if (type === ':') {\n          colon = true\n        }\n      } else if (type === brackets[brackets.length - 1]) {\n        brackets.pop()\n        if (brackets.length === 0) bracket = null\n      }\n\n      token = this.tokenizer.nextToken()\n    }\n\n    if (this.tokenizer.endOfFile()) end = true\n    if (brackets.length > 0) this.unclosedBracket(bracket)\n\n    if (end && colon) {\n      if (!customProperty) {\n        while (tokens.length) {\n          token = tokens[tokens.length - 1][0]\n          if (token !== 'space' && token !== 'comment') break\n          this.tokenizer.back(tokens.pop())\n        }\n      }\n      this.decl(tokens, customProperty)\n    } else {\n      this.unknownWord(tokens)\n    }\n  }\n\n  parse() {\n    let token\n    while (!this.tokenizer.endOfFile()) {\n      token = this.tokenizer.nextToken()\n\n      switch (token[0]) {\n        case 'space':\n          this.spaces += token[1]\n          break\n\n        case ';':\n          this.freeSemicolon(token)\n          break\n\n        case '}':\n          this.end(token)\n          break\n\n        case 'comment':\n          this.comment(token)\n          break\n\n        case 'at-word':\n          this.atrule(token)\n          break\n\n        case '{':\n          this.emptyRule(token)\n          break\n\n        default:\n          this.other(token)\n          break\n      }\n    }\n    this.endFile()\n  }\n\n  precheckMissedSemicolon(/* tokens */) {\n    // Hook for Safe Parser\n  }\n\n  raw(node, prop, tokens, customProperty) {\n    let token, type\n    let length = tokens.length\n    let value = ''\n    let clean = true\n    let next, prev\n\n    for (let i = 0; i < length; i += 1) {\n      token = tokens[i]\n      type = token[0]\n      if (type === 'space' && i === length - 1 && !customProperty) {\n        clean = false\n      } else if (type === 'comment') {\n        prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n        next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n        if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n          if (value.slice(-1) === ',') {\n            clean = false\n          } else {\n            value += token[1]\n          }\n        } else {\n          clean = false\n        }\n      } else {\n        value += token[1]\n      }\n    }\n    if (!clean) {\n      let raw = tokens.reduce((all, i) => all + i[1], '')\n      node.raws[prop] = { raw, value }\n    }\n    node[prop] = value\n  }\n\n  rule(tokens) {\n    tokens.pop()\n\n    let node = new Rule()\n    this.init(node, tokens[0][2])\n\n    node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n    this.raw(node, 'selector', tokens)\n    this.current = node\n  }\n\n  spacesAndCommentsFromEnd(tokens) {\n    let lastTokenType\n    let spaces = ''\n    while (tokens.length) {\n      lastTokenType = tokens[tokens.length - 1][0]\n      if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n      spaces = tokens.pop()[1] + spaces\n    }\n    return spaces\n  }\n\n  // Errors\n\n  spacesAndCommentsFromStart(tokens) {\n    let next\n    let spaces = ''\n    while (tokens.length) {\n      next = tokens[0][0]\n      if (next !== 'space' && next !== 'comment') break\n      spaces += tokens.shift()[1]\n    }\n    return spaces\n  }\n\n  spacesFromEnd(tokens) {\n    let lastTokenType\n    let spaces = ''\n    while (tokens.length) {\n      lastTokenType = tokens[tokens.length - 1][0]\n      if (lastTokenType !== 'space') break\n      spaces = tokens.pop()[1] + spaces\n    }\n    return spaces\n  }\n\n  stringFrom(tokens, from) {\n    let result = ''\n    for (let i = from; i < tokens.length; i++) {\n      result += tokens[i][1]\n    }\n    tokens.splice(from, tokens.length - from)\n    return result\n  }\n\n  unclosedBlock() {\n    let pos = this.current.source.start\n    throw this.input.error('Unclosed block', pos.line, pos.column)\n  }\n\n  unclosedBracket(bracket) {\n    throw this.input.error(\n      'Unclosed bracket',\n      { offset: bracket[2] },\n      { offset: bracket[2] + 1 }\n    )\n  }\n\n  unexpectedClose(token) {\n    throw this.input.error(\n      'Unexpected }',\n      { offset: token[2] },\n      { offset: token[2] + 1 }\n    )\n  }\n\n  unknownWord(tokens) {\n    throw this.input.error(\n      'Unknown word ' + tokens[0][1],\n      { offset: tokens[0][2] },\n      { offset: tokens[0][2] + tokens[0][1].length }\n    )\n  }\n\n  unnamedAtrule(node, token) {\n    throw this.input.error(\n      'At-rule without name',\n      { offset: token[2] },\n      { offset: token[2] + token[1].length }\n    )\n  }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet Container = require('./container')\nlet Input = require('./input')\nlet Parser = require('./parser')\n\nfunction parse(css, opts) {\n  let input = new Input(css, opts)\n  let parser = new Parser(input)\n  try {\n    parser.parse()\n  } catch (e) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (e.name === 'CssSyntaxError' && opts && opts.from) {\n        if (/\\.scss$/i.test(opts.from)) {\n          e.message +=\n            '\\nYou tried to parse SCSS with ' +\n            'the standard CSS parser; ' +\n            'try again with the postcss-scss parser'\n        } else if (/\\.sass/i.test(opts.from)) {\n          e.message +=\n            '\\nYou tried to parse Sass with ' +\n            'the standard CSS parser; ' +\n            'try again with the postcss-sass parser'\n        } else if (/\\.less$/i.test(opts.from)) {\n          e.message +=\n            '\\nYou tried to parse Less with ' +\n            'the standard CSS parser; ' +\n            'try again with the postcss-less parser'\n        }\n      }\n    }\n    throw e\n  }\n\n  return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nclass Warning {\n  constructor(text, opts = {}) {\n    this.type = 'warning'\n    this.text = text\n\n    if (opts.node && opts.node.source) {\n      let range = opts.node.rangeBy(opts)\n      this.line = range.start.line\n      this.column = range.start.column\n      this.endLine = range.end.line\n      this.endColumn = range.end.column\n    }\n\n    for (let opt in opts) this[opt] = opts[opt]\n  }\n\n  toString() {\n    if (this.node) {\n      return this.node.error(this.text, {\n        index: this.index,\n        plugin: this.plugin,\n        word: this.word\n      }).message\n    }\n\n    if (this.plugin) {\n      return this.plugin + ': ' + this.text\n    }\n\n    return this.text\n  }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n  get content() {\n    return this.css\n  }\n\n  constructor(processor, root, opts) {\n    this.processor = processor\n    this.messages = []\n    this.root = root\n    this.opts = opts\n    this.css = ''\n    this.map = undefined\n  }\n\n  toString() {\n    return this.css\n  }\n\n  warn(text, opts = {}) {\n    if (!opts.plugin) {\n      if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n        opts.plugin = this.lastPlugin.postcssPlugin\n      }\n    }\n\n    let warning = new Warning(text, opts)\n    this.messages.push(warning)\n\n    return warning\n  }\n\n  warnings() {\n    return this.messages.filter(i => i.type === 'warning')\n  }\n}\n\nmodule.exports = Result\nResult.default = Result\n","/* eslint-disable no-console */\n'use strict'\n\nlet printed = {}\n\nmodule.exports = function warnOnce(message) {\n  if (printed[message]) return\n  printed[message] = true\n\n  if (typeof console !== 'undefined' && console.warn) {\n    console.warn(message)\n  }\n}\n","'use strict'\n\nlet Container = require('./container')\nlet Document = require('./document')\nlet MapGenerator = require('./map-generator')\nlet parse = require('./parse')\nlet Result = require('./result')\nlet Root = require('./root')\nlet stringify = require('./stringify')\nlet { isClean, my } = require('./symbols')\nlet warnOnce = require('./warn-once')\n\nconst TYPE_TO_CLASS_NAME = {\n  atrule: 'AtRule',\n  comment: 'Comment',\n  decl: 'Declaration',\n  document: 'Document',\n  root: 'Root',\n  rule: 'Rule'\n}\n\nconst PLUGIN_PROPS = {\n  AtRule: true,\n  AtRuleExit: true,\n  Comment: true,\n  CommentExit: true,\n  Declaration: true,\n  DeclarationExit: true,\n  Document: true,\n  DocumentExit: true,\n  Once: true,\n  OnceExit: true,\n  postcssPlugin: true,\n  prepare: true,\n  Root: true,\n  RootExit: true,\n  Rule: true,\n  RuleExit: true\n}\n\nconst NOT_VISITORS = {\n  Once: true,\n  postcssPlugin: true,\n  prepare: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n  return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n  let key = false\n  let type = TYPE_TO_CLASS_NAME[node.type]\n  if (node.type === 'decl') {\n    key = node.prop.toLowerCase()\n  } else if (node.type === 'atrule') {\n    key = node.name.toLowerCase()\n  }\n\n  if (key && node.append) {\n    return [\n      type,\n      type + '-' + key,\n      CHILDREN,\n      type + 'Exit',\n      type + 'Exit-' + key\n    ]\n  } else if (key) {\n    return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n  } else if (node.append) {\n    return [type, CHILDREN, type + 'Exit']\n  } else {\n    return [type, type + 'Exit']\n  }\n}\n\nfunction toStack(node) {\n  let events\n  if (node.type === 'document') {\n    events = ['Document', CHILDREN, 'DocumentExit']\n  } else if (node.type === 'root') {\n    events = ['Root', CHILDREN, 'RootExit']\n  } else {\n    events = getEvents(node)\n  }\n\n  return {\n    eventIndex: 0,\n    events,\n    iterator: 0,\n    node,\n    visitorIndex: 0,\n    visitors: []\n  }\n}\n\nfunction cleanMarks(node) {\n  node[isClean] = false\n  if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n  return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n  get content() {\n    return this.stringify().content\n  }\n\n  get css() {\n    return this.stringify().css\n  }\n\n  get map() {\n    return this.stringify().map\n  }\n\n  get messages() {\n    return this.sync().messages\n  }\n\n  get opts() {\n    return this.result.opts\n  }\n\n  get processor() {\n    return this.result.processor\n  }\n\n  get root() {\n    return this.sync().root\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'LazyResult'\n  }\n\n  constructor(processor, css, opts) {\n    this.stringified = false\n    this.processed = false\n\n    let root\n    if (\n      typeof css === 'object' &&\n      css !== null &&\n      (css.type === 'root' || css.type === 'document')\n    ) {\n      root = cleanMarks(css)\n    } else if (css instanceof LazyResult || css instanceof Result) {\n      root = cleanMarks(css.root)\n      if (css.map) {\n        if (typeof opts.map === 'undefined') opts.map = {}\n        if (!opts.map.inline) opts.map.inline = false\n        opts.map.prev = css.map\n      }\n    } else {\n      let parser = parse\n      if (opts.syntax) parser = opts.syntax.parse\n      if (opts.parser) parser = opts.parser\n      if (parser.parse) parser = parser.parse\n\n      try {\n        root = parser(css, opts)\n      } catch (error) {\n        this.processed = true\n        this.error = error\n      }\n\n      if (root && !root[my]) {\n        /* c8 ignore next 2 */\n        Container.rebuild(root)\n      }\n    }\n\n    this.result = new Result(processor, root, opts)\n    this.helpers = { ...postcss, postcss, result: this.result }\n    this.plugins = this.processor.plugins.map(plugin => {\n      if (typeof plugin === 'object' && plugin.prepare) {\n        return { ...plugin, ...plugin.prepare(this.result) }\n      } else {\n        return plugin\n      }\n    })\n  }\n\n  async() {\n    if (this.error) return Promise.reject(this.error)\n    if (this.processed) return Promise.resolve(this.result)\n    if (!this.processing) {\n      this.processing = this.runAsync()\n    }\n    return this.processing\n  }\n\n  catch(onRejected) {\n    return this.async().catch(onRejected)\n  }\n\n  finally(onFinally) {\n    return this.async().then(onFinally, onFinally)\n  }\n\n  getAsyncError() {\n    throw new Error('Use process(css).then(cb) to work with async plugins')\n  }\n\n  handleError(error, node) {\n    let plugin = this.result.lastPlugin\n    try {\n      if (node) node.addToError(error)\n      this.error = error\n      if (error.name === 'CssSyntaxError' && !error.plugin) {\n        error.plugin = plugin.postcssPlugin\n        error.setMessage()\n      } else if (plugin.postcssVersion) {\n        if (process.env.NODE_ENV !== 'production') {\n          let pluginName = plugin.postcssPlugin\n          let pluginVer = plugin.postcssVersion\n          let runtimeVer = this.result.processor.version\n          let a = pluginVer.split('.')\n          let b = runtimeVer.split('.')\n\n          if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n            // eslint-disable-next-line no-console\n            console.error(\n              'Unknown error from PostCSS plugin. Your current PostCSS ' +\n                'version is ' +\n                runtimeVer +\n                ', but ' +\n                pluginName +\n                ' uses ' +\n                pluginVer +\n                '. Perhaps this is the source of the error below.'\n            )\n          }\n        }\n      }\n    } catch (err) {\n      /* c8 ignore next 3 */\n      // eslint-disable-next-line no-console\n      if (console && console.error) console.error(err)\n    }\n    return error\n  }\n\n  prepareVisitors() {\n    this.listeners = {}\n    let add = (plugin, type, cb) => {\n      if (!this.listeners[type]) this.listeners[type] = []\n      this.listeners[type].push([plugin, cb])\n    }\n    for (let plugin of this.plugins) {\n      if (typeof plugin === 'object') {\n        for (let event in plugin) {\n          if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n            throw new Error(\n              `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n                `Try to update PostCSS (${this.processor.version} now).`\n            )\n          }\n          if (!NOT_VISITORS[event]) {\n            if (typeof plugin[event] === 'object') {\n              for (let filter in plugin[event]) {\n                if (filter === '*') {\n                  add(plugin, event, plugin[event][filter])\n                } else {\n                  add(\n                    plugin,\n                    event + '-' + filter.toLowerCase(),\n                    plugin[event][filter]\n                  )\n                }\n              }\n            } else if (typeof plugin[event] === 'function') {\n              add(plugin, event, plugin[event])\n            }\n          }\n        }\n      }\n    }\n    this.hasListener = Object.keys(this.listeners).length > 0\n  }\n\n  async runAsync() {\n    this.plugin = 0\n    for (let i = 0; i < this.plugins.length; i++) {\n      let plugin = this.plugins[i]\n      let promise = this.runOnRoot(plugin)\n      if (isPromise(promise)) {\n        try {\n          await promise\n        } catch (error) {\n          throw this.handleError(error)\n        }\n      }\n    }\n\n    this.prepareVisitors()\n    if (this.hasListener) {\n      let root = this.result.root\n      while (!root[isClean]) {\n        root[isClean] = true\n        let stack = [toStack(root)]\n        while (stack.length > 0) {\n          let promise = this.visitTick(stack)\n          if (isPromise(promise)) {\n            try {\n              await promise\n            } catch (e) {\n              let node = stack[stack.length - 1].node\n              throw this.handleError(e, node)\n            }\n          }\n        }\n      }\n\n      if (this.listeners.OnceExit) {\n        for (let [plugin, visitor] of this.listeners.OnceExit) {\n          this.result.lastPlugin = plugin\n          try {\n            if (root.type === 'document') {\n              let roots = root.nodes.map(subRoot =>\n                visitor(subRoot, this.helpers)\n              )\n\n              await Promise.all(roots)\n            } else {\n              await visitor(root, this.helpers)\n            }\n          } catch (e) {\n            throw this.handleError(e)\n          }\n        }\n      }\n    }\n\n    this.processed = true\n    return this.stringify()\n  }\n\n  runOnRoot(plugin) {\n    this.result.lastPlugin = plugin\n    try {\n      if (typeof plugin === 'object' && plugin.Once) {\n        if (this.result.root.type === 'document') {\n          let roots = this.result.root.nodes.map(root =>\n            plugin.Once(root, this.helpers)\n          )\n\n          if (isPromise(roots[0])) {\n            return Promise.all(roots)\n          }\n\n          return roots\n        }\n\n        return plugin.Once(this.result.root, this.helpers)\n      } else if (typeof plugin === 'function') {\n        return plugin(this.result.root, this.result)\n      }\n    } catch (error) {\n      throw this.handleError(error)\n    }\n  }\n\n  stringify() {\n    if (this.error) throw this.error\n    if (this.stringified) return this.result\n    this.stringified = true\n\n    this.sync()\n\n    let opts = this.result.opts\n    let str = stringify\n    if (opts.syntax) str = opts.syntax.stringify\n    if (opts.stringifier) str = opts.stringifier\n    if (str.stringify) str = str.stringify\n\n    let map = new MapGenerator(str, this.result.root, this.result.opts)\n    let data = map.generate()\n    this.result.css = data[0]\n    this.result.map = data[1]\n\n    return this.result\n  }\n\n  sync() {\n    if (this.error) throw this.error\n    if (this.processed) return this.result\n    this.processed = true\n\n    if (this.processing) {\n      throw this.getAsyncError()\n    }\n\n    for (let plugin of this.plugins) {\n      let promise = this.runOnRoot(plugin)\n      if (isPromise(promise)) {\n        throw this.getAsyncError()\n      }\n    }\n\n    this.prepareVisitors()\n    if (this.hasListener) {\n      let root = this.result.root\n      while (!root[isClean]) {\n        root[isClean] = true\n        this.walkSync(root)\n      }\n      if (this.listeners.OnceExit) {\n        if (root.type === 'document') {\n          for (let subRoot of root.nodes) {\n            this.visitSync(this.listeners.OnceExit, subRoot)\n          }\n        } else {\n          this.visitSync(this.listeners.OnceExit, root)\n        }\n      }\n    }\n\n    return this.result\n  }\n\n  then(onFulfilled, onRejected) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (!('from' in this.opts)) {\n        warnOnce(\n          'Without `from` option PostCSS could generate wrong source map ' +\n            'and will not find Browserslist config. Set it to CSS file path ' +\n            'or to `undefined` to prevent this warning.'\n        )\n      }\n    }\n    return this.async().then(onFulfilled, onRejected)\n  }\n\n  toString() {\n    return this.css\n  }\n\n  visitSync(visitors, node) {\n    for (let [plugin, visitor] of visitors) {\n      this.result.lastPlugin = plugin\n      let promise\n      try {\n        promise = visitor(node, this.helpers)\n      } catch (e) {\n        throw this.handleError(e, node.proxyOf)\n      }\n      if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n        return true\n      }\n      if (isPromise(promise)) {\n        throw this.getAsyncError()\n      }\n    }\n  }\n\n  visitTick(stack) {\n    let visit = stack[stack.length - 1]\n    let { node, visitors } = visit\n\n    if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n      stack.pop()\n      return\n    }\n\n    if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n      let [plugin, visitor] = visitors[visit.visitorIndex]\n      visit.visitorIndex += 1\n      if (visit.visitorIndex === visitors.length) {\n        visit.visitors = []\n        visit.visitorIndex = 0\n      }\n      this.result.lastPlugin = plugin\n      try {\n        return visitor(node.toProxy(), this.helpers)\n      } catch (e) {\n        throw this.handleError(e, node)\n      }\n    }\n\n    if (visit.iterator !== 0) {\n      let iterator = visit.iterator\n      let child\n      while ((child = node.nodes[node.indexes[iterator]])) {\n        node.indexes[iterator] += 1\n        if (!child[isClean]) {\n          child[isClean] = true\n          stack.push(toStack(child))\n          return\n        }\n      }\n      visit.iterator = 0\n      delete node.indexes[iterator]\n    }\n\n    let events = visit.events\n    while (visit.eventIndex < events.length) {\n      let event = events[visit.eventIndex]\n      visit.eventIndex += 1\n      if (event === CHILDREN) {\n        if (node.nodes && node.nodes.length) {\n          node[isClean] = true\n          visit.iterator = node.getIterator()\n        }\n        return\n      } else if (this.listeners[event]) {\n        visit.visitors = this.listeners[event]\n        return\n      }\n    }\n    stack.pop()\n  }\n\n  walkSync(node) {\n    node[isClean] = true\n    let events = getEvents(node)\n    for (let event of events) {\n      if (event === CHILDREN) {\n        if (node.nodes) {\n          node.each(child => {\n            if (!child[isClean]) this.walkSync(child)\n          })\n        }\n      } else {\n        let visitors = this.listeners[event]\n        if (visitors) {\n          if (this.visitSync(visitors, node.toProxy())) return\n        }\n      }\n    }\n  }\n\n  warnings() {\n    return this.sync().warnings()\n  }\n}\n\nLazyResult.registerPostcss = dependant => {\n  postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet parse = require('./parse')\nconst Result = require('./result')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\n\nclass NoWorkResult {\n  get content() {\n    return this.result.css\n  }\n\n  get css() {\n    return this.result.css\n  }\n\n  get map() {\n    return this.result.map\n  }\n\n  get messages() {\n    return []\n  }\n\n  get opts() {\n    return this.result.opts\n  }\n\n  get processor() {\n    return this.result.processor\n  }\n\n  get root() {\n    if (this._root) {\n      return this._root\n    }\n\n    let root\n    let parser = parse\n\n    try {\n      root = parser(this._css, this._opts)\n    } catch (error) {\n      this.error = error\n    }\n\n    if (this.error) {\n      throw this.error\n    } else {\n      this._root = root\n      return root\n    }\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'NoWorkResult'\n  }\n\n  constructor(processor, css, opts) {\n    css = css.toString()\n    this.stringified = false\n\n    this._processor = processor\n    this._css = css\n    this._opts = opts\n    this._map = undefined\n    let root\n\n    let str = stringify\n    this.result = new Result(this._processor, root, this._opts)\n    this.result.css = css\n\n    let self = this\n    Object.defineProperty(this.result, 'root', {\n      get() {\n        return self.root\n      }\n    })\n\n    let map = new MapGenerator(str, root, this._opts, css)\n    if (map.isMap()) {\n      let [generatedCSS, generatedMap] = map.generate()\n      if (generatedCSS) {\n        this.result.css = generatedCSS\n      }\n      if (generatedMap) {\n        this.result.map = generatedMap\n      }\n    } else {\n      map.clearAnnotation()\n      this.result.css = map.css\n    }\n  }\n\n  async() {\n    if (this.error) return Promise.reject(this.error)\n    return Promise.resolve(this.result)\n  }\n\n  catch(onRejected) {\n    return this.async().catch(onRejected)\n  }\n\n  finally(onFinally) {\n    return this.async().then(onFinally, onFinally)\n  }\n\n  sync() {\n    if (this.error) throw this.error\n    return this.result\n  }\n\n  then(onFulfilled, onRejected) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (!('from' in this._opts)) {\n        warnOnce(\n          'Without `from` option PostCSS could generate wrong source map ' +\n            'and will not find Browserslist config. Set it to CSS file path ' +\n            'or to `undefined` to prevent this warning.'\n        )\n      }\n    }\n\n    return this.async().then(onFulfilled, onRejected)\n  }\n\n  toString() {\n    return this._css\n  }\n\n  warnings() {\n    return []\n  }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet Document = require('./document')\nlet LazyResult = require('./lazy-result')\nlet NoWorkResult = require('./no-work-result')\nlet Root = require('./root')\n\nclass Processor {\n  constructor(plugins = []) {\n    this.version = '8.5.6'\n    this.plugins = this.normalize(plugins)\n  }\n\n  normalize(plugins) {\n    let normalized = []\n    for (let i of plugins) {\n      if (i.postcss === true) {\n        i = i()\n      } else if (i.postcss) {\n        i = i.postcss\n      }\n\n      if (typeof i === 'object' && Array.isArray(i.plugins)) {\n        normalized = normalized.concat(i.plugins)\n      } else if (typeof i === 'object' && i.postcssPlugin) {\n        normalized.push(i)\n      } else if (typeof i === 'function') {\n        normalized.push(i)\n      } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n        if (process.env.NODE_ENV !== 'production') {\n          throw new Error(\n            'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n              'one of the syntax/parser/stringifier options as outlined ' +\n              'in your PostCSS runner documentation.'\n          )\n        }\n      } else {\n        throw new Error(i + ' is not a PostCSS plugin')\n      }\n    }\n    return normalized\n  }\n\n  process(css, opts = {}) {\n    if (\n      !this.plugins.length &&\n      !opts.parser &&\n      !opts.stringifier &&\n      !opts.syntax\n    ) {\n      return new NoWorkResult(this, css, opts)\n    } else {\n      return new LazyResult(this, css, opts)\n    }\n  }\n\n  use(plugin) {\n    this.plugins = this.plugins.concat(this.normalize([plugin]))\n    return this\n  }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Container = require('./container')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet Document = require('./document')\nlet fromJSON = require('./fromJSON')\nlet Input = require('./input')\nlet LazyResult = require('./lazy-result')\nlet list = require('./list')\nlet Node = require('./node')\nlet parse = require('./parse')\nlet Processor = require('./processor')\nlet Result = require('./result.js')\nlet Root = require('./root')\nlet Rule = require('./rule')\nlet stringify = require('./stringify')\nlet Warning = require('./warning')\n\nfunction postcss(...plugins) {\n  if (plugins.length === 1 && Array.isArray(plugins[0])) {\n    plugins = plugins[0]\n  }\n  return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n  let warningPrinted = false\n  function creator(...args) {\n    // eslint-disable-next-line no-console\n    if (console && console.warn && !warningPrinted) {\n      warningPrinted = true\n      // eslint-disable-next-line no-console\n      console.warn(\n        name +\n          ': postcss.plugin was deprecated. Migration guide:\\n' +\n          'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n      )\n      if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n        /* c8 ignore next 7 */\n        // eslint-disable-next-line no-console\n        console.warn(\n          name +\n            ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n            'https://www.w3ctech.com/topic/2226'\n        )\n      }\n    }\n    let transformer = initializer(...args)\n    transformer.postcssPlugin = name\n    transformer.postcssVersion = new Processor().version\n    return transformer\n  }\n\n  let cache\n  Object.defineProperty(creator, 'postcss', {\n    get() {\n      if (!cache) cache = creator()\n      return cache\n    }\n  })\n\n  creator.process = function (css, processOpts, pluginOpts) {\n    return postcss([creator(pluginOpts)]).process(css, processOpts)\n  }\n\n  return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","import postcss from './postcss.js'\n\nexport default postcss\n\nexport const stringify = postcss.stringify\nexport const fromJSON = postcss.fromJSON\nexport const plugin = postcss.plugin\nexport const parse = postcss.parse\nexport const list = postcss.list\n\nexport const document = postcss.document\nexport const comment = postcss.comment\nexport const atRule = postcss.atRule\nexport const rule = postcss.rule\nexport const decl = postcss.decl\nexport const root = postcss.root\n\nexport const CssSyntaxError = postcss.CssSyntaxError\nexport const Declaration = postcss.Declaration\nexport const Container = postcss.Container\nexport const Processor = postcss.Processor\nexport const Document = postcss.Document\nexport const Comment = postcss.Comment\nexport const Warning = postcss.Warning\nexport const AtRule = postcss.AtRule\nexport const Result = postcss.Result\nexport const Input = postcss.Input\nexport const Rule = postcss.Rule\nexport const Root = postcss.Root\nexport const Node = postcss.Node\n"],"names":["x","create","picocolors_browserModule","__viteBrowserExternal","pico","require$$0","terminalHighlight","require$$1","CssSyntaxError","message","line","column","source","file","plugin","color","css","aside","text","mark","highlight","bold","gray","red","lines","start","end","maxWidth","index","number","gutter","padding","subLineStart","subLineEnd","subLine","spacing","code","cssSyntaxError","DEFAULT_RAW","capitalize","str","Stringifier","builder","node","semicolon","name","params","detect","value","buf","depth","indent","step","between","after","last","i","child","before","left","right","string","own","parent","root","method","p","parts","prop","raw","stringifier","stringify","stringify_1","symbols","require$$2","isClean","my","require$$3","cloneNode","obj","cloned","type","j","sourceOffset","inputCSS","position","offset","Node","defaults","error","s","add","overrides","keepBetween","opts","next","pos","inputString","defaultType","nodes","bookmark","foundSelf","result","_","inputs","fixed","emitInputs","inputsNextIndex","inputId","input","data","Comment","comment","Declaration","declaration","AtRule","parse","Root","Rule","cleanSource","markTreeDirty","Container","children","callback","iterator","condition","args","cb","other","exist","existIndex","id","sample","pattern","decl","e","selector","dependant","container","atRule","LazyResult","Processor","Document","document","urlAlphabet","nonSecure","size","alphabet","defaultSize","existsSync","readFileSync","dirname","join","SourceMapConsumer","SourceMapGenerator","fromBase64","PreviousMap","prev","baseCharsetUri","baseUri","charsetUri","uri","uriMatch","baseUriMatch","encoding","sourceMapString","map","comments","path","prevPath","previousMap","nanoid","isAbsolute","resolve","fileURLToPath","pathToFileURL","require$$4","require$$5","require$$6","lineToIndexCache","sourceMapAvailable","pathAvailable","getLineToIndex","lineToIndex","prevIndex","l","Input","endColumn","endLine","endOffset","origin","lastLine","min","max","mid","consumer","from","to","fromUrl","json","ignore","list","spaces","separators","array","current","split","func","inQuote","prevQuote","escape","letter","list_1","values","match","sep","rule","fromJSON","n","ownInputs","inputHydrated","fromJSON_1","relative","MapGenerator","cssString","content","eol","noSource","mapping","annotation","cached","already","fileURL","url","mapGenerator","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","tokenize","options","quote","currentToken","escaped","escapePos","length","buffer","returned","unclosed","what","endOfFile","nextToken","ignoreUnclosed","controlChar","back","token","tokenizer","SAFE_COMMENT_NEIGHBOR","findLastWithPosition","tokens","Parser","shift","open","brackets","colon","founded","element","customProperty","firstSpaces","cache","bracket","clean","all","lastTokenType","parser","parse_1","Warning","range","opt","warning","Result","processor","printed","warnOnce","require$$7","require$$8","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","NOT_VISITORS","CHILDREN","isPromise","getEvents","key","toStack","events","cleanMarks","postcss","onRejected","onFinally","pluginName","pluginVer","runtimeVer","a","b","err","event","filter","promise","stack","visitor","roots","subRoot","onFulfilled","visitors","visit","lazyResult","NoWorkResult","self","generatedCSS","generatedMap","noWorkResult","plugins","normalized","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","initializer","warningPrinted","creator","transformer","processOpts","pluginOpts","postcss_1"],"mappings":"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","x_google_ignoreList":[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]}