@universityofmaryland/web-components-library 1.18.1 → 1.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index-BLm1QedK.js","sources":["../source/web-components/navigation/breadcrumb.ts","../../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.browser.js","../__vite-browser-external","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/css-syntax-error.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/stringifier.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/stringify.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/symbols.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/node.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/comment.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/declaration.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/container.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/at-rule.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/document.js","../../../node_modules/.pnpm/nanoid@3.3.11/node_modules/nanoid/non-secure/index.cjs","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/previous-map.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/input.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/root.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/list.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/rule.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/fromJSON.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/map-generator.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/tokenize.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/parser.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/parse.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/warning.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/result.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/lazy-result.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/no-work-result.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/processor.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/postcss.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/postcss.mjs","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/util/unesc.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/util/getProp.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/util/ensureObject.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/util/stripComments.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/util/index.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/node.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/types.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/container.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/root.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/selector.js","../../../node_modules/.pnpm/cssesc@3.0.0/node_modules/cssesc/cssesc.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/className.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/comment.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/id.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/namespace.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/tag.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/string.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/pseudo.js","../../../node_modules/.pnpm/util-deprecate@1.0.2/node_modules/util-deprecate/browser.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/attribute.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/universal.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/combinator.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/nesting.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/sortAscending.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/tokenTypes.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/tokenize.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/parser.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/processor.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/constructors.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/guards.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/index.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/index.js","../../../node_modules/.pnpm/postcss-nesting@13.0.2_postcss@8.5.8/node_modules/postcss-nesting/dist/index.mjs","../../../node_modules/.pnpm/postcss-js@4.1.0_postcss@8.5.8/node_modules/postcss-js/parser.js","../../../node_modules/.pnpm/camelcase-css@2.0.1/node_modules/camelcase-css/index-es5.js","../../../node_modules/.pnpm/postcss-js@4.1.0_postcss@8.5.8/node_modules/postcss-js/objectifier.js","../../../node_modules/.pnpm/postcss-js@4.1.0_postcss@8.5.8/node_modules/postcss-js/process-result.js","../../../node_modules/.pnpm/postcss-js@4.1.0_postcss@8.5.8/node_modules/postcss-js/async.js","../../../node_modules/.pnpm/postcss-js@4.1.0_postcss@8.5.8/node_modules/postcss-js/sync.js","../../../node_modules/.pnpm/postcss-js@4.1.0_postcss@8.5.8/node_modules/postcss-js/index.js","../../../node_modules/.pnpm/postcss-js@4.1.0_postcss@8.5.8/node_modules/postcss-js/index.mjs","../source/helpers/styles.ts","../source/web-components/navigation/common.ts","../source/web-components/navigation/drawer.ts","../source/web-components/navigation/header.ts","../source/web-components/navigation/item.ts","../source/web-components/navigation/slider.ts","../source/web-components/navigation/sticky.ts"],"sourcesContent":["import { navigation } from '@universityofmaryland/web-elements-library/composite';\nimport { createStyledSlotOrClone } from '@universityofmaryland/web-utilities-library/elements';\nimport { Attributes, Model, Slots } from '@universityofmaryland/web-model-library';\nimport { CreateComponentFunction, ComponentRegistration, SlotConfiguration } from '../../_types';\n\nconst tagName = 'umd-element-breadcrumb';\n\nconst slots: SlotConfiguration = {\n paths: {\n required: true,\n },\n};\n\nconst createComponent: CreateComponentFunction = (element) => {\n const linkListSlot = createStyledSlotOrClone({\n element,\n slotRef: Slots.name.PATHS,\n });\n\n if (!linkListSlot)\n return { element: document.createElement('div'), styles: '' };\n\n return navigation.elements.breadcrumb({\n isThemeDark: Attributes.isTheme.dark({ element }),\n linkListSlot,\n });\n};\n\n/**\n * Breadcrumb Navigation\n *\n * A breadcrumb navigation component that displays a hierarchical trail of links.\n * Helps users understand their location within the site structure and navigate back to parent pages.\n *\n * ## Custom Element\n * `<umd-element-breadcrumb>`\n *\n * ## Slots\n * - `paths` - Navigation list containing breadcrumb links (required, accepts: ol, ul)\n *\n * ## Attributes\n * - `data-theme` - Theme options:\n * - `dark` - Dark theme styling\n *\n * @example\n * ```html\n * <!-- Basic breadcrumb -->\n * <umd-element-breadcrumb>\n * <ol slot=\"paths\">\n * <li><a href=\"/\">Home</a></li>\n * <li><a href=\"/academics\">Academics</a></li>\n * <li><a href=\"/academics/programs\">Programs</a></li>\n * <li>Computer Science</li>\n * </ol>\n * </umd-element-breadcrumb>\n * ```\n *\n * @example\n * ```html\n * <!-- Dark theme breadcrumb -->\n * <umd-element-breadcrumb data-theme=\"dark\">\n * <ul slot=\"paths\">\n * <li><a href=\"/\">UMD</a></li>\n * <li><a href=\"/research\">Research</a></li>\n * <li>Quantum Computing Lab</li>\n * </ul>\n * </umd-element-breadcrumb>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const NavigationBreadcrumb: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { NavigationBreadcrumb as breadcrumb };\n","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 let startIndex\n while ((startIndex = this.css.lastIndexOf('/*#')) !== -1) {\n let endIndex = this.css.indexOf('*/', startIndex + 3)\n if (endIndex === -1) break\n while (startIndex > 0 && this.css[startIndex - 1] === '\\n') {\n startIndex--\n }\n this.css = this.css.slice(0, startIndex) + this.css.slice(endIndex + 2)\n }\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 (!text.trim()) {\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","'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\n let str = stringify\n this.result = new Result(this._processor, undefined, 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, undefined, 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.8'\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","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = unesc;\n// Many thanks for this post which made this migration much easier.\n// https://mathiasbynens.be/notes/css-escapes\n\n/**\n * \n * @param {string} str \n * @returns {[string, number]|undefined}\n */\nfunction gobbleHex(str) {\n var lower = str.toLowerCase();\n var hex = '';\n var spaceTerminated = false;\n for (var i = 0; i < 6 && lower[i] !== undefined; i++) {\n var code = lower.charCodeAt(i);\n // check to see if we are dealing with a valid hex char [a-f|0-9]\n var valid = code >= 97 && code <= 102 || code >= 48 && code <= 57;\n // https://drafts.csswg.org/css-syntax/#consume-escaped-code-point\n spaceTerminated = code === 32;\n if (!valid) {\n break;\n }\n hex += lower[i];\n }\n if (hex.length === 0) {\n return undefined;\n }\n var codePoint = parseInt(hex, 16);\n var isSurrogate = codePoint >= 0xD800 && codePoint <= 0xDFFF;\n // Add special case for\n // \"If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point\"\n // https://drafts.csswg.org/css-syntax/#maximum-allowed-code-point\n if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10FFFF) {\n return [\"\\uFFFD\", hex.length + (spaceTerminated ? 1 : 0)];\n }\n return [String.fromCodePoint(codePoint), hex.length + (spaceTerminated ? 1 : 0)];\n}\nvar CONTAINS_ESCAPE = /\\\\/;\nfunction unesc(str) {\n var needToProcess = CONTAINS_ESCAPE.test(str);\n if (!needToProcess) {\n return str;\n }\n var ret = \"\";\n for (var i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n var gobbled = gobbleHex(str.slice(i + 1, i + 7));\n if (gobbled !== undefined) {\n ret += gobbled[0];\n i += gobbled[1];\n continue;\n }\n\n // Retain a pair of \\\\ if double escaped `\\\\\\\\`\n // https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e\n if (str[i + 1] === \"\\\\\") {\n ret += \"\\\\\";\n i++;\n continue;\n }\n\n // if \\\\ is at the end of the string retain it\n // https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb\n if (str.length === i + 1) {\n ret += str[i];\n }\n continue;\n }\n ret += str[i];\n }\n return ret;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = getProp;\nfunction getProp(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n while (props.length > 0) {\n var prop = props.shift();\n if (!obj[prop]) {\n return undefined;\n }\n obj = obj[prop];\n }\n return obj;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = ensureObject;\nfunction ensureObject(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n while (props.length > 0) {\n var prop = props.shift();\n if (!obj[prop]) {\n obj[prop] = {};\n }\n obj = obj[prop];\n }\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stripComments;\nfunction stripComments(str) {\n var s = \"\";\n var commentStart = str.indexOf(\"/*\");\n var lastEnd = 0;\n while (commentStart >= 0) {\n s = s + str.slice(lastEnd, commentStart);\n var commentEnd = str.indexOf(\"*/\", commentStart + 2);\n if (commentEnd < 0) {\n return s;\n }\n lastEnd = commentEnd + 2;\n commentStart = str.indexOf(\"/*\", lastEnd);\n }\n s = s + str.slice(lastEnd);\n return s;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.unesc = exports.stripComments = exports.getProp = exports.ensureObject = void 0;\nvar _unesc = _interopRequireDefault(require(\"./unesc\"));\nexports.unesc = _unesc[\"default\"];\nvar _getProp = _interopRequireDefault(require(\"./getProp\"));\nexports.getProp = _getProp[\"default\"];\nvar _ensureObject = _interopRequireDefault(require(\"./ensureObject\"));\nexports.ensureObject = _ensureObject[\"default\"];\nvar _stripComments = _interopRequireDefault(require(\"./stripComments\"));\nexports.stripComments = _stripComments[\"default\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _util = require(\"../util\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar cloneNode = function cloneNode(obj, parent) {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n var cloned = new obj.constructor();\n for (var i in obj) {\n if (!obj.hasOwnProperty(i)) {\n continue;\n }\n var value = obj[i];\n var type = typeof value;\n if (i === 'parent' && type === 'object') {\n if (parent) {\n cloned[i] = parent;\n }\n } else if (value instanceof Array) {\n cloned[i] = value.map(function (j) {\n return cloneNode(j, cloned);\n });\n } else {\n cloned[i] = cloneNode(value, cloned);\n }\n }\n return cloned;\n};\nvar Node = /*#__PURE__*/function () {\n function Node(opts) {\n if (opts === void 0) {\n opts = {};\n }\n Object.assign(this, opts);\n this.spaces = this.spaces || {};\n this.spaces.before = this.spaces.before || '';\n this.spaces.after = this.spaces.after || '';\n }\n var _proto = Node.prototype;\n _proto.remove = function remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = undefined;\n return this;\n };\n _proto.replaceWith = function replaceWith() {\n if (this.parent) {\n for (var index in arguments) {\n this.parent.insertBefore(this, arguments[index]);\n }\n this.remove();\n }\n return this;\n };\n _proto.next = function next() {\n return this.parent.at(this.parent.index(this) + 1);\n };\n _proto.prev = function prev() {\n return this.parent.at(this.parent.index(this) - 1);\n };\n _proto.clone = function clone(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n var cloned = cloneNode(this);\n for (var name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows non standard syntax to be appended to an existing property\n * by specifying the escaped value. By specifying the escaped value,\n * illegal characters are allowed to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped optional. the escaped value of the property.\n */;\n _proto.appendToPropertyAndEscape = function appendToPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n var originalValue = this[name];\n var originalEscaped = this.raws[name];\n this[name] = originalValue + value; // this may trigger a setter that updates raws, so it has to be set first.\n if (originalEscaped || valueEscaped !== value) {\n this.raws[name] = (originalEscaped || originalValue) + valueEscaped;\n } else {\n delete this.raws[name]; // delete any escaped value that was created by the setter.\n }\n }\n\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows the escaped value to be specified directly, allowing illegal\n * characters to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped the escaped value of the property.\n */;\n _proto.setPropertyAndEscape = function setPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n this.raws[name] = valueEscaped;\n }\n\n /**\n * When you want a value to passed through to CSS directly. This method\n * deletes the corresponding raw value causing the stringifier to fallback\n * to the unescaped value.\n * @param {string} name the property to set.\n * @param {any} value The value that is both escaped and unescaped.\n */;\n _proto.setPropertyWithoutEscape = function setPropertyWithoutEscape(name, value) {\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n if (this.raws) {\n delete this.raws[name];\n }\n }\n\n /**\n *\n * @param {number} line The number (starting with 1)\n * @param {number} column The column number (starting with 1)\n */;\n _proto.isAtPosition = function isAtPosition(line, column) {\n if (this.source && this.source.start && this.source.end) {\n if (this.source.start.line > line) {\n return false;\n }\n if (this.source.end.line < line) {\n return false;\n }\n if (this.source.start.line === line && this.source.start.column > column) {\n return false;\n }\n if (this.source.end.line === line && this.source.end.column < column) {\n return false;\n }\n return true;\n }\n return undefined;\n };\n _proto.stringifyProperty = function stringifyProperty(name) {\n return this.raws && this.raws[name] || this[name];\n };\n _proto.valueToString = function valueToString() {\n return String(this.stringifyProperty(\"value\"));\n };\n _proto.toString = function toString() {\n return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join('');\n };\n _createClass(Node, [{\n key: \"rawSpaceBefore\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.before;\n if (rawSpace === undefined) {\n rawSpace = this.spaces && this.spaces.before;\n }\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.before = raw;\n }\n }, {\n key: \"rawSpaceAfter\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.after;\n if (rawSpace === undefined) {\n rawSpace = this.spaces.after;\n }\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.after = raw;\n }\n }]);\n return Node;\n}();\nexports[\"default\"] = Node;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.UNIVERSAL = exports.TAG = exports.STRING = exports.SELECTOR = exports.ROOT = exports.PSEUDO = exports.NESTING = exports.ID = exports.COMMENT = exports.COMBINATOR = exports.CLASS = exports.ATTRIBUTE = void 0;\nvar TAG = 'tag';\nexports.TAG = TAG;\nvar STRING = 'string';\nexports.STRING = STRING;\nvar SELECTOR = 'selector';\nexports.SELECTOR = SELECTOR;\nvar ROOT = 'root';\nexports.ROOT = ROOT;\nvar PSEUDO = 'pseudo';\nexports.PSEUDO = PSEUDO;\nvar NESTING = 'nesting';\nexports.NESTING = NESTING;\nvar ID = 'id';\nexports.ID = ID;\nvar COMMENT = 'comment';\nexports.COMMENT = COMMENT;\nvar COMBINATOR = 'combinator';\nexports.COMBINATOR = COMBINATOR;\nvar CLASS = 'class';\nexports.CLASS = CLASS;\nvar ATTRIBUTE = 'attribute';\nexports.ATTRIBUTE = ATTRIBUTE;\nvar UNIVERSAL = 'universal';\nexports.UNIVERSAL = UNIVERSAL;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar types = _interopRequireWildcard(require(\"./types\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Container = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Container, _Node);\n function Container(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n if (!_this.nodes) {\n _this.nodes = [];\n }\n return _this;\n }\n var _proto = Container.prototype;\n _proto.append = function append(selector) {\n selector.parent = this;\n this.nodes.push(selector);\n return this;\n };\n _proto.prepend = function prepend(selector) {\n selector.parent = this;\n this.nodes.unshift(selector);\n for (var id in this.indexes) {\n this.indexes[id]++;\n }\n return this;\n };\n _proto.at = function at(index) {\n return this.nodes[index];\n };\n _proto.index = function index(child) {\n if (typeof child === 'number') {\n return child;\n }\n return this.nodes.indexOf(child);\n };\n _proto.removeChild = function removeChild(child) {\n child = this.index(child);\n this.at(child).parent = undefined;\n this.nodes.splice(child, 1);\n var index;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n return this;\n };\n _proto.removeAll = function removeAll() {\n for (var _iterator = _createForOfIteratorHelperLoose(this.nodes), _step; !(_step = _iterator()).done;) {\n var node = _step.value;\n node.parent = undefined;\n }\n this.nodes = [];\n return this;\n };\n _proto.empty = function empty() {\n return this.removeAll();\n };\n _proto.insertAfter = function insertAfter(oldNode, newNode) {\n var _this$nodes;\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n var resetNode = [];\n for (var i = 2; i < arguments.length; i++) {\n resetNode.push(arguments[i]);\n }\n (_this$nodes = this.nodes).splice.apply(_this$nodes, [oldIndex + 1, 0, newNode].concat(resetNode));\n newNode.parent = this;\n var index;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (oldIndex < index) {\n this.indexes[id] = index + arguments.length - 1;\n }\n }\n return this;\n };\n _proto.insertBefore = function insertBefore(oldNode, newNode) {\n var _this$nodes2;\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n var resetNode = [];\n for (var i = 2; i < arguments.length; i++) {\n resetNode.push(arguments[i]);\n }\n (_this$nodes2 = this.nodes).splice.apply(_this$nodes2, [oldIndex, 0, newNode].concat(resetNode));\n newNode.parent = this;\n var index;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (index >= oldIndex) {\n this.indexes[id] = index + arguments.length - 1;\n }\n }\n return this;\n };\n _proto._findChildAtPosition = function _findChildAtPosition(line, col) {\n var found = undefined;\n this.each(function (node) {\n if (node.atPosition) {\n var foundChild = node.atPosition(line, col);\n if (foundChild) {\n found = foundChild;\n return false;\n }\n } else if (node.isAtPosition(line, col)) {\n found = node;\n return false;\n }\n });\n return found;\n }\n\n /**\n * Return the most specific node at the line and column number given.\n * The source location is based on the original parsed location, locations aren't\n * updated as selector nodes are mutated.\n *\n * Note that this location is relative to the location of the first character\n * of the selector, and not the location of the selector in the overall document\n * when used in conjunction with postcss.\n *\n * If not found, returns undefined.\n * @param {number} line The line number of the node to find. (1-based index)\n * @param {number} col The column number of the node to find. (1-based index)\n */;\n _proto.atPosition = function atPosition(line, col) {\n if (this.isAtPosition(line, col)) {\n return this._findChildAtPosition(line, col) || this;\n } else {\n return undefined;\n }\n };\n _proto._inferEndPosition = function _inferEndPosition() {\n if (this.last && this.last.source && this.last.source.end) {\n this.source = this.source || {};\n this.source.end = this.source.end || {};\n Object.assign(this.source.end, this.last.source.end);\n }\n };\n _proto.each = function each(callback) {\n if (!this.lastEach) {\n this.lastEach = 0;\n }\n if (!this.indexes) {\n this.indexes = {};\n }\n this.lastEach++;\n var id = this.lastEach;\n this.indexes[id] = 0;\n if (!this.length) {\n return undefined;\n }\n var index, result;\n while (this.indexes[id] < this.length) {\n index = this.indexes[id];\n result = callback(this.at(index), index);\n if (result === false) {\n break;\n }\n this.indexes[id] += 1;\n }\n delete this.indexes[id];\n if (result === false) {\n return false;\n }\n };\n _proto.walk = function walk(callback) {\n return this.each(function (node, i) {\n var result = callback(node, i);\n if (result !== false && node.length) {\n result = node.walk(callback);\n }\n if (result === false) {\n return false;\n }\n });\n };\n _proto.walkAttributes = function walkAttributes(callback) {\n var _this2 = this;\n return this.walk(function (selector) {\n if (selector.type === types.ATTRIBUTE) {\n return callback.call(_this2, selector);\n }\n });\n };\n _proto.walkClasses = function walkClasses(callback) {\n var _this3 = this;\n return this.walk(function (selector) {\n if (selector.type === types.CLASS) {\n return callback.call(_this3, selector);\n }\n });\n };\n _proto.walkCombinators = function walkCombinators(callback) {\n var _this4 = this;\n return this.walk(function (selector) {\n if (selector.type === types.COMBINATOR) {\n return callback.call(_this4, selector);\n }\n });\n };\n _proto.walkComments = function walkComments(callback) {\n var _this5 = this;\n return this.walk(function (selector) {\n if (selector.type === types.COMMENT) {\n return callback.call(_this5, selector);\n }\n });\n };\n _proto.walkIds = function walkIds(callback) {\n var _this6 = this;\n return this.walk(function (selector) {\n if (selector.type === types.ID) {\n return callback.call(_this6, selector);\n }\n });\n };\n _proto.walkNesting = function walkNesting(callback) {\n var _this7 = this;\n return this.walk(function (selector) {\n if (selector.type === types.NESTING) {\n return callback.call(_this7, selector);\n }\n });\n };\n _proto.walkPseudos = function walkPseudos(callback) {\n var _this8 = this;\n return this.walk(function (selector) {\n if (selector.type === types.PSEUDO) {\n return callback.call(_this8, selector);\n }\n });\n };\n _proto.walkTags = function walkTags(callback) {\n var _this9 = this;\n return this.walk(function (selector) {\n if (selector.type === types.TAG) {\n return callback.call(_this9, selector);\n }\n });\n };\n _proto.walkUniversals = function walkUniversals(callback) {\n var _this10 = this;\n return this.walk(function (selector) {\n if (selector.type === types.UNIVERSAL) {\n return callback.call(_this10, selector);\n }\n });\n };\n _proto.split = function split(callback) {\n var _this11 = this;\n var current = [];\n return this.reduce(function (memo, node, index) {\n var split = callback.call(_this11, node);\n current.push(node);\n if (split) {\n memo.push(current);\n current = [];\n } else if (index === _this11.length - 1) {\n memo.push(current);\n }\n return memo;\n }, []);\n };\n _proto.map = function map(callback) {\n return this.nodes.map(callback);\n };\n _proto.reduce = function reduce(callback, memo) {\n return this.nodes.reduce(callback, memo);\n };\n _proto.every = function every(callback) {\n return this.nodes.every(callback);\n };\n _proto.some = function some(callback) {\n return this.nodes.some(callback);\n };\n _proto.filter = function filter(callback) {\n return this.nodes.filter(callback);\n };\n _proto.sort = function sort(callback) {\n return this.nodes.sort(callback);\n };\n _proto.toString = function toString() {\n return this.map(String).join('');\n };\n _createClass(Container, [{\n key: \"first\",\n get: function get() {\n return this.at(0);\n }\n }, {\n key: \"last\",\n get: function get() {\n return this.at(this.length - 1);\n }\n }, {\n key: \"length\",\n get: function get() {\n return this.nodes.length;\n }\n }]);\n return Container;\n}(_node[\"default\"]);\nexports[\"default\"] = Container;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _container = _interopRequireDefault(require(\"./container\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Root = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Root, _Container);\n function Root(opts) {\n var _this;\n _this = _Container.call(this, opts) || this;\n _this.type = _types.ROOT;\n return _this;\n }\n var _proto = Root.prototype;\n _proto.toString = function toString() {\n var str = this.reduce(function (memo, selector) {\n memo.push(String(selector));\n return memo;\n }, []).join(',');\n return this.trailingComma ? str + ',' : str;\n };\n _proto.error = function error(message, options) {\n if (this._error) {\n return this._error(message, options);\n } else {\n return new Error(message);\n }\n };\n _createClass(Root, [{\n key: \"errorGenerator\",\n set: function set(handler) {\n this._error = handler;\n }\n }]);\n return Root;\n}(_container[\"default\"]);\nexports[\"default\"] = Root;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _container = _interopRequireDefault(require(\"./container\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Selector = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Selector, _Container);\n function Selector(opts) {\n var _this;\n _this = _Container.call(this, opts) || this;\n _this.type = _types.SELECTOR;\n return _this;\n }\n return Selector;\n}(_container[\"default\"]);\nexports[\"default\"] = Selector;\nmodule.exports = exports.default;","/*! https://mths.be/cssesc v3.0.0 by @mathias */\n'use strict';\n\nvar object = {};\nvar hasOwnProperty = object.hasOwnProperty;\nvar merge = function merge(options, defaults) {\n\tif (!options) {\n\t\treturn defaults;\n\t}\n\tvar result = {};\n\tfor (var key in defaults) {\n\t\t// `if (defaults.hasOwnProperty(key) { … }` is not needed here, since\n\t\t// only recognized option names are used.\n\t\tresult[key] = hasOwnProperty.call(options, key) ? options[key] : defaults[key];\n\t}\n\treturn result;\n};\n\nvar regexAnySingleEscape = /[ -,\\.\\/:-@\\[-\\^`\\{-~]/;\nvar regexSingleEscape = /[ -,\\.\\/:-@\\[\\]\\^`\\{-~]/;\nvar regexAlwaysEscape = /['\"\\\\]/;\nvar regexExcessiveSpaces = /(^|\\\\+)?(\\\\[A-F0-9]{1,6})\\x20(?![a-fA-F0-9\\x20])/g;\n\n// https://mathiasbynens.be/notes/css-escapes#css\nvar cssesc = function cssesc(string, options) {\n\toptions = merge(options, cssesc.options);\n\tif (options.quotes != 'single' && options.quotes != 'double') {\n\t\toptions.quotes = 'single';\n\t}\n\tvar quote = options.quotes == 'double' ? '\"' : '\\'';\n\tvar isIdentifier = options.isIdentifier;\n\n\tvar firstChar = string.charAt(0);\n\tvar output = '';\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar character = string.charAt(counter++);\n\t\tvar codePoint = character.charCodeAt();\n\t\tvar value = void 0;\n\t\t// If it’s not a printable ASCII character…\n\t\tif (codePoint < 0x20 || codePoint > 0x7E) {\n\t\t\tif (codePoint >= 0xD800 && codePoint <= 0xDBFF && counter < length) {\n\t\t\t\t// It’s a high surrogate, and there is a next character.\n\t\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t\t// next character is low surrogate\n\t\t\t\t\tcodePoint = ((codePoint & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000;\n\t\t\t\t} else {\n\t\t\t\t\t// It’s an unmatched surrogate; only append this code unit, in case\n\t\t\t\t\t// the next code unit is the high surrogate of a surrogate pair.\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t} else {\n\t\t\tif (options.escapeEverything) {\n\t\t\t\tif (regexAnySingleEscape.test(character)) {\n\t\t\t\t\tvalue = '\\\\' + character;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t\t}\n\t\t\t} else if (/[\\t\\n\\f\\r\\x0B]/.test(character)) {\n\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t} else if (character == '\\\\' || !isIdentifier && (character == '\"' && quote == character || character == '\\'' && quote == character) || isIdentifier && regexSingleEscape.test(character)) {\n\t\t\t\tvalue = '\\\\' + character;\n\t\t\t} else {\n\t\t\t\tvalue = character;\n\t\t\t}\n\t\t}\n\t\toutput += value;\n\t}\n\n\tif (isIdentifier) {\n\t\tif (/^-[-\\d]/.test(output)) {\n\t\t\toutput = '\\\\-' + output.slice(1);\n\t\t} else if (/\\d/.test(firstChar)) {\n\t\t\toutput = '\\\\3' + firstChar + ' ' + output.slice(1);\n\t\t}\n\t}\n\n\t// Remove spaces after `\\HEX` escapes that are not followed by a hex digit,\n\t// since they’re redundant. Note that this is only possible if the escape\n\t// sequence isn’t preceded by an odd number of backslashes.\n\toutput = output.replace(regexExcessiveSpaces, function ($0, $1, $2) {\n\t\tif ($1 && $1.length % 2) {\n\t\t\t// It’s not safe to remove the space, so don’t.\n\t\t\treturn $0;\n\t\t}\n\t\t// Strip the space.\n\t\treturn ($1 || '') + $2;\n\t});\n\n\tif (!isIdentifier && options.wrap) {\n\t\treturn quote + output + quote;\n\t}\n\treturn output;\n};\n\n// Expose default options (so they can be overridden globally).\ncssesc.options = {\n\t'escapeEverything': false,\n\t'isIdentifier': false,\n\t'quotes': 'single',\n\t'wrap': false\n};\n\ncssesc.version = '3.0.0';\n\nmodule.exports = cssesc;\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\nvar _util = require(\"../util\");\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar ClassName = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ClassName, _Node);\n function ClassName(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.CLASS;\n _this._constructed = true;\n return _this;\n }\n var _proto = ClassName.prototype;\n _proto.valueToString = function valueToString() {\n return '.' + _Node.prototype.valueToString.call(this);\n };\n _createClass(ClassName, [{\n key: \"value\",\n get: function get() {\n return this._value;\n },\n set: function set(v) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n if (escaped !== v) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.value = escaped;\n } else if (this.raws) {\n delete this.raws.value;\n }\n }\n this._value = v;\n }\n }]);\n return ClassName;\n}(_node[\"default\"]);\nexports[\"default\"] = ClassName;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Comment = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Comment, _Node);\n function Comment(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMMENT;\n return _this;\n }\n return Comment;\n}(_node[\"default\"]);\nexports[\"default\"] = Comment;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar ID = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ID, _Node);\n function ID(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.ID;\n return _this;\n }\n var _proto = ID.prototype;\n _proto.valueToString = function valueToString() {\n return '#' + _Node.prototype.valueToString.call(this);\n };\n return ID;\n}(_node[\"default\"]);\nexports[\"default\"] = ID;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\nvar _util = require(\"../util\");\nvar _node = _interopRequireDefault(require(\"./node\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Namespace = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Namespace, _Node);\n function Namespace() {\n return _Node.apply(this, arguments) || this;\n }\n var _proto = Namespace.prototype;\n _proto.qualifiedName = function qualifiedName(value) {\n if (this.namespace) {\n return this.namespaceString + \"|\" + value;\n } else {\n return value;\n }\n };\n _proto.valueToString = function valueToString() {\n return this.qualifiedName(_Node.prototype.valueToString.call(this));\n };\n _createClass(Namespace, [{\n key: \"namespace\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n if (namespace === true || namespace === \"*\" || namespace === \"&\") {\n this._namespace = namespace;\n if (this.raws) {\n delete this.raws.namespace;\n }\n return;\n }\n var escaped = (0, _cssesc[\"default\"])(namespace, {\n isIdentifier: true\n });\n this._namespace = namespace;\n if (escaped !== namespace) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.namespace = escaped;\n } else if (this.raws) {\n delete this.raws.namespace;\n }\n }\n }, {\n key: \"ns\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n this.namespace = namespace;\n }\n }, {\n key: \"namespaceString\",\n get: function get() {\n if (this.namespace) {\n var ns = this.stringifyProperty(\"namespace\");\n if (ns === true) {\n return '';\n } else {\n return ns;\n }\n } else {\n return '';\n }\n }\n }]);\n return Namespace;\n}(_node[\"default\"]);\nexports[\"default\"] = Namespace;\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Tag = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Tag, _Namespace);\n function Tag(opts) {\n var _this;\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.TAG;\n return _this;\n }\n return Tag;\n}(_namespace[\"default\"]);\nexports[\"default\"] = Tag;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar String = /*#__PURE__*/function (_Node) {\n _inheritsLoose(String, _Node);\n function String(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.STRING;\n return _this;\n }\n return String;\n}(_node[\"default\"]);\nexports[\"default\"] = String;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _container = _interopRequireDefault(require(\"./container\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Pseudo = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Pseudo, _Container);\n function Pseudo(opts) {\n var _this;\n _this = _Container.call(this, opts) || this;\n _this.type = _types.PSEUDO;\n return _this;\n }\n var _proto = Pseudo.prototype;\n _proto.toString = function toString() {\n var params = this.length ? '(' + this.map(String).join(',') + ')' : '';\n return [this.rawSpaceBefore, this.stringifyProperty(\"value\"), params, this.rawSpaceAfter].join('');\n };\n return Pseudo;\n}(_container[\"default\"]);\nexports[\"default\"] = Pseudo;\nmodule.exports = exports.default;","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nexports.unescapeValue = unescapeValue;\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\nvar _unesc = _interopRequireDefault(require(\"../util/unesc\"));\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\nvar _types = require(\"./types\");\nvar _CSSESC_QUOTE_OPTIONS;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar deprecate = require(\"util-deprecate\");\nvar WRAPPED_IN_QUOTES = /^('|\")([^]*)\\1$/;\nvar warnOfDeprecatedValueAssignment = deprecate(function () {}, \"Assigning an attribute a value containing characters that might need to be escaped is deprecated. \" + \"Call attribute.setValue() instead.\");\nvar warnOfDeprecatedQuotedAssignment = deprecate(function () {}, \"Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead.\");\nvar warnOfDeprecatedConstructor = deprecate(function () {}, \"Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now.\");\nfunction unescapeValue(value) {\n var deprecatedUsage = false;\n var quoteMark = null;\n var unescaped = value;\n var m = unescaped.match(WRAPPED_IN_QUOTES);\n if (m) {\n quoteMark = m[1];\n unescaped = m[2];\n }\n unescaped = (0, _unesc[\"default\"])(unescaped);\n if (unescaped !== value) {\n deprecatedUsage = true;\n }\n return {\n deprecatedUsage: deprecatedUsage,\n unescaped: unescaped,\n quoteMark: quoteMark\n };\n}\nfunction handleDeprecatedContructorOpts(opts) {\n if (opts.quoteMark !== undefined) {\n return opts;\n }\n if (opts.value === undefined) {\n return opts;\n }\n warnOfDeprecatedConstructor();\n var _unescapeValue = unescapeValue(opts.value),\n quoteMark = _unescapeValue.quoteMark,\n unescaped = _unescapeValue.unescaped;\n if (!opts.raws) {\n opts.raws = {};\n }\n if (opts.raws.value === undefined) {\n opts.raws.value = opts.value;\n }\n opts.value = unescaped;\n opts.quoteMark = quoteMark;\n return opts;\n}\nvar Attribute = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Attribute, _Namespace);\n function Attribute(opts) {\n var _this;\n if (opts === void 0) {\n opts = {};\n }\n _this = _Namespace.call(this, handleDeprecatedContructorOpts(opts)) || this;\n _this.type = _types.ATTRIBUTE;\n _this.raws = _this.raws || {};\n Object.defineProperty(_this.raws, 'unquoted', {\n get: deprecate(function () {\n return _this.value;\n }, \"attr.raws.unquoted is deprecated. Call attr.value instead.\"),\n set: deprecate(function () {\n return _this.value;\n }, \"Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.\")\n });\n _this._constructed = true;\n return _this;\n }\n\n /**\n * Returns the Attribute's value quoted such that it would be legal to use\n * in the value of a css file. The original value's quotation setting\n * used for stringification is left unchanged. See `setValue(value, options)`\n * if you want to control the quote settings of a new value for the attribute.\n *\n * You can also change the quotation used for the current value by setting quoteMark.\n *\n * Options:\n * * quoteMark {'\"' | \"'\" | null} - Use this value to quote the value. If this\n * option is not set, the original value for quoteMark will be used. If\n * indeterminate, a double quote is used. The legal values are:\n * * `null` - the value will be unquoted and characters will be escaped as necessary.\n * * `'` - the value will be quoted with a single quote and single quotes are escaped.\n * * `\"` - the value will be quoted with a double quote and double quotes are escaped.\n * * preferCurrentQuoteMark {boolean} - if true, prefer the source quote mark\n * over the quoteMark option value.\n * * smart {boolean} - if true, will select a quote mark based on the value\n * and the other options specified here. See the `smartQuoteMark()`\n * method.\n **/\n var _proto = Attribute.prototype;\n _proto.getQuotedValue = function getQuotedValue(options) {\n if (options === void 0) {\n options = {};\n }\n var quoteMark = this._determineQuoteMark(options);\n var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark];\n var escaped = (0, _cssesc[\"default\"])(this._value, cssescopts);\n return escaped;\n };\n _proto._determineQuoteMark = function _determineQuoteMark(options) {\n return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options);\n }\n\n /**\n * Set the unescaped value with the specified quotation options. The value\n * provided must not include any wrapping quote marks -- those quotes will\n * be interpreted as part of the value and escaped accordingly.\n */;\n _proto.setValue = function setValue(value, options) {\n if (options === void 0) {\n options = {};\n }\n this._value = value;\n this._quoteMark = this._determineQuoteMark(options);\n this._syncRawValue();\n }\n\n /**\n * Intelligently select a quoteMark value based on the value's contents. If\n * the value is a legal CSS ident, it will not be quoted. Otherwise a quote\n * mark will be picked that minimizes the number of escapes.\n *\n * If there's no clear winner, the quote mark from these options is used,\n * then the source quote mark (this is inverted if `preferCurrentQuoteMark` is\n * true). If the quoteMark is unspecified, a double quote is used.\n *\n * @param options This takes the quoteMark and preferCurrentQuoteMark options\n * from the quoteValue method.\n */;\n _proto.smartQuoteMark = function smartQuoteMark(options) {\n var v = this.value;\n var numSingleQuotes = v.replace(/[^']/g, '').length;\n var numDoubleQuotes = v.replace(/[^\"]/g, '').length;\n if (numSingleQuotes + numDoubleQuotes === 0) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n if (escaped === v) {\n return Attribute.NO_QUOTE;\n } else {\n var pref = this.preferredQuoteMark(options);\n if (pref === Attribute.NO_QUOTE) {\n // pick a quote mark that isn't none and see if it's smaller\n var quote = this.quoteMark || options.quoteMark || Attribute.DOUBLE_QUOTE;\n var opts = CSSESC_QUOTE_OPTIONS[quote];\n var quoteValue = (0, _cssesc[\"default\"])(v, opts);\n if (quoteValue.length < escaped.length) {\n return quote;\n }\n }\n return pref;\n }\n } else if (numDoubleQuotes === numSingleQuotes) {\n return this.preferredQuoteMark(options);\n } else if (numDoubleQuotes < numSingleQuotes) {\n return Attribute.DOUBLE_QUOTE;\n } else {\n return Attribute.SINGLE_QUOTE;\n }\n }\n\n /**\n * Selects the preferred quote mark based on the options and the current quote mark value.\n * If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)`\n * instead.\n */;\n _proto.preferredQuoteMark = function preferredQuoteMark(options) {\n var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark;\n if (quoteMark === undefined) {\n quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark;\n }\n if (quoteMark === undefined) {\n quoteMark = Attribute.DOUBLE_QUOTE;\n }\n return quoteMark;\n };\n _proto._syncRawValue = function _syncRawValue() {\n var rawValue = (0, _cssesc[\"default\"])(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]);\n if (rawValue === this._value) {\n if (this.raws) {\n delete this.raws.value;\n }\n } else {\n this.raws.value = rawValue;\n }\n };\n _proto._handleEscapes = function _handleEscapes(prop, value) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(value, {\n isIdentifier: true\n });\n if (escaped !== value) {\n this.raws[prop] = escaped;\n } else {\n delete this.raws[prop];\n }\n }\n };\n _proto._spacesFor = function _spacesFor(name) {\n var attrSpaces = {\n before: '',\n after: ''\n };\n var spaces = this.spaces[name] || {};\n var rawSpaces = this.raws.spaces && this.raws.spaces[name] || {};\n return Object.assign(attrSpaces, spaces, rawSpaces);\n };\n _proto._stringFor = function _stringFor(name, spaceName, concat) {\n if (spaceName === void 0) {\n spaceName = name;\n }\n if (concat === void 0) {\n concat = defaultAttrConcat;\n }\n var attrSpaces = this._spacesFor(spaceName);\n return concat(this.stringifyProperty(name), attrSpaces);\n }\n\n /**\n * returns the offset of the attribute part specified relative to the\n * start of the node of the output string.\n *\n * * \"ns\" - alias for \"namespace\"\n * * \"namespace\" - the namespace if it exists.\n * * \"attribute\" - the attribute name\n * * \"attributeNS\" - the start of the attribute or its namespace\n * * \"operator\" - the match operator of the attribute\n * * \"value\" - The value (string or identifier)\n * * \"insensitive\" - the case insensitivity flag;\n * @param part One of the possible values inside an attribute.\n * @returns -1 if the name is invalid or the value doesn't exist in this attribute.\n */;\n _proto.offsetOf = function offsetOf(name) {\n var count = 1;\n var attributeSpaces = this._spacesFor(\"attribute\");\n count += attributeSpaces.before.length;\n if (name === \"namespace\" || name === \"ns\") {\n return this.namespace ? count : -1;\n }\n if (name === \"attributeNS\") {\n return count;\n }\n count += this.namespaceString.length;\n if (this.namespace) {\n count += 1;\n }\n if (name === \"attribute\") {\n return count;\n }\n count += this.stringifyProperty(\"attribute\").length;\n count += attributeSpaces.after.length;\n var operatorSpaces = this._spacesFor(\"operator\");\n count += operatorSpaces.before.length;\n var operator = this.stringifyProperty(\"operator\");\n if (name === \"operator\") {\n return operator ? count : -1;\n }\n count += operator.length;\n count += operatorSpaces.after.length;\n var valueSpaces = this._spacesFor(\"value\");\n count += valueSpaces.before.length;\n var value = this.stringifyProperty(\"value\");\n if (name === \"value\") {\n return value ? count : -1;\n }\n count += value.length;\n count += valueSpaces.after.length;\n var insensitiveSpaces = this._spacesFor(\"insensitive\");\n count += insensitiveSpaces.before.length;\n if (name === \"insensitive\") {\n return this.insensitive ? count : -1;\n }\n return -1;\n };\n _proto.toString = function toString() {\n var _this2 = this;\n var selector = [this.rawSpaceBefore, '['];\n selector.push(this._stringFor('qualifiedAttribute', 'attribute'));\n if (this.operator && (this.value || this.value === '')) {\n selector.push(this._stringFor('operator'));\n selector.push(this._stringFor('value'));\n selector.push(this._stringFor('insensitiveFlag', 'insensitive', function (attrValue, attrSpaces) {\n if (attrValue.length > 0 && !_this2.quoted && attrSpaces.before.length === 0 && !(_this2.spaces.value && _this2.spaces.value.after)) {\n attrSpaces.before = \" \";\n }\n return defaultAttrConcat(attrValue, attrSpaces);\n }));\n }\n selector.push(']');\n selector.push(this.rawSpaceAfter);\n return selector.join('');\n };\n _createClass(Attribute, [{\n key: \"quoted\",\n get: function get() {\n var qm = this.quoteMark;\n return qm === \"'\" || qm === '\"';\n },\n set: function set(value) {\n warnOfDeprecatedQuotedAssignment();\n }\n\n /**\n * returns a single (`'`) or double (`\"`) quote character if the value is quoted.\n * returns `null` if the value is not quoted.\n * returns `undefined` if the quotation state is unknown (this can happen when\n * the attribute is constructed without specifying a quote mark.)\n */\n }, {\n key: \"quoteMark\",\n get: function get() {\n return this._quoteMark;\n }\n\n /**\n * Set the quote mark to be used by this attribute's value.\n * If the quote mark changes, the raw (escaped) value at `attr.raws.value` of the attribute\n * value is updated accordingly.\n *\n * @param {\"'\" | '\"' | null} quoteMark The quote mark or `null` if the value should be unquoted.\n */,\n set: function set(quoteMark) {\n if (!this._constructed) {\n this._quoteMark = quoteMark;\n return;\n }\n if (this._quoteMark !== quoteMark) {\n this._quoteMark = quoteMark;\n this._syncRawValue();\n }\n }\n }, {\n key: \"qualifiedAttribute\",\n get: function get() {\n return this.qualifiedName(this.raws.attribute || this.attribute);\n }\n }, {\n key: \"insensitiveFlag\",\n get: function get() {\n return this.insensitive ? 'i' : '';\n }\n }, {\n key: \"value\",\n get: function get() {\n return this._value;\n },\n set:\n /**\n * Before 3.0, the value had to be set to an escaped value including any wrapped\n * quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value\n * is unescaped during parsing and any quote marks are removed.\n *\n * Because the ambiguity of this semantic change, if you set `attr.value = newValue`,\n * a deprecation warning is raised when the new value contains any characters that would\n * require escaping (including if it contains wrapped quotes).\n *\n * Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe\n * how the new value is quoted.\n */\n function set(v) {\n if (this._constructed) {\n var _unescapeValue2 = unescapeValue(v),\n deprecatedUsage = _unescapeValue2.deprecatedUsage,\n unescaped = _unescapeValue2.unescaped,\n quoteMark = _unescapeValue2.quoteMark;\n if (deprecatedUsage) {\n warnOfDeprecatedValueAssignment();\n }\n if (unescaped === this._value && quoteMark === this._quoteMark) {\n return;\n }\n this._value = unescaped;\n this._quoteMark = quoteMark;\n this._syncRawValue();\n } else {\n this._value = v;\n }\n }\n }, {\n key: \"insensitive\",\n get: function get() {\n return this._insensitive;\n }\n\n /**\n * Set the case insensitive flag.\n * If the case insensitive flag changes, the raw (escaped) value at `attr.raws.insensitiveFlag`\n * of the attribute is updated accordingly.\n *\n * @param {true | false} insensitive true if the attribute should match case-insensitively.\n */,\n set: function set(insensitive) {\n if (!insensitive) {\n this._insensitive = false;\n\n // \"i\" and \"I\" can be used in \"this.raws.insensitiveFlag\" to store the original notation.\n // When setting `attr.insensitive = false` both should be erased to ensure correct serialization.\n if (this.raws && (this.raws.insensitiveFlag === 'I' || this.raws.insensitiveFlag === 'i')) {\n this.raws.insensitiveFlag = undefined;\n }\n }\n this._insensitive = insensitive;\n }\n }, {\n key: \"attribute\",\n get: function get() {\n return this._attribute;\n },\n set: function set(name) {\n this._handleEscapes(\"attribute\", name);\n this._attribute = name;\n }\n }]);\n return Attribute;\n}(_namespace[\"default\"]);\nexports[\"default\"] = Attribute;\nAttribute.NO_QUOTE = null;\nAttribute.SINGLE_QUOTE = \"'\";\nAttribute.DOUBLE_QUOTE = '\"';\nvar CSSESC_QUOTE_OPTIONS = (_CSSESC_QUOTE_OPTIONS = {\n \"'\": {\n quotes: 'single',\n wrap: true\n },\n '\"': {\n quotes: 'double',\n wrap: true\n }\n}, _CSSESC_QUOTE_OPTIONS[null] = {\n isIdentifier: true\n}, _CSSESC_QUOTE_OPTIONS);\nfunction defaultAttrConcat(attrValue, attrSpaces) {\n return \"\" + attrSpaces.before + attrValue + attrSpaces.after;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Universal = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Universal, _Namespace);\n function Universal(opts) {\n var _this;\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.UNIVERSAL;\n _this.value = '*';\n return _this;\n }\n return Universal;\n}(_namespace[\"default\"]);\nexports[\"default\"] = Universal;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Combinator = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Combinator, _Node);\n function Combinator(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMBINATOR;\n return _this;\n }\n return Combinator;\n}(_node[\"default\"]);\nexports[\"default\"] = Combinator;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Nesting = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Nesting, _Node);\n function Nesting(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.NESTING;\n _this.value = '&';\n return _this;\n }\n return Nesting;\n}(_node[\"default\"]);\nexports[\"default\"] = Nesting;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = sortAscending;\nfunction sortAscending(list) {\n return list.sort(function (a, b) {\n return a - b;\n });\n}\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.word = exports.tilde = exports.tab = exports.str = exports.space = exports.slash = exports.singleQuote = exports.semicolon = exports.plus = exports.pipe = exports.openSquare = exports.openParenthesis = exports.newline = exports.greaterThan = exports.feed = exports.equals = exports.doubleQuote = exports.dollar = exports.cr = exports.comment = exports.comma = exports.combinator = exports.colon = exports.closeSquare = exports.closeParenthesis = exports.caret = exports.bang = exports.backslash = exports.at = exports.asterisk = exports.ampersand = void 0;\nvar ampersand = 38; // `&`.charCodeAt(0);\nexports.ampersand = ampersand;\nvar asterisk = 42; // `*`.charCodeAt(0);\nexports.asterisk = asterisk;\nvar at = 64; // `@`.charCodeAt(0);\nexports.at = at;\nvar comma = 44; // `,`.charCodeAt(0);\nexports.comma = comma;\nvar colon = 58; // `:`.charCodeAt(0);\nexports.colon = colon;\nvar semicolon = 59; // `;`.charCodeAt(0);\nexports.semicolon = semicolon;\nvar openParenthesis = 40; // `(`.charCodeAt(0);\nexports.openParenthesis = openParenthesis;\nvar closeParenthesis = 41; // `)`.charCodeAt(0);\nexports.closeParenthesis = closeParenthesis;\nvar openSquare = 91; // `[`.charCodeAt(0);\nexports.openSquare = openSquare;\nvar closeSquare = 93; // `]`.charCodeAt(0);\nexports.closeSquare = closeSquare;\nvar dollar = 36; // `$`.charCodeAt(0);\nexports.dollar = dollar;\nvar tilde = 126; // `~`.charCodeAt(0);\nexports.tilde = tilde;\nvar caret = 94; // `^`.charCodeAt(0);\nexports.caret = caret;\nvar plus = 43; // `+`.charCodeAt(0);\nexports.plus = plus;\nvar equals = 61; // `=`.charCodeAt(0);\nexports.equals = equals;\nvar pipe = 124; // `|`.charCodeAt(0);\nexports.pipe = pipe;\nvar greaterThan = 62; // `>`.charCodeAt(0);\nexports.greaterThan = greaterThan;\nvar space = 32; // ` `.charCodeAt(0);\nexports.space = space;\nvar singleQuote = 39; // `'`.charCodeAt(0);\nexports.singleQuote = singleQuote;\nvar doubleQuote = 34; // `\"`.charCodeAt(0);\nexports.doubleQuote = doubleQuote;\nvar slash = 47; // `/`.charCodeAt(0);\nexports.slash = slash;\nvar bang = 33; // `!`.charCodeAt(0);\nexports.bang = bang;\nvar backslash = 92; // '\\\\'.charCodeAt(0);\nexports.backslash = backslash;\nvar cr = 13; // '\\r'.charCodeAt(0);\nexports.cr = cr;\nvar feed = 12; // '\\f'.charCodeAt(0);\nexports.feed = feed;\nvar newline = 10; // '\\n'.charCodeAt(0);\nexports.newline = newline;\nvar tab = 9; // '\\t'.charCodeAt(0);\n\n// Expose aliases primarily for readability.\nexports.tab = tab;\nvar str = singleQuote;\n\n// No good single character representation!\nexports.str = str;\nvar comment = -1;\nexports.comment = comment;\nvar word = -2;\nexports.word = word;\nvar combinator = -3;\nexports.combinator = combinator;","\"use strict\";\n\nexports.__esModule = true;\nexports.FIELDS = void 0;\nexports[\"default\"] = tokenize;\nvar t = _interopRequireWildcard(require(\"./tokenTypes\"));\nvar _unescapable, _wordDelimiters;\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar unescapable = (_unescapable = {}, _unescapable[t.tab] = true, _unescapable[t.newline] = true, _unescapable[t.cr] = true, _unescapable[t.feed] = true, _unescapable);\nvar wordDelimiters = (_wordDelimiters = {}, _wordDelimiters[t.space] = true, _wordDelimiters[t.tab] = true, _wordDelimiters[t.newline] = true, _wordDelimiters[t.cr] = true, _wordDelimiters[t.feed] = true, _wordDelimiters[t.ampersand] = true, _wordDelimiters[t.asterisk] = true, _wordDelimiters[t.bang] = true, _wordDelimiters[t.comma] = true, _wordDelimiters[t.colon] = true, _wordDelimiters[t.semicolon] = true, _wordDelimiters[t.openParenthesis] = true, _wordDelimiters[t.closeParenthesis] = true, _wordDelimiters[t.openSquare] = true, _wordDelimiters[t.closeSquare] = true, _wordDelimiters[t.singleQuote] = true, _wordDelimiters[t.doubleQuote] = true, _wordDelimiters[t.plus] = true, _wordDelimiters[t.pipe] = true, _wordDelimiters[t.tilde] = true, _wordDelimiters[t.greaterThan] = true, _wordDelimiters[t.equals] = true, _wordDelimiters[t.dollar] = true, _wordDelimiters[t.caret] = true, _wordDelimiters[t.slash] = true, _wordDelimiters);\nvar hex = {};\nvar hexChars = \"0123456789abcdefABCDEF\";\nfor (var i = 0; i < hexChars.length; i++) {\n hex[hexChars.charCodeAt(i)] = true;\n}\n\n/**\n * Returns the last index of the bar css word\n * @param {string} css The string in which the word begins\n * @param {number} start The index into the string where word's first letter occurs\n */\nfunction consumeWord(css, start) {\n var next = start;\n var code;\n do {\n code = css.charCodeAt(next);\n if (wordDelimiters[code]) {\n return next - 1;\n } else if (code === t.backslash) {\n next = consumeEscape(css, next) + 1;\n } else {\n // All other characters are part of the word\n next++;\n }\n } while (next < css.length);\n return next - 1;\n}\n\n/**\n * Returns the last index of the escape sequence\n * @param {string} css The string in which the sequence begins\n * @param {number} start The index into the string where escape character (`\\`) occurs.\n */\nfunction consumeEscape(css, start) {\n var next = start;\n var code = css.charCodeAt(next + 1);\n if (unescapable[code]) {\n // just consume the escape char\n } else if (hex[code]) {\n var hexDigits = 0;\n // consume up to 6 hex chars\n do {\n next++;\n hexDigits++;\n code = css.charCodeAt(next + 1);\n } while (hex[code] && hexDigits < 6);\n // if fewer than 6 hex chars, a trailing space ends the escape\n if (hexDigits < 6 && code === t.space) {\n next++;\n }\n } else {\n // the next char is part of the current word\n next++;\n }\n return next;\n}\nvar FIELDS = {\n TYPE: 0,\n START_LINE: 1,\n START_COL: 2,\n END_LINE: 3,\n END_COL: 4,\n START_POS: 5,\n END_POS: 6\n};\nexports.FIELDS = FIELDS;\nfunction tokenize(input) {\n var tokens = [];\n var css = input.css.valueOf();\n var _css = css,\n length = _css.length;\n var offset = -1;\n var line = 1;\n var start = 0;\n var end = 0;\n var code, content, endColumn, endLine, escaped, escapePos, last, lines, next, nextLine, nextOffset, quote, tokenType;\n function unclosed(what, fix) {\n if (input.safe) {\n // fyi: this is never set to true.\n css += fix;\n next = css.length - 1;\n } else {\n throw input.error('Unclosed ' + what, line, start - offset, start);\n }\n }\n while (start < length) {\n code = css.charCodeAt(start);\n if (code === t.newline) {\n offset = start;\n line += 1;\n }\n switch (code) {\n case t.space:\n case t.tab:\n case t.newline:\n case t.cr:\n case t.feed:\n next = start;\n do {\n next += 1;\n code = css.charCodeAt(next);\n if (code === t.newline) {\n offset = next;\n line += 1;\n }\n } while (code === t.space || code === t.newline || code === t.tab || code === t.cr || code === t.feed);\n tokenType = t.space;\n endLine = line;\n endColumn = next - offset - 1;\n end = next;\n break;\n case t.plus:\n case t.greaterThan:\n case t.tilde:\n case t.pipe:\n next = start;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === t.plus || code === t.greaterThan || code === t.tilde || code === t.pipe);\n tokenType = t.combinator;\n endLine = line;\n endColumn = start - offset;\n end = next;\n break;\n\n // Consume these characters as single tokens.\n case t.asterisk:\n case t.ampersand:\n case t.bang:\n case t.comma:\n case t.equals:\n case t.dollar:\n case t.caret:\n case t.openSquare:\n case t.closeSquare:\n case t.colon:\n case t.semicolon:\n case t.openParenthesis:\n case t.closeParenthesis:\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n case t.singleQuote:\n case t.doubleQuote:\n quote = code === t.singleQuote ? \"'\" : '\"';\n next = start;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n unclosed('quote', quote);\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === t.backslash) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n tokenType = t.str;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n default:\n if (code === t.slash && css.charCodeAt(start + 1) === t.asterisk) {\n next = css.indexOf('*/', start + 2) + 1;\n if (next === 0) {\n unclosed('comment', '*/');\n }\n content = css.slice(start, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n tokenType = t.comment;\n line = nextLine;\n endLine = nextLine;\n endColumn = next - nextOffset;\n } else if (code === t.slash) {\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n } else {\n next = consumeWord(css, start);\n tokenType = t.word;\n endLine = line;\n endColumn = next - offset;\n }\n end = next + 1;\n break;\n }\n\n // Ensure that the token structure remains consistent\n tokens.push([tokenType,\n // [0] Token type\n line,\n // [1] Starting line\n start - offset,\n // [2] Starting column\n endLine,\n // [3] Ending line\n endColumn,\n // [4] Ending column\n start,\n // [5] Start position / Source index\n end // [6] End position\n ]);\n\n // Reset offset for the next token\n if (nextOffset) {\n offset = nextOffset;\n nextOffset = null;\n }\n start = end;\n }\n return tokens;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _root = _interopRequireDefault(require(\"./selectors/root\"));\nvar _selector = _interopRequireDefault(require(\"./selectors/selector\"));\nvar _className = _interopRequireDefault(require(\"./selectors/className\"));\nvar _comment = _interopRequireDefault(require(\"./selectors/comment\"));\nvar _id = _interopRequireDefault(require(\"./selectors/id\"));\nvar _tag = _interopRequireDefault(require(\"./selectors/tag\"));\nvar _string = _interopRequireDefault(require(\"./selectors/string\"));\nvar _pseudo = _interopRequireDefault(require(\"./selectors/pseudo\"));\nvar _attribute = _interopRequireWildcard(require(\"./selectors/attribute\"));\nvar _universal = _interopRequireDefault(require(\"./selectors/universal\"));\nvar _combinator = _interopRequireDefault(require(\"./selectors/combinator\"));\nvar _nesting = _interopRequireDefault(require(\"./selectors/nesting\"));\nvar _sortAscending = _interopRequireDefault(require(\"./sortAscending\"));\nvar _tokenize = _interopRequireWildcard(require(\"./tokenize\"));\nvar tokens = _interopRequireWildcard(require(\"./tokenTypes\"));\nvar types = _interopRequireWildcard(require(\"./selectors/types\"));\nvar _util = require(\"./util\");\nvar _WHITESPACE_TOKENS, _Object$assign;\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar WHITESPACE_TOKENS = (_WHITESPACE_TOKENS = {}, _WHITESPACE_TOKENS[tokens.space] = true, _WHITESPACE_TOKENS[tokens.cr] = true, _WHITESPACE_TOKENS[tokens.feed] = true, _WHITESPACE_TOKENS[tokens.newline] = true, _WHITESPACE_TOKENS[tokens.tab] = true, _WHITESPACE_TOKENS);\nvar WHITESPACE_EQUIV_TOKENS = Object.assign({}, WHITESPACE_TOKENS, (_Object$assign = {}, _Object$assign[tokens.comment] = true, _Object$assign));\nfunction tokenStart(token) {\n return {\n line: token[_tokenize.FIELDS.START_LINE],\n column: token[_tokenize.FIELDS.START_COL]\n };\n}\nfunction tokenEnd(token) {\n return {\n line: token[_tokenize.FIELDS.END_LINE],\n column: token[_tokenize.FIELDS.END_COL]\n };\n}\nfunction getSource(startLine, startColumn, endLine, endColumn) {\n return {\n start: {\n line: startLine,\n column: startColumn\n },\n end: {\n line: endLine,\n column: endColumn\n }\n };\n}\nfunction getTokenSource(token) {\n return getSource(token[_tokenize.FIELDS.START_LINE], token[_tokenize.FIELDS.START_COL], token[_tokenize.FIELDS.END_LINE], token[_tokenize.FIELDS.END_COL]);\n}\nfunction getTokenSourceSpan(startToken, endToken) {\n if (!startToken) {\n return undefined;\n }\n return getSource(startToken[_tokenize.FIELDS.START_LINE], startToken[_tokenize.FIELDS.START_COL], endToken[_tokenize.FIELDS.END_LINE], endToken[_tokenize.FIELDS.END_COL]);\n}\nfunction unescapeProp(node, prop) {\n var value = node[prop];\n if (typeof value !== \"string\") {\n return;\n }\n if (value.indexOf(\"\\\\\") !== -1) {\n (0, _util.ensureObject)(node, 'raws');\n node[prop] = (0, _util.unesc)(value);\n if (node.raws[prop] === undefined) {\n node.raws[prop] = value;\n }\n }\n return node;\n}\nfunction indexesOf(array, item) {\n var i = -1;\n var indexes = [];\n while ((i = array.indexOf(item, i + 1)) !== -1) {\n indexes.push(i);\n }\n return indexes;\n}\nfunction uniqs() {\n var list = Array.prototype.concat.apply([], arguments);\n return list.filter(function (item, i) {\n return i === list.indexOf(item);\n });\n}\nvar Parser = /*#__PURE__*/function () {\n function Parser(rule, options) {\n if (options === void 0) {\n options = {};\n }\n this.rule = rule;\n this.options = Object.assign({\n lossy: false,\n safe: false\n }, options);\n this.position = 0;\n this.css = typeof this.rule === 'string' ? this.rule : this.rule.selector;\n this.tokens = (0, _tokenize[\"default\"])({\n css: this.css,\n error: this._errorGenerator(),\n safe: this.options.safe\n });\n var rootSource = getTokenSourceSpan(this.tokens[0], this.tokens[this.tokens.length - 1]);\n this.root = new _root[\"default\"]({\n source: rootSource\n });\n this.root.errorGenerator = this._errorGenerator();\n var selector = new _selector[\"default\"]({\n source: {\n start: {\n line: 1,\n column: 1\n }\n },\n sourceIndex: 0\n });\n this.root.append(selector);\n this.current = selector;\n this.loop();\n }\n var _proto = Parser.prototype;\n _proto._errorGenerator = function _errorGenerator() {\n var _this = this;\n return function (message, errorOptions) {\n if (typeof _this.rule === 'string') {\n return new Error(message);\n }\n return _this.rule.error(message, errorOptions);\n };\n };\n _proto.attribute = function attribute() {\n var attr = [];\n var startingToken = this.currToken;\n this.position++;\n while (this.position < this.tokens.length && this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n attr.push(this.currToken);\n this.position++;\n }\n if (this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n return this.expected('closing square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n var len = attr.length;\n var node = {\n source: getSource(startingToken[1], startingToken[2], this.currToken[3], this.currToken[4]),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\n };\n if (len === 1 && !~[tokens.word].indexOf(attr[0][_tokenize.FIELDS.TYPE])) {\n return this.expected('attribute', attr[0][_tokenize.FIELDS.START_POS]);\n }\n var pos = 0;\n var spaceBefore = '';\n var commentBefore = '';\n var lastAdded = null;\n var spaceAfterMeaningfulToken = false;\n while (pos < len) {\n var token = attr[pos];\n var content = this.content(token);\n var next = attr[pos + 1];\n switch (token[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n // if (\n // len === 1 ||\n // pos === 0 && this.content(next) === '|'\n // ) {\n // return this.expected('attribute', token[TOKEN.START_POS], content);\n // }\n spaceAfterMeaningfulToken = true;\n if (this.options.lossy) {\n break;\n }\n if (lastAdded) {\n (0, _util.ensureObject)(node, 'spaces', lastAdded);\n var prevContent = node.spaces[lastAdded].after || '';\n node.spaces[lastAdded].after = prevContent + content;\n var existingComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || null;\n if (existingComment) {\n node.raws.spaces[lastAdded].after = existingComment + content;\n }\n } else {\n spaceBefore = spaceBefore + content;\n commentBefore = commentBefore + content;\n }\n break;\n case tokens.asterisk:\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n } else if ((!node.namespace || lastAdded === \"namespace\" && !spaceAfterMeaningfulToken) && next) {\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'attribute');\n node.spaces.attribute.before = spaceBefore;\n spaceBefore = '';\n }\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = spaceBefore;\n commentBefore = '';\n }\n node.namespace = (node.namespace || \"\") + content;\n var rawValue = (0, _util.getProp)(node, 'raws', 'namespace') || null;\n if (rawValue) {\n node.raws.namespace += content;\n }\n lastAdded = 'namespace';\n }\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.dollar:\n if (lastAdded === \"value\") {\n var oldRawValue = (0, _util.getProp)(node, 'raws', 'value');\n node.value += \"$\";\n if (oldRawValue) {\n node.raws.value = oldRawValue + \"$\";\n }\n break;\n }\n // Falls through\n case tokens.caret:\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.combinator:\n if (content === '~' && next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n if (content !== '|') {\n spaceAfterMeaningfulToken = false;\n break;\n }\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n } else if (!node.namespace && !node.attribute) {\n node.namespace = true;\n }\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.word:\n if (next && this.content(next) === '|' && attr[pos + 2] && attr[pos + 2][_tokenize.FIELDS.TYPE] !== tokens.equals &&\n // this look-ahead probably fails with comment nodes involved.\n !node.operator && !node.namespace) {\n node.namespace = content;\n lastAdded = 'namespace';\n } else if (!node.attribute || lastAdded === \"attribute\" && !spaceAfterMeaningfulToken) {\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'attribute');\n node.spaces.attribute.before = spaceBefore;\n spaceBefore = '';\n }\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = commentBefore;\n commentBefore = '';\n }\n node.attribute = (node.attribute || \"\") + content;\n var _rawValue = (0, _util.getProp)(node, 'raws', 'attribute') || null;\n if (_rawValue) {\n node.raws.attribute += content;\n }\n lastAdded = 'attribute';\n } else if (!node.value && node.value !== \"\" || lastAdded === \"value\" && !(spaceAfterMeaningfulToken || node.quoteMark)) {\n var _unescaped = (0, _util.unesc)(content);\n var _oldRawValue = (0, _util.getProp)(node, 'raws', 'value') || '';\n var oldValue = node.value || '';\n node.value = oldValue + _unescaped;\n node.quoteMark = null;\n if (_unescaped !== content || _oldRawValue) {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.value = (_oldRawValue || oldValue) + content;\n }\n lastAdded = 'value';\n } else {\n var insensitive = content === 'i' || content === \"I\";\n if ((node.value || node.value === '') && (node.quoteMark || spaceAfterMeaningfulToken)) {\n node.insensitive = insensitive;\n if (!insensitive || content === \"I\") {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.insensitiveFlag = content;\n }\n lastAdded = 'insensitive';\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'insensitive');\n node.spaces.insensitive.before = spaceBefore;\n spaceBefore = '';\n }\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'insensitive');\n node.raws.spaces.insensitive.before = commentBefore;\n commentBefore = '';\n }\n } else if (node.value || node.value === '') {\n lastAdded = 'value';\n node.value += content;\n if (node.raws.value) {\n node.raws.value += content;\n }\n }\n }\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.str:\n if (!node.attribute || !node.operator) {\n return this.error(\"Expected an attribute followed by an operator preceding the string.\", {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n var _unescapeValue = (0, _attribute.unescapeValue)(content),\n unescaped = _unescapeValue.unescaped,\n quoteMark = _unescapeValue.quoteMark;\n node.value = unescaped;\n node.quoteMark = quoteMark;\n lastAdded = 'value';\n (0, _util.ensureObject)(node, 'raws');\n node.raws.value = content;\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.equals:\n if (!node.attribute) {\n return this.expected('attribute', token[_tokenize.FIELDS.START_POS], content);\n }\n if (node.value) {\n return this.error('Unexpected \"=\" found; an operator was already defined.', {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n node.operator = node.operator ? node.operator + content : content;\n lastAdded = 'operator';\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.comment:\n if (lastAdded) {\n if (spaceAfterMeaningfulToken || next && next[_tokenize.FIELDS.TYPE] === tokens.space || lastAdded === 'insensitive') {\n var lastComment = (0, _util.getProp)(node, 'spaces', lastAdded, 'after') || '';\n var rawLastComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || lastComment;\n (0, _util.ensureObject)(node, 'raws', 'spaces', lastAdded);\n node.raws.spaces[lastAdded].after = rawLastComment + content;\n } else {\n var lastValue = node[lastAdded] || '';\n var rawLastValue = (0, _util.getProp)(node, 'raws', lastAdded) || lastValue;\n (0, _util.ensureObject)(node, 'raws');\n node.raws[lastAdded] = rawLastValue + content;\n }\n } else {\n commentBefore = commentBefore + content;\n }\n break;\n default:\n return this.error(\"Unexpected \\\"\" + content + \"\\\" found.\", {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n pos++;\n }\n unescapeProp(node, \"attribute\");\n unescapeProp(node, \"namespace\");\n this.newNode(new _attribute[\"default\"](node));\n this.position++;\n }\n\n /**\n * return a node containing meaningless garbage up to (but not including) the specified token position.\n * if the token position is negative, all remaining tokens are consumed.\n *\n * This returns an array containing a single string node if all whitespace,\n * otherwise an array of comment nodes with space before and after.\n *\n * These tokens are not added to the current selector, the caller can add them or use them to amend\n * a previous node's space metadata.\n *\n * In lossy mode, this returns only comments.\n */;\n _proto.parseWhitespaceEquivalentTokens = function parseWhitespaceEquivalentTokens(stopPosition) {\n if (stopPosition < 0) {\n stopPosition = this.tokens.length;\n }\n var startPosition = this.position;\n var nodes = [];\n var space = \"\";\n var lastComment = undefined;\n do {\n if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) {\n if (!this.options.lossy) {\n space += this.content();\n }\n } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.comment) {\n var spaces = {};\n if (space) {\n spaces.before = space;\n space = \"\";\n }\n lastComment = new _comment[\"default\"]({\n value: this.content(),\n source: getTokenSource(this.currToken),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS],\n spaces: spaces\n });\n nodes.push(lastComment);\n }\n } while (++this.position < stopPosition);\n if (space) {\n if (lastComment) {\n lastComment.spaces.after = space;\n } else if (!this.options.lossy) {\n var firstToken = this.tokens[startPosition];\n var lastToken = this.tokens[this.position - 1];\n nodes.push(new _string[\"default\"]({\n value: '',\n source: getSource(firstToken[_tokenize.FIELDS.START_LINE], firstToken[_tokenize.FIELDS.START_COL], lastToken[_tokenize.FIELDS.END_LINE], lastToken[_tokenize.FIELDS.END_COL]),\n sourceIndex: firstToken[_tokenize.FIELDS.START_POS],\n spaces: {\n before: space,\n after: ''\n }\n }));\n }\n }\n return nodes;\n }\n\n /**\n *\n * @param {*} nodes\n */;\n _proto.convertWhitespaceNodesToSpace = function convertWhitespaceNodesToSpace(nodes, requiredSpace) {\n var _this2 = this;\n if (requiredSpace === void 0) {\n requiredSpace = false;\n }\n var space = \"\";\n var rawSpace = \"\";\n nodes.forEach(function (n) {\n var spaceBefore = _this2.lossySpace(n.spaces.before, requiredSpace);\n var rawSpaceBefore = _this2.lossySpace(n.rawSpaceBefore, requiredSpace);\n space += spaceBefore + _this2.lossySpace(n.spaces.after, requiredSpace && spaceBefore.length === 0);\n rawSpace += spaceBefore + n.value + _this2.lossySpace(n.rawSpaceAfter, requiredSpace && rawSpaceBefore.length === 0);\n });\n if (rawSpace === space) {\n rawSpace = undefined;\n }\n var result = {\n space: space,\n rawSpace: rawSpace\n };\n return result;\n };\n _proto.isNamedCombinator = function isNamedCombinator(position) {\n if (position === void 0) {\n position = this.position;\n }\n return this.tokens[position + 0] && this.tokens[position + 0][_tokenize.FIELDS.TYPE] === tokens.slash && this.tokens[position + 1] && this.tokens[position + 1][_tokenize.FIELDS.TYPE] === tokens.word && this.tokens[position + 2] && this.tokens[position + 2][_tokenize.FIELDS.TYPE] === tokens.slash;\n };\n _proto.namedCombinator = function namedCombinator() {\n if (this.isNamedCombinator()) {\n var nameRaw = this.content(this.tokens[this.position + 1]);\n var name = (0, _util.unesc)(nameRaw).toLowerCase();\n var raws = {};\n if (name !== nameRaw) {\n raws.value = \"/\" + nameRaw + \"/\";\n }\n var node = new _combinator[\"default\"]({\n value: \"/\" + name + \"/\",\n source: getSource(this.currToken[_tokenize.FIELDS.START_LINE], this.currToken[_tokenize.FIELDS.START_COL], this.tokens[this.position + 2][_tokenize.FIELDS.END_LINE], this.tokens[this.position + 2][_tokenize.FIELDS.END_COL]),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS],\n raws: raws\n });\n this.position = this.position + 3;\n return node;\n } else {\n this.unexpected();\n }\n };\n _proto.combinator = function combinator() {\n var _this3 = this;\n if (this.content() === '|') {\n return this.namespace();\n }\n // We need to decide between a space that's a descendant combinator and meaningless whitespace at the end of a selector.\n var nextSigTokenPos = this.locateNextMeaningfulToken(this.position);\n if (nextSigTokenPos < 0 || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.comma || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n var nodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n if (nodes.length > 0) {\n var last = this.current.last;\n if (last) {\n var _this$convertWhitespa = this.convertWhitespaceNodesToSpace(nodes),\n space = _this$convertWhitespa.space,\n rawSpace = _this$convertWhitespa.rawSpace;\n if (rawSpace !== undefined) {\n last.rawSpaceAfter += rawSpace;\n }\n last.spaces.after += space;\n } else {\n nodes.forEach(function (n) {\n return _this3.newNode(n);\n });\n }\n }\n return;\n }\n var firstToken = this.currToken;\n var spaceOrDescendantSelectorNodes = undefined;\n if (nextSigTokenPos > this.position) {\n spaceOrDescendantSelectorNodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n }\n var node;\n if (this.isNamedCombinator()) {\n node = this.namedCombinator();\n } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.combinator) {\n node = new _combinator[\"default\"]({\n value: this.content(),\n source: getTokenSource(this.currToken),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS]\n });\n this.position++;\n } else if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) {\n // pass\n } else if (!spaceOrDescendantSelectorNodes) {\n this.unexpected();\n }\n if (node) {\n if (spaceOrDescendantSelectorNodes) {\n var _this$convertWhitespa2 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes),\n _space = _this$convertWhitespa2.space,\n _rawSpace = _this$convertWhitespa2.rawSpace;\n node.spaces.before = _space;\n node.rawSpaceBefore = _rawSpace;\n }\n } else {\n // descendant combinator\n var _this$convertWhitespa3 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes, true),\n _space2 = _this$convertWhitespa3.space,\n _rawSpace2 = _this$convertWhitespa3.rawSpace;\n if (!_rawSpace2) {\n _rawSpace2 = _space2;\n }\n var spaces = {};\n var raws = {\n spaces: {}\n };\n if (_space2.endsWith(' ') && _rawSpace2.endsWith(' ')) {\n spaces.before = _space2.slice(0, _space2.length - 1);\n raws.spaces.before = _rawSpace2.slice(0, _rawSpace2.length - 1);\n } else if (_space2[0] === ' ' && _rawSpace2[0] === ' ') {\n spaces.after = _space2.slice(1);\n raws.spaces.after = _rawSpace2.slice(1);\n } else {\n raws.value = _rawSpace2;\n }\n node = new _combinator[\"default\"]({\n value: ' ',\n source: getTokenSourceSpan(firstToken, this.tokens[this.position - 1]),\n sourceIndex: firstToken[_tokenize.FIELDS.START_POS],\n spaces: spaces,\n raws: raws\n });\n }\n if (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.space) {\n node.spaces.after = this.optionalSpace(this.content());\n this.position++;\n }\n return this.newNode(node);\n };\n _proto.comma = function comma() {\n if (this.position === this.tokens.length - 1) {\n this.root.trailingComma = true;\n this.position++;\n return;\n }\n this.current._inferEndPosition();\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position + 1])\n },\n sourceIndex: this.tokens[this.position + 1][_tokenize.FIELDS.START_POS]\n });\n this.current.parent.append(selector);\n this.current = selector;\n this.position++;\n };\n _proto.comment = function comment() {\n var current = this.currToken;\n this.newNode(new _comment[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n _proto.error = function error(message, opts) {\n throw this.root.error(message, opts);\n };\n _proto.missingBackslash = function missingBackslash() {\n return this.error('Expected a backslash preceding the semicolon.', {\n index: this.currToken[_tokenize.FIELDS.START_POS]\n });\n };\n _proto.missingParenthesis = function missingParenthesis() {\n return this.expected('opening parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n };\n _proto.missingSquareBracket = function missingSquareBracket() {\n return this.expected('opening square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\n };\n _proto.unexpected = function unexpected() {\n return this.error(\"Unexpected '\" + this.content() + \"'. Escaping special characters with \\\\ may help.\", this.currToken[_tokenize.FIELDS.START_POS]);\n };\n _proto.unexpectedPipe = function unexpectedPipe() {\n return this.error(\"Unexpected '|'.\", this.currToken[_tokenize.FIELDS.START_POS]);\n };\n _proto.namespace = function namespace() {\n var before = this.prevToken && this.content(this.prevToken) || true;\n if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.word) {\n this.position++;\n return this.word(before);\n } else if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.asterisk) {\n this.position++;\n return this.universal(before);\n }\n this.unexpectedPipe();\n };\n _proto.nesting = function nesting() {\n if (this.nextToken) {\n var nextContent = this.content(this.nextToken);\n if (nextContent === \"|\") {\n this.position++;\n return;\n }\n }\n var current = this.currToken;\n this.newNode(new _nesting[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n _proto.parentheses = function parentheses() {\n var last = this.current.last;\n var unbalanced = 1;\n this.position++;\n if (last && last.type === types.PSEUDO) {\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position])\n },\n sourceIndex: this.tokens[this.position][_tokenize.FIELDS.START_POS]\n });\n var cache = this.current;\n last.append(selector);\n this.current = selector;\n while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\n }\n if (unbalanced) {\n this.parse();\n } else {\n this.current.source.end = tokenEnd(this.currToken);\n this.current.parent.source.end = tokenEnd(this.currToken);\n this.position++;\n }\n }\n this.current = cache;\n } else {\n // I think this case should be an error. It's used to implement a basic parse of media queries\n // but I don't think it's a good idea.\n var parenStart = this.currToken;\n var parenValue = \"(\";\n var parenEnd;\n while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\n }\n parenEnd = this.currToken;\n parenValue += this.parseParenthesisToken(this.currToken);\n this.position++;\n }\n if (last) {\n last.appendToPropertyAndEscape(\"value\", parenValue, parenValue);\n } else {\n this.newNode(new _string[\"default\"]({\n value: parenValue,\n source: getSource(parenStart[_tokenize.FIELDS.START_LINE], parenStart[_tokenize.FIELDS.START_COL], parenEnd[_tokenize.FIELDS.END_LINE], parenEnd[_tokenize.FIELDS.END_COL]),\n sourceIndex: parenStart[_tokenize.FIELDS.START_POS]\n }));\n }\n }\n if (unbalanced) {\n return this.expected('closing parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n };\n _proto.pseudo = function pseudo() {\n var _this4 = this;\n var pseudoStr = '';\n var startingToken = this.currToken;\n while (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.colon) {\n pseudoStr += this.content();\n this.position++;\n }\n if (!this.currToken) {\n return this.expected(['pseudo-class', 'pseudo-element'], this.position - 1);\n }\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.word) {\n this.splitWord(false, function (first, length) {\n pseudoStr += first;\n _this4.newNode(new _pseudo[\"default\"]({\n value: pseudoStr,\n source: getTokenSourceSpan(startingToken, _this4.currToken),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\n }));\n if (length > 1 && _this4.nextToken && _this4.nextToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n _this4.error('Misplaced parenthesis.', {\n index: _this4.nextToken[_tokenize.FIELDS.START_POS]\n });\n }\n });\n } else {\n return this.expected(['pseudo-class', 'pseudo-element'], this.currToken[_tokenize.FIELDS.START_POS]);\n }\n };\n _proto.space = function space() {\n var content = this.content();\n // Handle space before and after the selector\n if (this.position === 0 || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis || this.current.nodes.every(function (node) {\n return node.type === 'comment';\n })) {\n this.spaces = this.optionalSpace(content);\n this.position++;\n } else if (this.position === this.tokens.length - 1 || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n this.current.last.spaces.after = this.optionalSpace(content);\n this.position++;\n } else {\n this.combinator();\n }\n };\n _proto.string = function string() {\n var current = this.currToken;\n this.newNode(new _string[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n _proto.universal = function universal(namespace) {\n var nextToken = this.nextToken;\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\n }\n var current = this.currToken;\n this.newNode(new _universal[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }), namespace);\n this.position++;\n };\n _proto.splitWord = function splitWord(namespace, firstCallback) {\n var _this5 = this;\n var nextToken = this.nextToken;\n var word = this.content();\n while (nextToken && ~[tokens.dollar, tokens.caret, tokens.equals, tokens.word].indexOf(nextToken[_tokenize.FIELDS.TYPE])) {\n this.position++;\n var current = this.content();\n word += current;\n if (current.lastIndexOf('\\\\') === current.length - 1) {\n var next = this.nextToken;\n if (next && next[_tokenize.FIELDS.TYPE] === tokens.space) {\n word += this.requiredSpace(this.content(next));\n this.position++;\n }\n }\n nextToken = this.nextToken;\n }\n var hasClass = indexesOf(word, '.').filter(function (i) {\n // Allow escaped dot within class name\n var escapedDot = word[i - 1] === '\\\\';\n // Allow decimal numbers percent in @keyframes\n var isKeyframesPercent = /^\\d+\\.\\d+%$/.test(word);\n return !escapedDot && !isKeyframesPercent;\n });\n var hasId = indexesOf(word, '#').filter(function (i) {\n return word[i - 1] !== '\\\\';\n });\n // Eliminate Sass interpolations from the list of id indexes\n var interpolations = indexesOf(word, '#{');\n if (interpolations.length) {\n hasId = hasId.filter(function (hashIndex) {\n return !~interpolations.indexOf(hashIndex);\n });\n }\n var indices = (0, _sortAscending[\"default\"])(uniqs([0].concat(hasClass, hasId)));\n indices.forEach(function (ind, i) {\n var index = indices[i + 1] || word.length;\n var value = word.slice(ind, index);\n if (i === 0 && firstCallback) {\n return firstCallback.call(_this5, value, indices.length);\n }\n var node;\n var current = _this5.currToken;\n var sourceIndex = current[_tokenize.FIELDS.START_POS] + indices[i];\n var source = getSource(current[1], current[2] + ind, current[3], current[2] + (index - 1));\n if (~hasClass.indexOf(ind)) {\n var classNameOpts = {\n value: value.slice(1),\n source: source,\n sourceIndex: sourceIndex\n };\n node = new _className[\"default\"](unescapeProp(classNameOpts, \"value\"));\n } else if (~hasId.indexOf(ind)) {\n var idOpts = {\n value: value.slice(1),\n source: source,\n sourceIndex: sourceIndex\n };\n node = new _id[\"default\"](unescapeProp(idOpts, \"value\"));\n } else {\n var tagOpts = {\n value: value,\n source: source,\n sourceIndex: sourceIndex\n };\n unescapeProp(tagOpts, \"value\");\n node = new _tag[\"default\"](tagOpts);\n }\n _this5.newNode(node, namespace);\n // Ensure that the namespace is used only once\n namespace = null;\n });\n this.position++;\n };\n _proto.word = function word(namespace) {\n var nextToken = this.nextToken;\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\n }\n return this.splitWord(namespace);\n };\n _proto.loop = function loop() {\n while (this.position < this.tokens.length) {\n this.parse(true);\n }\n this.current._inferEndPosition();\n return this.root;\n };\n _proto.parse = function parse(throwOnParenthesis) {\n switch (this.currToken[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n this.space();\n break;\n case tokens.comment:\n this.comment();\n break;\n case tokens.openParenthesis:\n this.parentheses();\n break;\n case tokens.closeParenthesis:\n if (throwOnParenthesis) {\n this.missingParenthesis();\n }\n break;\n case tokens.openSquare:\n this.attribute();\n break;\n case tokens.dollar:\n case tokens.caret:\n case tokens.equals:\n case tokens.word:\n this.word();\n break;\n case tokens.colon:\n this.pseudo();\n break;\n case tokens.comma:\n this.comma();\n break;\n case tokens.asterisk:\n this.universal();\n break;\n case tokens.ampersand:\n this.nesting();\n break;\n case tokens.slash:\n case tokens.combinator:\n this.combinator();\n break;\n case tokens.str:\n this.string();\n break;\n // These cases throw; no break needed.\n case tokens.closeSquare:\n this.missingSquareBracket();\n case tokens.semicolon:\n this.missingBackslash();\n default:\n this.unexpected();\n }\n }\n\n /**\n * Helpers\n */;\n _proto.expected = function expected(description, index, found) {\n if (Array.isArray(description)) {\n var last = description.pop();\n description = description.join(', ') + \" or \" + last;\n }\n var an = /^[aeiou]/.test(description[0]) ? 'an' : 'a';\n if (!found) {\n return this.error(\"Expected \" + an + \" \" + description + \".\", {\n index: index\n });\n }\n return this.error(\"Expected \" + an + \" \" + description + \", found \\\"\" + found + \"\\\" instead.\", {\n index: index\n });\n };\n _proto.requiredSpace = function requiredSpace(space) {\n return this.options.lossy ? ' ' : space;\n };\n _proto.optionalSpace = function optionalSpace(space) {\n return this.options.lossy ? '' : space;\n };\n _proto.lossySpace = function lossySpace(space, required) {\n if (this.options.lossy) {\n return required ? ' ' : '';\n } else {\n return space;\n }\n };\n _proto.parseParenthesisToken = function parseParenthesisToken(token) {\n var content = this.content(token);\n if (token[_tokenize.FIELDS.TYPE] === tokens.space) {\n return this.requiredSpace(content);\n } else {\n return content;\n }\n };\n _proto.newNode = function newNode(node, namespace) {\n if (namespace) {\n if (/^ +$/.test(namespace)) {\n if (!this.options.lossy) {\n this.spaces = (this.spaces || '') + namespace;\n }\n namespace = true;\n }\n node.namespace = namespace;\n unescapeProp(node, \"namespace\");\n }\n if (this.spaces) {\n node.spaces.before = this.spaces;\n this.spaces = '';\n }\n return this.current.append(node);\n };\n _proto.content = function content(token) {\n if (token === void 0) {\n token = this.currToken;\n }\n return this.css.slice(token[_tokenize.FIELDS.START_POS], token[_tokenize.FIELDS.END_POS]);\n };\n /**\n * returns the index of the next non-whitespace, non-comment token.\n * returns -1 if no meaningful token is found.\n */\n _proto.locateNextMeaningfulToken = function locateNextMeaningfulToken(startPosition) {\n if (startPosition === void 0) {\n startPosition = this.position + 1;\n }\n var searchPosition = startPosition;\n while (searchPosition < this.tokens.length) {\n if (WHITESPACE_EQUIV_TOKENS[this.tokens[searchPosition][_tokenize.FIELDS.TYPE]]) {\n searchPosition++;\n continue;\n } else {\n return searchPosition;\n }\n }\n return -1;\n };\n _createClass(Parser, [{\n key: \"currToken\",\n get: function get() {\n return this.tokens[this.position];\n }\n }, {\n key: \"nextToken\",\n get: function get() {\n return this.tokens[this.position + 1];\n }\n }, {\n key: \"prevToken\",\n get: function get() {\n return this.tokens[this.position - 1];\n }\n }]);\n return Parser;\n}();\nexports[\"default\"] = Parser;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _parser = _interopRequireDefault(require(\"./parser\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar Processor = /*#__PURE__*/function () {\n function Processor(func, options) {\n this.func = func || function noop() {};\n this.funcRes = null;\n this.options = options;\n }\n var _proto = Processor.prototype;\n _proto._shouldUpdateSelector = function _shouldUpdateSelector(rule, options) {\n if (options === void 0) {\n options = {};\n }\n var merged = Object.assign({}, this.options, options);\n if (merged.updateSelector === false) {\n return false;\n } else {\n return typeof rule !== \"string\";\n }\n };\n _proto._isLossy = function _isLossy(options) {\n if (options === void 0) {\n options = {};\n }\n var merged = Object.assign({}, this.options, options);\n if (merged.lossless === false) {\n return true;\n } else {\n return false;\n }\n };\n _proto._root = function _root(rule, options) {\n if (options === void 0) {\n options = {};\n }\n var parser = new _parser[\"default\"](rule, this._parseOptions(options));\n return parser.root;\n };\n _proto._parseOptions = function _parseOptions(options) {\n return {\n lossy: this._isLossy(options)\n };\n };\n _proto._run = function _run(rule, options) {\n var _this = this;\n if (options === void 0) {\n options = {};\n }\n return new Promise(function (resolve, reject) {\n try {\n var root = _this._root(rule, options);\n Promise.resolve(_this.func(root)).then(function (transform) {\n var string = undefined;\n if (_this._shouldUpdateSelector(rule, options)) {\n string = root.toString();\n rule.selector = string;\n }\n return {\n transform: transform,\n root: root,\n string: string\n };\n }).then(resolve, reject);\n } catch (e) {\n reject(e);\n return;\n }\n });\n };\n _proto._runSync = function _runSync(rule, options) {\n if (options === void 0) {\n options = {};\n }\n var root = this._root(rule, options);\n var transform = this.func(root);\n if (transform && typeof transform.then === \"function\") {\n throw new Error(\"Selector processor returned a promise to a synchronous call.\");\n }\n var string = undefined;\n if (options.updateSelector && typeof rule !== \"string\") {\n string = root.toString();\n rule.selector = string;\n }\n return {\n transform: transform,\n root: root,\n string: string\n };\n }\n\n /**\n * Process rule into a selector AST.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {Promise<parser.Root>} The AST of the selector after processing it.\n */;\n _proto.ast = function ast(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.root;\n });\n }\n\n /**\n * Process rule into a selector AST synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {parser.Root} The AST of the selector after processing it.\n */;\n _proto.astSync = function astSync(rule, options) {\n return this._runSync(rule, options).root;\n }\n\n /**\n * Process a selector into a transformed value asynchronously\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {Promise<any>} The value returned by the processor.\n */;\n _proto.transform = function transform(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.transform;\n });\n }\n\n /**\n * Process a selector into a transformed value synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {any} The value returned by the processor.\n */;\n _proto.transformSync = function transformSync(rule, options) {\n return this._runSync(rule, options).transform;\n }\n\n /**\n * Process a selector into a new selector string asynchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {string} the selector after processing.\n */;\n _proto.process = function process(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.string || result.root.toString();\n });\n }\n\n /**\n * Process a selector into a new selector string synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {string} the selector after processing.\n */;\n _proto.processSync = function processSync(rule, options) {\n var result = this._runSync(rule, options);\n return result.string || result.root.toString();\n };\n return Processor;\n}();\nexports[\"default\"] = Processor;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.universal = exports.tag = exports.string = exports.selector = exports.root = exports.pseudo = exports.nesting = exports.id = exports.comment = exports.combinator = exports.className = exports.attribute = void 0;\nvar _attribute = _interopRequireDefault(require(\"./attribute\"));\nvar _className = _interopRequireDefault(require(\"./className\"));\nvar _combinator = _interopRequireDefault(require(\"./combinator\"));\nvar _comment = _interopRequireDefault(require(\"./comment\"));\nvar _id = _interopRequireDefault(require(\"./id\"));\nvar _nesting = _interopRequireDefault(require(\"./nesting\"));\nvar _pseudo = _interopRequireDefault(require(\"./pseudo\"));\nvar _root = _interopRequireDefault(require(\"./root\"));\nvar _selector = _interopRequireDefault(require(\"./selector\"));\nvar _string = _interopRequireDefault(require(\"./string\"));\nvar _tag = _interopRequireDefault(require(\"./tag\"));\nvar _universal = _interopRequireDefault(require(\"./universal\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar attribute = function attribute(opts) {\n return new _attribute[\"default\"](opts);\n};\nexports.attribute = attribute;\nvar className = function className(opts) {\n return new _className[\"default\"](opts);\n};\nexports.className = className;\nvar combinator = function combinator(opts) {\n return new _combinator[\"default\"](opts);\n};\nexports.combinator = combinator;\nvar comment = function comment(opts) {\n return new _comment[\"default\"](opts);\n};\nexports.comment = comment;\nvar id = function id(opts) {\n return new _id[\"default\"](opts);\n};\nexports.id = id;\nvar nesting = function nesting(opts) {\n return new _nesting[\"default\"](opts);\n};\nexports.nesting = nesting;\nvar pseudo = function pseudo(opts) {\n return new _pseudo[\"default\"](opts);\n};\nexports.pseudo = pseudo;\nvar root = function root(opts) {\n return new _root[\"default\"](opts);\n};\nexports.root = root;\nvar selector = function selector(opts) {\n return new _selector[\"default\"](opts);\n};\nexports.selector = selector;\nvar string = function string(opts) {\n return new _string[\"default\"](opts);\n};\nexports.string = string;\nvar tag = function tag(opts) {\n return new _tag[\"default\"](opts);\n};\nexports.tag = tag;\nvar universal = function universal(opts) {\n return new _universal[\"default\"](opts);\n};\nexports.universal = universal;","\"use strict\";\n\nexports.__esModule = true;\nexports.isComment = exports.isCombinator = exports.isClassName = exports.isAttribute = void 0;\nexports.isContainer = isContainer;\nexports.isIdentifier = void 0;\nexports.isNamespace = isNamespace;\nexports.isNesting = void 0;\nexports.isNode = isNode;\nexports.isPseudo = void 0;\nexports.isPseudoClass = isPseudoClass;\nexports.isPseudoElement = isPseudoElement;\nexports.isUniversal = exports.isTag = exports.isString = exports.isSelector = exports.isRoot = void 0;\nvar _types = require(\"./types\");\nvar _IS_TYPE;\nvar IS_TYPE = (_IS_TYPE = {}, _IS_TYPE[_types.ATTRIBUTE] = true, _IS_TYPE[_types.CLASS] = true, _IS_TYPE[_types.COMBINATOR] = true, _IS_TYPE[_types.COMMENT] = true, _IS_TYPE[_types.ID] = true, _IS_TYPE[_types.NESTING] = true, _IS_TYPE[_types.PSEUDO] = true, _IS_TYPE[_types.ROOT] = true, _IS_TYPE[_types.SELECTOR] = true, _IS_TYPE[_types.STRING] = true, _IS_TYPE[_types.TAG] = true, _IS_TYPE[_types.UNIVERSAL] = true, _IS_TYPE);\nfunction isNode(node) {\n return typeof node === \"object\" && IS_TYPE[node.type];\n}\nfunction isNodeType(type, node) {\n return isNode(node) && node.type === type;\n}\nvar isAttribute = isNodeType.bind(null, _types.ATTRIBUTE);\nexports.isAttribute = isAttribute;\nvar isClassName = isNodeType.bind(null, _types.CLASS);\nexports.isClassName = isClassName;\nvar isCombinator = isNodeType.bind(null, _types.COMBINATOR);\nexports.isCombinator = isCombinator;\nvar isComment = isNodeType.bind(null, _types.COMMENT);\nexports.isComment = isComment;\nvar isIdentifier = isNodeType.bind(null, _types.ID);\nexports.isIdentifier = isIdentifier;\nvar isNesting = isNodeType.bind(null, _types.NESTING);\nexports.isNesting = isNesting;\nvar isPseudo = isNodeType.bind(null, _types.PSEUDO);\nexports.isPseudo = isPseudo;\nvar isRoot = isNodeType.bind(null, _types.ROOT);\nexports.isRoot = isRoot;\nvar isSelector = isNodeType.bind(null, _types.SELECTOR);\nexports.isSelector = isSelector;\nvar isString = isNodeType.bind(null, _types.STRING);\nexports.isString = isString;\nvar isTag = isNodeType.bind(null, _types.TAG);\nexports.isTag = isTag;\nvar isUniversal = isNodeType.bind(null, _types.UNIVERSAL);\nexports.isUniversal = isUniversal;\nfunction isPseudoElement(node) {\n return isPseudo(node) && node.value && (node.value.startsWith(\"::\") || node.value.toLowerCase() === \":before\" || node.value.toLowerCase() === \":after\" || node.value.toLowerCase() === \":first-letter\" || node.value.toLowerCase() === \":first-line\");\n}\nfunction isPseudoClass(node) {\n return isPseudo(node) && !isPseudoElement(node);\n}\nfunction isContainer(node) {\n return !!(isNode(node) && node.walk);\n}\nfunction isNamespace(node) {\n return isAttribute(node) || isTag(node);\n}","\"use strict\";\n\nexports.__esModule = true;\nvar _types = require(\"./types\");\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _types[key]) return;\n exports[key] = _types[key];\n});\nvar _constructors = require(\"./constructors\");\nObject.keys(_constructors).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _constructors[key]) return;\n exports[key] = _constructors[key];\n});\nvar _guards = require(\"./guards\");\nObject.keys(_guards).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _guards[key]) return;\n exports[key] = _guards[key];\n});","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _processor = _interopRequireDefault(require(\"./processor\"));\nvar selectors = _interopRequireWildcard(require(\"./selectors\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar parser = function parser(processor) {\n return new _processor[\"default\"](processor);\n};\nObject.assign(parser, selectors);\ndelete parser.__esModule;\nvar _default = parser;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;","import e from\"postcss-selector-parser\";import{selectorSpecificity as t}from\"@csstools/selector-specificity\";import{resolveNestedSelector as n}from\"@csstools/selector-resolve-nested\";const r=e.pseudo({value:\":is\"});function sortCompoundSelectorsInsideComplexSelector(t){if(!t||!t.nodes)return;const n=[];let o=[];for(let s=0;s<t.nodes.length;s++)if(\"combinator\"!==t.nodes[s].type)if(e.isPseudoElement(t.nodes[s]))n.push(o),o=[t.nodes[s]];else{if(\"tag\"===t.nodes[s].type&&o.find((e=>\"tag\"===e.type))){const n=r.clone({}),o=t.nodes[s];o.replaceWith(n),n.append(e.selector({nodes:[o],value:void 0}))}o.push(t.nodes[s])}else n.push(o),n.push([t.nodes[s]]),o=[];n.push(o);const s=[];for(let e=0;e<n.length;e++){const t=n[e];t.sort(((e,t)=>\"selector\"===e.type&&\"selector\"===t.type&&e.nodes.length&&t.nodes.length?selectorTypeOrder(e.nodes[0])-selectorTypeOrder(t.nodes[0]):\"selector\"===e.type&&e.nodes.length?selectorTypeOrder(e.nodes[0])-selectorTypeOrder(t):\"selector\"===t.type&&t.nodes.length?selectorTypeOrder(e)-selectorTypeOrder(t.nodes[0]):selectorTypeOrder(e)-selectorTypeOrder(t)));for(let e=0;e<t.length;e++)s.push(t[e])}t.removeAll();for(let e=s.length-1;e>=0;e--)s[e].remove(),s[e].parent=t,t.nodes.unshift(s[e])}function selectorTypeOrder(t){return e.isPseudoElement(t)?o.pseudoElement:o[t.type]}const o={universal:0,tag:1,pseudoElement:2,id:3,class:4,attribute:5,pseudo:6,selector:7,string:8,root:9,comment:10};function isAtRule(e){return e&&\"atrule\"===e.type}function isNestRule(e){return e&&isAtRule(e)&&\"nest\"===e.name}function isRule(e){return e&&\"rule\"===e.type}function ampersandToScope$1(t,n){let r,o=t.parent;for(;o;){if(\"rule\"===o.type)return;if(isAtRule(o)&&\"scope\"===o.name)return;o=o.parent}try{r=e().astSync(t.selector)}catch(e){return void t.warn(n,`Failed to parse selector : \"${t.selector}\" with message: \"${e instanceof Error?e.message:e}\"`)}r&&(r.walkNesting((t=>{const n=t.parent;t.replaceWith(e.pseudo({value:\":scope\"})),n&&sortCompoundSelectorsInsideComplexSelector(n)})),t.selector=r.toString())}function cleanupParent(e){if(!e.nodes.length)return void e.remove();const t=e.nodes.filter((e=>\"comment\"===e.type));t.length===e.nodes.length&&e.replaceWith(...t)}function groupDeclarations(e){const t=[],n=[];e.each((e=>{if(isDeclarationLike(e,n.length>0))t.push(e);else{if(\"comment\"===e.type){let r=e.next();for(;r&&\"comment\"===r.type;)r=r.next();if(isDeclarationLike(r,n.length>0))return void t.push(e)}n.push(e)}})),e.removeAll(),t.forEach((t=>{e.append(t)})),n.forEach((t=>{e.append(t)}))}function isDeclarationLike(e,t){return!!e&&(\"decl\"===e.type||\"atrule\"===e.type&&\"mixin\"===e.name.toLowerCase()&&!t)}function comma(e){const t=[];let n=\"\",r=!1,o=0,s=!1,i=!1;for(const l of e)i?i=!1:\"\\\\\"===l?i=!0:s?l===s&&(s=!1):'\"'===l||\"'\"===l?s=l:\"(\"===l?o+=1:\")\"===l?o>0&&(o-=1):0===o&&\",\"===l&&(r=!0),r?(\"\"!==n&&t.push(n.trim()),n=\"\",r=!1):n+=l;return t.push(n.trim()),t}function shiftNodesBeforeParent(e,t){const n=t.index(e);if(n){const e=t.cloneBefore().removeAll().append(t.nodes.slice(0,n));e.raws.semicolon=!0,cleanupParent(e)}t.before(e),t.raws.semicolon=!0}var s=[\"container\",\"document\",\"media\",\"supports\",\"layer\",\"starting-style\"];function transformAtruleWithinAtrule(e,t){var n,r;groupDeclarations(t),shiftNodesBeforeParent(e,t),e.params=(n=t.params,r=e.params,comma(n).map((e=>comma(r).map((t=>`${e} and ${t}`)).join(\", \"))).join(\", \")),cleanupParent(t)}function isAtruleWithinAtrule(e,t){return s.includes(e.name)&&e.name===t.name}function atruleWithinRule$1(e,t,n,r,o){if(groupDeclarations(t),shiftNodesBeforeParent(e,t),e.nodes){const s=t.clone().removeAll().append(e.nodes);e.append(s),cleanupParent(t),r(s,n,o)}else cleanupParent(t)}function isAtruleWithinRule$1(e){return s.includes(e.name)}function combinationsWithSizeN(e,t){if(t<2)throw new Error(\"n must be greater than 1\");if(e.length<2)throw new Error(\"s must be greater than 1\");if(Math.pow(e.length,t)>1e4)throw new Error(\"Too many combinations when trying to resolve a nested selector with lists, reduce the complexity of your selectors\");const n=[];for(let e=0;e<t;e++)n[e]=0;const r=[];for(;;){const o=[];for(let s=t-1;s>=0;s--){let t=n[s];if(t>=e.length){if(t=0,n[s]=0,0===s)return r;n[s-1]+=1}o[s]=e[t].clone()}r.push(o),n[n.length-1]++}}function nodesAreEquallySpecific(n){const r=n.map((t=>e().astSync(t))).map((e=>t(e))),o=r[0];for(let e=1;e<r.length;e++)if(o.a!==r[e].a||o.b!==r[e].b||o.c!==r[e].c)return!1;return!0}function mergeSelectors$1(t,n,r){let o=[];o=nodesAreEquallySpecific(t)||r.noIsPseudoSelector?t.map((t=>e().astSync(t))):[e().astSync(`:is(${t.join(\",\")})`)];const s=[];for(let t=0;t<n.length;t++){let i,l=n[t];{const t=e().astSync(l);let n=!1;t.walk((e=>{\"nesting\"===e.type&&(n=!0)}));const r=t.nodes[0];let o=!1;r.each((e=>\"combinator\"===e.type&&(o=!0,!1))),n?o&&r.insertBefore(r.at(0),e.nesting()):(r.insertBefore(r.at(0),e.combinator({value:\" \"})),r.insertBefore(r.at(0),e.nesting())),l=t.toString()}let c=[],a=0;if(e().astSync(l).walkNesting((()=>{a++})),a>1&&o.length>1)c=combinationsWithSizeN(o,a),i=c.length;else{i=o.length;for(let e=0;e<o.length;e++){c.push([]);for(let t=0;t<a;t++)c[e].push(o[e])}}for(let t=0;t<i;t++){let n=0;const o=e().astSync(l);o.walk((o=>{if(\"nesting\"!==o.type)return;let s=c[t][n];n++,\"root\"===s.type&&1===s.nodes.length&&(s=s.nodes[0]);const i=e().astSync(`:is(${s.toString()})`),l=isSimpleSelector(s.nodes[0]),a=isCompoundSelector(s.nodes[0]),u=isSimpleSelector(o),p=isCompoundSelector(o);if(l&&u)return void o.replaceWith(s.clone());if((l||a)&&(u||p)){const e=o.parent;return l&&\"selector\"===s.type?o.replaceWith(s.clone().nodes[0]):o.replaceWith(...s.clone().nodes),void(e&&e.nodes.length>1&&sortCompoundSelectorsInsideComplexSelector(e))}if(l){const e=o.parent;return o.replaceWith(s.clone().nodes[0]),void(e&&sortCompoundSelectorsInsideComplexSelector(e))}if(a){const e=o.parent;return o.replaceWith(...s.clone().nodes),void(e&&sortCompoundSelectorsInsideComplexSelector(e))}if(nestingIsFirstAndOnlyInSelectorWithEitherSpaceOrChildCombinator(o)){const e=o.parent;return o.replaceWith(...s.clone().nodes),void(e&&sortCompoundSelectorsInsideComplexSelector(e))}if(nestingIsNotInsideCompoundSelector(o)){const e=o.parent;return o.replaceWith(...s.clone().nodes),void(e&&sortCompoundSelectorsInsideComplexSelector(e))}const d=o.parent;r.noIsPseudoSelector?o.replaceWith(...s.clone().nodes):o.replaceWith(...i.clone({}).nodes),d&&sortCompoundSelectorsInsideComplexSelector(d)})),s.push(o.toString())}}return s}function isSimpleSelector(e){return\"combinator\"!==e.type&&!(e.parent&&e.parent.nodes.length>1)}function isCompoundSelector(e,t=null){if(isSimpleSelector(e))return!1;if(!e.parent)return!1;if(!!e.parent.nodes.find((e=>\"combinator\"===e.type)))return!1;return!(!!e.parent.nodes.find((e=>\"nesting\"===e.type))&&t&&!isCompoundSelector(t))}function nestingIsFirstAndOnlyInSelectorWithEitherSpaceOrChildCombinator(e){if(!e.parent)return!1;if(0!==e.parent.nodes.indexOf(e))return!1;for(let t=1;t<e.parent.nodes.length;t++)if(\"combinator\"===e.parent.nodes[t].type&&\" \"!==e.parent.nodes[t].value&&\">\"!==e.parent.nodes[t].value)return!1;return!0}function nestingIsNotInsideCompoundSelector(e){if(isSimpleSelector(e))return!0;if(!e.parent)return!1;for(let t=0;t<e.parent.nodes.length;t++)if(\"nesting\"!==e.parent.nodes[t].type&&(e.parent.nodes[t].prev()||e.parent.nodes[t].next())){if(e.parent.nodes[t].prev()&&\"combinator\"!==e.parent.nodes[t].prev().type)return!1;if(e.parent.nodes[t].next()&&\"combinator\"!==e.parent.nodes[t].next().type)return!1}return!0}function transformNestRuleWithinRule(e,t,n,r,o){let s=[];try{s=mergeSelectors$1(t.selectors,comma(e.params),o)}catch(r){return void e.warn(n,`Failed to parse selectors : \"${t.selector}\" / \"${e.params}\" with message: \"${r instanceof Error?r.message:r}\"`)}if(!s.length)return;shiftNodesBeforeParent(e,t);const i=t.clone().removeAll().append(e.nodes);i.raws.semicolon=!0,i.selectors=s,e.replaceWith(i),cleanupParent(t),r(i,n,o)}function isValidNestRuleWithinRule(e){return comma(e.params).every((e=>e.split(\"&\").length>=2&&-1===e.indexOf(\"|\")))}function transformRuleWithinRule$1(e,t,n,r){let o=[];try{o=mergeSelectors$1(t.selectors,e.selectors,r)}catch(r){return void e.warn(n,`Failed to parse selectors : \"${t.selector}\" / \"${e.selector}\" with message: \"${r instanceof Error?r.message:r}\"`)}if(!o.length)return;groupDeclarations(t),shiftNodesBeforeParent(e,t),e.selectors=o;\"rule\"===e.type&&\"rule\"===t.type&&e.selector===t.selector&&e.append(...t.nodes),cleanupParent(t)}function isValidRuleWithinRule$1(e){return e.selectors.every((e=>-1===e.indexOf(\"|\")))}function walk$1(e,t,n){e.each((r=>{const o=r.parent;isNestRule(r)&&!n.silenceAtNestWarning&&e.warn(t,`\\`@nest\\` was removed from the CSS Nesting specification and will be removed from PostCSS Nesting in the next major version.\\nChange \\`@nest ${r.params} {}\\` to \\`${r.params} {}\\` to migrate to the latest standard.`),isRule(r)&&isRule(o)&&isValidRuleWithinRule$1(r)?transformRuleWithinRule$1(r,o,t,n):isNestRule(r)&&isRule(o)&&isValidNestRuleWithinRule(r)?transformNestRuleWithinRule(r,o,t,walk$1,n):isAtRule(r)&&isRule(o)&&isAtruleWithinRule$1(r)?atruleWithinRule$1(r,o,t,walk$1,n):isAtRule(r)&&isAtRule(o)&&isAtruleWithinAtrule(r,o)&&transformAtruleWithinAtrule(r,o),\"nodes\"in r&&r.nodes.length&&walk$1(r,t,n)}))}const creator$2=e=>{const t=Object.assign({noIsPseudoSelector:!1,silenceAtNestWarning:!1},e);return{postcssPlugin:\"postcss-nesting\",Rule(e,{result:n}){walk$1(e,n,t),e.selector.includes(\"&\")&&ampersandToScope$1(e,n)}}};creator$2.postcss=!0;const i=e();function mergeSelectors(e,t,r,o){let s;try{s=n(i.astSync(t),i.astSync(r))}catch(n){return e.warn(o,`Failed to parse selectors : \"${r}\" / \"${t}\" with message: \"${n instanceof Error?n.message:n}\"`),!1}return!!s&&s.toString()}function ampersandToScope(t,n){{let r=t.parent;for(;r;){if(\"rule\"===r.type)return;if(isAtRule(r)&&\"scope\"===r.name)return;r=r.parent}try{let n=!1;if(e().astSync(t.selector).walkNesting((()=>(n=!0,!1))),!n)return}catch(e){return void t.warn(n,`Failed to parse selector : \"${t.selector}\" with message: \"${e instanceof Error?e.message:e}\"`)}}const r=mergeSelectors(t,t.selector,\":scope\",n);r&&(t.selector=r)}function atruleWithinRule(e,t,n,r){if(shiftNodesBeforeParent(e,t),e.nodes){const o=t.clone().removeAll().append(e.nodes);e.append(o),cleanupParent(t),r(o,n)}else cleanupParent(t)}function isAtruleWithinRule(e){return s.includes(e.name)}function transformRuleWithinRule(e,t,n){const r=mergeSelectors(e,e.selector,t.selector,n);if(!r)return;shiftNodesBeforeParent(e,t),e.selector=r;\"rule\"===e.type&&\"rule\"===t.type&&e.selector===t.selector&&e.append(...t.nodes),cleanupParent(t)}function isValidRuleWithinRule(e){return e.selectors.every((e=>-1===e.indexOf(\"|\")))}function walk(e,t){e.each((e=>{const n=e.parent;isRule(e)&&isRule(n)&&isValidRuleWithinRule(e)?transformRuleWithinRule(e,n,t):isAtRule(e)&&isRule(n)&&isAtruleWithinRule(e)&&atruleWithinRule(e,n,t,walk),\"nodes\"in e&&e.nodes.length&&walk(e,t)}))}const creator$1=()=>({postcssPlugin:\"postcss-nesting\",Rule(e,{result:t}){walk(e,t),e.selector.includes(\"&\")&&ampersandToScope(e,t)},AtRule:{nest(e){throw e.error(`\\`@nest\\` was removed from the CSS Nesting specification and will be removed from PostCSS Nesting in the next major version.\\nChange \\`@nest ${e.params} {}\\` to \\`${e.params} {}\\` to migrate to the latest standard.`)}}});creator$1.postcss=!0;const creator=e=>{const t=Object.assign({edition:\"2024-02\"},e);switch(t.edition){case\"2021\":return creator$2(e);case\"2024-02\":return creator$1();default:throw new Error(`Invalid edition: ${t.edition}`)}};creator.postcss=!0;export{creator as default};\n","let postcss = require('postcss')\n\nlet IMPORTANT = /\\s*!important\\s*$/i\n\nlet UNITLESS = {\n 'box-flex': true,\n 'box-flex-group': true,\n 'column-count': true,\n 'flex': true,\n 'flex-grow': true,\n 'flex-positive': true,\n 'flex-shrink': true,\n 'flex-negative': true,\n 'font-weight': true,\n 'line-clamp': true,\n 'line-height': true,\n 'opacity': true,\n 'order': true,\n 'orphans': true,\n 'tab-size': true,\n 'widows': true,\n 'z-index': true,\n 'zoom': true,\n 'fill-opacity': true,\n 'stroke-dashoffset': true,\n 'stroke-opacity': true,\n 'stroke-width': true\n}\n\nfunction dashify(str) {\n return str\n .replace(/([A-Z])/g, '-$1')\n .replace(/^ms-/, '-ms-')\n .toLowerCase()\n}\n\nfunction decl(parent, name, value) {\n if (value === false || value === null) return\n\n if (!name.startsWith('--')) {\n name = dashify(name)\n }\n\n if (typeof value === 'number') {\n if (value === 0 || UNITLESS[name]) {\n value = value.toString()\n } else {\n value += 'px'\n }\n }\n\n if (name === 'css-float') name = 'float'\n\n if (IMPORTANT.test(value)) {\n value = value.replace(IMPORTANT, '')\n parent.push(postcss.decl({ prop: name, value, important: true }))\n } else {\n parent.push(postcss.decl({ prop: name, value }))\n }\n}\n\nfunction atRule(parent, parts, value) {\n let node = postcss.atRule({ name: parts[1], params: parts[3] || '' })\n if (typeof value === 'object') {\n node.nodes = []\n parse(value, node)\n }\n parent.push(node)\n}\n\nfunction parse(obj, parent) {\n let name, node, value\n for (name in obj) {\n value = obj[name]\n if (value === null || typeof value === 'undefined') {\n continue\n } else if (name[0] === '@') {\n let parts = name.match(/@(\\S+)(\\s+([\\W\\w]*)\\s*)?/)\n if (Array.isArray(value)) {\n for (let i of value) {\n atRule(parent, parts, i)\n }\n } else {\n atRule(parent, parts, value)\n }\n } else if (Array.isArray(value)) {\n for (let i of value) {\n decl(parent, name, i)\n }\n } else if (typeof value === 'object') {\n node = postcss.rule({ selector: name })\n parse(value, node)\n parent.push(node)\n } else {\n decl(parent, name, value)\n }\n }\n}\n\nmodule.exports = function (obj) {\n let root = postcss.root()\n parse(obj, root)\n return root\n}\n","\"use strict\";\n\nvar pattern = /-(\\w|$)/g;\n\nvar callback = function callback(dashChar, char) {\n\treturn char.toUpperCase();\n};\n\nvar camelCaseCSS = function camelCaseCSS(property) {\n\tproperty = property.toLowerCase();\n\n\t// NOTE :: IE8's \"styleFloat\" is intentionally not supported\n\tif (property === \"float\") {\n\t\treturn \"cssFloat\";\n\t}\n\t// Microsoft vendor-prefixes are uniquely cased\n\telse if (property.charCodeAt(0) === 45&& property.charCodeAt(1) === 109&& property.charCodeAt(2) === 115&& property.charCodeAt(3) === 45) {\n\t\t\treturn property.substr(1).replace(pattern, callback);\n\t\t} else {\n\t\t\treturn property.replace(pattern, callback);\n\t\t}\n};\n\nmodule.exports = camelCaseCSS;\n","let camelcase = require('camelcase-css')\n\nlet UNITLESS = {\n boxFlex: true,\n boxFlexGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n fillOpacity: true,\n strokeDashoffset: true,\n strokeOpacity: true,\n strokeWidth: true\n}\n\nfunction atRule(node) {\n if (typeof node.nodes === 'undefined') {\n return true\n } else {\n return process(node)\n }\n}\n\nfunction process(node, options = {}) {\n let name\n let result = {}\n let { stringifyImportant } = options;\n\n node.each(child => {\n if (child.type === 'atrule') {\n name = '@' + child.name\n if (child.params) name += ' ' + child.params\n if (typeof result[name] === 'undefined') {\n result[name] = atRule(child)\n } else if (Array.isArray(result[name])) {\n result[name].push(atRule(child))\n } else {\n result[name] = [result[name], atRule(child)]\n }\n } else if (child.type === 'rule') {\n let body = process(child)\n if (result[child.selector]) {\n for (let i in body) {\n let object = result[child.selector];\n if (stringifyImportant && object[i] && object[i].endsWith('!important')) {\n if (body[i].endsWith('!important')) {\n object[i] = body[i]\n }\n } else {\n object[i] = body[i]\n }\n }\n } else {\n result[child.selector] = body\n }\n } else if (child.type === 'decl') {\n if (child.prop[0] === '-' && child.prop[1] === '-') {\n name = child.prop\n } else if (child.parent && child.parent.selector === ':export') {\n name = child.prop\n } else {\n name = camelcase(child.prop)\n }\n let value = child.value\n if (!isNaN(child.value) && UNITLESS[name]) {\n value = parseFloat(child.value)\n }\n if (child.important) value += ' !important'\n if (typeof result[name] === 'undefined') {\n result[name] = value\n } else if (Array.isArray(result[name])) {\n result[name].push(value)\n } else {\n result[name] = [result[name], value]\n }\n }\n })\n return result\n}\n\nmodule.exports = process\n","let objectify = require('./objectifier')\n\nmodule.exports = function processResult(result) {\n if (console && console.warn) {\n result.warnings().forEach(warn => {\n let source = warn.plugin || 'PostCSS'\n console.warn(source + ': ' + warn.text)\n })\n }\n return objectify(result.root)\n}\n","let postcss = require('postcss')\n\nlet parse = require('./parser')\nlet processResult = require('./process-result')\n\nmodule.exports = function async(plugins) {\n let processor = postcss(plugins)\n return async input => {\n let result = await processor.process(input, {\n parser: parse,\n from: undefined\n })\n return processResult(result)\n }\n}\n","let postcss = require('postcss')\n\nlet parse = require('./parser')\nlet processResult = require('./process-result')\n\nmodule.exports = function (plugins) {\n let processor = postcss(plugins)\n return input => {\n let result = processor.process(input, { parser: parse, from: undefined })\n return processResult(result)\n }\n}\n","let async = require('./async')\nlet objectify = require('./objectifier')\nlet parse = require('./parser')\nlet sync = require('./sync')\n\nmodule.exports = {\n objectify,\n parse,\n async,\n sync\n}\n","import index from './index.js'\n\nexport default index\n\nexport const objectify = index.objectify\nexport const parse = index.parse\nexport const async = index.async\nexport const sync = index.sync\n","import { token } from '@universityofmaryland/web-styles-library';\nimport postcss from 'postcss';\nimport postcssNesting from 'postcss-nesting';\nimport postcssJs from 'postcss-js';\n\nexport const reset = `\n :host {\n color: ${token.color.black};\n }\n \n :host * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n\n div {\n line-height: 1;\n }\n\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n color: ${token.color.black};\n }\n\n p {\n color: ${token.color.gray.dark};\n }\n\n a {\n text-decoration: inherit;\n color: inherit;\n }\n\n address {\n font-style: normal;\n }\n\n strong, b {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n button {\n border: none;\n background: none;\n cursor: pointer;\n }\n\n img {\n max-width: 100%;\n display: block;\n }\n\n .sr-only {\n clip: rect(0,0,0,0);\n border-width: 0;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n`;\n\nexport const jssToCSS = ({ styleObj }: { styleObj: any }): string => {\n const root = postcssJs.parse(styleObj);\n const processor = postcss(postcssNesting);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result = (processor.process as any)(root, { from: undefined });\n return result.css;\n};\n","import { navigation } from '@universityofmaryland/web-elements-library/composite';\nimport { createSlot } from '@universityofmaryland/web-utilities-library/elements';\n\nconst DRAWER_SLOTS = {\n PRIMARY_SLIDE_LINKS: 'primary-slide-links',\n PRIMARY_SLIDE_SECONDARY_LINKS: 'primary-slide-secondary-links',\n PRIMARY_SLIDE_CONTENT: 'primary-slide-content',\n CHILDREN_SLIDES: 'children-slides',\n};\n\nexport const SLOTS = {\n ...DRAWER_SLOTS,\n};\n\ntype TypeSliderRequirements = {\n element: HTMLElement;\n PRIMARY_SLIDE_CONTENT: string;\n PRIMARY_SLIDE_LINKS: string;\n PRIMARY_SLIDE_SECONDARY_LINKS: string;\n CHILDREN_SLIDES: string;\n};\n\ntype TypeNavDrawerRequirements = TypeSliderRequirements & {\n displayType?: string;\n};\n\nexport const MakeSliderData = ({\n element,\n PRIMARY_SLIDE_CONTENT,\n PRIMARY_SLIDE_LINKS,\n PRIMARY_SLIDE_SECONDARY_LINKS,\n CHILDREN_SLIDES,\n}: TypeSliderRequirements) => {\n const allSlots = Array.from(element.querySelectorAll(':scope > [slot]'));\n\n const primarySlideSlot = allSlots.find(\n (slot) => slot.getAttribute('slot') === PRIMARY_SLIDE_CONTENT,\n ) as HTMLSlotElement;\n const primarySlideLinksSlot = allSlots.find(\n (slot) => slot.getAttribute('slot') === PRIMARY_SLIDE_LINKS,\n ) as HTMLSlotElement;\n const primarySlidesSecondaryLinksSlot = allSlots.find(\n (slot) => slot.getAttribute('slot') === PRIMARY_SLIDE_SECONDARY_LINKS,\n ) as HTMLSlotElement;\n const childrenSlidesSlot = allSlots.find(\n (slot) => slot.getAttribute('slot') === CHILDREN_SLIDES,\n ) as HTMLSlotElement;\n\n const childrenSlotContent = allSlots.filter((element) => {\n return !Object.values(DRAWER_SLOTS).find(\n (value) => value == element.getAttribute('slot'),\n );\n });\n\n const hasPrimarySlideContent =\n primarySlideSlot && primarySlideSlot.children.length > 0;\n const primarySlideContent = hasPrimarySlideContent\n ? createSlot(PRIMARY_SLIDE_CONTENT)\n : null;\n\n let primarySlideLinks;\n let primarySlidesSecondaryLinks;\n let childrenSlides;\n let childrenSlideContent: Array<HTMLSlotElement> = [];\n\n if (primarySlideLinksSlot) {\n primarySlideLinks = primarySlideLinksSlot.cloneNode(true) as HTMLElement;\n }\n\n if (primarySlidesSecondaryLinksSlot) {\n primarySlidesSecondaryLinks = primarySlidesSecondaryLinksSlot.cloneNode(\n true,\n ) as HTMLElement;\n }\n\n if (childrenSlidesSlot) {\n childrenSlides = childrenSlidesSlot.cloneNode(true) as HTMLElement;\n }\n\n if (childrenSlotContent) {\n childrenSlotContent.forEach((element) => {\n const type = element.getAttribute('slot');\n if (type) {\n const reference = createSlot(type);\n childrenSlideContent.push(reference);\n }\n });\n }\n\n return {\n primarySlideLinks,\n primarySlidesSecondaryLinks,\n childrenSlides,\n primarySlideContent,\n childrenSlideContent,\n };\n};\n\nexport const MakeNavDrawer = (props: TypeNavDrawerRequirements) => {\n const { element, displayType } = props;\n return navigation.elements.drawer.CreateElement({\n ...MakeSliderData(props),\n context: element,\n displayType,\n });\n};\n\nexport const MakeNavSlider = (props: TypeSliderRequirements) =>\n navigation.elements.slider.CreateElement({\n ...MakeSliderData(props),\n displayType: 'interior-nav',\n });\n","import { navigation } from '@universityofmaryland/web-elements-library/composite';\nimport { Model } from '@universityofmaryland/web-model-library';\nimport { reset } from '../../helpers/styles';\nimport { SLOTS, MakeNavDrawer } from './common';\nimport { ComponentRegistration } from '../../_types';\n\nconst tagName = 'umd-element-nav-drawer';\n\nexport const styles = `\n :host {\n display: block;\n }\n\n ${reset}\n ${navigation.elements.drawer.Styles}\n ${navigation.elements.menuButton.Styles}\n`;\n\nconst createComponent = (element: HTMLElement) => {\n const container = document.createElement('div');\n const drawer = MakeNavDrawer({ element, ...SLOTS });\n if (!drawer) return { element: container, styles };\n\n const button = navigation.elements.menuButton.CreateElement({\n eventOpen: drawer.events.eventOpen,\n });\n\n container.appendChild(drawer.element);\n container.appendChild(button);\n\n return { element: container, styles };\n};\n\n/**\n * Navigation Drawer\n *\n * A mobile-friendly navigation drawer component that provides off-canvas navigation.\n * Includes a menu button trigger and sliding drawer panel for responsive navigation menus.\n *\n * ## Custom Element\n * `<umd-element-nav-drawer>`\n *\n * ## Slots\n * - `logo` - Site logo/branding\n * - `main-navigation` - Primary navigation links\n * - `utility-navigation` - Utility/secondary navigation links\n * - `footer-navigation` - Footer navigation links\n *\n * @example\n * ```html\n * <!-- Basic navigation drawer -->\n * <umd-element-nav-drawer>\n * <a slot=\"logo\" href=\"/\">\n * <img src=\"logo.svg\" alt=\"Site Logo\">\n * </a>\n * <nav slot=\"main-navigation\">\n * <ul>\n * <li><a href=\"/about\">About</a></li>\n * <li><a href=\"/programs\">Programs</a></li>\n * <li><a href=\"/contact\">Contact</a></li>\n * </ul>\n * </nav>\n * </umd-element-nav-drawer>\n * ```\n *\n * @example\n * ```html\n * <!-- Full navigation drawer -->\n * <umd-element-nav-drawer>\n * <a slot=\"logo\" href=\"/\">Maryland</a>\n * <nav slot=\"main-navigation\">\n * <ul>\n * <li><a href=\"/academics\">Academics</a></li>\n * <li><a href=\"/research\">Research</a></li>\n * <li><a href=\"/campus\">Campus Life</a></li>\n * </ul>\n * </nav>\n * <nav slot=\"utility-navigation\">\n * <ul>\n * <li><a href=\"/apply\">Apply</a></li>\n * <li><a href=\"/give\">Give</a></li>\n * </ul>\n * </nav>\n * <nav slot=\"footer-navigation\">\n * <ul>\n * <li><a href=\"/privacy\">Privacy</a></li>\n * <li><a href=\"/accessibility\">Accessibility</a></li>\n * </ul>\n * </nav>\n * </umd-element-nav-drawer>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const NavigationDrawer: ComponentRegistration = Model.defineComponent({\n tagName,\n createComponent,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { NavigationDrawer as drawer };\n","import { navigation } from '@universityofmaryland/web-elements-library/composite';\nimport {\n createSlot,\n createStyledSlotOrClone,\n} from '@universityofmaryland/web-utilities-library/elements';\nimport { Model } from '@universityofmaryland/web-model-library';\nimport { reset } from '../../helpers/styles';\nimport { SLOTS as GlobalSlots, MakeNavDrawer } from './common';\nimport { ComponentRegistration } from '../../_types';\n\nconst ELEMENT_NAME = 'umd-element-navigation-header';\nconst ATTRIBUTE_SEARCH_URL = 'search-url';\nconst ATTRIBUTE_CTA_URL = 'cta-url';\nconst ATTRIBUTE_CTA_TEXT = 'cta-text';\nconst SLOTS = {\n LOGO: 'logo',\n NAVIGATION: 'main-navigation',\n UTILITY: 'utility-navigation',\n ...GlobalSlots,\n};\n\nconst styles = `\n :host {\n display: block;\n }\n\n ${reset}\n ${navigation.elements.drawer.Styles}\n ${navigation.header.Styles}\n`;\n\n/**\n * Navigation Header\n *\n * A comprehensive header navigation component that includes logo, main navigation,\n * utility navigation, search, and optional call-to-action. Supports sticky positioning\n * and responsive mobile drawer navigation.\n *\n * ## Custom Element\n * `<umd-element-navigation-header>`\n *\n * ## Slots\n * - `logo` - Site logo/branding (required)\n * - `main-navigation` - Container for umd-element-nav-item components\n * - `utility-navigation` - Utility/secondary navigation links\n *\n * ## Attributes\n * - `search-url` - URL for search functionality\n * - `cta-url` - URL for call-to-action button\n * - `cta-text` - Text for call-to-action button\n * - `sticky` - Enable sticky header behavior:\n * - `true` - Header sticks to top on scroll\n *\n * ## Observed Attributes\n * - `sticky` - Dynamically toggle sticky behavior\n *\n * @example\n * ```html\n * <!-- Basic header -->\n * <umd-element-navigation-header>\n * <a slot=\"logo\" href=\"/\">\n * <img src=\"logo.svg\" alt=\"University of Maryland\">\n * </a>\n * <div slot=\"main-navigation\">\n * <umd-element-nav-item>\n * <a slot=\"primary-link\" href=\"/about\">About</a>\n * </umd-element-nav-item>\n * <umd-element-nav-item>\n * <a slot=\"primary-link\" href=\"/academics\">Academics</a>\n * </umd-element-nav-item>\n * </div>\n * </umd-element-navigation-header>\n * ```\n *\n * @example\n * ```html\n * <!-- Full header with search and CTA -->\n * <umd-element-navigation-header\n * search-url=\"/search\"\n * cta-url=\"/apply\"\n * cta-text=\"Apply Now\"\n * sticky=\"true\">\n * <a slot=\"logo\" href=\"/\">Maryland</a>\n * <div slot=\"main-navigation\">\n * <umd-element-nav-item>\n * <a slot=\"primary-link\" href=\"/academics\">Academics</a>\n * <nav slot=\"dropdown-links\">\n * <ul>\n * <li><a href=\"/undergraduate\">Undergraduate</a></li>\n * <li><a href=\"/graduate\">Graduate</a></li>\n * </ul>\n * </nav>\n * </umd-element-nav-item>\n * </div>\n * <nav slot=\"utility-navigation\">\n * <ul>\n * <li><a href=\"/news\">News</a></li>\n * <li><a href=\"/events\">Events</a></li>\n * </ul>\n * </nav>\n * </umd-element-navigation-header>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nconst CreateNavItemSlots = ({ element }: { element: HTMLElement }) => {\n const { NAVIGATION } = SLOTS;\n const navigationSlot = element.querySelector(\n `[slot=\"${NAVIGATION}\"]`,\n ) as HTMLElement;\n let navItems: HTMLElement[] = [];\n\n if (navigationSlot) {\n const navItem = Array.from(\n navigationSlot.querySelectorAll(':scope > umd-element-nav-item'),\n ) as HTMLElement[];\n\n navigationSlot.removeAttribute('slot');\n\n navItem.forEach((item, i) => {\n const slotAttr = `nav-item-${i}`;\n item.setAttribute(`slot`, slotAttr);\n\n navItems.push(createSlot(slotAttr));\n element.appendChild(item);\n });\n\n navigationSlot.remove();\n }\n\n return navItems;\n};\n\nconst CreateHeader = ({\n element,\n eventOpen,\n}: {\n element: HTMLElement;\n eventOpen?: () => void;\n}) => {\n const { LOGO, UTILITY } = SLOTS;\n const logoSlot = createStyledSlotOrClone({\n element,\n slotRef: LOGO,\n });\n\n const utilitySlotElement = element.querySelector(\n `[slot=\"${UTILITY}\"]`,\n ) as HTMLElement;\n const utilityRow =\n utilitySlotElement?.childElementCount > 0 ? createSlot(UTILITY) : null;\n const searchUrl = element.getAttribute(ATTRIBUTE_SEARCH_URL);\n const ctaUrl = element.getAttribute(ATTRIBUTE_CTA_URL);\n const ctaText = element.getAttribute(ATTRIBUTE_CTA_TEXT);\n\n if (!logoSlot) {\n console.error('UMDHeaderElement: Logo slot is required');\n }\n\n const value = navigation.header.CreateElement({\n logo: logoSlot,\n utilityRow,\n navItems: CreateNavItemSlots({ element }),\n eventOpen,\n searchUrl,\n ctaUrl,\n ctaText,\n });\n\n return value;\n};\n\nconst attributes = [\n {\n name: 'sticky',\n handler: (ref: any, _oldValue: string, newValue: string) => {\n ref.events?.sticky({ isSticky: newValue === 'true' });\n },\n },\n];\n\nconst createComponent = (element: HTMLElement) => {\n const shadow = element.shadowRoot as ShadowRoot;\n const drawer = MakeNavDrawer({\n element,\n ...SLOTS,\n displayType: 'drawer-nav',\n });\n const headerProps: { element: HTMLElement; eventOpen?: () => void } = {\n element,\n };\n\n if (drawer) {\n shadow.appendChild(drawer.element);\n headerProps.eventOpen = drawer.events.eventOpen;\n }\n\n const headerRef = CreateHeader(headerProps);\n\n return {\n element: headerRef.element,\n styles,\n events: { sticky: headerRef.events.sticky },\n };\n};\n\nexport const NavigationHeader: ComponentRegistration = Model.defineComponent({\n tagName: ELEMENT_NAME,\n createComponent,\n attributes,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { NavigationHeader as header };\n","import { navigation } from '@universityofmaryland/web-elements-library/composite';\nimport { createSlot } from '@universityofmaryland/web-utilities-library/elements';\nimport { Model } from '@universityofmaryland/web-model-library';\nimport { reset } from '../../helpers/styles';\nimport { ComponentRegistration } from '../../_types';\n\nconst tagName = 'umd-element-nav-item';\n\nconst SLOTS = {\n PRIMARY_LINK: 'primary-link',\n DROPDOWN_LINKS: 'dropdown-links',\n DROPDOWN_CALLOUT: 'dropdown-callout',\n};\n\nexport const styles = `\n :host {\n display: block;\n }\n\n ${reset}\n ${navigation.elements.item.Styles}\n`;\n\nconst createComponent = (element: HTMLElement) => {\n const calloutSlot = element.querySelector<HTMLElement>(\n `[slot=\"${SLOTS.DROPDOWN_CALLOUT}\"]`,\n );\n\n const primaryLinkSlot = element.querySelector<HTMLElement>(\n `[slot=\"${SLOTS.PRIMARY_LINK}\"]`,\n );\n const primaryLinkContainer = primaryLinkSlot?.cloneNode(\n true,\n ) as HTMLElement | null;\n\n const dropdownLinksSlot = element.querySelector<HTMLElement>(\n '[slot=\"dropdown-links\"]',\n );\n const dropdownLinksContainer = dropdownLinksSlot?.cloneNode(\n true,\n ) as HTMLElement | null;\n\n if (!primaryLinkContainer) {\n throw new Error('Primary link is required for a nav item');\n }\n\n let elementData: {\n primaryLinkContainer: HTMLElement;\n dropdownLinksContainer: HTMLElement | null;\n dropdownCalloutsSlot?: HTMLSlotElement;\n context: HTMLElement;\n } = {\n primaryLinkContainer,\n dropdownLinksContainer,\n context: element,\n };\n\n if (calloutSlot && calloutSlot.children.length > 0) {\n const dropdownCalloutsSlot = createSlot(SLOTS.DROPDOWN_CALLOUT);\n elementData = { ...elementData, dropdownCalloutsSlot };\n }\n\n if (!primaryLinkContainer) {\n throw new Error('Primary link is required for a nav item');\n }\n\n const navItem = navigation.elements.item.CreateElement({\n ...elementData,\n });\n\n dropdownLinksSlot?.remove();\n primaryLinkSlot?.remove();\n\n return { element: navItem, styles };\n};\n\n/**\n * Navigation Item\n *\n * A navigation menu item component that supports dropdown menus and callout sections.\n * Designed to be used within navigation header and drawer components for creating\n * hierarchical navigation structures.\n *\n * ## Custom Element\n * `<umd-element-nav-item>`\n *\n * ## Slots\n * - `primary-link` - Main navigation link (required)\n * - `dropdown-links` - Dropdown menu content\n * - `dropdown-callout` - Featured callout section in dropdown\n *\n * @example\n * ```html\n * <!-- Simple navigation item -->\n * <umd-element-nav-item>\n * <a slot=\"primary-link\" href=\"/about\">About</a>\n * </umd-element-nav-item>\n * ```\n *\n * @example\n * ```html\n * <!-- Navigation item with dropdown -->\n * <umd-element-nav-item>\n * <a slot=\"primary-link\" href=\"/academics\">Academics</a>\n * <nav slot=\"dropdown-links\">\n * <ul>\n * <li><a href=\"/undergraduate\">Undergraduate Programs</a></li>\n * <li><a href=\"/graduate\">Graduate Programs</a></li>\n * <li><a href=\"/online\">Online Learning</a></li>\n * </ul>\n * </nav>\n * </umd-element-nav-item>\n * ```\n *\n * @example\n * ```html\n * <!-- Navigation item with dropdown and callout -->\n * <umd-element-nav-item>\n * <a slot=\"primary-link\" href=\"/research\">Research</a>\n * <nav slot=\"dropdown-links\">\n * <ul>\n * <li><a href=\"/research/centers\">Research Centers</a></li>\n * <li><a href=\"/research/labs\">Laboratories</a></li>\n * <li><a href=\"/research/funding\">Funding Opportunities</a></li>\n * </ul>\n * </nav>\n * <div slot=\"dropdown-callout\">\n * <h3>Featured Research</h3>\n * <p>Quantum computing breakthrough leads to new possibilities</p>\n * <a href=\"/research/quantum\">Learn More</a>\n * </div>\n * </umd-element-nav-item>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const NavigationItem: ComponentRegistration = Model.defineComponent({\n tagName,\n createComponent,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { NavigationItem as item };\n","import { navigation } from '@universityofmaryland/web-elements-library/composite';\nimport { Model } from '@universityofmaryland/web-model-library';\nimport { reset } from '../../helpers/styles';\nimport { MakeNavSlider, SLOTS } from './common';\nimport { ComponentRegistration } from '../../_types';\n\nconst tagName = 'umd-element-nav-slider';\n\nexport const styles = `\n :host {\n display: block;\n }\n\n ${reset}\n ${navigation.elements.slider.Styles}\n`;\n\nconst attributes = [\n {\n name: 'resize',\n handler: (ref: any, _oldValue: string, newValue: string) => {\n if (newValue === 'true') ref.events?.resize();\n },\n },\n];\n\nconst createComponent = (element: HTMLElement) => {\n const ref = MakeNavSlider({ element, ...SLOTS });\n\n if (!ref) return { element: document.createElement('div'), styles };\n\n return {\n element: ref.container,\n styles,\n events: ref.events,\n };\n};\n\n/**\n * Navigation Slider\n *\n * A horizontal scrollable navigation component for displaying many navigation items.\n * Provides arrow controls and smooth scrolling for better user experience when\n * navigation items exceed the viewport width.\n *\n * ## Custom Element\n * `<umd-element-nav-slider>`\n *\n * ## Slots\n * - Default slot - Navigation list items\n *\n * ## Observed Attributes\n * - `resize` - Triggers recalculation of slider dimensions when set to \"true\"\n *\n * @example\n * ```html\n * <!-- Basic navigation slider -->\n * <umd-element-nav-slider>\n * <ul>\n * <li><a href=\"/college1\">College of Arts & Humanities</a></li>\n * <li><a href=\"/college2\">College of Engineering</a></li>\n * <li><a href=\"/college3\">College of Science</a></li>\n * <li><a href=\"/college4\">School of Business</a></li>\n * <li><a href=\"/college5\">School of Public Health</a></li>\n * <li><a href=\"/college6\">School of Education</a></li>\n * </ul>\n * </umd-element-nav-slider>\n * ```\n *\n * @example\n * ```html\n * <!-- Navigation slider with dynamic resize -->\n * <umd-element-nav-slider id=\"nav-slider\">\n * <ul>\n * <li><a href=\"/dept1\">Computer Science</a></li>\n * <li><a href=\"/dept2\">Mathematics</a></li>\n * <li><a href=\"/dept3\">Physics</a></li>\n * <li><a href=\"/dept4\">Chemistry</a></li>\n * <li><a href=\"/dept5\">Biology</a></li>\n * </ul>\n * </umd-element-nav-slider>\n *\n * <script>\n * // Trigger resize when content changes\n * const slider = document.getElementById('nav-slider');\n * window.addEventListener('resize', () => {\n * slider.setAttribute('resize', 'true');\n * });\n * </script>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const NavigationSlider: ComponentRegistration = Model.defineComponent({\n tagName,\n createComponent,\n attributes,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { NavigationSlider as slider };\n","import { navigation } from '@universityofmaryland/web-elements-library/composite';\nimport { createSlot } from '@universityofmaryland/web-utilities-library/elements';\nimport { Model } from '@universityofmaryland/web-model-library';\n\nimport { CreateComponentFunction, ComponentRegistration, SlotConfiguration } from '../../_types';\n\nconst tagName = 'umd-element-navigation-sticky';\n\nconst slots: SlotConfiguration = {\n content: {\n required: true,\n },\n};\n\nconst createComponent: CreateComponentFunction = (element) =>\n navigation.elements.sticky({\n content: createSlot('content'),\n component: element,\n });\n\n/**\n * Sticky Navigation\n *\n * A navigation component that sticks to the top of the viewport when scrolling.\n * Useful for keeping important navigation accessible as users scroll through content.\n *\n * ## Custom Element\n * `<umd-element-navigation-sticky>`\n *\n * ## Slots\n * - `content` - Navigation content to make sticky (required)\n *\n * @example\n * ```html\n * <!-- Basic sticky navigation -->\n * <umd-element-navigation-sticky>\n * <nav slot=\"content\">\n * <ul>\n * <li><a href=\"#overview\">Overview</a></li>\n * <li><a href=\"#features\">Features</a></li>\n * <li><a href=\"#pricing\">Pricing</a></li>\n * <li><a href=\"#contact\">Contact</a></li>\n * </ul>\n * </nav>\n * </umd-element-navigation-sticky>\n * ```\n *\n * @example\n * ```html\n * <!-- Sticky navigation with breadcrumb -->\n * <umd-element-navigation-sticky>\n * <div slot=\"content\">\n * <umd-element-breadcrumb>\n * <ol slot=\"paths\">\n * <li><a href=\"/\">Home</a></li>\n * <li><a href=\"/programs\">Programs</a></li>\n * <li>Computer Science</li>\n * </ol>\n * </umd-element-breadcrumb>\n * </div>\n * </umd-element-navigation-sticky>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const NavigationSticky: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { NavigationSticky as sticky };\n"],"names":["tagName","slots","createComponent","element","linkListSlot","createStyledSlotOrClone","Slots","navigation","Attributes","NavigationBreadcrumb","Model","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","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","ownInputs","inputHydrated","fromJSON_1","relative","MapGenerator","cssString","content","eol","startIndex","endIndex","noSource","mapping","p","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","n","length","buffer","returned","unclosed","what","endOfFile","nextToken","ignoreUnclosed","controlChar","back","token","tokenizer","SAFE_COMMENT_NEIGHBOR","findLastWithPosition","tokens","Parser","shift","open","brackets","colon","founded","customProperty","firstSpaces","cache","bracket","clean","all","lastTokenType","parser","parse_1","Warning","range","opt","warning","Result","processor","require$$7","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","NOT_VISITORS","CHILDREN","isPromise","getEvents","key","toStack","events","cleanMarks","postcss","onRejected","onFinally","err","event","filter","promise","stack","visitor","roots","subRoot","onFulfilled","visitors","visit","lazyResult","NoWorkResult","self","generatedCSS","generatedMap","noWorkResult","plugins","normalized","require$$8","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","exports","unesc","gobbleHex","lower","hex","spaceTerminated","valid","codePoint","isSurrogate","CONTAINS_ESCAPE","needToProcess","ret","gobbled","module","getProp","_len","props","_key","ensureObject","stripComments","commentStart","lastEnd","commentEnd","util","_unesc","_interopRequireDefault","_getProp","_ensureObject","_stripComments","_util","_defineProperties","target","descriptor","_createClass","Constructor","protoProps","staticProps","_proto","valueEscaped","originalValue","originalEscaped","rawSpace","types","TAG","STRING","SELECTOR","ROOT","PSEUDO","NESTING","ID","COMMENT","COMBINATOR","CLASS","ATTRIBUTE","UNIVERSAL","_node","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","newObj","hasPropertyDescriptor","desc","_createForOfIteratorHelperLoose","o","allowArrayLike","it","_unsupportedIterableToArray","minLen","_arrayLikeToArray","arr","len","arr2","_inheritsLoose","subClass","superClass","_setPrototypeOf","_Node","_this","_iterator","_step","oldNode","newNode","_this$nodes","oldIndex","resetNode","_this$nodes2","col","found","foundChild","_this2","_this3","_this4","_this5","_this6","_this7","_this8","_this9","_this10","_this11","memo","_container","_types","_Container","handler","Selector","object","hasOwnProperty","merge","regexAnySingleEscape","regexSingleEscape","regexExcessiveSpaces","cssesc","isIdentifier","firstChar","output","counter","character","extra","$0","$1","$2","cssesc_1","_cssesc","ClassName","v","Namespace","namespace","ns","_namespace","Tag","_Namespace","String","Pseudo","browser","deprecate","fn","msg","config","warned","deprecated","global","val","unescapeValue","_CSSESC_QUOTE_OPTIONS","WRAPPED_IN_QUOTES","warnOfDeprecatedValueAssignment","warnOfDeprecatedQuotedAssignment","warnOfDeprecatedConstructor","deprecatedUsage","quoteMark","unescaped","m","handleDeprecatedContructorOpts","_unescapeValue","Attribute","cssescopts","CSSESC_QUOTE_OPTIONS","numSingleQuotes","numDoubleQuotes","pref","quoteValue","rawValue","attrSpaces","rawSpaces","spaceName","concat","defaultAttrConcat","count","attributeSpaces","operatorSpaces","operator","valueSpaces","insensitiveSpaces","attrValue","qm","_unescapeValue2","insensitive","Universal","Combinator","Nesting","sortAscending","b","tokenTypes","ampersand","asterisk","at","comma","openParenthesis","closeParenthesis","openSquare","closeSquare","dollar","tilde","caret","plus","equals","pipe","greaterThan","space","singleQuote","doubleQuote","slash","bang","backslash","cr","feed","newline","tab","word","combinator","t","_unescapable","_wordDelimiters","unescapable","wordDelimiters","hexChars","consumeWord","consumeEscape","hexDigits","FIELDS","_css","nextLine","nextOffset","tokenType","fix","_root","_selector","_className","_comment","_id","_tag","_string","_pseudo","_attribute","_universal","_combinator","_nesting","_sortAscending","_tokenize","_WHITESPACE_TOKENS","_Object$assign","WHITESPACE_TOKENS","WHITESPACE_EQUIV_TOKENS","tokenStart","tokenEnd","getSource","startLine","startColumn","getTokenSource","getTokenSourceSpan","startToken","endToken","unescapeProp","indexesOf","item","indexes","uniqs","rootSource","errorOptions","attr","startingToken","spaceBefore","commentBefore","lastAdded","spaceAfterMeaningfulToken","prevContent","existingComment","oldRawValue","_rawValue","_unescaped","_oldRawValue","oldValue","lastComment","rawLastComment","lastValue","rawLastValue","stopPosition","startPosition","firstToken","lastToken","requiredSpace","rawSpaceBefore","nameRaw","raws","nextSigTokenPos","_this$convertWhitespa","spaceOrDescendantSelectorNodes","_this$convertWhitespa2","_space","_rawSpace","_this$convertWhitespa3","_space2","_rawSpace2","nextContent","unbalanced","parenStart","parenValue","parenEnd","pseudoStr","first","firstCallback","hasClass","escapedDot","isKeyframesPercent","hasId","interpolations","hashIndex","indices","ind","sourceIndex","classNameOpts","idOpts","tagOpts","throwOnParenthesis","description","an","required","searchPosition","_parser","merged","reject","transform","constructors","attribute","className","nesting","pseudo","tag","universal","guards","isContainer","isNamespace","isNode","isPseudoClass","isPseudoElement","_IS_TYPE","IS_TYPE","isNodeType","isAttribute","isClassName","isCombinator","isComment","isNesting","isPseudo","isRoot","isSelector","isString","isTag","isUniversal","_constructors","_guards","_processor","selectors","_default","IMPORTANT","UNITLESS","dashify","dashChar","char","camelCaseCSS","property","indexEs5","camelcase","process","stringifyImportant","body","objectifier","objectify","processResult","warn","async","sync","postcssJs","reset","DRAWER_SLOTS","SLOTS","MakeSliderData","PRIMARY_SLIDE_CONTENT","PRIMARY_SLIDE_LINKS","PRIMARY_SLIDE_SECONDARY_LINKS","CHILDREN_SLIDES","allSlots","primarySlideSlot","slot","primarySlideLinksSlot","primarySlidesSecondaryLinksSlot","childrenSlidesSlot","childrenSlotContent","primarySlideContent","createSlot","primarySlideLinks","primarySlidesSecondaryLinks","childrenSlides","childrenSlideContent","reference","MakeNavDrawer","displayType","MakeNavSlider","styles","drawer","button","NavigationDrawer","ELEMENT_NAME","ATTRIBUTE_SEARCH_URL","ATTRIBUTE_CTA_URL","ATTRIBUTE_CTA_TEXT","GlobalSlots","CreateNavItemSlots","NAVIGATION","navigationSlot","navItems","navItem","slotAttr","CreateHeader","eventOpen","LOGO","UTILITY","logoSlot","utilityRow","searchUrl","ctaUrl","ctaText","attributes","ref","_oldValue","newValue","shadow","headerProps","headerRef","NavigationHeader","calloutSlot","primaryLinkSlot","primaryLinkContainer","dropdownLinksSlot","dropdownLinksContainer","elementData","dropdownCalloutsSlot","NavigationItem","NavigationSlider","NavigationSticky"],"mappings":"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","x_google_ignoreList":[1,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,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71]}
1
+ {"version":3,"file":"index-DlYD0VFw.js","sources":["../source/web-components/navigation/breadcrumb.ts","../../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.browser.js","../__vite-browser-external","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/css-syntax-error.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/stringifier.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/stringify.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/symbols.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/node.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/comment.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/declaration.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/container.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/at-rule.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/document.js","../../../node_modules/.pnpm/nanoid@3.3.11/node_modules/nanoid/non-secure/index.cjs","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/previous-map.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/input.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/root.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/list.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/rule.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/fromJSON.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/map-generator.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/tokenize.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/parser.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/parse.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/warning.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/result.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/lazy-result.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/no-work-result.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/processor.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/postcss.js","../../../node_modules/.pnpm/postcss@8.5.8/node_modules/postcss/lib/postcss.mjs","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/util/unesc.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/util/getProp.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/util/ensureObject.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/util/stripComments.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/util/index.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/node.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/types.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/container.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/root.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/selector.js","../../../node_modules/.pnpm/cssesc@3.0.0/node_modules/cssesc/cssesc.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/className.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/comment.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/id.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/namespace.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/tag.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/string.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/pseudo.js","../../../node_modules/.pnpm/util-deprecate@1.0.2/node_modules/util-deprecate/browser.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/attribute.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/universal.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/combinator.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/nesting.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/sortAscending.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/tokenTypes.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/tokenize.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/parser.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/processor.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/constructors.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/guards.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/selectors/index.js","../../../node_modules/.pnpm/postcss-selector-parser@7.1.1/node_modules/postcss-selector-parser/dist/index.js","../../../node_modules/.pnpm/postcss-nesting@13.0.2_postcss@8.5.8/node_modules/postcss-nesting/dist/index.mjs","../../../node_modules/.pnpm/postcss-js@4.1.0_postcss@8.5.8/node_modules/postcss-js/parser.js","../../../node_modules/.pnpm/camelcase-css@2.0.1/node_modules/camelcase-css/index-es5.js","../../../node_modules/.pnpm/postcss-js@4.1.0_postcss@8.5.8/node_modules/postcss-js/objectifier.js","../../../node_modules/.pnpm/postcss-js@4.1.0_postcss@8.5.8/node_modules/postcss-js/process-result.js","../../../node_modules/.pnpm/postcss-js@4.1.0_postcss@8.5.8/node_modules/postcss-js/async.js","../../../node_modules/.pnpm/postcss-js@4.1.0_postcss@8.5.8/node_modules/postcss-js/sync.js","../../../node_modules/.pnpm/postcss-js@4.1.0_postcss@8.5.8/node_modules/postcss-js/index.js","../../../node_modules/.pnpm/postcss-js@4.1.0_postcss@8.5.8/node_modules/postcss-js/index.mjs","../source/helpers/styles.ts","../source/web-components/navigation/common.ts","../source/web-components/navigation/drawer.ts","../source/web-components/navigation/header.ts","../source/web-components/navigation/item.ts","../source/web-components/navigation/slider.ts","../source/web-components/navigation/sticky.ts"],"sourcesContent":["import { navigation } from '@universityofmaryland/web-elements-library/composite';\nimport { createStyledSlotOrClone } from '@universityofmaryland/web-utilities-library/elements';\nimport { Attributes, Model, Slots } from '@universityofmaryland/web-model-library';\nimport { CreateComponentFunction, ComponentRegistration, SlotConfiguration } from '../../_types';\n\nconst tagName = 'umd-element-breadcrumb';\n\nconst slots: SlotConfiguration = {\n paths: {\n required: true,\n },\n};\n\nconst createComponent: CreateComponentFunction = (element) => {\n const linkListSlot = createStyledSlotOrClone({\n element,\n slotRef: Slots.name.PATHS,\n });\n\n if (!linkListSlot)\n return { element: document.createElement('div'), styles: '' };\n\n return navigation.elements.breadcrumb({\n isThemeDark: Attributes.isTheme.dark({ element }),\n linkListSlot,\n });\n};\n\n/**\n * Breadcrumb Navigation\n *\n * A breadcrumb navigation component that displays a hierarchical trail of links.\n * Helps users understand their location within the site structure and navigate back to parent pages.\n *\n * ## Custom Element\n * `<umd-element-breadcrumb>`\n *\n * ## Slots\n * - `paths` - Navigation list containing breadcrumb links (required, accepts: ol, ul)\n *\n * ## Attributes\n * - `data-theme` - Theme options:\n * - `dark` - Dark theme styling\n *\n * @example\n * ```html\n * <!-- Basic breadcrumb -->\n * <umd-element-breadcrumb>\n * <ol slot=\"paths\">\n * <li><a href=\"/\">Home</a></li>\n * <li><a href=\"/academics\">Academics</a></li>\n * <li><a href=\"/academics/programs\">Programs</a></li>\n * <li>Computer Science</li>\n * </ol>\n * </umd-element-breadcrumb>\n * ```\n *\n * @example\n * ```html\n * <!-- Dark theme breadcrumb -->\n * <umd-element-breadcrumb data-theme=\"dark\">\n * <ul slot=\"paths\">\n * <li><a href=\"/\">UMD</a></li>\n * <li><a href=\"/research\">Research</a></li>\n * <li>Quantum Computing Lab</li>\n * </ul>\n * </umd-element-breadcrumb>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const NavigationBreadcrumb: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { NavigationBreadcrumb as breadcrumb };\n","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 let startIndex\n while ((startIndex = this.css.lastIndexOf('/*#')) !== -1) {\n let endIndex = this.css.indexOf('*/', startIndex + 3)\n if (endIndex === -1) break\n while (startIndex > 0 && this.css[startIndex - 1] === '\\n') {\n startIndex--\n }\n this.css = this.css.slice(0, startIndex) + this.css.slice(endIndex + 2)\n }\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 (!text.trim()) {\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","'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\n let str = stringify\n this.result = new Result(this._processor, undefined, 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, undefined, 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.8'\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","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = unesc;\n// Many thanks for this post which made this migration much easier.\n// https://mathiasbynens.be/notes/css-escapes\n\n/**\n * \n * @param {string} str \n * @returns {[string, number]|undefined}\n */\nfunction gobbleHex(str) {\n var lower = str.toLowerCase();\n var hex = '';\n var spaceTerminated = false;\n for (var i = 0; i < 6 && lower[i] !== undefined; i++) {\n var code = lower.charCodeAt(i);\n // check to see if we are dealing with a valid hex char [a-f|0-9]\n var valid = code >= 97 && code <= 102 || code >= 48 && code <= 57;\n // https://drafts.csswg.org/css-syntax/#consume-escaped-code-point\n spaceTerminated = code === 32;\n if (!valid) {\n break;\n }\n hex += lower[i];\n }\n if (hex.length === 0) {\n return undefined;\n }\n var codePoint = parseInt(hex, 16);\n var isSurrogate = codePoint >= 0xD800 && codePoint <= 0xDFFF;\n // Add special case for\n // \"If this number is zero, or is for a surrogate, or is greater than the maximum allowed code point\"\n // https://drafts.csswg.org/css-syntax/#maximum-allowed-code-point\n if (isSurrogate || codePoint === 0x0000 || codePoint > 0x10FFFF) {\n return [\"\\uFFFD\", hex.length + (spaceTerminated ? 1 : 0)];\n }\n return [String.fromCodePoint(codePoint), hex.length + (spaceTerminated ? 1 : 0)];\n}\nvar CONTAINS_ESCAPE = /\\\\/;\nfunction unesc(str) {\n var needToProcess = CONTAINS_ESCAPE.test(str);\n if (!needToProcess) {\n return str;\n }\n var ret = \"\";\n for (var i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n var gobbled = gobbleHex(str.slice(i + 1, i + 7));\n if (gobbled !== undefined) {\n ret += gobbled[0];\n i += gobbled[1];\n continue;\n }\n\n // Retain a pair of \\\\ if double escaped `\\\\\\\\`\n // https://github.com/postcss/postcss-selector-parser/commit/268c9a7656fb53f543dc620aa5b73a30ec3ff20e\n if (str[i + 1] === \"\\\\\") {\n ret += \"\\\\\";\n i++;\n continue;\n }\n\n // if \\\\ is at the end of the string retain it\n // https://github.com/postcss/postcss-selector-parser/commit/01a6b346e3612ce1ab20219acc26abdc259ccefb\n if (str.length === i + 1) {\n ret += str[i];\n }\n continue;\n }\n ret += str[i];\n }\n return ret;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = getProp;\nfunction getProp(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n while (props.length > 0) {\n var prop = props.shift();\n if (!obj[prop]) {\n return undefined;\n }\n obj = obj[prop];\n }\n return obj;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = ensureObject;\nfunction ensureObject(obj) {\n for (var _len = arguments.length, props = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n props[_key - 1] = arguments[_key];\n }\n while (props.length > 0) {\n var prop = props.shift();\n if (!obj[prop]) {\n obj[prop] = {};\n }\n obj = obj[prop];\n }\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = stripComments;\nfunction stripComments(str) {\n var s = \"\";\n var commentStart = str.indexOf(\"/*\");\n var lastEnd = 0;\n while (commentStart >= 0) {\n s = s + str.slice(lastEnd, commentStart);\n var commentEnd = str.indexOf(\"*/\", commentStart + 2);\n if (commentEnd < 0) {\n return s;\n }\n lastEnd = commentEnd + 2;\n commentStart = str.indexOf(\"/*\", lastEnd);\n }\n s = s + str.slice(lastEnd);\n return s;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.unesc = exports.stripComments = exports.getProp = exports.ensureObject = void 0;\nvar _unesc = _interopRequireDefault(require(\"./unesc\"));\nexports.unesc = _unesc[\"default\"];\nvar _getProp = _interopRequireDefault(require(\"./getProp\"));\nexports.getProp = _getProp[\"default\"];\nvar _ensureObject = _interopRequireDefault(require(\"./ensureObject\"));\nexports.ensureObject = _ensureObject[\"default\"];\nvar _stripComments = _interopRequireDefault(require(\"./stripComments\"));\nexports.stripComments = _stripComments[\"default\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _util = require(\"../util\");\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar cloneNode = function cloneNode(obj, parent) {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n var cloned = new obj.constructor();\n for (var i in obj) {\n if (!obj.hasOwnProperty(i)) {\n continue;\n }\n var value = obj[i];\n var type = typeof value;\n if (i === 'parent' && type === 'object') {\n if (parent) {\n cloned[i] = parent;\n }\n } else if (value instanceof Array) {\n cloned[i] = value.map(function (j) {\n return cloneNode(j, cloned);\n });\n } else {\n cloned[i] = cloneNode(value, cloned);\n }\n }\n return cloned;\n};\nvar Node = /*#__PURE__*/function () {\n function Node(opts) {\n if (opts === void 0) {\n opts = {};\n }\n Object.assign(this, opts);\n this.spaces = this.spaces || {};\n this.spaces.before = this.spaces.before || '';\n this.spaces.after = this.spaces.after || '';\n }\n var _proto = Node.prototype;\n _proto.remove = function remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = undefined;\n return this;\n };\n _proto.replaceWith = function replaceWith() {\n if (this.parent) {\n for (var index in arguments) {\n this.parent.insertBefore(this, arguments[index]);\n }\n this.remove();\n }\n return this;\n };\n _proto.next = function next() {\n return this.parent.at(this.parent.index(this) + 1);\n };\n _proto.prev = function prev() {\n return this.parent.at(this.parent.index(this) - 1);\n };\n _proto.clone = function clone(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n var cloned = cloneNode(this);\n for (var name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows non standard syntax to be appended to an existing property\n * by specifying the escaped value. By specifying the escaped value,\n * illegal characters are allowed to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped optional. the escaped value of the property.\n */;\n _proto.appendToPropertyAndEscape = function appendToPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n var originalValue = this[name];\n var originalEscaped = this.raws[name];\n this[name] = originalValue + value; // this may trigger a setter that updates raws, so it has to be set first.\n if (originalEscaped || valueEscaped !== value) {\n this.raws[name] = (originalEscaped || originalValue) + valueEscaped;\n } else {\n delete this.raws[name]; // delete any escaped value that was created by the setter.\n }\n }\n\n /**\n * Some non-standard syntax doesn't follow normal escaping rules for css.\n * This allows the escaped value to be specified directly, allowing illegal\n * characters to be directly inserted into css output.\n * @param {string} name the property to set\n * @param {any} value the unescaped value of the property\n * @param {string} valueEscaped the escaped value of the property.\n */;\n _proto.setPropertyAndEscape = function setPropertyAndEscape(name, value, valueEscaped) {\n if (!this.raws) {\n this.raws = {};\n }\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n this.raws[name] = valueEscaped;\n }\n\n /**\n * When you want a value to passed through to CSS directly. This method\n * deletes the corresponding raw value causing the stringifier to fallback\n * to the unescaped value.\n * @param {string} name the property to set.\n * @param {any} value The value that is both escaped and unescaped.\n */;\n _proto.setPropertyWithoutEscape = function setPropertyWithoutEscape(name, value) {\n this[name] = value; // this may trigger a setter that updates raws, so it has to be set first.\n if (this.raws) {\n delete this.raws[name];\n }\n }\n\n /**\n *\n * @param {number} line The number (starting with 1)\n * @param {number} column The column number (starting with 1)\n */;\n _proto.isAtPosition = function isAtPosition(line, column) {\n if (this.source && this.source.start && this.source.end) {\n if (this.source.start.line > line) {\n return false;\n }\n if (this.source.end.line < line) {\n return false;\n }\n if (this.source.start.line === line && this.source.start.column > column) {\n return false;\n }\n if (this.source.end.line === line && this.source.end.column < column) {\n return false;\n }\n return true;\n }\n return undefined;\n };\n _proto.stringifyProperty = function stringifyProperty(name) {\n return this.raws && this.raws[name] || this[name];\n };\n _proto.valueToString = function valueToString() {\n return String(this.stringifyProperty(\"value\"));\n };\n _proto.toString = function toString() {\n return [this.rawSpaceBefore, this.valueToString(), this.rawSpaceAfter].join('');\n };\n _createClass(Node, [{\n key: \"rawSpaceBefore\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.before;\n if (rawSpace === undefined) {\n rawSpace = this.spaces && this.spaces.before;\n }\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.before = raw;\n }\n }, {\n key: \"rawSpaceAfter\",\n get: function get() {\n var rawSpace = this.raws && this.raws.spaces && this.raws.spaces.after;\n if (rawSpace === undefined) {\n rawSpace = this.spaces.after;\n }\n return rawSpace || \"\";\n },\n set: function set(raw) {\n (0, _util.ensureObject)(this, \"raws\", \"spaces\");\n this.raws.spaces.after = raw;\n }\n }]);\n return Node;\n}();\nexports[\"default\"] = Node;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.UNIVERSAL = exports.TAG = exports.STRING = exports.SELECTOR = exports.ROOT = exports.PSEUDO = exports.NESTING = exports.ID = exports.COMMENT = exports.COMBINATOR = exports.CLASS = exports.ATTRIBUTE = void 0;\nvar TAG = 'tag';\nexports.TAG = TAG;\nvar STRING = 'string';\nexports.STRING = STRING;\nvar SELECTOR = 'selector';\nexports.SELECTOR = SELECTOR;\nvar ROOT = 'root';\nexports.ROOT = ROOT;\nvar PSEUDO = 'pseudo';\nexports.PSEUDO = PSEUDO;\nvar NESTING = 'nesting';\nexports.NESTING = NESTING;\nvar ID = 'id';\nexports.ID = ID;\nvar COMMENT = 'comment';\nexports.COMMENT = COMMENT;\nvar COMBINATOR = 'combinator';\nexports.COMBINATOR = COMBINATOR;\nvar CLASS = 'class';\nexports.CLASS = CLASS;\nvar ATTRIBUTE = 'attribute';\nexports.ATTRIBUTE = ATTRIBUTE;\nvar UNIVERSAL = 'universal';\nexports.UNIVERSAL = UNIVERSAL;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar types = _interopRequireWildcard(require(\"./types\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Container = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Container, _Node);\n function Container(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n if (!_this.nodes) {\n _this.nodes = [];\n }\n return _this;\n }\n var _proto = Container.prototype;\n _proto.append = function append(selector) {\n selector.parent = this;\n this.nodes.push(selector);\n return this;\n };\n _proto.prepend = function prepend(selector) {\n selector.parent = this;\n this.nodes.unshift(selector);\n for (var id in this.indexes) {\n this.indexes[id]++;\n }\n return this;\n };\n _proto.at = function at(index) {\n return this.nodes[index];\n };\n _proto.index = function index(child) {\n if (typeof child === 'number') {\n return child;\n }\n return this.nodes.indexOf(child);\n };\n _proto.removeChild = function removeChild(child) {\n child = this.index(child);\n this.at(child).parent = undefined;\n this.nodes.splice(child, 1);\n var index;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n return this;\n };\n _proto.removeAll = function removeAll() {\n for (var _iterator = _createForOfIteratorHelperLoose(this.nodes), _step; !(_step = _iterator()).done;) {\n var node = _step.value;\n node.parent = undefined;\n }\n this.nodes = [];\n return this;\n };\n _proto.empty = function empty() {\n return this.removeAll();\n };\n _proto.insertAfter = function insertAfter(oldNode, newNode) {\n var _this$nodes;\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n var resetNode = [];\n for (var i = 2; i < arguments.length; i++) {\n resetNode.push(arguments[i]);\n }\n (_this$nodes = this.nodes).splice.apply(_this$nodes, [oldIndex + 1, 0, newNode].concat(resetNode));\n newNode.parent = this;\n var index;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (oldIndex < index) {\n this.indexes[id] = index + arguments.length - 1;\n }\n }\n return this;\n };\n _proto.insertBefore = function insertBefore(oldNode, newNode) {\n var _this$nodes2;\n newNode.parent = this;\n var oldIndex = this.index(oldNode);\n var resetNode = [];\n for (var i = 2; i < arguments.length; i++) {\n resetNode.push(arguments[i]);\n }\n (_this$nodes2 = this.nodes).splice.apply(_this$nodes2, [oldIndex, 0, newNode].concat(resetNode));\n newNode.parent = this;\n var index;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (index >= oldIndex) {\n this.indexes[id] = index + arguments.length - 1;\n }\n }\n return this;\n };\n _proto._findChildAtPosition = function _findChildAtPosition(line, col) {\n var found = undefined;\n this.each(function (node) {\n if (node.atPosition) {\n var foundChild = node.atPosition(line, col);\n if (foundChild) {\n found = foundChild;\n return false;\n }\n } else if (node.isAtPosition(line, col)) {\n found = node;\n return false;\n }\n });\n return found;\n }\n\n /**\n * Return the most specific node at the line and column number given.\n * The source location is based on the original parsed location, locations aren't\n * updated as selector nodes are mutated.\n *\n * Note that this location is relative to the location of the first character\n * of the selector, and not the location of the selector in the overall document\n * when used in conjunction with postcss.\n *\n * If not found, returns undefined.\n * @param {number} line The line number of the node to find. (1-based index)\n * @param {number} col The column number of the node to find. (1-based index)\n */;\n _proto.atPosition = function atPosition(line, col) {\n if (this.isAtPosition(line, col)) {\n return this._findChildAtPosition(line, col) || this;\n } else {\n return undefined;\n }\n };\n _proto._inferEndPosition = function _inferEndPosition() {\n if (this.last && this.last.source && this.last.source.end) {\n this.source = this.source || {};\n this.source.end = this.source.end || {};\n Object.assign(this.source.end, this.last.source.end);\n }\n };\n _proto.each = function each(callback) {\n if (!this.lastEach) {\n this.lastEach = 0;\n }\n if (!this.indexes) {\n this.indexes = {};\n }\n this.lastEach++;\n var id = this.lastEach;\n this.indexes[id] = 0;\n if (!this.length) {\n return undefined;\n }\n var index, result;\n while (this.indexes[id] < this.length) {\n index = this.indexes[id];\n result = callback(this.at(index), index);\n if (result === false) {\n break;\n }\n this.indexes[id] += 1;\n }\n delete this.indexes[id];\n if (result === false) {\n return false;\n }\n };\n _proto.walk = function walk(callback) {\n return this.each(function (node, i) {\n var result = callback(node, i);\n if (result !== false && node.length) {\n result = node.walk(callback);\n }\n if (result === false) {\n return false;\n }\n });\n };\n _proto.walkAttributes = function walkAttributes(callback) {\n var _this2 = this;\n return this.walk(function (selector) {\n if (selector.type === types.ATTRIBUTE) {\n return callback.call(_this2, selector);\n }\n });\n };\n _proto.walkClasses = function walkClasses(callback) {\n var _this3 = this;\n return this.walk(function (selector) {\n if (selector.type === types.CLASS) {\n return callback.call(_this3, selector);\n }\n });\n };\n _proto.walkCombinators = function walkCombinators(callback) {\n var _this4 = this;\n return this.walk(function (selector) {\n if (selector.type === types.COMBINATOR) {\n return callback.call(_this4, selector);\n }\n });\n };\n _proto.walkComments = function walkComments(callback) {\n var _this5 = this;\n return this.walk(function (selector) {\n if (selector.type === types.COMMENT) {\n return callback.call(_this5, selector);\n }\n });\n };\n _proto.walkIds = function walkIds(callback) {\n var _this6 = this;\n return this.walk(function (selector) {\n if (selector.type === types.ID) {\n return callback.call(_this6, selector);\n }\n });\n };\n _proto.walkNesting = function walkNesting(callback) {\n var _this7 = this;\n return this.walk(function (selector) {\n if (selector.type === types.NESTING) {\n return callback.call(_this7, selector);\n }\n });\n };\n _proto.walkPseudos = function walkPseudos(callback) {\n var _this8 = this;\n return this.walk(function (selector) {\n if (selector.type === types.PSEUDO) {\n return callback.call(_this8, selector);\n }\n });\n };\n _proto.walkTags = function walkTags(callback) {\n var _this9 = this;\n return this.walk(function (selector) {\n if (selector.type === types.TAG) {\n return callback.call(_this9, selector);\n }\n });\n };\n _proto.walkUniversals = function walkUniversals(callback) {\n var _this10 = this;\n return this.walk(function (selector) {\n if (selector.type === types.UNIVERSAL) {\n return callback.call(_this10, selector);\n }\n });\n };\n _proto.split = function split(callback) {\n var _this11 = this;\n var current = [];\n return this.reduce(function (memo, node, index) {\n var split = callback.call(_this11, node);\n current.push(node);\n if (split) {\n memo.push(current);\n current = [];\n } else if (index === _this11.length - 1) {\n memo.push(current);\n }\n return memo;\n }, []);\n };\n _proto.map = function map(callback) {\n return this.nodes.map(callback);\n };\n _proto.reduce = function reduce(callback, memo) {\n return this.nodes.reduce(callback, memo);\n };\n _proto.every = function every(callback) {\n return this.nodes.every(callback);\n };\n _proto.some = function some(callback) {\n return this.nodes.some(callback);\n };\n _proto.filter = function filter(callback) {\n return this.nodes.filter(callback);\n };\n _proto.sort = function sort(callback) {\n return this.nodes.sort(callback);\n };\n _proto.toString = function toString() {\n return this.map(String).join('');\n };\n _createClass(Container, [{\n key: \"first\",\n get: function get() {\n return this.at(0);\n }\n }, {\n key: \"last\",\n get: function get() {\n return this.at(this.length - 1);\n }\n }, {\n key: \"length\",\n get: function get() {\n return this.nodes.length;\n }\n }]);\n return Container;\n}(_node[\"default\"]);\nexports[\"default\"] = Container;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _container = _interopRequireDefault(require(\"./container\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Root = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Root, _Container);\n function Root(opts) {\n var _this;\n _this = _Container.call(this, opts) || this;\n _this.type = _types.ROOT;\n return _this;\n }\n var _proto = Root.prototype;\n _proto.toString = function toString() {\n var str = this.reduce(function (memo, selector) {\n memo.push(String(selector));\n return memo;\n }, []).join(',');\n return this.trailingComma ? str + ',' : str;\n };\n _proto.error = function error(message, options) {\n if (this._error) {\n return this._error(message, options);\n } else {\n return new Error(message);\n }\n };\n _createClass(Root, [{\n key: \"errorGenerator\",\n set: function set(handler) {\n this._error = handler;\n }\n }]);\n return Root;\n}(_container[\"default\"]);\nexports[\"default\"] = Root;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _container = _interopRequireDefault(require(\"./container\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Selector = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Selector, _Container);\n function Selector(opts) {\n var _this;\n _this = _Container.call(this, opts) || this;\n _this.type = _types.SELECTOR;\n return _this;\n }\n return Selector;\n}(_container[\"default\"]);\nexports[\"default\"] = Selector;\nmodule.exports = exports.default;","/*! https://mths.be/cssesc v3.0.0 by @mathias */\n'use strict';\n\nvar object = {};\nvar hasOwnProperty = object.hasOwnProperty;\nvar merge = function merge(options, defaults) {\n\tif (!options) {\n\t\treturn defaults;\n\t}\n\tvar result = {};\n\tfor (var key in defaults) {\n\t\t// `if (defaults.hasOwnProperty(key) { … }` is not needed here, since\n\t\t// only recognized option names are used.\n\t\tresult[key] = hasOwnProperty.call(options, key) ? options[key] : defaults[key];\n\t}\n\treturn result;\n};\n\nvar regexAnySingleEscape = /[ -,\\.\\/:-@\\[-\\^`\\{-~]/;\nvar regexSingleEscape = /[ -,\\.\\/:-@\\[\\]\\^`\\{-~]/;\nvar regexAlwaysEscape = /['\"\\\\]/;\nvar regexExcessiveSpaces = /(^|\\\\+)?(\\\\[A-F0-9]{1,6})\\x20(?![a-fA-F0-9\\x20])/g;\n\n// https://mathiasbynens.be/notes/css-escapes#css\nvar cssesc = function cssesc(string, options) {\n\toptions = merge(options, cssesc.options);\n\tif (options.quotes != 'single' && options.quotes != 'double') {\n\t\toptions.quotes = 'single';\n\t}\n\tvar quote = options.quotes == 'double' ? '\"' : '\\'';\n\tvar isIdentifier = options.isIdentifier;\n\n\tvar firstChar = string.charAt(0);\n\tvar output = '';\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar character = string.charAt(counter++);\n\t\tvar codePoint = character.charCodeAt();\n\t\tvar value = void 0;\n\t\t// If it’s not a printable ASCII character…\n\t\tif (codePoint < 0x20 || codePoint > 0x7E) {\n\t\t\tif (codePoint >= 0xD800 && codePoint <= 0xDBFF && counter < length) {\n\t\t\t\t// It’s a high surrogate, and there is a next character.\n\t\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t\t// next character is low surrogate\n\t\t\t\t\tcodePoint = ((codePoint & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000;\n\t\t\t\t} else {\n\t\t\t\t\t// It’s an unmatched surrogate; only append this code unit, in case\n\t\t\t\t\t// the next code unit is the high surrogate of a surrogate pair.\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t} else {\n\t\t\tif (options.escapeEverything) {\n\t\t\t\tif (regexAnySingleEscape.test(character)) {\n\t\t\t\t\tvalue = '\\\\' + character;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t\t}\n\t\t\t} else if (/[\\t\\n\\f\\r\\x0B]/.test(character)) {\n\t\t\t\tvalue = '\\\\' + codePoint.toString(16).toUpperCase() + ' ';\n\t\t\t} else if (character == '\\\\' || !isIdentifier && (character == '\"' && quote == character || character == '\\'' && quote == character) || isIdentifier && regexSingleEscape.test(character)) {\n\t\t\t\tvalue = '\\\\' + character;\n\t\t\t} else {\n\t\t\t\tvalue = character;\n\t\t\t}\n\t\t}\n\t\toutput += value;\n\t}\n\n\tif (isIdentifier) {\n\t\tif (/^-[-\\d]/.test(output)) {\n\t\t\toutput = '\\\\-' + output.slice(1);\n\t\t} else if (/\\d/.test(firstChar)) {\n\t\t\toutput = '\\\\3' + firstChar + ' ' + output.slice(1);\n\t\t}\n\t}\n\n\t// Remove spaces after `\\HEX` escapes that are not followed by a hex digit,\n\t// since they’re redundant. Note that this is only possible if the escape\n\t// sequence isn’t preceded by an odd number of backslashes.\n\toutput = output.replace(regexExcessiveSpaces, function ($0, $1, $2) {\n\t\tif ($1 && $1.length % 2) {\n\t\t\t// It’s not safe to remove the space, so don’t.\n\t\t\treturn $0;\n\t\t}\n\t\t// Strip the space.\n\t\treturn ($1 || '') + $2;\n\t});\n\n\tif (!isIdentifier && options.wrap) {\n\t\treturn quote + output + quote;\n\t}\n\treturn output;\n};\n\n// Expose default options (so they can be overridden globally).\ncssesc.options = {\n\t'escapeEverything': false,\n\t'isIdentifier': false,\n\t'quotes': 'single',\n\t'wrap': false\n};\n\ncssesc.version = '3.0.0';\n\nmodule.exports = cssesc;\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\nvar _util = require(\"../util\");\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar ClassName = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ClassName, _Node);\n function ClassName(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.CLASS;\n _this._constructed = true;\n return _this;\n }\n var _proto = ClassName.prototype;\n _proto.valueToString = function valueToString() {\n return '.' + _Node.prototype.valueToString.call(this);\n };\n _createClass(ClassName, [{\n key: \"value\",\n get: function get() {\n return this._value;\n },\n set: function set(v) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n if (escaped !== v) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.value = escaped;\n } else if (this.raws) {\n delete this.raws.value;\n }\n }\n this._value = v;\n }\n }]);\n return ClassName;\n}(_node[\"default\"]);\nexports[\"default\"] = ClassName;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Comment = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Comment, _Node);\n function Comment(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMMENT;\n return _this;\n }\n return Comment;\n}(_node[\"default\"]);\nexports[\"default\"] = Comment;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar ID = /*#__PURE__*/function (_Node) {\n _inheritsLoose(ID, _Node);\n function ID(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.ID;\n return _this;\n }\n var _proto = ID.prototype;\n _proto.valueToString = function valueToString() {\n return '#' + _Node.prototype.valueToString.call(this);\n };\n return ID;\n}(_node[\"default\"]);\nexports[\"default\"] = ID;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\nvar _util = require(\"../util\");\nvar _node = _interopRequireDefault(require(\"./node\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Namespace = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Namespace, _Node);\n function Namespace() {\n return _Node.apply(this, arguments) || this;\n }\n var _proto = Namespace.prototype;\n _proto.qualifiedName = function qualifiedName(value) {\n if (this.namespace) {\n return this.namespaceString + \"|\" + value;\n } else {\n return value;\n }\n };\n _proto.valueToString = function valueToString() {\n return this.qualifiedName(_Node.prototype.valueToString.call(this));\n };\n _createClass(Namespace, [{\n key: \"namespace\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n if (namespace === true || namespace === \"*\" || namespace === \"&\") {\n this._namespace = namespace;\n if (this.raws) {\n delete this.raws.namespace;\n }\n return;\n }\n var escaped = (0, _cssesc[\"default\"])(namespace, {\n isIdentifier: true\n });\n this._namespace = namespace;\n if (escaped !== namespace) {\n (0, _util.ensureObject)(this, \"raws\");\n this.raws.namespace = escaped;\n } else if (this.raws) {\n delete this.raws.namespace;\n }\n }\n }, {\n key: \"ns\",\n get: function get() {\n return this._namespace;\n },\n set: function set(namespace) {\n this.namespace = namespace;\n }\n }, {\n key: \"namespaceString\",\n get: function get() {\n if (this.namespace) {\n var ns = this.stringifyProperty(\"namespace\");\n if (ns === true) {\n return '';\n } else {\n return ns;\n }\n } else {\n return '';\n }\n }\n }]);\n return Namespace;\n}(_node[\"default\"]);\nexports[\"default\"] = Namespace;\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Tag = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Tag, _Namespace);\n function Tag(opts) {\n var _this;\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.TAG;\n return _this;\n }\n return Tag;\n}(_namespace[\"default\"]);\nexports[\"default\"] = Tag;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar String = /*#__PURE__*/function (_Node) {\n _inheritsLoose(String, _Node);\n function String(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.STRING;\n return _this;\n }\n return String;\n}(_node[\"default\"]);\nexports[\"default\"] = String;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _container = _interopRequireDefault(require(\"./container\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Pseudo = /*#__PURE__*/function (_Container) {\n _inheritsLoose(Pseudo, _Container);\n function Pseudo(opts) {\n var _this;\n _this = _Container.call(this, opts) || this;\n _this.type = _types.PSEUDO;\n return _this;\n }\n var _proto = Pseudo.prototype;\n _proto.toString = function toString() {\n var params = this.length ? '(' + this.map(String).join(',') + ')' : '';\n return [this.rawSpaceBefore, this.stringifyProperty(\"value\"), params, this.rawSpaceAfter].join('');\n };\n return Pseudo;\n}(_container[\"default\"]);\nexports[\"default\"] = Pseudo;\nmodule.exports = exports.default;","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nexports.unescapeValue = unescapeValue;\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\nvar _unesc = _interopRequireDefault(require(\"../util/unesc\"));\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\nvar _types = require(\"./types\");\nvar _CSSESC_QUOTE_OPTIONS;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar deprecate = require(\"util-deprecate\");\nvar WRAPPED_IN_QUOTES = /^('|\")([^]*)\\1$/;\nvar warnOfDeprecatedValueAssignment = deprecate(function () {}, \"Assigning an attribute a value containing characters that might need to be escaped is deprecated. \" + \"Call attribute.setValue() instead.\");\nvar warnOfDeprecatedQuotedAssignment = deprecate(function () {}, \"Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead.\");\nvar warnOfDeprecatedConstructor = deprecate(function () {}, \"Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now.\");\nfunction unescapeValue(value) {\n var deprecatedUsage = false;\n var quoteMark = null;\n var unescaped = value;\n var m = unescaped.match(WRAPPED_IN_QUOTES);\n if (m) {\n quoteMark = m[1];\n unescaped = m[2];\n }\n unescaped = (0, _unesc[\"default\"])(unescaped);\n if (unescaped !== value) {\n deprecatedUsage = true;\n }\n return {\n deprecatedUsage: deprecatedUsage,\n unescaped: unescaped,\n quoteMark: quoteMark\n };\n}\nfunction handleDeprecatedContructorOpts(opts) {\n if (opts.quoteMark !== undefined) {\n return opts;\n }\n if (opts.value === undefined) {\n return opts;\n }\n warnOfDeprecatedConstructor();\n var _unescapeValue = unescapeValue(opts.value),\n quoteMark = _unescapeValue.quoteMark,\n unescaped = _unescapeValue.unescaped;\n if (!opts.raws) {\n opts.raws = {};\n }\n if (opts.raws.value === undefined) {\n opts.raws.value = opts.value;\n }\n opts.value = unescaped;\n opts.quoteMark = quoteMark;\n return opts;\n}\nvar Attribute = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Attribute, _Namespace);\n function Attribute(opts) {\n var _this;\n if (opts === void 0) {\n opts = {};\n }\n _this = _Namespace.call(this, handleDeprecatedContructorOpts(opts)) || this;\n _this.type = _types.ATTRIBUTE;\n _this.raws = _this.raws || {};\n Object.defineProperty(_this.raws, 'unquoted', {\n get: deprecate(function () {\n return _this.value;\n }, \"attr.raws.unquoted is deprecated. Call attr.value instead.\"),\n set: deprecate(function () {\n return _this.value;\n }, \"Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.\")\n });\n _this._constructed = true;\n return _this;\n }\n\n /**\n * Returns the Attribute's value quoted such that it would be legal to use\n * in the value of a css file. The original value's quotation setting\n * used for stringification is left unchanged. See `setValue(value, options)`\n * if you want to control the quote settings of a new value for the attribute.\n *\n * You can also change the quotation used for the current value by setting quoteMark.\n *\n * Options:\n * * quoteMark {'\"' | \"'\" | null} - Use this value to quote the value. If this\n * option is not set, the original value for quoteMark will be used. If\n * indeterminate, a double quote is used. The legal values are:\n * * `null` - the value will be unquoted and characters will be escaped as necessary.\n * * `'` - the value will be quoted with a single quote and single quotes are escaped.\n * * `\"` - the value will be quoted with a double quote and double quotes are escaped.\n * * preferCurrentQuoteMark {boolean} - if true, prefer the source quote mark\n * over the quoteMark option value.\n * * smart {boolean} - if true, will select a quote mark based on the value\n * and the other options specified here. See the `smartQuoteMark()`\n * method.\n **/\n var _proto = Attribute.prototype;\n _proto.getQuotedValue = function getQuotedValue(options) {\n if (options === void 0) {\n options = {};\n }\n var quoteMark = this._determineQuoteMark(options);\n var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark];\n var escaped = (0, _cssesc[\"default\"])(this._value, cssescopts);\n return escaped;\n };\n _proto._determineQuoteMark = function _determineQuoteMark(options) {\n return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options);\n }\n\n /**\n * Set the unescaped value with the specified quotation options. The value\n * provided must not include any wrapping quote marks -- those quotes will\n * be interpreted as part of the value and escaped accordingly.\n */;\n _proto.setValue = function setValue(value, options) {\n if (options === void 0) {\n options = {};\n }\n this._value = value;\n this._quoteMark = this._determineQuoteMark(options);\n this._syncRawValue();\n }\n\n /**\n * Intelligently select a quoteMark value based on the value's contents. If\n * the value is a legal CSS ident, it will not be quoted. Otherwise a quote\n * mark will be picked that minimizes the number of escapes.\n *\n * If there's no clear winner, the quote mark from these options is used,\n * then the source quote mark (this is inverted if `preferCurrentQuoteMark` is\n * true). If the quoteMark is unspecified, a double quote is used.\n *\n * @param options This takes the quoteMark and preferCurrentQuoteMark options\n * from the quoteValue method.\n */;\n _proto.smartQuoteMark = function smartQuoteMark(options) {\n var v = this.value;\n var numSingleQuotes = v.replace(/[^']/g, '').length;\n var numDoubleQuotes = v.replace(/[^\"]/g, '').length;\n if (numSingleQuotes + numDoubleQuotes === 0) {\n var escaped = (0, _cssesc[\"default\"])(v, {\n isIdentifier: true\n });\n if (escaped === v) {\n return Attribute.NO_QUOTE;\n } else {\n var pref = this.preferredQuoteMark(options);\n if (pref === Attribute.NO_QUOTE) {\n // pick a quote mark that isn't none and see if it's smaller\n var quote = this.quoteMark || options.quoteMark || Attribute.DOUBLE_QUOTE;\n var opts = CSSESC_QUOTE_OPTIONS[quote];\n var quoteValue = (0, _cssesc[\"default\"])(v, opts);\n if (quoteValue.length < escaped.length) {\n return quote;\n }\n }\n return pref;\n }\n } else if (numDoubleQuotes === numSingleQuotes) {\n return this.preferredQuoteMark(options);\n } else if (numDoubleQuotes < numSingleQuotes) {\n return Attribute.DOUBLE_QUOTE;\n } else {\n return Attribute.SINGLE_QUOTE;\n }\n }\n\n /**\n * Selects the preferred quote mark based on the options and the current quote mark value.\n * If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)`\n * instead.\n */;\n _proto.preferredQuoteMark = function preferredQuoteMark(options) {\n var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark;\n if (quoteMark === undefined) {\n quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark;\n }\n if (quoteMark === undefined) {\n quoteMark = Attribute.DOUBLE_QUOTE;\n }\n return quoteMark;\n };\n _proto._syncRawValue = function _syncRawValue() {\n var rawValue = (0, _cssesc[\"default\"])(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]);\n if (rawValue === this._value) {\n if (this.raws) {\n delete this.raws.value;\n }\n } else {\n this.raws.value = rawValue;\n }\n };\n _proto._handleEscapes = function _handleEscapes(prop, value) {\n if (this._constructed) {\n var escaped = (0, _cssesc[\"default\"])(value, {\n isIdentifier: true\n });\n if (escaped !== value) {\n this.raws[prop] = escaped;\n } else {\n delete this.raws[prop];\n }\n }\n };\n _proto._spacesFor = function _spacesFor(name) {\n var attrSpaces = {\n before: '',\n after: ''\n };\n var spaces = this.spaces[name] || {};\n var rawSpaces = this.raws.spaces && this.raws.spaces[name] || {};\n return Object.assign(attrSpaces, spaces, rawSpaces);\n };\n _proto._stringFor = function _stringFor(name, spaceName, concat) {\n if (spaceName === void 0) {\n spaceName = name;\n }\n if (concat === void 0) {\n concat = defaultAttrConcat;\n }\n var attrSpaces = this._spacesFor(spaceName);\n return concat(this.stringifyProperty(name), attrSpaces);\n }\n\n /**\n * returns the offset of the attribute part specified relative to the\n * start of the node of the output string.\n *\n * * \"ns\" - alias for \"namespace\"\n * * \"namespace\" - the namespace if it exists.\n * * \"attribute\" - the attribute name\n * * \"attributeNS\" - the start of the attribute or its namespace\n * * \"operator\" - the match operator of the attribute\n * * \"value\" - The value (string or identifier)\n * * \"insensitive\" - the case insensitivity flag;\n * @param part One of the possible values inside an attribute.\n * @returns -1 if the name is invalid or the value doesn't exist in this attribute.\n */;\n _proto.offsetOf = function offsetOf(name) {\n var count = 1;\n var attributeSpaces = this._spacesFor(\"attribute\");\n count += attributeSpaces.before.length;\n if (name === \"namespace\" || name === \"ns\") {\n return this.namespace ? count : -1;\n }\n if (name === \"attributeNS\") {\n return count;\n }\n count += this.namespaceString.length;\n if (this.namespace) {\n count += 1;\n }\n if (name === \"attribute\") {\n return count;\n }\n count += this.stringifyProperty(\"attribute\").length;\n count += attributeSpaces.after.length;\n var operatorSpaces = this._spacesFor(\"operator\");\n count += operatorSpaces.before.length;\n var operator = this.stringifyProperty(\"operator\");\n if (name === \"operator\") {\n return operator ? count : -1;\n }\n count += operator.length;\n count += operatorSpaces.after.length;\n var valueSpaces = this._spacesFor(\"value\");\n count += valueSpaces.before.length;\n var value = this.stringifyProperty(\"value\");\n if (name === \"value\") {\n return value ? count : -1;\n }\n count += value.length;\n count += valueSpaces.after.length;\n var insensitiveSpaces = this._spacesFor(\"insensitive\");\n count += insensitiveSpaces.before.length;\n if (name === \"insensitive\") {\n return this.insensitive ? count : -1;\n }\n return -1;\n };\n _proto.toString = function toString() {\n var _this2 = this;\n var selector = [this.rawSpaceBefore, '['];\n selector.push(this._stringFor('qualifiedAttribute', 'attribute'));\n if (this.operator && (this.value || this.value === '')) {\n selector.push(this._stringFor('operator'));\n selector.push(this._stringFor('value'));\n selector.push(this._stringFor('insensitiveFlag', 'insensitive', function (attrValue, attrSpaces) {\n if (attrValue.length > 0 && !_this2.quoted && attrSpaces.before.length === 0 && !(_this2.spaces.value && _this2.spaces.value.after)) {\n attrSpaces.before = \" \";\n }\n return defaultAttrConcat(attrValue, attrSpaces);\n }));\n }\n selector.push(']');\n selector.push(this.rawSpaceAfter);\n return selector.join('');\n };\n _createClass(Attribute, [{\n key: \"quoted\",\n get: function get() {\n var qm = this.quoteMark;\n return qm === \"'\" || qm === '\"';\n },\n set: function set(value) {\n warnOfDeprecatedQuotedAssignment();\n }\n\n /**\n * returns a single (`'`) or double (`\"`) quote character if the value is quoted.\n * returns `null` if the value is not quoted.\n * returns `undefined` if the quotation state is unknown (this can happen when\n * the attribute is constructed without specifying a quote mark.)\n */\n }, {\n key: \"quoteMark\",\n get: function get() {\n return this._quoteMark;\n }\n\n /**\n * Set the quote mark to be used by this attribute's value.\n * If the quote mark changes, the raw (escaped) value at `attr.raws.value` of the attribute\n * value is updated accordingly.\n *\n * @param {\"'\" | '\"' | null} quoteMark The quote mark or `null` if the value should be unquoted.\n */,\n set: function set(quoteMark) {\n if (!this._constructed) {\n this._quoteMark = quoteMark;\n return;\n }\n if (this._quoteMark !== quoteMark) {\n this._quoteMark = quoteMark;\n this._syncRawValue();\n }\n }\n }, {\n key: \"qualifiedAttribute\",\n get: function get() {\n return this.qualifiedName(this.raws.attribute || this.attribute);\n }\n }, {\n key: \"insensitiveFlag\",\n get: function get() {\n return this.insensitive ? 'i' : '';\n }\n }, {\n key: \"value\",\n get: function get() {\n return this._value;\n },\n set:\n /**\n * Before 3.0, the value had to be set to an escaped value including any wrapped\n * quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value\n * is unescaped during parsing and any quote marks are removed.\n *\n * Because the ambiguity of this semantic change, if you set `attr.value = newValue`,\n * a deprecation warning is raised when the new value contains any characters that would\n * require escaping (including if it contains wrapped quotes).\n *\n * Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe\n * how the new value is quoted.\n */\n function set(v) {\n if (this._constructed) {\n var _unescapeValue2 = unescapeValue(v),\n deprecatedUsage = _unescapeValue2.deprecatedUsage,\n unescaped = _unescapeValue2.unescaped,\n quoteMark = _unescapeValue2.quoteMark;\n if (deprecatedUsage) {\n warnOfDeprecatedValueAssignment();\n }\n if (unescaped === this._value && quoteMark === this._quoteMark) {\n return;\n }\n this._value = unescaped;\n this._quoteMark = quoteMark;\n this._syncRawValue();\n } else {\n this._value = v;\n }\n }\n }, {\n key: \"insensitive\",\n get: function get() {\n return this._insensitive;\n }\n\n /**\n * Set the case insensitive flag.\n * If the case insensitive flag changes, the raw (escaped) value at `attr.raws.insensitiveFlag`\n * of the attribute is updated accordingly.\n *\n * @param {true | false} insensitive true if the attribute should match case-insensitively.\n */,\n set: function set(insensitive) {\n if (!insensitive) {\n this._insensitive = false;\n\n // \"i\" and \"I\" can be used in \"this.raws.insensitiveFlag\" to store the original notation.\n // When setting `attr.insensitive = false` both should be erased to ensure correct serialization.\n if (this.raws && (this.raws.insensitiveFlag === 'I' || this.raws.insensitiveFlag === 'i')) {\n this.raws.insensitiveFlag = undefined;\n }\n }\n this._insensitive = insensitive;\n }\n }, {\n key: \"attribute\",\n get: function get() {\n return this._attribute;\n },\n set: function set(name) {\n this._handleEscapes(\"attribute\", name);\n this._attribute = name;\n }\n }]);\n return Attribute;\n}(_namespace[\"default\"]);\nexports[\"default\"] = Attribute;\nAttribute.NO_QUOTE = null;\nAttribute.SINGLE_QUOTE = \"'\";\nAttribute.DOUBLE_QUOTE = '\"';\nvar CSSESC_QUOTE_OPTIONS = (_CSSESC_QUOTE_OPTIONS = {\n \"'\": {\n quotes: 'single',\n wrap: true\n },\n '\"': {\n quotes: 'double',\n wrap: true\n }\n}, _CSSESC_QUOTE_OPTIONS[null] = {\n isIdentifier: true\n}, _CSSESC_QUOTE_OPTIONS);\nfunction defaultAttrConcat(attrValue, attrSpaces) {\n return \"\" + attrSpaces.before + attrValue + attrSpaces.after;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Universal = /*#__PURE__*/function (_Namespace) {\n _inheritsLoose(Universal, _Namespace);\n function Universal(opts) {\n var _this;\n _this = _Namespace.call(this, opts) || this;\n _this.type = _types.UNIVERSAL;\n _this.value = '*';\n return _this;\n }\n return Universal;\n}(_namespace[\"default\"]);\nexports[\"default\"] = Universal;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Combinator = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Combinator, _Node);\n function Combinator(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.COMBINATOR;\n return _this;\n }\n return Combinator;\n}(_node[\"default\"]);\nexports[\"default\"] = Combinator;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _node = _interopRequireDefault(require(\"./node\"));\nvar _types = require(\"./types\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar Nesting = /*#__PURE__*/function (_Node) {\n _inheritsLoose(Nesting, _Node);\n function Nesting(opts) {\n var _this;\n _this = _Node.call(this, opts) || this;\n _this.type = _types.NESTING;\n _this.value = '&';\n return _this;\n }\n return Nesting;\n}(_node[\"default\"]);\nexports[\"default\"] = Nesting;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = sortAscending;\nfunction sortAscending(list) {\n return list.sort(function (a, b) {\n return a - b;\n });\n}\n;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.word = exports.tilde = exports.tab = exports.str = exports.space = exports.slash = exports.singleQuote = exports.semicolon = exports.plus = exports.pipe = exports.openSquare = exports.openParenthesis = exports.newline = exports.greaterThan = exports.feed = exports.equals = exports.doubleQuote = exports.dollar = exports.cr = exports.comment = exports.comma = exports.combinator = exports.colon = exports.closeSquare = exports.closeParenthesis = exports.caret = exports.bang = exports.backslash = exports.at = exports.asterisk = exports.ampersand = void 0;\nvar ampersand = 38; // `&`.charCodeAt(0);\nexports.ampersand = ampersand;\nvar asterisk = 42; // `*`.charCodeAt(0);\nexports.asterisk = asterisk;\nvar at = 64; // `@`.charCodeAt(0);\nexports.at = at;\nvar comma = 44; // `,`.charCodeAt(0);\nexports.comma = comma;\nvar colon = 58; // `:`.charCodeAt(0);\nexports.colon = colon;\nvar semicolon = 59; // `;`.charCodeAt(0);\nexports.semicolon = semicolon;\nvar openParenthesis = 40; // `(`.charCodeAt(0);\nexports.openParenthesis = openParenthesis;\nvar closeParenthesis = 41; // `)`.charCodeAt(0);\nexports.closeParenthesis = closeParenthesis;\nvar openSquare = 91; // `[`.charCodeAt(0);\nexports.openSquare = openSquare;\nvar closeSquare = 93; // `]`.charCodeAt(0);\nexports.closeSquare = closeSquare;\nvar dollar = 36; // `$`.charCodeAt(0);\nexports.dollar = dollar;\nvar tilde = 126; // `~`.charCodeAt(0);\nexports.tilde = tilde;\nvar caret = 94; // `^`.charCodeAt(0);\nexports.caret = caret;\nvar plus = 43; // `+`.charCodeAt(0);\nexports.plus = plus;\nvar equals = 61; // `=`.charCodeAt(0);\nexports.equals = equals;\nvar pipe = 124; // `|`.charCodeAt(0);\nexports.pipe = pipe;\nvar greaterThan = 62; // `>`.charCodeAt(0);\nexports.greaterThan = greaterThan;\nvar space = 32; // ` `.charCodeAt(0);\nexports.space = space;\nvar singleQuote = 39; // `'`.charCodeAt(0);\nexports.singleQuote = singleQuote;\nvar doubleQuote = 34; // `\"`.charCodeAt(0);\nexports.doubleQuote = doubleQuote;\nvar slash = 47; // `/`.charCodeAt(0);\nexports.slash = slash;\nvar bang = 33; // `!`.charCodeAt(0);\nexports.bang = bang;\nvar backslash = 92; // '\\\\'.charCodeAt(0);\nexports.backslash = backslash;\nvar cr = 13; // '\\r'.charCodeAt(0);\nexports.cr = cr;\nvar feed = 12; // '\\f'.charCodeAt(0);\nexports.feed = feed;\nvar newline = 10; // '\\n'.charCodeAt(0);\nexports.newline = newline;\nvar tab = 9; // '\\t'.charCodeAt(0);\n\n// Expose aliases primarily for readability.\nexports.tab = tab;\nvar str = singleQuote;\n\n// No good single character representation!\nexports.str = str;\nvar comment = -1;\nexports.comment = comment;\nvar word = -2;\nexports.word = word;\nvar combinator = -3;\nexports.combinator = combinator;","\"use strict\";\n\nexports.__esModule = true;\nexports.FIELDS = void 0;\nexports[\"default\"] = tokenize;\nvar t = _interopRequireWildcard(require(\"./tokenTypes\"));\nvar _unescapable, _wordDelimiters;\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar unescapable = (_unescapable = {}, _unescapable[t.tab] = true, _unescapable[t.newline] = true, _unescapable[t.cr] = true, _unescapable[t.feed] = true, _unescapable);\nvar wordDelimiters = (_wordDelimiters = {}, _wordDelimiters[t.space] = true, _wordDelimiters[t.tab] = true, _wordDelimiters[t.newline] = true, _wordDelimiters[t.cr] = true, _wordDelimiters[t.feed] = true, _wordDelimiters[t.ampersand] = true, _wordDelimiters[t.asterisk] = true, _wordDelimiters[t.bang] = true, _wordDelimiters[t.comma] = true, _wordDelimiters[t.colon] = true, _wordDelimiters[t.semicolon] = true, _wordDelimiters[t.openParenthesis] = true, _wordDelimiters[t.closeParenthesis] = true, _wordDelimiters[t.openSquare] = true, _wordDelimiters[t.closeSquare] = true, _wordDelimiters[t.singleQuote] = true, _wordDelimiters[t.doubleQuote] = true, _wordDelimiters[t.plus] = true, _wordDelimiters[t.pipe] = true, _wordDelimiters[t.tilde] = true, _wordDelimiters[t.greaterThan] = true, _wordDelimiters[t.equals] = true, _wordDelimiters[t.dollar] = true, _wordDelimiters[t.caret] = true, _wordDelimiters[t.slash] = true, _wordDelimiters);\nvar hex = {};\nvar hexChars = \"0123456789abcdefABCDEF\";\nfor (var i = 0; i < hexChars.length; i++) {\n hex[hexChars.charCodeAt(i)] = true;\n}\n\n/**\n * Returns the last index of the bar css word\n * @param {string} css The string in which the word begins\n * @param {number} start The index into the string where word's first letter occurs\n */\nfunction consumeWord(css, start) {\n var next = start;\n var code;\n do {\n code = css.charCodeAt(next);\n if (wordDelimiters[code]) {\n return next - 1;\n } else if (code === t.backslash) {\n next = consumeEscape(css, next) + 1;\n } else {\n // All other characters are part of the word\n next++;\n }\n } while (next < css.length);\n return next - 1;\n}\n\n/**\n * Returns the last index of the escape sequence\n * @param {string} css The string in which the sequence begins\n * @param {number} start The index into the string where escape character (`\\`) occurs.\n */\nfunction consumeEscape(css, start) {\n var next = start;\n var code = css.charCodeAt(next + 1);\n if (unescapable[code]) {\n // just consume the escape char\n } else if (hex[code]) {\n var hexDigits = 0;\n // consume up to 6 hex chars\n do {\n next++;\n hexDigits++;\n code = css.charCodeAt(next + 1);\n } while (hex[code] && hexDigits < 6);\n // if fewer than 6 hex chars, a trailing space ends the escape\n if (hexDigits < 6 && code === t.space) {\n next++;\n }\n } else {\n // the next char is part of the current word\n next++;\n }\n return next;\n}\nvar FIELDS = {\n TYPE: 0,\n START_LINE: 1,\n START_COL: 2,\n END_LINE: 3,\n END_COL: 4,\n START_POS: 5,\n END_POS: 6\n};\nexports.FIELDS = FIELDS;\nfunction tokenize(input) {\n var tokens = [];\n var css = input.css.valueOf();\n var _css = css,\n length = _css.length;\n var offset = -1;\n var line = 1;\n var start = 0;\n var end = 0;\n var code, content, endColumn, endLine, escaped, escapePos, last, lines, next, nextLine, nextOffset, quote, tokenType;\n function unclosed(what, fix) {\n if (input.safe) {\n // fyi: this is never set to true.\n css += fix;\n next = css.length - 1;\n } else {\n throw input.error('Unclosed ' + what, line, start - offset, start);\n }\n }\n while (start < length) {\n code = css.charCodeAt(start);\n if (code === t.newline) {\n offset = start;\n line += 1;\n }\n switch (code) {\n case t.space:\n case t.tab:\n case t.newline:\n case t.cr:\n case t.feed:\n next = start;\n do {\n next += 1;\n code = css.charCodeAt(next);\n if (code === t.newline) {\n offset = next;\n line += 1;\n }\n } while (code === t.space || code === t.newline || code === t.tab || code === t.cr || code === t.feed);\n tokenType = t.space;\n endLine = line;\n endColumn = next - offset - 1;\n end = next;\n break;\n case t.plus:\n case t.greaterThan:\n case t.tilde:\n case t.pipe:\n next = start;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === t.plus || code === t.greaterThan || code === t.tilde || code === t.pipe);\n tokenType = t.combinator;\n endLine = line;\n endColumn = start - offset;\n end = next;\n break;\n\n // Consume these characters as single tokens.\n case t.asterisk:\n case t.ampersand:\n case t.bang:\n case t.comma:\n case t.equals:\n case t.dollar:\n case t.caret:\n case t.openSquare:\n case t.closeSquare:\n case t.colon:\n case t.semicolon:\n case t.openParenthesis:\n case t.closeParenthesis:\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n case t.singleQuote:\n case t.doubleQuote:\n quote = code === t.singleQuote ? \"'\" : '\"';\n next = start;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n unclosed('quote', quote);\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === t.backslash) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n tokenType = t.str;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n break;\n default:\n if (code === t.slash && css.charCodeAt(start + 1) === t.asterisk) {\n next = css.indexOf('*/', start + 2) + 1;\n if (next === 0) {\n unclosed('comment', '*/');\n }\n content = css.slice(start, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n tokenType = t.comment;\n line = nextLine;\n endLine = nextLine;\n endColumn = next - nextOffset;\n } else if (code === t.slash) {\n next = start;\n tokenType = code;\n endLine = line;\n endColumn = start - offset;\n end = next + 1;\n } else {\n next = consumeWord(css, start);\n tokenType = t.word;\n endLine = line;\n endColumn = next - offset;\n }\n end = next + 1;\n break;\n }\n\n // Ensure that the token structure remains consistent\n tokens.push([tokenType,\n // [0] Token type\n line,\n // [1] Starting line\n start - offset,\n // [2] Starting column\n endLine,\n // [3] Ending line\n endColumn,\n // [4] Ending column\n start,\n // [5] Start position / Source index\n end // [6] End position\n ]);\n\n // Reset offset for the next token\n if (nextOffset) {\n offset = nextOffset;\n nextOffset = null;\n }\n start = end;\n }\n return tokens;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _root = _interopRequireDefault(require(\"./selectors/root\"));\nvar _selector = _interopRequireDefault(require(\"./selectors/selector\"));\nvar _className = _interopRequireDefault(require(\"./selectors/className\"));\nvar _comment = _interopRequireDefault(require(\"./selectors/comment\"));\nvar _id = _interopRequireDefault(require(\"./selectors/id\"));\nvar _tag = _interopRequireDefault(require(\"./selectors/tag\"));\nvar _string = _interopRequireDefault(require(\"./selectors/string\"));\nvar _pseudo = _interopRequireDefault(require(\"./selectors/pseudo\"));\nvar _attribute = _interopRequireWildcard(require(\"./selectors/attribute\"));\nvar _universal = _interopRequireDefault(require(\"./selectors/universal\"));\nvar _combinator = _interopRequireDefault(require(\"./selectors/combinator\"));\nvar _nesting = _interopRequireDefault(require(\"./selectors/nesting\"));\nvar _sortAscending = _interopRequireDefault(require(\"./sortAscending\"));\nvar _tokenize = _interopRequireWildcard(require(\"./tokenize\"));\nvar tokens = _interopRequireWildcard(require(\"./tokenTypes\"));\nvar types = _interopRequireWildcard(require(\"./selectors/types\"));\nvar _util = require(\"./util\");\nvar _WHITESPACE_TOKENS, _Object$assign;\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar WHITESPACE_TOKENS = (_WHITESPACE_TOKENS = {}, _WHITESPACE_TOKENS[tokens.space] = true, _WHITESPACE_TOKENS[tokens.cr] = true, _WHITESPACE_TOKENS[tokens.feed] = true, _WHITESPACE_TOKENS[tokens.newline] = true, _WHITESPACE_TOKENS[tokens.tab] = true, _WHITESPACE_TOKENS);\nvar WHITESPACE_EQUIV_TOKENS = Object.assign({}, WHITESPACE_TOKENS, (_Object$assign = {}, _Object$assign[tokens.comment] = true, _Object$assign));\nfunction tokenStart(token) {\n return {\n line: token[_tokenize.FIELDS.START_LINE],\n column: token[_tokenize.FIELDS.START_COL]\n };\n}\nfunction tokenEnd(token) {\n return {\n line: token[_tokenize.FIELDS.END_LINE],\n column: token[_tokenize.FIELDS.END_COL]\n };\n}\nfunction getSource(startLine, startColumn, endLine, endColumn) {\n return {\n start: {\n line: startLine,\n column: startColumn\n },\n end: {\n line: endLine,\n column: endColumn\n }\n };\n}\nfunction getTokenSource(token) {\n return getSource(token[_tokenize.FIELDS.START_LINE], token[_tokenize.FIELDS.START_COL], token[_tokenize.FIELDS.END_LINE], token[_tokenize.FIELDS.END_COL]);\n}\nfunction getTokenSourceSpan(startToken, endToken) {\n if (!startToken) {\n return undefined;\n }\n return getSource(startToken[_tokenize.FIELDS.START_LINE], startToken[_tokenize.FIELDS.START_COL], endToken[_tokenize.FIELDS.END_LINE], endToken[_tokenize.FIELDS.END_COL]);\n}\nfunction unescapeProp(node, prop) {\n var value = node[prop];\n if (typeof value !== \"string\") {\n return;\n }\n if (value.indexOf(\"\\\\\") !== -1) {\n (0, _util.ensureObject)(node, 'raws');\n node[prop] = (0, _util.unesc)(value);\n if (node.raws[prop] === undefined) {\n node.raws[prop] = value;\n }\n }\n return node;\n}\nfunction indexesOf(array, item) {\n var i = -1;\n var indexes = [];\n while ((i = array.indexOf(item, i + 1)) !== -1) {\n indexes.push(i);\n }\n return indexes;\n}\nfunction uniqs() {\n var list = Array.prototype.concat.apply([], arguments);\n return list.filter(function (item, i) {\n return i === list.indexOf(item);\n });\n}\nvar Parser = /*#__PURE__*/function () {\n function Parser(rule, options) {\n if (options === void 0) {\n options = {};\n }\n this.rule = rule;\n this.options = Object.assign({\n lossy: false,\n safe: false\n }, options);\n this.position = 0;\n this.css = typeof this.rule === 'string' ? this.rule : this.rule.selector;\n this.tokens = (0, _tokenize[\"default\"])({\n css: this.css,\n error: this._errorGenerator(),\n safe: this.options.safe\n });\n var rootSource = getTokenSourceSpan(this.tokens[0], this.tokens[this.tokens.length - 1]);\n this.root = new _root[\"default\"]({\n source: rootSource\n });\n this.root.errorGenerator = this._errorGenerator();\n var selector = new _selector[\"default\"]({\n source: {\n start: {\n line: 1,\n column: 1\n }\n },\n sourceIndex: 0\n });\n this.root.append(selector);\n this.current = selector;\n this.loop();\n }\n var _proto = Parser.prototype;\n _proto._errorGenerator = function _errorGenerator() {\n var _this = this;\n return function (message, errorOptions) {\n if (typeof _this.rule === 'string') {\n return new Error(message);\n }\n return _this.rule.error(message, errorOptions);\n };\n };\n _proto.attribute = function attribute() {\n var attr = [];\n var startingToken = this.currToken;\n this.position++;\n while (this.position < this.tokens.length && this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n attr.push(this.currToken);\n this.position++;\n }\n if (this.currToken[_tokenize.FIELDS.TYPE] !== tokens.closeSquare) {\n return this.expected('closing square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n var len = attr.length;\n var node = {\n source: getSource(startingToken[1], startingToken[2], this.currToken[3], this.currToken[4]),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\n };\n if (len === 1 && !~[tokens.word].indexOf(attr[0][_tokenize.FIELDS.TYPE])) {\n return this.expected('attribute', attr[0][_tokenize.FIELDS.START_POS]);\n }\n var pos = 0;\n var spaceBefore = '';\n var commentBefore = '';\n var lastAdded = null;\n var spaceAfterMeaningfulToken = false;\n while (pos < len) {\n var token = attr[pos];\n var content = this.content(token);\n var next = attr[pos + 1];\n switch (token[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n // if (\n // len === 1 ||\n // pos === 0 && this.content(next) === '|'\n // ) {\n // return this.expected('attribute', token[TOKEN.START_POS], content);\n // }\n spaceAfterMeaningfulToken = true;\n if (this.options.lossy) {\n break;\n }\n if (lastAdded) {\n (0, _util.ensureObject)(node, 'spaces', lastAdded);\n var prevContent = node.spaces[lastAdded].after || '';\n node.spaces[lastAdded].after = prevContent + content;\n var existingComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || null;\n if (existingComment) {\n node.raws.spaces[lastAdded].after = existingComment + content;\n }\n } else {\n spaceBefore = spaceBefore + content;\n commentBefore = commentBefore + content;\n }\n break;\n case tokens.asterisk:\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n } else if ((!node.namespace || lastAdded === \"namespace\" && !spaceAfterMeaningfulToken) && next) {\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'attribute');\n node.spaces.attribute.before = spaceBefore;\n spaceBefore = '';\n }\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = spaceBefore;\n commentBefore = '';\n }\n node.namespace = (node.namespace || \"\") + content;\n var rawValue = (0, _util.getProp)(node, 'raws', 'namespace') || null;\n if (rawValue) {\n node.raws.namespace += content;\n }\n lastAdded = 'namespace';\n }\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.dollar:\n if (lastAdded === \"value\") {\n var oldRawValue = (0, _util.getProp)(node, 'raws', 'value');\n node.value += \"$\";\n if (oldRawValue) {\n node.raws.value = oldRawValue + \"$\";\n }\n break;\n }\n // Falls through\n case tokens.caret:\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.combinator:\n if (content === '~' && next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n }\n if (content !== '|') {\n spaceAfterMeaningfulToken = false;\n break;\n }\n if (next[_tokenize.FIELDS.TYPE] === tokens.equals) {\n node.operator = content;\n lastAdded = 'operator';\n } else if (!node.namespace && !node.attribute) {\n node.namespace = true;\n }\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.word:\n if (next && this.content(next) === '|' && attr[pos + 2] && attr[pos + 2][_tokenize.FIELDS.TYPE] !== tokens.equals &&\n // this look-ahead probably fails with comment nodes involved.\n !node.operator && !node.namespace) {\n node.namespace = content;\n lastAdded = 'namespace';\n } else if (!node.attribute || lastAdded === \"attribute\" && !spaceAfterMeaningfulToken) {\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'attribute');\n node.spaces.attribute.before = spaceBefore;\n spaceBefore = '';\n }\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'attribute');\n node.raws.spaces.attribute.before = commentBefore;\n commentBefore = '';\n }\n node.attribute = (node.attribute || \"\") + content;\n var _rawValue = (0, _util.getProp)(node, 'raws', 'attribute') || null;\n if (_rawValue) {\n node.raws.attribute += content;\n }\n lastAdded = 'attribute';\n } else if (!node.value && node.value !== \"\" || lastAdded === \"value\" && !(spaceAfterMeaningfulToken || node.quoteMark)) {\n var _unescaped = (0, _util.unesc)(content);\n var _oldRawValue = (0, _util.getProp)(node, 'raws', 'value') || '';\n var oldValue = node.value || '';\n node.value = oldValue + _unescaped;\n node.quoteMark = null;\n if (_unescaped !== content || _oldRawValue) {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.value = (_oldRawValue || oldValue) + content;\n }\n lastAdded = 'value';\n } else {\n var insensitive = content === 'i' || content === \"I\";\n if ((node.value || node.value === '') && (node.quoteMark || spaceAfterMeaningfulToken)) {\n node.insensitive = insensitive;\n if (!insensitive || content === \"I\") {\n (0, _util.ensureObject)(node, 'raws');\n node.raws.insensitiveFlag = content;\n }\n lastAdded = 'insensitive';\n if (spaceBefore) {\n (0, _util.ensureObject)(node, 'spaces', 'insensitive');\n node.spaces.insensitive.before = spaceBefore;\n spaceBefore = '';\n }\n if (commentBefore) {\n (0, _util.ensureObject)(node, 'raws', 'spaces', 'insensitive');\n node.raws.spaces.insensitive.before = commentBefore;\n commentBefore = '';\n }\n } else if (node.value || node.value === '') {\n lastAdded = 'value';\n node.value += content;\n if (node.raws.value) {\n node.raws.value += content;\n }\n }\n }\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.str:\n if (!node.attribute || !node.operator) {\n return this.error(\"Expected an attribute followed by an operator preceding the string.\", {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n var _unescapeValue = (0, _attribute.unescapeValue)(content),\n unescaped = _unescapeValue.unescaped,\n quoteMark = _unescapeValue.quoteMark;\n node.value = unescaped;\n node.quoteMark = quoteMark;\n lastAdded = 'value';\n (0, _util.ensureObject)(node, 'raws');\n node.raws.value = content;\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.equals:\n if (!node.attribute) {\n return this.expected('attribute', token[_tokenize.FIELDS.START_POS], content);\n }\n if (node.value) {\n return this.error('Unexpected \"=\" found; an operator was already defined.', {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n node.operator = node.operator ? node.operator + content : content;\n lastAdded = 'operator';\n spaceAfterMeaningfulToken = false;\n break;\n case tokens.comment:\n if (lastAdded) {\n if (spaceAfterMeaningfulToken || next && next[_tokenize.FIELDS.TYPE] === tokens.space || lastAdded === 'insensitive') {\n var lastComment = (0, _util.getProp)(node, 'spaces', lastAdded, 'after') || '';\n var rawLastComment = (0, _util.getProp)(node, 'raws', 'spaces', lastAdded, 'after') || lastComment;\n (0, _util.ensureObject)(node, 'raws', 'spaces', lastAdded);\n node.raws.spaces[lastAdded].after = rawLastComment + content;\n } else {\n var lastValue = node[lastAdded] || '';\n var rawLastValue = (0, _util.getProp)(node, 'raws', lastAdded) || lastValue;\n (0, _util.ensureObject)(node, 'raws');\n node.raws[lastAdded] = rawLastValue + content;\n }\n } else {\n commentBefore = commentBefore + content;\n }\n break;\n default:\n return this.error(\"Unexpected \\\"\" + content + \"\\\" found.\", {\n index: token[_tokenize.FIELDS.START_POS]\n });\n }\n pos++;\n }\n unescapeProp(node, \"attribute\");\n unescapeProp(node, \"namespace\");\n this.newNode(new _attribute[\"default\"](node));\n this.position++;\n }\n\n /**\n * return a node containing meaningless garbage up to (but not including) the specified token position.\n * if the token position is negative, all remaining tokens are consumed.\n *\n * This returns an array containing a single string node if all whitespace,\n * otherwise an array of comment nodes with space before and after.\n *\n * These tokens are not added to the current selector, the caller can add them or use them to amend\n * a previous node's space metadata.\n *\n * In lossy mode, this returns only comments.\n */;\n _proto.parseWhitespaceEquivalentTokens = function parseWhitespaceEquivalentTokens(stopPosition) {\n if (stopPosition < 0) {\n stopPosition = this.tokens.length;\n }\n var startPosition = this.position;\n var nodes = [];\n var space = \"\";\n var lastComment = undefined;\n do {\n if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) {\n if (!this.options.lossy) {\n space += this.content();\n }\n } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.comment) {\n var spaces = {};\n if (space) {\n spaces.before = space;\n space = \"\";\n }\n lastComment = new _comment[\"default\"]({\n value: this.content(),\n source: getTokenSource(this.currToken),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS],\n spaces: spaces\n });\n nodes.push(lastComment);\n }\n } while (++this.position < stopPosition);\n if (space) {\n if (lastComment) {\n lastComment.spaces.after = space;\n } else if (!this.options.lossy) {\n var firstToken = this.tokens[startPosition];\n var lastToken = this.tokens[this.position - 1];\n nodes.push(new _string[\"default\"]({\n value: '',\n source: getSource(firstToken[_tokenize.FIELDS.START_LINE], firstToken[_tokenize.FIELDS.START_COL], lastToken[_tokenize.FIELDS.END_LINE], lastToken[_tokenize.FIELDS.END_COL]),\n sourceIndex: firstToken[_tokenize.FIELDS.START_POS],\n spaces: {\n before: space,\n after: ''\n }\n }));\n }\n }\n return nodes;\n }\n\n /**\n *\n * @param {*} nodes\n */;\n _proto.convertWhitespaceNodesToSpace = function convertWhitespaceNodesToSpace(nodes, requiredSpace) {\n var _this2 = this;\n if (requiredSpace === void 0) {\n requiredSpace = false;\n }\n var space = \"\";\n var rawSpace = \"\";\n nodes.forEach(function (n) {\n var spaceBefore = _this2.lossySpace(n.spaces.before, requiredSpace);\n var rawSpaceBefore = _this2.lossySpace(n.rawSpaceBefore, requiredSpace);\n space += spaceBefore + _this2.lossySpace(n.spaces.after, requiredSpace && spaceBefore.length === 0);\n rawSpace += spaceBefore + n.value + _this2.lossySpace(n.rawSpaceAfter, requiredSpace && rawSpaceBefore.length === 0);\n });\n if (rawSpace === space) {\n rawSpace = undefined;\n }\n var result = {\n space: space,\n rawSpace: rawSpace\n };\n return result;\n };\n _proto.isNamedCombinator = function isNamedCombinator(position) {\n if (position === void 0) {\n position = this.position;\n }\n return this.tokens[position + 0] && this.tokens[position + 0][_tokenize.FIELDS.TYPE] === tokens.slash && this.tokens[position + 1] && this.tokens[position + 1][_tokenize.FIELDS.TYPE] === tokens.word && this.tokens[position + 2] && this.tokens[position + 2][_tokenize.FIELDS.TYPE] === tokens.slash;\n };\n _proto.namedCombinator = function namedCombinator() {\n if (this.isNamedCombinator()) {\n var nameRaw = this.content(this.tokens[this.position + 1]);\n var name = (0, _util.unesc)(nameRaw).toLowerCase();\n var raws = {};\n if (name !== nameRaw) {\n raws.value = \"/\" + nameRaw + \"/\";\n }\n var node = new _combinator[\"default\"]({\n value: \"/\" + name + \"/\",\n source: getSource(this.currToken[_tokenize.FIELDS.START_LINE], this.currToken[_tokenize.FIELDS.START_COL], this.tokens[this.position + 2][_tokenize.FIELDS.END_LINE], this.tokens[this.position + 2][_tokenize.FIELDS.END_COL]),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS],\n raws: raws\n });\n this.position = this.position + 3;\n return node;\n } else {\n this.unexpected();\n }\n };\n _proto.combinator = function combinator() {\n var _this3 = this;\n if (this.content() === '|') {\n return this.namespace();\n }\n // We need to decide between a space that's a descendant combinator and meaningless whitespace at the end of a selector.\n var nextSigTokenPos = this.locateNextMeaningfulToken(this.position);\n if (nextSigTokenPos < 0 || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.comma || this.tokens[nextSigTokenPos][_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n var nodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n if (nodes.length > 0) {\n var last = this.current.last;\n if (last) {\n var _this$convertWhitespa = this.convertWhitespaceNodesToSpace(nodes),\n space = _this$convertWhitespa.space,\n rawSpace = _this$convertWhitespa.rawSpace;\n if (rawSpace !== undefined) {\n last.rawSpaceAfter += rawSpace;\n }\n last.spaces.after += space;\n } else {\n nodes.forEach(function (n) {\n return _this3.newNode(n);\n });\n }\n }\n return;\n }\n var firstToken = this.currToken;\n var spaceOrDescendantSelectorNodes = undefined;\n if (nextSigTokenPos > this.position) {\n spaceOrDescendantSelectorNodes = this.parseWhitespaceEquivalentTokens(nextSigTokenPos);\n }\n var node;\n if (this.isNamedCombinator()) {\n node = this.namedCombinator();\n } else if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.combinator) {\n node = new _combinator[\"default\"]({\n value: this.content(),\n source: getTokenSource(this.currToken),\n sourceIndex: this.currToken[_tokenize.FIELDS.START_POS]\n });\n this.position++;\n } else if (WHITESPACE_TOKENS[this.currToken[_tokenize.FIELDS.TYPE]]) {\n // pass\n } else if (!spaceOrDescendantSelectorNodes) {\n this.unexpected();\n }\n if (node) {\n if (spaceOrDescendantSelectorNodes) {\n var _this$convertWhitespa2 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes),\n _space = _this$convertWhitespa2.space,\n _rawSpace = _this$convertWhitespa2.rawSpace;\n node.spaces.before = _space;\n node.rawSpaceBefore = _rawSpace;\n }\n } else {\n // descendant combinator\n var _this$convertWhitespa3 = this.convertWhitespaceNodesToSpace(spaceOrDescendantSelectorNodes, true),\n _space2 = _this$convertWhitespa3.space,\n _rawSpace2 = _this$convertWhitespa3.rawSpace;\n if (!_rawSpace2) {\n _rawSpace2 = _space2;\n }\n var spaces = {};\n var raws = {\n spaces: {}\n };\n if (_space2.endsWith(' ') && _rawSpace2.endsWith(' ')) {\n spaces.before = _space2.slice(0, _space2.length - 1);\n raws.spaces.before = _rawSpace2.slice(0, _rawSpace2.length - 1);\n } else if (_space2[0] === ' ' && _rawSpace2[0] === ' ') {\n spaces.after = _space2.slice(1);\n raws.spaces.after = _rawSpace2.slice(1);\n } else {\n raws.value = _rawSpace2;\n }\n node = new _combinator[\"default\"]({\n value: ' ',\n source: getTokenSourceSpan(firstToken, this.tokens[this.position - 1]),\n sourceIndex: firstToken[_tokenize.FIELDS.START_POS],\n spaces: spaces,\n raws: raws\n });\n }\n if (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.space) {\n node.spaces.after = this.optionalSpace(this.content());\n this.position++;\n }\n return this.newNode(node);\n };\n _proto.comma = function comma() {\n if (this.position === this.tokens.length - 1) {\n this.root.trailingComma = true;\n this.position++;\n return;\n }\n this.current._inferEndPosition();\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position + 1])\n },\n sourceIndex: this.tokens[this.position + 1][_tokenize.FIELDS.START_POS]\n });\n this.current.parent.append(selector);\n this.current = selector;\n this.position++;\n };\n _proto.comment = function comment() {\n var current = this.currToken;\n this.newNode(new _comment[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n _proto.error = function error(message, opts) {\n throw this.root.error(message, opts);\n };\n _proto.missingBackslash = function missingBackslash() {\n return this.error('Expected a backslash preceding the semicolon.', {\n index: this.currToken[_tokenize.FIELDS.START_POS]\n });\n };\n _proto.missingParenthesis = function missingParenthesis() {\n return this.expected('opening parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n };\n _proto.missingSquareBracket = function missingSquareBracket() {\n return this.expected('opening square bracket', this.currToken[_tokenize.FIELDS.START_POS]);\n };\n _proto.unexpected = function unexpected() {\n return this.error(\"Unexpected '\" + this.content() + \"'. Escaping special characters with \\\\ may help.\", this.currToken[_tokenize.FIELDS.START_POS]);\n };\n _proto.unexpectedPipe = function unexpectedPipe() {\n return this.error(\"Unexpected '|'.\", this.currToken[_tokenize.FIELDS.START_POS]);\n };\n _proto.namespace = function namespace() {\n var before = this.prevToken && this.content(this.prevToken) || true;\n if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.word) {\n this.position++;\n return this.word(before);\n } else if (this.nextToken[_tokenize.FIELDS.TYPE] === tokens.asterisk) {\n this.position++;\n return this.universal(before);\n }\n this.unexpectedPipe();\n };\n _proto.nesting = function nesting() {\n if (this.nextToken) {\n var nextContent = this.content(this.nextToken);\n if (nextContent === \"|\") {\n this.position++;\n return;\n }\n }\n var current = this.currToken;\n this.newNode(new _nesting[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n _proto.parentheses = function parentheses() {\n var last = this.current.last;\n var unbalanced = 1;\n this.position++;\n if (last && last.type === types.PSEUDO) {\n var selector = new _selector[\"default\"]({\n source: {\n start: tokenStart(this.tokens[this.position])\n },\n sourceIndex: this.tokens[this.position][_tokenize.FIELDS.START_POS]\n });\n var cache = this.current;\n last.append(selector);\n this.current = selector;\n while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\n }\n if (unbalanced) {\n this.parse();\n } else {\n this.current.source.end = tokenEnd(this.currToken);\n this.current.parent.source.end = tokenEnd(this.currToken);\n this.position++;\n }\n }\n this.current = cache;\n } else {\n // I think this case should be an error. It's used to implement a basic parse of media queries\n // but I don't think it's a good idea.\n var parenStart = this.currToken;\n var parenValue = \"(\";\n var parenEnd;\n while (this.position < this.tokens.length && unbalanced) {\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n unbalanced++;\n }\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n unbalanced--;\n }\n parenEnd = this.currToken;\n parenValue += this.parseParenthesisToken(this.currToken);\n this.position++;\n }\n if (last) {\n last.appendToPropertyAndEscape(\"value\", parenValue, parenValue);\n } else {\n this.newNode(new _string[\"default\"]({\n value: parenValue,\n source: getSource(parenStart[_tokenize.FIELDS.START_LINE], parenStart[_tokenize.FIELDS.START_COL], parenEnd[_tokenize.FIELDS.END_LINE], parenEnd[_tokenize.FIELDS.END_COL]),\n sourceIndex: parenStart[_tokenize.FIELDS.START_POS]\n }));\n }\n }\n if (unbalanced) {\n return this.expected('closing parenthesis', this.currToken[_tokenize.FIELDS.START_POS]);\n }\n };\n _proto.pseudo = function pseudo() {\n var _this4 = this;\n var pseudoStr = '';\n var startingToken = this.currToken;\n while (this.currToken && this.currToken[_tokenize.FIELDS.TYPE] === tokens.colon) {\n pseudoStr += this.content();\n this.position++;\n }\n if (!this.currToken) {\n return this.expected(['pseudo-class', 'pseudo-element'], this.position - 1);\n }\n if (this.currToken[_tokenize.FIELDS.TYPE] === tokens.word) {\n this.splitWord(false, function (first, length) {\n pseudoStr += first;\n _this4.newNode(new _pseudo[\"default\"]({\n value: pseudoStr,\n source: getTokenSourceSpan(startingToken, _this4.currToken),\n sourceIndex: startingToken[_tokenize.FIELDS.START_POS]\n }));\n if (length > 1 && _this4.nextToken && _this4.nextToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis) {\n _this4.error('Misplaced parenthesis.', {\n index: _this4.nextToken[_tokenize.FIELDS.START_POS]\n });\n }\n });\n } else {\n return this.expected(['pseudo-class', 'pseudo-element'], this.currToken[_tokenize.FIELDS.START_POS]);\n }\n };\n _proto.space = function space() {\n var content = this.content();\n // Handle space before and after the selector\n if (this.position === 0 || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.prevToken[_tokenize.FIELDS.TYPE] === tokens.openParenthesis || this.current.nodes.every(function (node) {\n return node.type === 'comment';\n })) {\n this.spaces = this.optionalSpace(content);\n this.position++;\n } else if (this.position === this.tokens.length - 1 || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.comma || this.nextToken[_tokenize.FIELDS.TYPE] === tokens.closeParenthesis) {\n this.current.last.spaces.after = this.optionalSpace(content);\n this.position++;\n } else {\n this.combinator();\n }\n };\n _proto.string = function string() {\n var current = this.currToken;\n this.newNode(new _string[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }));\n this.position++;\n };\n _proto.universal = function universal(namespace) {\n var nextToken = this.nextToken;\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\n }\n var current = this.currToken;\n this.newNode(new _universal[\"default\"]({\n value: this.content(),\n source: getTokenSource(current),\n sourceIndex: current[_tokenize.FIELDS.START_POS]\n }), namespace);\n this.position++;\n };\n _proto.splitWord = function splitWord(namespace, firstCallback) {\n var _this5 = this;\n var nextToken = this.nextToken;\n var word = this.content();\n while (nextToken && ~[tokens.dollar, tokens.caret, tokens.equals, tokens.word].indexOf(nextToken[_tokenize.FIELDS.TYPE])) {\n this.position++;\n var current = this.content();\n word += current;\n if (current.lastIndexOf('\\\\') === current.length - 1) {\n var next = this.nextToken;\n if (next && next[_tokenize.FIELDS.TYPE] === tokens.space) {\n word += this.requiredSpace(this.content(next));\n this.position++;\n }\n }\n nextToken = this.nextToken;\n }\n var hasClass = indexesOf(word, '.').filter(function (i) {\n // Allow escaped dot within class name\n var escapedDot = word[i - 1] === '\\\\';\n // Allow decimal numbers percent in @keyframes\n var isKeyframesPercent = /^\\d+\\.\\d+%$/.test(word);\n return !escapedDot && !isKeyframesPercent;\n });\n var hasId = indexesOf(word, '#').filter(function (i) {\n return word[i - 1] !== '\\\\';\n });\n // Eliminate Sass interpolations from the list of id indexes\n var interpolations = indexesOf(word, '#{');\n if (interpolations.length) {\n hasId = hasId.filter(function (hashIndex) {\n return !~interpolations.indexOf(hashIndex);\n });\n }\n var indices = (0, _sortAscending[\"default\"])(uniqs([0].concat(hasClass, hasId)));\n indices.forEach(function (ind, i) {\n var index = indices[i + 1] || word.length;\n var value = word.slice(ind, index);\n if (i === 0 && firstCallback) {\n return firstCallback.call(_this5, value, indices.length);\n }\n var node;\n var current = _this5.currToken;\n var sourceIndex = current[_tokenize.FIELDS.START_POS] + indices[i];\n var source = getSource(current[1], current[2] + ind, current[3], current[2] + (index - 1));\n if (~hasClass.indexOf(ind)) {\n var classNameOpts = {\n value: value.slice(1),\n source: source,\n sourceIndex: sourceIndex\n };\n node = new _className[\"default\"](unescapeProp(classNameOpts, \"value\"));\n } else if (~hasId.indexOf(ind)) {\n var idOpts = {\n value: value.slice(1),\n source: source,\n sourceIndex: sourceIndex\n };\n node = new _id[\"default\"](unescapeProp(idOpts, \"value\"));\n } else {\n var tagOpts = {\n value: value,\n source: source,\n sourceIndex: sourceIndex\n };\n unescapeProp(tagOpts, \"value\");\n node = new _tag[\"default\"](tagOpts);\n }\n _this5.newNode(node, namespace);\n // Ensure that the namespace is used only once\n namespace = null;\n });\n this.position++;\n };\n _proto.word = function word(namespace) {\n var nextToken = this.nextToken;\n if (nextToken && this.content(nextToken) === '|') {\n this.position++;\n return this.namespace();\n }\n return this.splitWord(namespace);\n };\n _proto.loop = function loop() {\n while (this.position < this.tokens.length) {\n this.parse(true);\n }\n this.current._inferEndPosition();\n return this.root;\n };\n _proto.parse = function parse(throwOnParenthesis) {\n switch (this.currToken[_tokenize.FIELDS.TYPE]) {\n case tokens.space:\n this.space();\n break;\n case tokens.comment:\n this.comment();\n break;\n case tokens.openParenthesis:\n this.parentheses();\n break;\n case tokens.closeParenthesis:\n if (throwOnParenthesis) {\n this.missingParenthesis();\n }\n break;\n case tokens.openSquare:\n this.attribute();\n break;\n case tokens.dollar:\n case tokens.caret:\n case tokens.equals:\n case tokens.word:\n this.word();\n break;\n case tokens.colon:\n this.pseudo();\n break;\n case tokens.comma:\n this.comma();\n break;\n case tokens.asterisk:\n this.universal();\n break;\n case tokens.ampersand:\n this.nesting();\n break;\n case tokens.slash:\n case tokens.combinator:\n this.combinator();\n break;\n case tokens.str:\n this.string();\n break;\n // These cases throw; no break needed.\n case tokens.closeSquare:\n this.missingSquareBracket();\n case tokens.semicolon:\n this.missingBackslash();\n default:\n this.unexpected();\n }\n }\n\n /**\n * Helpers\n */;\n _proto.expected = function expected(description, index, found) {\n if (Array.isArray(description)) {\n var last = description.pop();\n description = description.join(', ') + \" or \" + last;\n }\n var an = /^[aeiou]/.test(description[0]) ? 'an' : 'a';\n if (!found) {\n return this.error(\"Expected \" + an + \" \" + description + \".\", {\n index: index\n });\n }\n return this.error(\"Expected \" + an + \" \" + description + \", found \\\"\" + found + \"\\\" instead.\", {\n index: index\n });\n };\n _proto.requiredSpace = function requiredSpace(space) {\n return this.options.lossy ? ' ' : space;\n };\n _proto.optionalSpace = function optionalSpace(space) {\n return this.options.lossy ? '' : space;\n };\n _proto.lossySpace = function lossySpace(space, required) {\n if (this.options.lossy) {\n return required ? ' ' : '';\n } else {\n return space;\n }\n };\n _proto.parseParenthesisToken = function parseParenthesisToken(token) {\n var content = this.content(token);\n if (token[_tokenize.FIELDS.TYPE] === tokens.space) {\n return this.requiredSpace(content);\n } else {\n return content;\n }\n };\n _proto.newNode = function newNode(node, namespace) {\n if (namespace) {\n if (/^ +$/.test(namespace)) {\n if (!this.options.lossy) {\n this.spaces = (this.spaces || '') + namespace;\n }\n namespace = true;\n }\n node.namespace = namespace;\n unescapeProp(node, \"namespace\");\n }\n if (this.spaces) {\n node.spaces.before = this.spaces;\n this.spaces = '';\n }\n return this.current.append(node);\n };\n _proto.content = function content(token) {\n if (token === void 0) {\n token = this.currToken;\n }\n return this.css.slice(token[_tokenize.FIELDS.START_POS], token[_tokenize.FIELDS.END_POS]);\n };\n /**\n * returns the index of the next non-whitespace, non-comment token.\n * returns -1 if no meaningful token is found.\n */\n _proto.locateNextMeaningfulToken = function locateNextMeaningfulToken(startPosition) {\n if (startPosition === void 0) {\n startPosition = this.position + 1;\n }\n var searchPosition = startPosition;\n while (searchPosition < this.tokens.length) {\n if (WHITESPACE_EQUIV_TOKENS[this.tokens[searchPosition][_tokenize.FIELDS.TYPE]]) {\n searchPosition++;\n continue;\n } else {\n return searchPosition;\n }\n }\n return -1;\n };\n _createClass(Parser, [{\n key: \"currToken\",\n get: function get() {\n return this.tokens[this.position];\n }\n }, {\n key: \"nextToken\",\n get: function get() {\n return this.tokens[this.position + 1];\n }\n }, {\n key: \"prevToken\",\n get: function get() {\n return this.tokens[this.position - 1];\n }\n }]);\n return Parser;\n}();\nexports[\"default\"] = Parser;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _parser = _interopRequireDefault(require(\"./parser\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar Processor = /*#__PURE__*/function () {\n function Processor(func, options) {\n this.func = func || function noop() {};\n this.funcRes = null;\n this.options = options;\n }\n var _proto = Processor.prototype;\n _proto._shouldUpdateSelector = function _shouldUpdateSelector(rule, options) {\n if (options === void 0) {\n options = {};\n }\n var merged = Object.assign({}, this.options, options);\n if (merged.updateSelector === false) {\n return false;\n } else {\n return typeof rule !== \"string\";\n }\n };\n _proto._isLossy = function _isLossy(options) {\n if (options === void 0) {\n options = {};\n }\n var merged = Object.assign({}, this.options, options);\n if (merged.lossless === false) {\n return true;\n } else {\n return false;\n }\n };\n _proto._root = function _root(rule, options) {\n if (options === void 0) {\n options = {};\n }\n var parser = new _parser[\"default\"](rule, this._parseOptions(options));\n return parser.root;\n };\n _proto._parseOptions = function _parseOptions(options) {\n return {\n lossy: this._isLossy(options)\n };\n };\n _proto._run = function _run(rule, options) {\n var _this = this;\n if (options === void 0) {\n options = {};\n }\n return new Promise(function (resolve, reject) {\n try {\n var root = _this._root(rule, options);\n Promise.resolve(_this.func(root)).then(function (transform) {\n var string = undefined;\n if (_this._shouldUpdateSelector(rule, options)) {\n string = root.toString();\n rule.selector = string;\n }\n return {\n transform: transform,\n root: root,\n string: string\n };\n }).then(resolve, reject);\n } catch (e) {\n reject(e);\n return;\n }\n });\n };\n _proto._runSync = function _runSync(rule, options) {\n if (options === void 0) {\n options = {};\n }\n var root = this._root(rule, options);\n var transform = this.func(root);\n if (transform && typeof transform.then === \"function\") {\n throw new Error(\"Selector processor returned a promise to a synchronous call.\");\n }\n var string = undefined;\n if (options.updateSelector && typeof rule !== \"string\") {\n string = root.toString();\n rule.selector = string;\n }\n return {\n transform: transform,\n root: root,\n string: string\n };\n }\n\n /**\n * Process rule into a selector AST.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {Promise<parser.Root>} The AST of the selector after processing it.\n */;\n _proto.ast = function ast(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.root;\n });\n }\n\n /**\n * Process rule into a selector AST synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {parser.Root} The AST of the selector after processing it.\n */;\n _proto.astSync = function astSync(rule, options) {\n return this._runSync(rule, options).root;\n }\n\n /**\n * Process a selector into a transformed value asynchronously\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {Promise<any>} The value returned by the processor.\n */;\n _proto.transform = function transform(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.transform;\n });\n }\n\n /**\n * Process a selector into a transformed value synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {any} The value returned by the processor.\n */;\n _proto.transformSync = function transformSync(rule, options) {\n return this._runSync(rule, options).transform;\n }\n\n /**\n * Process a selector into a new selector string asynchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {string} the selector after processing.\n */;\n _proto.process = function process(rule, options) {\n return this._run(rule, options).then(function (result) {\n return result.string || result.root.toString();\n });\n }\n\n /**\n * Process a selector into a new selector string synchronously.\n *\n * @param rule {postcss.Rule | string} The css selector to be processed\n * @param options The options for processing\n * @returns {string} the selector after processing.\n */;\n _proto.processSync = function processSync(rule, options) {\n var result = this._runSync(rule, options);\n return result.string || result.root.toString();\n };\n return Processor;\n}();\nexports[\"default\"] = Processor;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.universal = exports.tag = exports.string = exports.selector = exports.root = exports.pseudo = exports.nesting = exports.id = exports.comment = exports.combinator = exports.className = exports.attribute = void 0;\nvar _attribute = _interopRequireDefault(require(\"./attribute\"));\nvar _className = _interopRequireDefault(require(\"./className\"));\nvar _combinator = _interopRequireDefault(require(\"./combinator\"));\nvar _comment = _interopRequireDefault(require(\"./comment\"));\nvar _id = _interopRequireDefault(require(\"./id\"));\nvar _nesting = _interopRequireDefault(require(\"./nesting\"));\nvar _pseudo = _interopRequireDefault(require(\"./pseudo\"));\nvar _root = _interopRequireDefault(require(\"./root\"));\nvar _selector = _interopRequireDefault(require(\"./selector\"));\nvar _string = _interopRequireDefault(require(\"./string\"));\nvar _tag = _interopRequireDefault(require(\"./tag\"));\nvar _universal = _interopRequireDefault(require(\"./universal\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar attribute = function attribute(opts) {\n return new _attribute[\"default\"](opts);\n};\nexports.attribute = attribute;\nvar className = function className(opts) {\n return new _className[\"default\"](opts);\n};\nexports.className = className;\nvar combinator = function combinator(opts) {\n return new _combinator[\"default\"](opts);\n};\nexports.combinator = combinator;\nvar comment = function comment(opts) {\n return new _comment[\"default\"](opts);\n};\nexports.comment = comment;\nvar id = function id(opts) {\n return new _id[\"default\"](opts);\n};\nexports.id = id;\nvar nesting = function nesting(opts) {\n return new _nesting[\"default\"](opts);\n};\nexports.nesting = nesting;\nvar pseudo = function pseudo(opts) {\n return new _pseudo[\"default\"](opts);\n};\nexports.pseudo = pseudo;\nvar root = function root(opts) {\n return new _root[\"default\"](opts);\n};\nexports.root = root;\nvar selector = function selector(opts) {\n return new _selector[\"default\"](opts);\n};\nexports.selector = selector;\nvar string = function string(opts) {\n return new _string[\"default\"](opts);\n};\nexports.string = string;\nvar tag = function tag(opts) {\n return new _tag[\"default\"](opts);\n};\nexports.tag = tag;\nvar universal = function universal(opts) {\n return new _universal[\"default\"](opts);\n};\nexports.universal = universal;","\"use strict\";\n\nexports.__esModule = true;\nexports.isComment = exports.isCombinator = exports.isClassName = exports.isAttribute = void 0;\nexports.isContainer = isContainer;\nexports.isIdentifier = void 0;\nexports.isNamespace = isNamespace;\nexports.isNesting = void 0;\nexports.isNode = isNode;\nexports.isPseudo = void 0;\nexports.isPseudoClass = isPseudoClass;\nexports.isPseudoElement = isPseudoElement;\nexports.isUniversal = exports.isTag = exports.isString = exports.isSelector = exports.isRoot = void 0;\nvar _types = require(\"./types\");\nvar _IS_TYPE;\nvar IS_TYPE = (_IS_TYPE = {}, _IS_TYPE[_types.ATTRIBUTE] = true, _IS_TYPE[_types.CLASS] = true, _IS_TYPE[_types.COMBINATOR] = true, _IS_TYPE[_types.COMMENT] = true, _IS_TYPE[_types.ID] = true, _IS_TYPE[_types.NESTING] = true, _IS_TYPE[_types.PSEUDO] = true, _IS_TYPE[_types.ROOT] = true, _IS_TYPE[_types.SELECTOR] = true, _IS_TYPE[_types.STRING] = true, _IS_TYPE[_types.TAG] = true, _IS_TYPE[_types.UNIVERSAL] = true, _IS_TYPE);\nfunction isNode(node) {\n return typeof node === \"object\" && IS_TYPE[node.type];\n}\nfunction isNodeType(type, node) {\n return isNode(node) && node.type === type;\n}\nvar isAttribute = isNodeType.bind(null, _types.ATTRIBUTE);\nexports.isAttribute = isAttribute;\nvar isClassName = isNodeType.bind(null, _types.CLASS);\nexports.isClassName = isClassName;\nvar isCombinator = isNodeType.bind(null, _types.COMBINATOR);\nexports.isCombinator = isCombinator;\nvar isComment = isNodeType.bind(null, _types.COMMENT);\nexports.isComment = isComment;\nvar isIdentifier = isNodeType.bind(null, _types.ID);\nexports.isIdentifier = isIdentifier;\nvar isNesting = isNodeType.bind(null, _types.NESTING);\nexports.isNesting = isNesting;\nvar isPseudo = isNodeType.bind(null, _types.PSEUDO);\nexports.isPseudo = isPseudo;\nvar isRoot = isNodeType.bind(null, _types.ROOT);\nexports.isRoot = isRoot;\nvar isSelector = isNodeType.bind(null, _types.SELECTOR);\nexports.isSelector = isSelector;\nvar isString = isNodeType.bind(null, _types.STRING);\nexports.isString = isString;\nvar isTag = isNodeType.bind(null, _types.TAG);\nexports.isTag = isTag;\nvar isUniversal = isNodeType.bind(null, _types.UNIVERSAL);\nexports.isUniversal = isUniversal;\nfunction isPseudoElement(node) {\n return isPseudo(node) && node.value && (node.value.startsWith(\"::\") || node.value.toLowerCase() === \":before\" || node.value.toLowerCase() === \":after\" || node.value.toLowerCase() === \":first-letter\" || node.value.toLowerCase() === \":first-line\");\n}\nfunction isPseudoClass(node) {\n return isPseudo(node) && !isPseudoElement(node);\n}\nfunction isContainer(node) {\n return !!(isNode(node) && node.walk);\n}\nfunction isNamespace(node) {\n return isAttribute(node) || isTag(node);\n}","\"use strict\";\n\nexports.__esModule = true;\nvar _types = require(\"./types\");\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _types[key]) return;\n exports[key] = _types[key];\n});\nvar _constructors = require(\"./constructors\");\nObject.keys(_constructors).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _constructors[key]) return;\n exports[key] = _constructors[key];\n});\nvar _guards = require(\"./guards\");\nObject.keys(_guards).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _guards[key]) return;\n exports[key] = _guards[key];\n});","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _processor = _interopRequireDefault(require(\"./processor\"));\nvar selectors = _interopRequireWildcard(require(\"./selectors\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar parser = function parser(processor) {\n return new _processor[\"default\"](processor);\n};\nObject.assign(parser, selectors);\ndelete parser.__esModule;\nvar _default = parser;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;","import e from\"postcss-selector-parser\";import{selectorSpecificity as t}from\"@csstools/selector-specificity\";import{resolveNestedSelector as n}from\"@csstools/selector-resolve-nested\";const r=e.pseudo({value:\":is\"});function sortCompoundSelectorsInsideComplexSelector(t){if(!t||!t.nodes)return;const n=[];let o=[];for(let s=0;s<t.nodes.length;s++)if(\"combinator\"!==t.nodes[s].type)if(e.isPseudoElement(t.nodes[s]))n.push(o),o=[t.nodes[s]];else{if(\"tag\"===t.nodes[s].type&&o.find((e=>\"tag\"===e.type))){const n=r.clone({}),o=t.nodes[s];o.replaceWith(n),n.append(e.selector({nodes:[o],value:void 0}))}o.push(t.nodes[s])}else n.push(o),n.push([t.nodes[s]]),o=[];n.push(o);const s=[];for(let e=0;e<n.length;e++){const t=n[e];t.sort(((e,t)=>\"selector\"===e.type&&\"selector\"===t.type&&e.nodes.length&&t.nodes.length?selectorTypeOrder(e.nodes[0])-selectorTypeOrder(t.nodes[0]):\"selector\"===e.type&&e.nodes.length?selectorTypeOrder(e.nodes[0])-selectorTypeOrder(t):\"selector\"===t.type&&t.nodes.length?selectorTypeOrder(e)-selectorTypeOrder(t.nodes[0]):selectorTypeOrder(e)-selectorTypeOrder(t)));for(let e=0;e<t.length;e++)s.push(t[e])}t.removeAll();for(let e=s.length-1;e>=0;e--)s[e].remove(),s[e].parent=t,t.nodes.unshift(s[e])}function selectorTypeOrder(t){return e.isPseudoElement(t)?o.pseudoElement:o[t.type]}const o={universal:0,tag:1,pseudoElement:2,id:3,class:4,attribute:5,pseudo:6,selector:7,string:8,root:9,comment:10};function isAtRule(e){return e&&\"atrule\"===e.type}function isNestRule(e){return e&&isAtRule(e)&&\"nest\"===e.name}function isRule(e){return e&&\"rule\"===e.type}function ampersandToScope$1(t,n){let r,o=t.parent;for(;o;){if(\"rule\"===o.type)return;if(isAtRule(o)&&\"scope\"===o.name)return;o=o.parent}try{r=e().astSync(t.selector)}catch(e){return void t.warn(n,`Failed to parse selector : \"${t.selector}\" with message: \"${e instanceof Error?e.message:e}\"`)}r&&(r.walkNesting((t=>{const n=t.parent;t.replaceWith(e.pseudo({value:\":scope\"})),n&&sortCompoundSelectorsInsideComplexSelector(n)})),t.selector=r.toString())}function cleanupParent(e){if(!e.nodes.length)return void e.remove();const t=e.nodes.filter((e=>\"comment\"===e.type));t.length===e.nodes.length&&e.replaceWith(...t)}function groupDeclarations(e){const t=[],n=[];e.each((e=>{if(isDeclarationLike(e,n.length>0))t.push(e);else{if(\"comment\"===e.type){let r=e.next();for(;r&&\"comment\"===r.type;)r=r.next();if(isDeclarationLike(r,n.length>0))return void t.push(e)}n.push(e)}})),e.removeAll(),t.forEach((t=>{e.append(t)})),n.forEach((t=>{e.append(t)}))}function isDeclarationLike(e,t){return!!e&&(\"decl\"===e.type||\"atrule\"===e.type&&\"mixin\"===e.name.toLowerCase()&&!t)}function comma(e){const t=[];let n=\"\",r=!1,o=0,s=!1,i=!1;for(const l of e)i?i=!1:\"\\\\\"===l?i=!0:s?l===s&&(s=!1):'\"'===l||\"'\"===l?s=l:\"(\"===l?o+=1:\")\"===l?o>0&&(o-=1):0===o&&\",\"===l&&(r=!0),r?(\"\"!==n&&t.push(n.trim()),n=\"\",r=!1):n+=l;return t.push(n.trim()),t}function shiftNodesBeforeParent(e,t){const n=t.index(e);if(n){const e=t.cloneBefore().removeAll().append(t.nodes.slice(0,n));e.raws.semicolon=!0,cleanupParent(e)}t.before(e),t.raws.semicolon=!0}var s=[\"container\",\"document\",\"media\",\"supports\",\"layer\",\"starting-style\"];function transformAtruleWithinAtrule(e,t){var n,r;groupDeclarations(t),shiftNodesBeforeParent(e,t),e.params=(n=t.params,r=e.params,comma(n).map((e=>comma(r).map((t=>`${e} and ${t}`)).join(\", \"))).join(\", \")),cleanupParent(t)}function isAtruleWithinAtrule(e,t){return s.includes(e.name)&&e.name===t.name}function atruleWithinRule$1(e,t,n,r,o){if(groupDeclarations(t),shiftNodesBeforeParent(e,t),e.nodes){const s=t.clone().removeAll().append(e.nodes);e.append(s),cleanupParent(t),r(s,n,o)}else cleanupParent(t)}function isAtruleWithinRule$1(e){return s.includes(e.name)}function combinationsWithSizeN(e,t){if(t<2)throw new Error(\"n must be greater than 1\");if(e.length<2)throw new Error(\"s must be greater than 1\");if(Math.pow(e.length,t)>1e4)throw new Error(\"Too many combinations when trying to resolve a nested selector with lists, reduce the complexity of your selectors\");const n=[];for(let e=0;e<t;e++)n[e]=0;const r=[];for(;;){const o=[];for(let s=t-1;s>=0;s--){let t=n[s];if(t>=e.length){if(t=0,n[s]=0,0===s)return r;n[s-1]+=1}o[s]=e[t].clone()}r.push(o),n[n.length-1]++}}function nodesAreEquallySpecific(n){const r=n.map((t=>e().astSync(t))).map((e=>t(e))),o=r[0];for(let e=1;e<r.length;e++)if(o.a!==r[e].a||o.b!==r[e].b||o.c!==r[e].c)return!1;return!0}function mergeSelectors$1(t,n,r){let o=[];o=nodesAreEquallySpecific(t)||r.noIsPseudoSelector?t.map((t=>e().astSync(t))):[e().astSync(`:is(${t.join(\",\")})`)];const s=[];for(let t=0;t<n.length;t++){let i,l=n[t];{const t=e().astSync(l);let n=!1;t.walk((e=>{\"nesting\"===e.type&&(n=!0)}));const r=t.nodes[0];let o=!1;r.each((e=>\"combinator\"===e.type&&(o=!0,!1))),n?o&&r.insertBefore(r.at(0),e.nesting()):(r.insertBefore(r.at(0),e.combinator({value:\" \"})),r.insertBefore(r.at(0),e.nesting())),l=t.toString()}let c=[],a=0;if(e().astSync(l).walkNesting((()=>{a++})),a>1&&o.length>1)c=combinationsWithSizeN(o,a),i=c.length;else{i=o.length;for(let e=0;e<o.length;e++){c.push([]);for(let t=0;t<a;t++)c[e].push(o[e])}}for(let t=0;t<i;t++){let n=0;const o=e().astSync(l);o.walk((o=>{if(\"nesting\"!==o.type)return;let s=c[t][n];n++,\"root\"===s.type&&1===s.nodes.length&&(s=s.nodes[0]);const i=e().astSync(`:is(${s.toString()})`),l=isSimpleSelector(s.nodes[0]),a=isCompoundSelector(s.nodes[0]),u=isSimpleSelector(o),p=isCompoundSelector(o);if(l&&u)return void o.replaceWith(s.clone());if((l||a)&&(u||p)){const e=o.parent;return l&&\"selector\"===s.type?o.replaceWith(s.clone().nodes[0]):o.replaceWith(...s.clone().nodes),void(e&&e.nodes.length>1&&sortCompoundSelectorsInsideComplexSelector(e))}if(l){const e=o.parent;return o.replaceWith(s.clone().nodes[0]),void(e&&sortCompoundSelectorsInsideComplexSelector(e))}if(a){const e=o.parent;return o.replaceWith(...s.clone().nodes),void(e&&sortCompoundSelectorsInsideComplexSelector(e))}if(nestingIsFirstAndOnlyInSelectorWithEitherSpaceOrChildCombinator(o)){const e=o.parent;return o.replaceWith(...s.clone().nodes),void(e&&sortCompoundSelectorsInsideComplexSelector(e))}if(nestingIsNotInsideCompoundSelector(o)){const e=o.parent;return o.replaceWith(...s.clone().nodes),void(e&&sortCompoundSelectorsInsideComplexSelector(e))}const d=o.parent;r.noIsPseudoSelector?o.replaceWith(...s.clone().nodes):o.replaceWith(...i.clone({}).nodes),d&&sortCompoundSelectorsInsideComplexSelector(d)})),s.push(o.toString())}}return s}function isSimpleSelector(e){return\"combinator\"!==e.type&&!(e.parent&&e.parent.nodes.length>1)}function isCompoundSelector(e,t=null){if(isSimpleSelector(e))return!1;if(!e.parent)return!1;if(!!e.parent.nodes.find((e=>\"combinator\"===e.type)))return!1;return!(!!e.parent.nodes.find((e=>\"nesting\"===e.type))&&t&&!isCompoundSelector(t))}function nestingIsFirstAndOnlyInSelectorWithEitherSpaceOrChildCombinator(e){if(!e.parent)return!1;if(0!==e.parent.nodes.indexOf(e))return!1;for(let t=1;t<e.parent.nodes.length;t++)if(\"combinator\"===e.parent.nodes[t].type&&\" \"!==e.parent.nodes[t].value&&\">\"!==e.parent.nodes[t].value)return!1;return!0}function nestingIsNotInsideCompoundSelector(e){if(isSimpleSelector(e))return!0;if(!e.parent)return!1;for(let t=0;t<e.parent.nodes.length;t++)if(\"nesting\"!==e.parent.nodes[t].type&&(e.parent.nodes[t].prev()||e.parent.nodes[t].next())){if(e.parent.nodes[t].prev()&&\"combinator\"!==e.parent.nodes[t].prev().type)return!1;if(e.parent.nodes[t].next()&&\"combinator\"!==e.parent.nodes[t].next().type)return!1}return!0}function transformNestRuleWithinRule(e,t,n,r,o){let s=[];try{s=mergeSelectors$1(t.selectors,comma(e.params),o)}catch(r){return void e.warn(n,`Failed to parse selectors : \"${t.selector}\" / \"${e.params}\" with message: \"${r instanceof Error?r.message:r}\"`)}if(!s.length)return;shiftNodesBeforeParent(e,t);const i=t.clone().removeAll().append(e.nodes);i.raws.semicolon=!0,i.selectors=s,e.replaceWith(i),cleanupParent(t),r(i,n,o)}function isValidNestRuleWithinRule(e){return comma(e.params).every((e=>e.split(\"&\").length>=2&&-1===e.indexOf(\"|\")))}function transformRuleWithinRule$1(e,t,n,r){let o=[];try{o=mergeSelectors$1(t.selectors,e.selectors,r)}catch(r){return void e.warn(n,`Failed to parse selectors : \"${t.selector}\" / \"${e.selector}\" with message: \"${r instanceof Error?r.message:r}\"`)}if(!o.length)return;groupDeclarations(t),shiftNodesBeforeParent(e,t),e.selectors=o;\"rule\"===e.type&&\"rule\"===t.type&&e.selector===t.selector&&e.append(...t.nodes),cleanupParent(t)}function isValidRuleWithinRule$1(e){return e.selectors.every((e=>-1===e.indexOf(\"|\")))}function walk$1(e,t,n){e.each((r=>{const o=r.parent;isNestRule(r)&&!n.silenceAtNestWarning&&e.warn(t,`\\`@nest\\` was removed from the CSS Nesting specification and will be removed from PostCSS Nesting in the next major version.\\nChange \\`@nest ${r.params} {}\\` to \\`${r.params} {}\\` to migrate to the latest standard.`),isRule(r)&&isRule(o)&&isValidRuleWithinRule$1(r)?transformRuleWithinRule$1(r,o,t,n):isNestRule(r)&&isRule(o)&&isValidNestRuleWithinRule(r)?transformNestRuleWithinRule(r,o,t,walk$1,n):isAtRule(r)&&isRule(o)&&isAtruleWithinRule$1(r)?atruleWithinRule$1(r,o,t,walk$1,n):isAtRule(r)&&isAtRule(o)&&isAtruleWithinAtrule(r,o)&&transformAtruleWithinAtrule(r,o),\"nodes\"in r&&r.nodes.length&&walk$1(r,t,n)}))}const creator$2=e=>{const t=Object.assign({noIsPseudoSelector:!1,silenceAtNestWarning:!1},e);return{postcssPlugin:\"postcss-nesting\",Rule(e,{result:n}){walk$1(e,n,t),e.selector.includes(\"&\")&&ampersandToScope$1(e,n)}}};creator$2.postcss=!0;const i=e();function mergeSelectors(e,t,r,o){let s;try{s=n(i.astSync(t),i.astSync(r))}catch(n){return e.warn(o,`Failed to parse selectors : \"${r}\" / \"${t}\" with message: \"${n instanceof Error?n.message:n}\"`),!1}return!!s&&s.toString()}function ampersandToScope(t,n){{let r=t.parent;for(;r;){if(\"rule\"===r.type)return;if(isAtRule(r)&&\"scope\"===r.name)return;r=r.parent}try{let n=!1;if(e().astSync(t.selector).walkNesting((()=>(n=!0,!1))),!n)return}catch(e){return void t.warn(n,`Failed to parse selector : \"${t.selector}\" with message: \"${e instanceof Error?e.message:e}\"`)}}const r=mergeSelectors(t,t.selector,\":scope\",n);r&&(t.selector=r)}function atruleWithinRule(e,t,n,r){if(shiftNodesBeforeParent(e,t),e.nodes){const o=t.clone().removeAll().append(e.nodes);e.append(o),cleanupParent(t),r(o,n)}else cleanupParent(t)}function isAtruleWithinRule(e){return s.includes(e.name)}function transformRuleWithinRule(e,t,n){const r=mergeSelectors(e,e.selector,t.selector,n);if(!r)return;shiftNodesBeforeParent(e,t),e.selector=r;\"rule\"===e.type&&\"rule\"===t.type&&e.selector===t.selector&&e.append(...t.nodes),cleanupParent(t)}function isValidRuleWithinRule(e){return e.selectors.every((e=>-1===e.indexOf(\"|\")))}function walk(e,t){e.each((e=>{const n=e.parent;isRule(e)&&isRule(n)&&isValidRuleWithinRule(e)?transformRuleWithinRule(e,n,t):isAtRule(e)&&isRule(n)&&isAtruleWithinRule(e)&&atruleWithinRule(e,n,t,walk),\"nodes\"in e&&e.nodes.length&&walk(e,t)}))}const creator$1=()=>({postcssPlugin:\"postcss-nesting\",Rule(e,{result:t}){walk(e,t),e.selector.includes(\"&\")&&ampersandToScope(e,t)},AtRule:{nest(e){throw e.error(`\\`@nest\\` was removed from the CSS Nesting specification and will be removed from PostCSS Nesting in the next major version.\\nChange \\`@nest ${e.params} {}\\` to \\`${e.params} {}\\` to migrate to the latest standard.`)}}});creator$1.postcss=!0;const creator=e=>{const t=Object.assign({edition:\"2024-02\"},e);switch(t.edition){case\"2021\":return creator$2(e);case\"2024-02\":return creator$1();default:throw new Error(`Invalid edition: ${t.edition}`)}};creator.postcss=!0;export{creator as default};\n","let postcss = require('postcss')\n\nlet IMPORTANT = /\\s*!important\\s*$/i\n\nlet UNITLESS = {\n 'box-flex': true,\n 'box-flex-group': true,\n 'column-count': true,\n 'flex': true,\n 'flex-grow': true,\n 'flex-positive': true,\n 'flex-shrink': true,\n 'flex-negative': true,\n 'font-weight': true,\n 'line-clamp': true,\n 'line-height': true,\n 'opacity': true,\n 'order': true,\n 'orphans': true,\n 'tab-size': true,\n 'widows': true,\n 'z-index': true,\n 'zoom': true,\n 'fill-opacity': true,\n 'stroke-dashoffset': true,\n 'stroke-opacity': true,\n 'stroke-width': true\n}\n\nfunction dashify(str) {\n return str\n .replace(/([A-Z])/g, '-$1')\n .replace(/^ms-/, '-ms-')\n .toLowerCase()\n}\n\nfunction decl(parent, name, value) {\n if (value === false || value === null) return\n\n if (!name.startsWith('--')) {\n name = dashify(name)\n }\n\n if (typeof value === 'number') {\n if (value === 0 || UNITLESS[name]) {\n value = value.toString()\n } else {\n value += 'px'\n }\n }\n\n if (name === 'css-float') name = 'float'\n\n if (IMPORTANT.test(value)) {\n value = value.replace(IMPORTANT, '')\n parent.push(postcss.decl({ prop: name, value, important: true }))\n } else {\n parent.push(postcss.decl({ prop: name, value }))\n }\n}\n\nfunction atRule(parent, parts, value) {\n let node = postcss.atRule({ name: parts[1], params: parts[3] || '' })\n if (typeof value === 'object') {\n node.nodes = []\n parse(value, node)\n }\n parent.push(node)\n}\n\nfunction parse(obj, parent) {\n let name, node, value\n for (name in obj) {\n value = obj[name]\n if (value === null || typeof value === 'undefined') {\n continue\n } else if (name[0] === '@') {\n let parts = name.match(/@(\\S+)(\\s+([\\W\\w]*)\\s*)?/)\n if (Array.isArray(value)) {\n for (let i of value) {\n atRule(parent, parts, i)\n }\n } else {\n atRule(parent, parts, value)\n }\n } else if (Array.isArray(value)) {\n for (let i of value) {\n decl(parent, name, i)\n }\n } else if (typeof value === 'object') {\n node = postcss.rule({ selector: name })\n parse(value, node)\n parent.push(node)\n } else {\n decl(parent, name, value)\n }\n }\n}\n\nmodule.exports = function (obj) {\n let root = postcss.root()\n parse(obj, root)\n return root\n}\n","\"use strict\";\n\nvar pattern = /-(\\w|$)/g;\n\nvar callback = function callback(dashChar, char) {\n\treturn char.toUpperCase();\n};\n\nvar camelCaseCSS = function camelCaseCSS(property) {\n\tproperty = property.toLowerCase();\n\n\t// NOTE :: IE8's \"styleFloat\" is intentionally not supported\n\tif (property === \"float\") {\n\t\treturn \"cssFloat\";\n\t}\n\t// Microsoft vendor-prefixes are uniquely cased\n\telse if (property.charCodeAt(0) === 45&& property.charCodeAt(1) === 109&& property.charCodeAt(2) === 115&& property.charCodeAt(3) === 45) {\n\t\t\treturn property.substr(1).replace(pattern, callback);\n\t\t} else {\n\t\t\treturn property.replace(pattern, callback);\n\t\t}\n};\n\nmodule.exports = camelCaseCSS;\n","let camelcase = require('camelcase-css')\n\nlet UNITLESS = {\n boxFlex: true,\n boxFlexGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n fillOpacity: true,\n strokeDashoffset: true,\n strokeOpacity: true,\n strokeWidth: true\n}\n\nfunction atRule(node) {\n if (typeof node.nodes === 'undefined') {\n return true\n } else {\n return process(node)\n }\n}\n\nfunction process(node, options = {}) {\n let name\n let result = {}\n let { stringifyImportant } = options;\n\n node.each(child => {\n if (child.type === 'atrule') {\n name = '@' + child.name\n if (child.params) name += ' ' + child.params\n if (typeof result[name] === 'undefined') {\n result[name] = atRule(child)\n } else if (Array.isArray(result[name])) {\n result[name].push(atRule(child))\n } else {\n result[name] = [result[name], atRule(child)]\n }\n } else if (child.type === 'rule') {\n let body = process(child)\n if (result[child.selector]) {\n for (let i in body) {\n let object = result[child.selector];\n if (stringifyImportant && object[i] && object[i].endsWith('!important')) {\n if (body[i].endsWith('!important')) {\n object[i] = body[i]\n }\n } else {\n object[i] = body[i]\n }\n }\n } else {\n result[child.selector] = body\n }\n } else if (child.type === 'decl') {\n if (child.prop[0] === '-' && child.prop[1] === '-') {\n name = child.prop\n } else if (child.parent && child.parent.selector === ':export') {\n name = child.prop\n } else {\n name = camelcase(child.prop)\n }\n let value = child.value\n if (!isNaN(child.value) && UNITLESS[name]) {\n value = parseFloat(child.value)\n }\n if (child.important) value += ' !important'\n if (typeof result[name] === 'undefined') {\n result[name] = value\n } else if (Array.isArray(result[name])) {\n result[name].push(value)\n } else {\n result[name] = [result[name], value]\n }\n }\n })\n return result\n}\n\nmodule.exports = process\n","let objectify = require('./objectifier')\n\nmodule.exports = function processResult(result) {\n if (console && console.warn) {\n result.warnings().forEach(warn => {\n let source = warn.plugin || 'PostCSS'\n console.warn(source + ': ' + warn.text)\n })\n }\n return objectify(result.root)\n}\n","let postcss = require('postcss')\n\nlet parse = require('./parser')\nlet processResult = require('./process-result')\n\nmodule.exports = function async(plugins) {\n let processor = postcss(plugins)\n return async input => {\n let result = await processor.process(input, {\n parser: parse,\n from: undefined\n })\n return processResult(result)\n }\n}\n","let postcss = require('postcss')\n\nlet parse = require('./parser')\nlet processResult = require('./process-result')\n\nmodule.exports = function (plugins) {\n let processor = postcss(plugins)\n return input => {\n let result = processor.process(input, { parser: parse, from: undefined })\n return processResult(result)\n }\n}\n","let async = require('./async')\nlet objectify = require('./objectifier')\nlet parse = require('./parser')\nlet sync = require('./sync')\n\nmodule.exports = {\n objectify,\n parse,\n async,\n sync\n}\n","import index from './index.js'\n\nexport default index\n\nexport const objectify = index.objectify\nexport const parse = index.parse\nexport const async = index.async\nexport const sync = index.sync\n","import { token } from '@universityofmaryland/web-styles-library';\nimport postcss from 'postcss';\nimport postcssNesting from 'postcss-nesting';\nimport postcssJs from 'postcss-js';\n\nexport const reset = `\n :host {\n color: ${token.color.black};\n }\n \n :host * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n\n div {\n line-height: 1;\n }\n\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n color: ${token.color.black};\n }\n\n p {\n color: ${token.color.gray.dark};\n }\n\n a {\n text-decoration: inherit;\n color: inherit;\n }\n\n address {\n font-style: normal;\n }\n\n strong, b {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n button {\n border: none;\n background: none;\n cursor: pointer;\n }\n\n img {\n max-width: 100%;\n display: block;\n }\n\n .sr-only {\n clip: rect(0,0,0,0);\n border-width: 0;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n`;\n\nexport const jssToCSS = ({ styleObj }: { styleObj: any }): string => {\n const root = postcssJs.parse(styleObj);\n const processor = postcss(postcssNesting);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result = (processor.process as any)(root, { from: undefined });\n return result.css;\n};\n","import { navigation } from '@universityofmaryland/web-elements-library/composite';\nimport { createSlot } from '@universityofmaryland/web-utilities-library/elements';\n\nconst DRAWER_SLOTS = {\n PRIMARY_SLIDE_LINKS: 'primary-slide-links',\n PRIMARY_SLIDE_SECONDARY_LINKS: 'primary-slide-secondary-links',\n PRIMARY_SLIDE_CONTENT: 'primary-slide-content',\n CHILDREN_SLIDES: 'children-slides',\n};\n\nexport const SLOTS = {\n ...DRAWER_SLOTS,\n};\n\ntype TypeSliderRequirements = {\n element: HTMLElement;\n PRIMARY_SLIDE_CONTENT: string;\n PRIMARY_SLIDE_LINKS: string;\n PRIMARY_SLIDE_SECONDARY_LINKS: string;\n CHILDREN_SLIDES: string;\n};\n\ntype TypeNavDrawerRequirements = TypeSliderRequirements & {\n displayType?: string;\n};\n\nexport const MakeSliderData = ({\n element,\n PRIMARY_SLIDE_CONTENT,\n PRIMARY_SLIDE_LINKS,\n PRIMARY_SLIDE_SECONDARY_LINKS,\n CHILDREN_SLIDES,\n}: TypeSliderRequirements) => {\n const allSlots = Array.from(element.querySelectorAll(':scope > [slot]'));\n\n const primarySlideSlot = allSlots.find(\n (slot) => slot.getAttribute('slot') === PRIMARY_SLIDE_CONTENT,\n ) as HTMLSlotElement;\n const primarySlideLinksSlot = allSlots.find(\n (slot) => slot.getAttribute('slot') === PRIMARY_SLIDE_LINKS,\n ) as HTMLSlotElement;\n const primarySlidesSecondaryLinksSlot = allSlots.find(\n (slot) => slot.getAttribute('slot') === PRIMARY_SLIDE_SECONDARY_LINKS,\n ) as HTMLSlotElement;\n const childrenSlidesSlot = allSlots.find(\n (slot) => slot.getAttribute('slot') === CHILDREN_SLIDES,\n ) as HTMLSlotElement;\n\n const childrenSlotContent = allSlots.filter((element) => {\n return !Object.values(DRAWER_SLOTS).find(\n (value) => value == element.getAttribute('slot'),\n );\n });\n\n const hasPrimarySlideContent =\n primarySlideSlot && primarySlideSlot.children.length > 0;\n const primarySlideContent = hasPrimarySlideContent\n ? createSlot(PRIMARY_SLIDE_CONTENT)\n : null;\n\n let primarySlideLinks;\n let primarySlidesSecondaryLinks;\n let childrenSlides;\n let childrenSlideContent: Array<HTMLSlotElement> = [];\n\n if (primarySlideLinksSlot) {\n primarySlideLinks = primarySlideLinksSlot.cloneNode(true) as HTMLElement;\n }\n\n if (primarySlidesSecondaryLinksSlot) {\n primarySlidesSecondaryLinks = primarySlidesSecondaryLinksSlot.cloneNode(\n true,\n ) as HTMLElement;\n }\n\n if (childrenSlidesSlot) {\n childrenSlides = childrenSlidesSlot.cloneNode(true) as HTMLElement;\n }\n\n if (childrenSlotContent) {\n childrenSlotContent.forEach((element) => {\n const type = element.getAttribute('slot');\n if (type) {\n const reference = createSlot(type);\n childrenSlideContent.push(reference);\n }\n });\n }\n\n return {\n primarySlideLinks,\n primarySlidesSecondaryLinks,\n childrenSlides,\n primarySlideContent,\n childrenSlideContent,\n };\n};\n\nexport const MakeNavDrawer = (props: TypeNavDrawerRequirements) => {\n const { element, displayType } = props;\n return navigation.elements.drawer.CreateElement({\n ...MakeSliderData(props),\n context: element,\n displayType,\n });\n};\n\nexport const MakeNavSlider = (props: TypeSliderRequirements) =>\n navigation.elements.slider.CreateElement({\n ...MakeSliderData(props),\n displayType: 'interior-nav',\n });\n","import { navigation } from '@universityofmaryland/web-elements-library/composite';\nimport { Attributes, Model } from '@universityofmaryland/web-model-library';\nimport { reset } from '../../helpers/styles';\nimport { SLOTS, MakeNavDrawer } from './common';\nimport { ComponentRegistration } from '../../_types';\n\nconst tagName = 'umd-element-nav-drawer';\n\nexport const styles = `\n :host {\n display: block;\n }\n\n ${reset}\n ${navigation.elements.drawer.Styles}\n ${navigation.elements.menuButton.Styles}\n`;\n\nconst attributes = Attributes.handler.combine(\n Attributes.handler.observe.rerender({\n callback: (element) => element.events?.rerender?.(),\n }),\n);\n\nconst createComponent = (element: HTMLElement) => {\n const container = document.createElement('div');\n\n const build = () => {\n container.replaceChildren();\n const drawer = MakeNavDrawer({ element, ...SLOTS });\n if (!drawer) return;\n\n const button = navigation.elements.menuButton.CreateElement({\n eventOpen: drawer.events.eventOpen,\n });\n\n container.appendChild(drawer.element);\n container.appendChild(button);\n };\n\n build();\n\n return {\n element: container,\n styles,\n events: {\n rerender: build,\n },\n };\n};\n\n/**\n * Navigation Drawer\n *\n * A mobile-friendly navigation drawer component that provides off-canvas navigation.\n * Includes a menu button trigger and sliding drawer panel for responsive navigation menus.\n *\n * ## Custom Element\n * `<umd-element-nav-drawer>`\n *\n * ## Slots\n * - `logo` - Site logo/branding\n * - `main-navigation` - Primary navigation links\n * - `utility-navigation` - Utility/secondary navigation links\n * - `footer-navigation` - Footer navigation links\n *\n * ## Observed Attributes\n * - `data-layout-rerender` - Set to `\"true\"` to rebuild the drawer after slot content\n * changes. Dispatches a `component:layout-rerender` CustomEvent on completion with\n * `detail.previousSize` and `detail.currentSize` so consumers can react to layout shifts.\n *\n * @example\n * ```js\n * // Trigger a rerender after dynamically updating slot content\n * const drawer = document.querySelector('umd-element-nav-drawer');\n * drawer.addEventListener('component:layout-rerender', (e) => {\n * console.log('drawer rerendered', e.detail.previousSize, e.detail.currentSize);\n * });\n * drawer.setAttribute('data-layout-rerender', 'true');\n * ```\n *\n * @example\n * ```html\n * <!-- Basic navigation drawer -->\n * <umd-element-nav-drawer>\n * <a slot=\"logo\" href=\"/\">\n * <img src=\"logo.svg\" alt=\"Site Logo\">\n * </a>\n * <nav slot=\"main-navigation\">\n * <ul>\n * <li><a href=\"/about\">About</a></li>\n * <li><a href=\"/programs\">Programs</a></li>\n * <li><a href=\"/contact\">Contact</a></li>\n * </ul>\n * </nav>\n * </umd-element-nav-drawer>\n * ```\n *\n * @example\n * ```html\n * <!-- Full navigation drawer -->\n * <umd-element-nav-drawer>\n * <a slot=\"logo\" href=\"/\">Maryland</a>\n * <nav slot=\"main-navigation\">\n * <ul>\n * <li><a href=\"/academics\">Academics</a></li>\n * <li><a href=\"/research\">Research</a></li>\n * <li><a href=\"/campus\">Campus Life</a></li>\n * </ul>\n * </nav>\n * <nav slot=\"utility-navigation\">\n * <ul>\n * <li><a href=\"/apply\">Apply</a></li>\n * <li><a href=\"/give\">Give</a></li>\n * </ul>\n * </nav>\n * <nav slot=\"footer-navigation\">\n * <ul>\n * <li><a href=\"/privacy\">Privacy</a></li>\n * <li><a href=\"/accessibility\">Accessibility</a></li>\n * </ul>\n * </nav>\n * </umd-element-nav-drawer>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const NavigationDrawer: ComponentRegistration = Model.defineComponent({\n tagName,\n createComponent,\n attributes,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { NavigationDrawer as drawer };\n","import { navigation } from '@universityofmaryland/web-elements-library/composite';\nimport {\n createSlot,\n createStyledSlotOrClone,\n} from '@universityofmaryland/web-utilities-library/elements';\nimport { Model } from '@universityofmaryland/web-model-library';\nimport { reset } from '../../helpers/styles';\nimport { SLOTS as GlobalSlots, MakeNavDrawer } from './common';\nimport { ComponentRegistration } from '../../_types';\n\nconst ELEMENT_NAME = 'umd-element-navigation-header';\nconst ATTRIBUTE_SEARCH_URL = 'search-url';\nconst ATTRIBUTE_CTA_URL = 'cta-url';\nconst ATTRIBUTE_CTA_TEXT = 'cta-text';\nconst SLOTS = {\n LOGO: 'logo',\n NAVIGATION: 'main-navigation',\n UTILITY: 'utility-navigation',\n ...GlobalSlots,\n};\n\nconst styles = `\n :host {\n display: block;\n }\n\n ${reset}\n ${navigation.elements.drawer.Styles}\n ${navigation.header.Styles}\n`;\n\n/**\n * Navigation Header\n *\n * A comprehensive header navigation component that includes logo, main navigation,\n * utility navigation, search, and optional call-to-action. Supports sticky positioning\n * and responsive mobile drawer navigation.\n *\n * ## Custom Element\n * `<umd-element-navigation-header>`\n *\n * ## Slots\n * - `logo` - Site logo/branding (required)\n * - `main-navigation` - Container for umd-element-nav-item components\n * - `utility-navigation` - Utility/secondary navigation links\n *\n * ## Attributes\n * - `search-url` - URL for search functionality\n * - `cta-url` - URL for call-to-action button\n * - `cta-text` - Text for call-to-action button\n * - `sticky` - Enable sticky header behavior:\n * - `true` - Header sticks to top on scroll\n *\n * ## Observed Attributes\n * - `sticky` - Dynamically toggle sticky behavior\n *\n * @example\n * ```html\n * <!-- Basic header -->\n * <umd-element-navigation-header>\n * <a slot=\"logo\" href=\"/\">\n * <img src=\"logo.svg\" alt=\"University of Maryland\">\n * </a>\n * <div slot=\"main-navigation\">\n * <umd-element-nav-item>\n * <a slot=\"primary-link\" href=\"/about\">About</a>\n * </umd-element-nav-item>\n * <umd-element-nav-item>\n * <a slot=\"primary-link\" href=\"/academics\">Academics</a>\n * </umd-element-nav-item>\n * </div>\n * </umd-element-navigation-header>\n * ```\n *\n * @example\n * ```html\n * <!-- Full header with search and CTA -->\n * <umd-element-navigation-header\n * search-url=\"/search\"\n * cta-url=\"/apply\"\n * cta-text=\"Apply Now\"\n * sticky=\"true\">\n * <a slot=\"logo\" href=\"/\">Maryland</a>\n * <div slot=\"main-navigation\">\n * <umd-element-nav-item>\n * <a slot=\"primary-link\" href=\"/academics\">Academics</a>\n * <nav slot=\"dropdown-links\">\n * <ul>\n * <li><a href=\"/undergraduate\">Undergraduate</a></li>\n * <li><a href=\"/graduate\">Graduate</a></li>\n * </ul>\n * </nav>\n * </umd-element-nav-item>\n * </div>\n * <nav slot=\"utility-navigation\">\n * <ul>\n * <li><a href=\"/news\">News</a></li>\n * <li><a href=\"/events\">Events</a></li>\n * </ul>\n * </nav>\n * </umd-element-navigation-header>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nconst CreateNavItemSlots = ({ element }: { element: HTMLElement }) => {\n const { NAVIGATION } = SLOTS;\n const navigationSlot = element.querySelector(\n `[slot=\"${NAVIGATION}\"]`,\n ) as HTMLElement;\n let navItems: HTMLElement[] = [];\n\n if (navigationSlot) {\n const navItem = Array.from(\n navigationSlot.querySelectorAll(':scope > umd-element-nav-item'),\n ) as HTMLElement[];\n\n navigationSlot.removeAttribute('slot');\n\n navItem.forEach((item, i) => {\n const slotAttr = `nav-item-${i}`;\n item.setAttribute(`slot`, slotAttr);\n\n navItems.push(createSlot(slotAttr));\n element.appendChild(item);\n });\n\n navigationSlot.remove();\n }\n\n return navItems;\n};\n\nconst CreateHeader = ({\n element,\n eventOpen,\n}: {\n element: HTMLElement;\n eventOpen?: () => void;\n}) => {\n const { LOGO, UTILITY } = SLOTS;\n const logoSlot = createStyledSlotOrClone({\n element,\n slotRef: LOGO,\n });\n\n const utilitySlotElement = element.querySelector(\n `[slot=\"${UTILITY}\"]`,\n ) as HTMLElement;\n const utilityRow =\n utilitySlotElement?.childElementCount > 0 ? createSlot(UTILITY) : null;\n const searchUrl = element.getAttribute(ATTRIBUTE_SEARCH_URL);\n const ctaUrl = element.getAttribute(ATTRIBUTE_CTA_URL);\n const ctaText = element.getAttribute(ATTRIBUTE_CTA_TEXT);\n\n if (!logoSlot) {\n console.error('UMDHeaderElement: Logo slot is required');\n }\n\n const value = navigation.header.CreateElement({\n logo: logoSlot,\n utilityRow,\n navItems: CreateNavItemSlots({ element }),\n eventOpen,\n searchUrl,\n ctaUrl,\n ctaText,\n });\n\n return value;\n};\n\nconst attributes = [\n {\n name: 'sticky',\n handler: (ref: any, _oldValue: string | null, newValue: string | null) => {\n ref.events?.sticky({ isSticky: newValue === 'true' });\n },\n },\n];\n\nconst createComponent = (element: HTMLElement) => {\n const shadow = element.shadowRoot as ShadowRoot;\n const drawer = MakeNavDrawer({\n element,\n ...SLOTS,\n displayType: 'drawer-nav',\n });\n const headerProps: { element: HTMLElement; eventOpen?: () => void } = {\n element,\n };\n\n if (drawer) {\n shadow.appendChild(drawer.element);\n headerProps.eventOpen = drawer.events.eventOpen;\n }\n\n const headerRef = CreateHeader(headerProps);\n\n return {\n element: headerRef.element,\n styles,\n events: { sticky: headerRef.events.sticky },\n };\n};\n\nexport const NavigationHeader: ComponentRegistration = Model.defineComponent({\n tagName: ELEMENT_NAME,\n createComponent,\n attributes,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { NavigationHeader as header };\n","import { navigation } from '@universityofmaryland/web-elements-library/composite';\nimport { createSlot } from '@universityofmaryland/web-utilities-library/elements';\nimport { Model } from '@universityofmaryland/web-model-library';\nimport { reset } from '../../helpers/styles';\nimport { ComponentRegistration } from '../../_types';\n\nconst tagName = 'umd-element-nav-item';\n\nconst SLOTS = {\n PRIMARY_LINK: 'primary-link',\n DROPDOWN_LINKS: 'dropdown-links',\n DROPDOWN_CALLOUT: 'dropdown-callout',\n};\n\nexport const styles = `\n :host {\n display: block;\n }\n\n ${reset}\n ${navigation.elements.item.Styles}\n`;\n\nconst createComponent = (element: HTMLElement) => {\n const calloutSlot = element.querySelector<HTMLElement>(\n `[slot=\"${SLOTS.DROPDOWN_CALLOUT}\"]`,\n );\n\n const primaryLinkSlot = element.querySelector<HTMLElement>(\n `[slot=\"${SLOTS.PRIMARY_LINK}\"]`,\n );\n const primaryLinkContainer = primaryLinkSlot?.cloneNode(\n true,\n ) as HTMLElement | null;\n\n const dropdownLinksSlot = element.querySelector<HTMLElement>(\n '[slot=\"dropdown-links\"]',\n );\n const dropdownLinksContainer = dropdownLinksSlot?.cloneNode(\n true,\n ) as HTMLElement | null;\n\n if (!primaryLinkContainer) {\n throw new Error('Primary link is required for a nav item');\n }\n\n let elementData: {\n primaryLinkContainer: HTMLElement;\n dropdownLinksContainer: HTMLElement | null;\n dropdownCalloutsSlot?: HTMLSlotElement;\n context: HTMLElement;\n } = {\n primaryLinkContainer,\n dropdownLinksContainer,\n context: element,\n };\n\n if (calloutSlot && calloutSlot.children.length > 0) {\n const dropdownCalloutsSlot = createSlot(SLOTS.DROPDOWN_CALLOUT);\n elementData = { ...elementData, dropdownCalloutsSlot };\n }\n\n if (!primaryLinkContainer) {\n throw new Error('Primary link is required for a nav item');\n }\n\n const navItem = navigation.elements.item.CreateElement({\n ...elementData,\n });\n\n dropdownLinksSlot?.remove();\n primaryLinkSlot?.remove();\n\n return { element: navItem, styles };\n};\n\n/**\n * Navigation Item\n *\n * A navigation menu item component that supports dropdown menus and callout sections.\n * Designed to be used within navigation header and drawer components for creating\n * hierarchical navigation structures.\n *\n * ## Custom Element\n * `<umd-element-nav-item>`\n *\n * ## Slots\n * - `primary-link` - Main navigation link (required)\n * - `dropdown-links` - Dropdown menu content\n * - `dropdown-callout` - Featured callout section in dropdown\n *\n * @example\n * ```html\n * <!-- Simple navigation item -->\n * <umd-element-nav-item>\n * <a slot=\"primary-link\" href=\"/about\">About</a>\n * </umd-element-nav-item>\n * ```\n *\n * @example\n * ```html\n * <!-- Navigation item with dropdown -->\n * <umd-element-nav-item>\n * <a slot=\"primary-link\" href=\"/academics\">Academics</a>\n * <nav slot=\"dropdown-links\">\n * <ul>\n * <li><a href=\"/undergraduate\">Undergraduate Programs</a></li>\n * <li><a href=\"/graduate\">Graduate Programs</a></li>\n * <li><a href=\"/online\">Online Learning</a></li>\n * </ul>\n * </nav>\n * </umd-element-nav-item>\n * ```\n *\n * @example\n * ```html\n * <!-- Navigation item with dropdown and callout -->\n * <umd-element-nav-item>\n * <a slot=\"primary-link\" href=\"/research\">Research</a>\n * <nav slot=\"dropdown-links\">\n * <ul>\n * <li><a href=\"/research/centers\">Research Centers</a></li>\n * <li><a href=\"/research/labs\">Laboratories</a></li>\n * <li><a href=\"/research/funding\">Funding Opportunities</a></li>\n * </ul>\n * </nav>\n * <div slot=\"dropdown-callout\">\n * <h3>Featured Research</h3>\n * <p>Quantum computing breakthrough leads to new possibilities</p>\n * <a href=\"/research/quantum\">Learn More</a>\n * </div>\n * </umd-element-nav-item>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const NavigationItem: ComponentRegistration = Model.defineComponent({\n tagName,\n createComponent,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { NavigationItem as item };\n","import { navigation } from '@universityofmaryland/web-elements-library/composite';\nimport { Model } from '@universityofmaryland/web-model-library';\nimport { reset } from '../../helpers/styles';\nimport { MakeNavSlider, SLOTS } from './common';\nimport { ComponentRegistration } from '../../_types';\n\nconst tagName = 'umd-element-nav-slider';\n\nexport const styles = `\n :host {\n display: block;\n }\n\n ${reset}\n ${navigation.elements.slider.Styles}\n`;\n\nconst attributes = [\n {\n name: 'resize',\n handler: (ref: any, _oldValue: string | null, newValue: string | null) => {\n if (newValue === 'true') ref.events?.resize();\n },\n },\n];\n\nconst createComponent = (element: HTMLElement) => {\n const ref = MakeNavSlider({ element, ...SLOTS });\n\n if (!ref) return { element: document.createElement('div'), styles };\n\n return {\n element: ref.container,\n styles,\n events: ref.events,\n };\n};\n\n/**\n * Navigation Slider\n *\n * A horizontal scrollable navigation component for displaying many navigation items.\n * Provides arrow controls and smooth scrolling for better user experience when\n * navigation items exceed the viewport width.\n *\n * ## Custom Element\n * `<umd-element-nav-slider>`\n *\n * ## Slots\n * - Default slot - Navigation list items\n *\n * ## Observed Attributes\n * - `resize` - Triggers recalculation of slider dimensions when set to \"true\"\n *\n * @example\n * ```html\n * <!-- Basic navigation slider -->\n * <umd-element-nav-slider>\n * <ul>\n * <li><a href=\"/college1\">College of Arts & Humanities</a></li>\n * <li><a href=\"/college2\">College of Engineering</a></li>\n * <li><a href=\"/college3\">College of Science</a></li>\n * <li><a href=\"/college4\">School of Business</a></li>\n * <li><a href=\"/college5\">School of Public Health</a></li>\n * <li><a href=\"/college6\">School of Education</a></li>\n * </ul>\n * </umd-element-nav-slider>\n * ```\n *\n * @example\n * ```html\n * <!-- Navigation slider with dynamic resize -->\n * <umd-element-nav-slider id=\"nav-slider\">\n * <ul>\n * <li><a href=\"/dept1\">Computer Science</a></li>\n * <li><a href=\"/dept2\">Mathematics</a></li>\n * <li><a href=\"/dept3\">Physics</a></li>\n * <li><a href=\"/dept4\">Chemistry</a></li>\n * <li><a href=\"/dept5\">Biology</a></li>\n * </ul>\n * </umd-element-nav-slider>\n *\n * <script>\n * // Trigger resize when content changes\n * const slider = document.getElementById('nav-slider');\n * window.addEventListener('resize', () => {\n * slider.setAttribute('resize', 'true');\n * });\n * </script>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const NavigationSlider: ComponentRegistration = Model.defineComponent({\n tagName,\n createComponent,\n attributes,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { NavigationSlider as slider };\n","import { navigation } from '@universityofmaryland/web-elements-library/composite';\nimport { createSlot } from '@universityofmaryland/web-utilities-library/elements';\nimport { Model } from '@universityofmaryland/web-model-library';\n\nimport { CreateComponentFunction, ComponentRegistration, SlotConfiguration } from '../../_types';\n\nconst tagName = 'umd-element-navigation-sticky';\n\nconst slots: SlotConfiguration = {\n content: {\n required: true,\n },\n};\n\nconst createComponent: CreateComponentFunction = (element) =>\n navigation.elements.sticky({\n content: createSlot('content'),\n component: element,\n });\n\n/**\n * Sticky Navigation\n *\n * A navigation component that sticks to the top of the viewport when scrolling.\n * Useful for keeping important navigation accessible as users scroll through content.\n *\n * ## Custom Element\n * `<umd-element-navigation-sticky>`\n *\n * ## Slots\n * - `content` - Navigation content to make sticky (required)\n *\n * @example\n * ```html\n * <!-- Basic sticky navigation -->\n * <umd-element-navigation-sticky>\n * <nav slot=\"content\">\n * <ul>\n * <li><a href=\"#overview\">Overview</a></li>\n * <li><a href=\"#features\">Features</a></li>\n * <li><a href=\"#pricing\">Pricing</a></li>\n * <li><a href=\"#contact\">Contact</a></li>\n * </ul>\n * </nav>\n * </umd-element-navigation-sticky>\n * ```\n *\n * @example\n * ```html\n * <!-- Sticky navigation with breadcrumb -->\n * <umd-element-navigation-sticky>\n * <div slot=\"content\">\n * <umd-element-breadcrumb>\n * <ol slot=\"paths\">\n * <li><a href=\"/\">Home</a></li>\n * <li><a href=\"/programs\">Programs</a></li>\n * <li>Computer Science</li>\n * </ol>\n * </umd-element-breadcrumb>\n * </div>\n * </umd-element-navigation-sticky>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const NavigationSticky: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { NavigationSticky as sticky };\n"],"names":["tagName","slots","createComponent","element","linkListSlot","createStyledSlotOrClone","Slots","navigation","Attributes","NavigationBreadcrumb","Model","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","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","ownInputs","inputHydrated","fromJSON_1","relative","MapGenerator","cssString","content","eol","startIndex","endIndex","noSource","mapping","p","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","n","length","buffer","returned","unclosed","what","endOfFile","nextToken","ignoreUnclosed","controlChar","back","token","tokenizer","SAFE_COMMENT_NEIGHBOR","findLastWithPosition","tokens","Parser","shift","open","brackets","colon","founded","customProperty","firstSpaces","cache","bracket","clean","all","lastTokenType","parser","parse_1","Warning","range","opt","warning","Result","processor","require$$7","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","NOT_VISITORS","CHILDREN","isPromise","getEvents","key","toStack","events","cleanMarks","postcss","onRejected","onFinally","err","event","filter","promise","stack","visitor","roots","subRoot","onFulfilled","visitors","visit","lazyResult","NoWorkResult","self","generatedCSS","generatedMap","noWorkResult","plugins","normalized","require$$8","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","exports","unesc","gobbleHex","lower","hex","spaceTerminated","valid","codePoint","isSurrogate","CONTAINS_ESCAPE","needToProcess","ret","gobbled","module","getProp","_len","props","_key","ensureObject","stripComments","commentStart","lastEnd","commentEnd","util","_unesc","_interopRequireDefault","_getProp","_ensureObject","_stripComments","_util","_defineProperties","target","descriptor","_createClass","Constructor","protoProps","staticProps","_proto","valueEscaped","originalValue","originalEscaped","rawSpace","types","TAG","STRING","SELECTOR","ROOT","PSEUDO","NESTING","ID","COMMENT","COMBINATOR","CLASS","ATTRIBUTE","UNIVERSAL","_node","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","newObj","hasPropertyDescriptor","desc","_createForOfIteratorHelperLoose","o","allowArrayLike","it","_unsupportedIterableToArray","minLen","_arrayLikeToArray","arr","len","arr2","_inheritsLoose","subClass","superClass","_setPrototypeOf","_Node","_this","_iterator","_step","oldNode","newNode","_this$nodes","oldIndex","resetNode","_this$nodes2","col","found","foundChild","_this2","_this3","_this4","_this5","_this6","_this7","_this8","_this9","_this10","_this11","memo","_container","_types","_Container","handler","Selector","object","hasOwnProperty","merge","regexAnySingleEscape","regexSingleEscape","regexExcessiveSpaces","cssesc","isIdentifier","firstChar","output","counter","character","extra","$0","$1","$2","cssesc_1","_cssesc","ClassName","v","Namespace","namespace","ns","_namespace","Tag","_Namespace","String","Pseudo","browser","deprecate","fn","msg","config","warned","deprecated","global","val","unescapeValue","_CSSESC_QUOTE_OPTIONS","WRAPPED_IN_QUOTES","warnOfDeprecatedValueAssignment","warnOfDeprecatedQuotedAssignment","warnOfDeprecatedConstructor","deprecatedUsage","quoteMark","unescaped","m","handleDeprecatedContructorOpts","_unescapeValue","Attribute","cssescopts","CSSESC_QUOTE_OPTIONS","numSingleQuotes","numDoubleQuotes","pref","quoteValue","rawValue","attrSpaces","rawSpaces","spaceName","concat","defaultAttrConcat","count","attributeSpaces","operatorSpaces","operator","valueSpaces","insensitiveSpaces","attrValue","qm","_unescapeValue2","insensitive","Universal","Combinator","Nesting","sortAscending","b","tokenTypes","ampersand","asterisk","at","comma","openParenthesis","closeParenthesis","openSquare","closeSquare","dollar","tilde","caret","plus","equals","pipe","greaterThan","space","singleQuote","doubleQuote","slash","bang","backslash","cr","feed","newline","tab","word","combinator","t","_unescapable","_wordDelimiters","unescapable","wordDelimiters","hexChars","consumeWord","consumeEscape","hexDigits","FIELDS","_css","nextLine","nextOffset","tokenType","fix","_root","_selector","_className","_comment","_id","_tag","_string","_pseudo","_attribute","_universal","_combinator","_nesting","_sortAscending","_tokenize","_WHITESPACE_TOKENS","_Object$assign","WHITESPACE_TOKENS","WHITESPACE_EQUIV_TOKENS","tokenStart","tokenEnd","getSource","startLine","startColumn","getTokenSource","getTokenSourceSpan","startToken","endToken","unescapeProp","indexesOf","item","indexes","uniqs","rootSource","errorOptions","attr","startingToken","spaceBefore","commentBefore","lastAdded","spaceAfterMeaningfulToken","prevContent","existingComment","oldRawValue","_rawValue","_unescaped","_oldRawValue","oldValue","lastComment","rawLastComment","lastValue","rawLastValue","stopPosition","startPosition","firstToken","lastToken","requiredSpace","rawSpaceBefore","nameRaw","raws","nextSigTokenPos","_this$convertWhitespa","spaceOrDescendantSelectorNodes","_this$convertWhitespa2","_space","_rawSpace","_this$convertWhitespa3","_space2","_rawSpace2","nextContent","unbalanced","parenStart","parenValue","parenEnd","pseudoStr","first","firstCallback","hasClass","escapedDot","isKeyframesPercent","hasId","interpolations","hashIndex","indices","ind","sourceIndex","classNameOpts","idOpts","tagOpts","throwOnParenthesis","description","an","required","searchPosition","_parser","merged","reject","transform","constructors","attribute","className","nesting","pseudo","tag","universal","guards","isContainer","isNamespace","isNode","isPseudoClass","isPseudoElement","_IS_TYPE","IS_TYPE","isNodeType","isAttribute","isClassName","isCombinator","isComment","isNesting","isPseudo","isRoot","isSelector","isString","isTag","isUniversal","_constructors","_guards","_processor","selectors","_default","IMPORTANT","UNITLESS","dashify","dashChar","char","camelCaseCSS","property","indexEs5","camelcase","process","stringifyImportant","body","objectifier","objectify","processResult","warn","async","sync","postcssJs","reset","DRAWER_SLOTS","SLOTS","MakeSliderData","PRIMARY_SLIDE_CONTENT","PRIMARY_SLIDE_LINKS","PRIMARY_SLIDE_SECONDARY_LINKS","CHILDREN_SLIDES","allSlots","primarySlideSlot","slot","primarySlideLinksSlot","primarySlidesSecondaryLinksSlot","childrenSlidesSlot","childrenSlotContent","primarySlideContent","createSlot","primarySlideLinks","primarySlidesSecondaryLinks","childrenSlides","childrenSlideContent","reference","MakeNavDrawer","displayType","MakeNavSlider","styles","attributes","build","drawer","button","NavigationDrawer","ELEMENT_NAME","ATTRIBUTE_SEARCH_URL","ATTRIBUTE_CTA_URL","ATTRIBUTE_CTA_TEXT","GlobalSlots","CreateNavItemSlots","NAVIGATION","navigationSlot","navItems","navItem","slotAttr","CreateHeader","eventOpen","LOGO","UTILITY","logoSlot","utilityRow","searchUrl","ctaUrl","ctaText","ref","_oldValue","newValue","shadow","headerProps","headerRef","NavigationHeader","calloutSlot","primaryLinkSlot","primaryLinkContainer","dropdownLinksSlot","dropdownLinksContainer","elementData","dropdownCalloutsSlot","NavigationItem","NavigationSlider","NavigationSticky"],"mappings":"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","x_google_ignoreList":[1,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,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71]}