Web Analytics
); l.sanitizeSvgText = function (e) { let t = a.sanitize(e, { USE_PROFILES: { svg: !0 } }); t.indexOf("]>") >= 0 && (t = t.substring(5, t.length)), t = r(t); const n = e.match(p); return n && (t += n[0]), t }, e.exports = l }, function (e, t, n) { e.exports = n(269) }, function (e, t, n) { e.exports = n(270).create(function () { for (var e = {}, t = 0; t < arguments.length; t++) { var n = arguments[t]; for (var r in n) e[r] = n[r] } return e }(n(296), n(341), n(365))), e.exports.version = n(366).version }, function (e, t, n) { var r = n(20), i = n(90), s = n(36), o = n(271), a = n(281), l = n(0), c = n(282), u = n(285), d = n(292), h = n(293), p = n(294), m = n(57), f = n(295); function g(e) { var t = c(e), n = h(e), y = u(e), b = d(n), v = { List: r, SyntaxError: i, TokenStream: s, Lexer: o, vendorPrefix: m.vendorPrefix, keyword: m.keyword, property: m.property, isCustomProperty: m.isCustomProperty, definitionSyntax: a, lexer: null, createLexer: function (e) { return new o(e, v, v.lexer.structure) }, tokenize: l, parse: t, walk: n, generate: y, find: n.find, findLast: n.findLast, findAll: n.findAll, clone: p, fromPlainObject: b.fromPlainObject, toPlainObject: b.toPlainObject, createSyntax: function (e) { return g(f({}, e)) }, fork: function (t) { var n = f({}, e); return g("function" == typeof t ? t(n, Object.assign) : f(n, t)) } }; return v.lexer = new o({ generic: !0, types: e.types, atrules: e.atrules, properties: e.properties, node: e.node }, v), v } t.create = function (e) { return g(f({}, e)) } }, function (e, t, n) { var r = n(92).SyntaxReferenceError, i = n(92).SyntaxMatchError, s = n(57), o = n(272), a = n(58), l = n(56), c = n(95), u = n(276), d = n(96).buildMatchGraph, h = n(277).matchAsTree, p = n(278), m = n(279), f = n(280).getStructureFromConfig, g = d("inherit | initial | unset"), y = d("inherit | initial | unset | <-ms-legacy-expression>"); function b(e, t, n) { var r = {}; for (var i in e) e[i].syntax && (r[i] = n ? e[i].syntax : l(e[i].syntax, { compact: t })); return r } function v(e, t, n) { const r = {}; for (const [i, s] of Object.entries(e)) r[i] = { prelude: s.prelude && (n ? s.prelude.syntax : l(s.prelude.syntax, { compact: t })), descriptors: s.descriptors && b(s.descriptors, t, n) }; return r } function S(e, t, n) { return { matched: e, iterations: n, error: t, getTrace: p.getTrace, isType: p.isType, isProperty: p.isProperty, isKeyword: p.isKeyword } } function w(e, t, n, r) { var s, o = u(n, e.syntax); return function (e) { for (var t = 0; t < e.length; t++)if ("var(" === e[t].value.toLowerCase()) return !0; return !1 }(o) ? S(null, new Error("Matching for a tree with var() is not supported")) : (r && (s = h(o, e.valueCommonSyntax, e)), r && s.match || (s = h(o, t.match, e)).match ? S(s.match, null, s.iterations) : S(null, new i(s.reason, t.syntax, n, s), s.iterations)) } var k = function (e, t, n) { if (this.valueCommonSyntax = g, this.syntax = t, this.generic = !1, this.atrules = {}, this.properties = {}, this.types = {}, this.structure = n || f(e), e) { if (e.types) for (var r in e.types) this.addType_(r, e.types[r]); if (e.generic) for (var r in this.generic = !0, o) this.addType_(r, o[r]); if (e.atrules) for (var r in e.atrules) this.addAtrule_(r, e.atrules[r]); if (e.properties) for (var r in e.properties) this.addProperty_(r, e.properties[r]) } }; k.prototype = { structure: {}, checkStructure: function (e) { function t(e, t) { r.push({ node: e, message: t }) } var n = this.structure, r = []; return this.syntax.walk(e, (function (e) { n.hasOwnProperty(e.type) ? n[e.type].check(e, t) : t(e, "Unknown node type `" + e.type + "`") })), !!r.length && r }, createDescriptor: function (e, t, n, r = null) { var i = { type: t, name: n }, s = { type: t, name: n, parent: r, syntax: null, match: null }; return "function" == typeof e ? s.match = d(e, i) : ("string" == typeof e ? Object.defineProperty(s, "syntax", { get: function () { return Object.defineProperty(s, "syntax", { value: a(e) }), s.syntax } }) : s.syntax = e, Object.defineProperty(s, "match", { get: function () { return Object.defineProperty(s, "match", { value: d(s.syntax, i) }), s.match } })), s }, addAtrule_: function (e, t) { t && (this.atrules[e] = { type: "Atrule", name: e, prelude: t.prelude ? this.createDescriptor(t.prelude, "AtrulePrelude", e) : null, descriptors: t.descriptors ? Object.keys(t.descriptors).reduce(((n, r) => (n[r] = this.createDescriptor(t.descriptors[r], "AtruleDescriptor", r, e), n)), {}) : null }) }, addProperty_: function (e, t) { t && (this.properties[e] = this.createDescriptor(t, "Property", e)) }, addType_: function (e, t) { t && (this.types[e] = this.createDescriptor(t, "Type", e), t === o["-ms-legacy-expression"] && (this.valueCommonSyntax = y)) }, checkAtruleName: function (e) { if (!this.getAtrule(e)) return new r("Unknown at-rule", "@" + e) }, checkAtrulePrelude: function (e, t) { let n = this.checkAtruleName(e); if (n) return n; var r = this.getAtrule(e); return !r.prelude && t ? new SyntaxError("At-rule `@" + e + "` should not contain a prelude") : r.prelude && !t ? new SyntaxError("At-rule `@" + e + "` should contain a prelude") : void 0 }, checkAtruleDescriptorName: function (e, t) { let n = this.checkAtruleName(e); if (n) return n; var i = this.getAtrule(e), o = s.keyword(t); return i.descriptors ? i.descriptors[o.name] || i.descriptors[o.basename] ? void 0 : new r("Unknown at-rule descriptor", t) : new SyntaxError("At-rule `@" + e + "` has no known descriptors") }, checkPropertyName: function (e) { return s.property(e).custom ? new Error("Lexer matching doesn't applicable for custom properties") : this.getProperty(e) ? void 0 : new r("Unknown property", e) }, matchAtrulePrelude: function (e, t) { var n = this.checkAtrulePrelude(e, t); return n ? S(null, n) : t ? w(this, this.getAtrule(e).prelude, t, !1) : S(null, null) }, matchAtruleDescriptor: function (e, t, n) { var r = this.checkAtruleDescriptorName(e, t); if (r) return S(null, r); var i = this.getAtrule(e), o = s.keyword(t); return w(this, i.descriptors[o.name] || i.descriptors[o.basename], n, !1) }, matchDeclaration: function (e) { return "Declaration" !== e.type ? S(null, new Error("Not a Declaration node")) : this.matchProperty(e.property, e.value) }, matchProperty: function (e, t) { var n = this.checkPropertyName(e); return n ? S(null, n) : w(this, this.getProperty(e), t, !0) }, matchType: function (e, t) { var n = this.getType(e); return n ? w(this, n, t, !1) : S(null, new r("Unknown type", e)) }, match: function (e, t) { return "string" == typeof e || e && e.type ? ("string" != typeof e && e.match || (e = this.createDescriptor(e, "Type", "anonymous")), w(this, e, t, !1)) : S(null, new r("Bad syntax")) }, findValueFragments: function (e, t, n, r) { return m.matchFragments(this, t, this.matchProperty(e, t), n, r) }, findDeclarationValueFragments: function (e, t, n) { return m.matchFragments(this, e.value, this.matchDeclaration(e), t, n) }, findAllFragments: function (e, t, n) { var r = []; return this.syntax.walk(e, { visit: "Declaration", enter: function (e) { r.push.apply(r, this.findDeclarationValueFragments(e, t, n)) }.bind(this) }), r }, getAtrule: function (e, t = !0) { var n = s.keyword(e); return (n.vendor && t ? this.atrules[n.name] || this.atrules[n.basename] : this.atrules[n.name]) || null }, getAtrulePrelude: function (e, t = !0) { const n = this.getAtrule(e, t); return n && n.prelude || null }, getAtruleDescriptor: function (e, t) { return this.atrules.hasOwnProperty(e) && this.atrules.declarators && this.atrules[e].declarators[t] || null }, getProperty: function (e, t = !0) { var n = s.property(e); return (n.vendor && t ? this.properties[n.name] || this.properties[n.basename] : this.properties[n.name]) || null }, getType: function (e) { return this.types.hasOwnProperty(e) ? this.types[e] : null }, validate: function () { function e(r, i, s, o) { if (s.hasOwnProperty(i)) return s[i]; s[i] = !1, null !== o.syntax && c(o.syntax, (function (o) { if ("Type" === o.type || "Property" === o.type) { var a = "Type" === o.type ? r.types : r.properties, l = "Type" === o.type ? t : n; a.hasOwnProperty(o.name) && !e(r, o.name, l, a[o.name]) || (s[i] = !0) } }), this) } var t = {}, n = {}; for (var r in this.types) e(this, r, t, this.types[r]); for (var r in this.properties) e(this, r, n, this.properties[r]); return t = Object.keys(t).filter((function (e) { return t[e] })), n = Object.keys(n).filter((function (e) { return n[e] })), t.length || n.length ? { types: t, properties: n } : null }, dump: function (e, t) { return { generic: this.generic, types: b(this.types, !t, e), properties: b(this.properties, !t, e), atrules: v(this.atrules, !t, e) } }, toString: function () { return JSON.stringify(this.dump()) } }, e.exports = k }, function (e, t, n) { var r, i = n(0), s = i.isIdentifierStart, o = i.isHexDigit, a = i.isDigit, l = i.cmpStr, c = i.consumeNumber, u = i.TYPE, d = n(273), h = n(274), p = ["unset", "initial", "inherit"], m = ["calc(", "-moz-calc(", "-webkit-calc("]; function f(e, t) { return t < e.length ? e.charCodeAt(t) : 0 } function g(e, t) { return l(e, 0, e.length, t) } function y(e, t) { for (var n = 0; n < t.length; n++)if (g(e, t[n])) return !0; return !1 } function b(e, t) { return t === e.length - 2 && (92 === e.charCodeAt(t) && a(e.charCodeAt(t + 1))) } function v(e, t, n) { if (e && "Range" === e.type) { var r = Number(void 0 !== n && n !== t.length ? t.substr(0, n) : t); if (isNaN(r)) return !0; if (null !== e.min && r < e.min) return !0; if (null !== e.max && r > e.max) return !0 } return !1 } function S(e, t) { var n = e.index, r = 0; do { if (r++, e.balance <= n) break } while (e = t(r)); return r } function w(e) { return function (t, n, r) { return null === t ? 0 : t.type === u.Function && y(t.value, m) ? S(t, n) : e(t, n, r) } } function k(e) { return function (t) { return null === t || t.type !== e ? 0 : 1 } } function T(e) { return function (t, n, r) { if (null === t || t.type !== u.Dimension) return 0; var i = c(t.value, 0); if (null !== e) { var s = t.value.indexOf("\\", i), o = -1 !== s && b(t.value, s) ? t.value.substring(i, s) : t.value.substr(i); if (!1 === e.hasOwnProperty(o.toLowerCase())) return 0 } return v(r, t.value, i) ? 0 : 1 } } function x(e) { return "function" != typeof e && (e = function () { return 0 }), function (t, n, r) { return null !== t && t.type === u.Number && 0 === Number(t.value) ? 1 : e(t, n, r) } } e.exports = { "ident-token": k(u.Ident), "function-token": k(u.Function), "at-keyword-token": k(u.AtKeyword), "hash-token": k(u.Hash), "string-token": k(u.String), "bad-string-token": k(u.BadString), "url-token": k(u.Url), "bad-url-token": k(u.BadUrl), "delim-token": k(u.Delim), "number-token": k(u.Number), "percentage-token": k(u.Percentage), "dimension-token": k(u.Dimension), "whitespace-token": k(u.WhiteSpace), "CDO-token": k(u.CDO), "CDC-token": k(u.CDC), "colon-token": k(u.Colon), "semicolon-token": k(u.Semicolon), "comma-token": k(u.Comma), "[-token": k(u.LeftSquareBracket), "]-token": k(u.RightSquareBracket), "(-token": k(u.LeftParenthesis), ")-token": k(u.RightParenthesis), "{-token": k(u.LeftCurlyBracket), "}-token": k(u.RightCurlyBracket), string: k(u.String), ident: k(u.Ident), "custom-ident": function (e) { if (null === e || e.type !== u.Ident) return 0; var t = e.value.toLowerCase(); return y(t, p) || g(t, "default") ? 0 : 1 }, "custom-property-name": function (e) { return null === e || e.type !== u.Ident || 45 !== f(e.value, 0) || 45 !== f(e.value, 1) ? 0 : 1 }, "hex-color": function (e) { if (null === e || e.type !== u.Hash) return 0; var t = e.value.length; if (4 !== t && 5 !== t && 7 !== t && 9 !== t) return 0; for (var n = 1; n < t; n++)if (!o(e.value.charCodeAt(n))) return 0; return 1 }, "id-selector": function (e) { return null === e || e.type !== u.Hash ? 0 : s(f(e.value, 1), f(e.value, 2), f(e.value, 3)) ? 1 : 0 }, "an-plus-b": d, urange: h, "declaration-value": function (e, t) { if (!e) return 0; var n = 0, r = 0, i = e.index; e: do { switch (e.type) { case u.BadString: case u.BadUrl: break e; case u.RightCurlyBracket: case u.RightParenthesis: case u.RightSquareBracket: if (e.balance > e.index || e.balance < i) break e; r--; break; case u.Semicolon: if (0 === r) break e; break; case u.Delim: if ("!" === e.value && 0 === r) break e; break; case u.Function: case u.LeftParenthesis: case u.LeftSquareBracket: case u.LeftCurlyBracket: r++ }if (n++, e.balance <= i) break } while (e = t(n)); return n }, "any-value": function (e, t) { if (!e) return 0; var n = e.index, r = 0; e: do { switch (e.type) { case u.BadString: case u.BadUrl: break e; case u.RightCurlyBracket: case u.RightParenthesis: case u.RightSquareBracket: if (e.balance > e.index || e.balance < n) break e }if (r++, e.balance <= n) break } while (e = t(r)); return r }, dimension: w(T(null)), angle: w(T({ deg: !0, grad: !0, rad: !0, turn: !0 })), decibel: w(T({ db: !0 })), frequency: w(T({ hz: !0, khz: !0 })), flex: w(T({ fr: !0 })), length: w(x(T({ px: !0, mm: !0, cm: !0, in: !0, pt: !0, pc: !0, q: !0, em: !0, ex: !0, ch: !0, rem: !0, vh: !0, vw: !0, vmin: !0, vmax: !0, vm: !0 }))), resolution: w(T({ dpi: !0, dpcm: !0, dppx: !0, x: !0 })), semitones: w(T({ st: !0 })), time: w(T({ s: !0, ms: !0 })), percentage: w((function (e, t, n) { return null === e || e.type !== u.Percentage || v(n, e.value, e.value.length - 1) ? 0 : 1 })), zero: x(), number: w((function (e, t, n) { if (null === e) return 0; var r = c(e.value, 0); return r === e.value.length || b(e.value, r) ? v(n, e.value, r) ? 0 : 1 : 0 })), integer: w((function (e, t, n) { if (null === e || e.type !== u.Number) return 0; for (var r = 43 === e.value.charCodeAt(0) || 45 === e.value.charCodeAt(0) ? 1 : 0; r < e.value.length; r++)if (!a(e.value.charCodeAt(r))) return 0; return v(n, e.value, r) ? 0 : 1 })), "-ms-legacy-expression": (r = "expression", r += "(", function (e, t) { return null !== e && g(e.value, r) ? S(e, t) : 0 }) } }, function (e, t, n) { var r = n(0).isDigit, i = n(0).cmpChar, s = n(0).TYPE, o = s.Delim, a = s.WhiteSpace, l = s.Comment, c = s.Ident, u = s.Number, d = s.Dimension, h = 43, p = 45, m = !0; function f(e, t) { return null !== e && e.type === o && e.value.charCodeAt(0) === t } function g(e, t, n) { for (; null !== e && (e.type === a || e.type === l);)e = n(++t); return t } function y(e, t, n, i) { if (!e) return 0; var s = e.value.charCodeAt(t); if (s === h || s === p) { if (n) return 0; t++ } for (; t < e.value.length; t++)if (!r(e.value.charCodeAt(t))) return 0; return i + 1 } function b(e, t, n) { var r = !1, i = g(e, t, n); if (null === (e = n(i))) return t; if (e.type !== u) { if (!f(e, h) && !f(e, p)) return t; if (r = !0, i = g(n(++i), i, n), null === (e = n(i)) && e.type !== u) return 0 } if (!r) { var s = e.value.charCodeAt(0); if (s !== h && s !== p) return 0 } return y(e, r ? 0 : 1, r, i) } e.exports = function (e, t) { var n = 0; if (!e) return 0; if (e.type === u) return y(e, 0, false, n); if (e.type === c && e.value.charCodeAt(0) === p) { if (!i(e.value, 1, 110)) return 0; switch (e.value.length) { case 2: return b(t(++n), n, t); case 3: return e.value.charCodeAt(2) !== p ? 0 : (n = g(t(++n), n, t), y(e = t(n), 0, m, n)); default: return e.value.charCodeAt(2) !== p ? 0 : y(e, 3, m, n) } } else if (e.type === c || f(e, h) && t(n + 1).type === c) { if (e.type !== c && (e = t(++n)), null === e || !i(e.value, 0, 110)) return 0; switch (e.value.length) { case 1: return b(t(++n), n, t); case 2: return e.value.charCodeAt(1) !== p ? 0 : (n = g(t(++n), n, t), y(e = t(n), 0, m, n)); default: return e.value.charCodeAt(1) !== p ? 0 : y(e, 2, m, n) } } else if (e.type === d) { for (var s = e.value.charCodeAt(0), o = s === h || s === p ? 1 : 0, a = o; a < e.value.length && r(e.value.charCodeAt(a)); a++); return a === o ? 0 : i(e.value, a, 110) ? a + 1 === e.value.length ? b(t(++n), n, t) : e.value.charCodeAt(a + 1) !== p ? 0 : a + 2 === e.value.length ? (n = g(t(++n), n, t), y(e = t(n), 0, m, n)) : y(e, a + 2, m, n) : 0 } return 0 } }, function (e, t, n) { var r = n(0).isHexDigit, i = n(0).cmpChar, s = n(0).TYPE, o = s.Ident, a = s.Delim, l = s.Number, c = s.Dimension; function u(e, t) { return null !== e && e.type === a && e.value.charCodeAt(0) === t } function d(e, t) { return e.value.charCodeAt(0) === t } function h(e, t, n) { for (var i = t, s = 0; i < e.value.length; i++) { var o = e.value.charCodeAt(i); if (45 === o && n && 0 !== s) return h(e, t + s + 1, !1) > 0 ? 6 : 0; if (!r(o)) return 0; if (++s > 6) return 0 } return s } function p(e, t, n) { if (!e) return 0; for (; u(n(t), 63);) { if (++e > 6) return 0; t++ } return t } e.exports = function (e, t) { var n = 0; if (null === e || e.type !== o || !i(e.value, 0, 117)) return 0; if (null === (e = t(++n))) return 0; if (u(e, 43)) return null === (e = t(++n)) ? 0 : e.type === o ? p(h(e, 0, !0), ++n, t) : u(e, 63) ? p(1, ++n, t) : 0; if (e.type === l) { if (!d(e, 43)) return 0; var r = h(e, 1, !0); return 0 === r ? 0 : null === (e = t(++n)) ? n : e.type === c || e.type === l ? d(e, 45) && h(e, 1, !1) ? n + 1 : 0 : p(r, n, t) } return e.type === c && d(e, 43) ? p(h(e, 1, !0), ++n, t) : 0 } }, function (e, t, n) { var r = n(94), i = function (e) { this.str = e, this.pos = 0 }; i.prototype = { charCodeAt: function (e) { return e < this.str.length ? this.str.charCodeAt(e) : 0 }, charCode: function () { return this.charCodeAt(this.pos) }, nextCharCode: function () { return this.charCodeAt(this.pos + 1) }, nextNonWsCode: function (e) { return this.charCodeAt(this.findWsEnd(e)) }, findWsEnd: function (e) { for (; e < this.str.length; e++) { var t = this.str.charCodeAt(e); if (13 !== t && 10 !== t && 12 !== t && 32 !== t && 9 !== t) break } return e }, substringToPos: function (e) { return this.str.substring(this.pos, this.pos = e) }, eat: function (e) { this.charCode() !== e && this.error("Expect `" + String.fromCharCode(e) + "`"), this.pos++ }, peek: function () { return this.pos < this.str.length ? this.str.charAt(this.pos++) : "" }, error: function (e) { throw new r(e, this.str, this.pos) } }, e.exports = i }, function (e, t, n) { var r = n(0), i = new (n(36)), s = { decorator: function (e) { var t = null, n = { len: 0, node: null }, r = [n], i = ""; return { children: e.children, node: function (n) { var r = t; t = n, e.node.call(this, n), t = r }, chunk: function (e) { i += e, n.node !== t ? r.push({ len: e.length, node: t }) : n.len += e.length }, result: function () { return o(i, r) } } } }; function o(e, t) { var n = [], s = 0, o = 0, a = t ? t[o].node : null; for (r(e, i); !i.eof;) { if (t) for (; o < t.length && s + t[o].len <= i.tokenStart;)s += t[o++].len, a = t[o].node; n.push({ type: i.tokenType, value: i.getTokenValue(), index: i.tokenIndex, balance: i.balance[i.tokenIndex], node: a }), i.next() } return n } e.exports = function (e, t) { return "string" == typeof e ? o(e, null) : t.generate(e, s) } }, function (e, t, n) { var r = Object.prototype.hasOwnProperty, i = n(96), s = i.MATCH, o = i.MISMATCH, a = i.DISALLOW_EMPTY, l = n(37).TYPE, c = 0, u = 1, d = 2, h = 3, p = "Match", m = "Mismatch", f = "Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)", g = 15e3, y = 0; function b(e) { for (var t = null, n = null, r = e; null !== r;)n = r.prev, r.prev = t, t = r, r = n; return t } function v(e, t) { if (e.length !== t.length) return !1; for (var n = 0; n < e.length; n++) { var r = e.charCodeAt(n); if (r >= 65 && r <= 90 && (r |= 32), r !== t.charCodeAt(n)) return !1 } return !0 } function S(e) { return null === e || (e.type === l.Comma || e.type === l.Function || e.type === l.LeftParenthesis || e.type === l.LeftSquareBracket || e.type === l.LeftCurlyBracket || function (e) { return e.type === l.Delim && "?" !== e.value }(e)) } function w(e) { return null === e || (e.type === l.RightParenthesis || e.type === l.RightSquareBracket || e.type === l.RightCurlyBracket || e.type === l.Delim) } function k(e, t, n) { function i() { do { P++, D = P < e.length ? e[P] : null } while (null !== D && (D.type === l.WhiteSpace || D.type === l.Comment)) } function b(t) { var n = P + t; return n < e.length ? e[n] : null } function k(e, t) { return { nextState: e, matchStack: B, syntaxStack: C, thenStack: I, tokenIndex: P, prev: t } } function T(e) { I = { nextState: e, matchStack: B, syntaxStack: C, prev: I } } function x(e) { O = k(e, O) } function E() { B = { type: u, syntax: t.syntax, token: D, prev: B }, i(), M = null, P > L && (L = P) } function A() { B = B.type === d ? B.prev : { type: h, syntax: C.syntax, token: B.token, prev: B }, C = C.prev } var C = null, I = null, O = null, M = null, N = 0, R = null, D = null, P = -1, L = 0, B = { type: c, syntax: null, token: null, prev: null }; for (i(); null === R && ++N < g;)switch (t.type) { case "Match": if (null === I) { if (null !== D && (P !== e.length - 1 || "\\0" !== D.value && "\\9" !== D.value)) { t = o; break } R = p; break } if ((t = I.nextState) === a) { if (I.matchStack === B) { t = o; break } t = s } for (; I.syntaxStack !== C;)A(); I = I.prev; break; case "Mismatch": if (null !== M && !1 !== M) (null === O || P > O.tokenIndex) && (O = M, M = !1); else if (null === O) { R = m; break } t = O.nextState, I = O.thenStack, C = O.syntaxStack, B = O.matchStack, P = O.tokenIndex, D = P < e.length ? e[P] : null, O = O.prev; break; case "MatchGraph": t = t.match; break; case "If": t.else !== o && x(t.else), t.then !== s && T(t.then), t = t.match; break; case "MatchOnce": t = { type: "MatchOnceBuffer", syntax: t, index: 0, mask: 0 }; break; case "MatchOnceBuffer": var z = t.syntax.terms; if (t.index === z.length) { if (0 === t.mask || t.syntax.all) { t = o; break } t = s; break } if (t.mask === (1 << z.length) - 1) { t = s; break } for (; t.index < z.length; t.index++) { var U = 1 << t.index; if (!(t.mask & U)) { x(t), T({ type: "AddMatchOnce", syntax: t.syntax, mask: t.mask | U }), t = z[t.index++]; break } } break; case "AddMatchOnce": t = { type: "MatchOnceBuffer", syntax: t.syntax, index: 0, mask: t.mask }; break; case "Enum": if (null !== D) if (-1 !== (G = D.value.toLowerCase()).indexOf("\\") && (G = G.replace(/\\[09].*$/, "")), r.call(t.map, G)) { t = t.map[G]; break } t = o; break; case "Generic": var j = null !== C ? C.opts : null, F = P + Math.floor(t.fn(D, b, j)); if (!isNaN(F) && F > P) { for (; P < F;)E(); t = s } else t = o; break; case "Type": case "Property": var W = "Type" === t.type ? "types" : "properties", V = r.call(n, W) ? n[W][t.name] : null; if (!V || !V.match) throw new Error("Bad syntax reference: " + ("Type" === t.type ? "<" + t.name + ">" : "<'" + t.name + "'>")); if (!1 !== M && null !== D && "Type" === t.type) if ("custom-ident" === t.name && D.type === l.Ident || "length" === t.name && "0" === D.value) { null === M && (M = k(t, O)), t = o; break } C = { syntax: t.syntax, opts: t.syntax.opts || null !== C && C.opts || null, prev: C }, B = { type: d, syntax: t.syntax, token: B.token, prev: B }, t = V.match; break; case "Keyword": var G = t.name; if (null !== D) { var q = D.value; if (-1 !== q.indexOf("\\") && (q = q.replace(/\\[09].*$/, "")), v(q, G)) { E(), t = s; break } } t = o; break; case "AtKeyword": case "Function": if (null !== D && v(D.value, t.name)) { E(), t = s; break } t = o; break; case "Token": if (null !== D && D.value === t.value) { E(), t = s; break } t = o; break; case "Comma": null !== D && D.type === l.Comma ? S(B.token) ? t = o : (E(), t = w(D) ? o : s) : t = S(B.token) || w(D) ? s : o; break; case "String": var Y = ""; for (F = P; F < e.length && Y.length < t.value.length; F++)Y += e[F].value; if (v(Y, t.value)) { for (; P < F;)E(); t = s } else t = o; break; default: throw new Error("Unknown node type: " + t.type) }switch (y += N, R) { case null: console.warn("[csstree-match] BREAK after " + g + " iterations"), R = f, B = null; break; case p: for (; null !== C;)A(); break; default: B = null }return { tokens: e, reason: R, iterations: N, match: B, longestMatch: L } } e.exports = { matchAsList: function (e, t, n) { var r = k(e, t, n || {}); if (null !== r.match) { var i = b(r.match).prev; for (r.match = []; null !== i;) { switch (i.type) { case c: break; case d: case h: r.match.push({ type: i.type, syntax: i.syntax }); break; default: r.match.push({ token: i.token.value, node: i.token.node }) }i = i.prev } } return r }, matchAsTree: function (e, t, n) { var r = k(e, t, n || {}); if (null === r.match) return r; var i = r.match, s = r.match = { syntax: t.syntax || null, match: [] }, o = [s]; for (i = b(i).prev; null !== i;) { switch (i.type) { case d: s.match.push(s = { syntax: i.syntax, match: [] }), o.push(s); break; case h: o.pop(), s = o[o.length - 1]; break; default: s.match.push({ syntax: i.syntax || null, token: i.token.value, node: i.token.node }) }i = i.prev } return r }, getTotalIterationCount: function () { return y } } }, function (e, t) { function n(e) { function t(e) { return null !== e && ("Type" === e.type || "Property" === e.type || "Keyword" === e.type) } var n = null; return null !== this.matched && function r(i) { if (Array.isArray(i.match)) { for (var s = 0; s < i.match.length; s++)if (r(i.match[s])) return t(i.syntax) && n.unshift(i.syntax), !0 } else if (i.node === e) return n = t(i.syntax) ? [i.syntax] : [], !0; return !1 }(this.matched), n } function r(e, t, r) { var i = n.call(e, t); return null !== i && i.some(r) } e.exports = { getTrace: n, isType: function (e, t) { return r(this, e, (function (e) { return "Type" === e.type && e.name === t })) }, isProperty: function (e, t) { return r(this, e, (function (e) { return "Property" === e.type && e.name === t })) }, isKeyword: function (e) { return r(this, e, (function (e) { return "Keyword" === e.type })) } } }, function (e, t, n) { var r = n(20); function i(e) { return "node" in e ? e.node : i(e.match[0]) } function s(e) { return "node" in e ? e.node : s(e.match[e.match.length - 1]) } e.exports = { matchFragments: function (e, t, n, o, a) { var l = []; return null !== n.matched && function n(c) { if (null !== c.syntax && c.syntax.type === o && c.syntax.name === a) { var u = i(c), d = s(c); e.syntax.walk(t, (function (e, t, n) { if (e === u) { var i = new r; do { if (i.appendData(t.data), t.data === d) break; t = t.next } while (null !== t); l.push({ parent: n, nodes: i }) } })) } Array.isArray(c.match) && c.match.forEach(n) }(n.matched), l } } }, function (e, t, n) { var r = n(20), i = Object.prototype.hasOwnProperty; function s(e) { return "number" == typeof e && isFinite(e) && Math.floor(e) === e && e >= 0 } function o(e) { return Boolean(e) && s(e.offset) && s(e.line) && s(e.column) } function a(e, t) { return function (n, s) { if (!n || n.constructor !== Object) return s(n, "Type of node should be an Object"); for (var a in n) { var l = !0; if (!1 !== i.call(n, a)) { if ("type" === a) n.type !== e && s(n, "Wrong node type `" + n.type + "`, expected `" + e + "`"); else if ("loc" === a) { if (null === n.loc) continue; if (n.loc && n.loc.constructor === Object) if ("string" != typeof n.loc.source) a += ".source"; else if (o(n.loc.start)) { if (o(n.loc.end)) continue; a += ".end" } else a += ".start"; l = !1 } else if (t.hasOwnProperty(a)) { var c = 0; for (l = !1; !l && c < t[a].length; c++) { var u = t[a][c]; switch (u) { case String: l = "string" == typeof n[a]; break; case Boolean: l = "boolean" == typeof n[a]; break; case null: l = null === n[a]; break; default: "string" == typeof u ? l = n[a] && n[a].type === u : Array.isArray(u) && (l = n[a] instanceof r) } } } else s(n, "Unknown field `" + a + "` for " + e + " node type"); l || s(n, "Bad value for `" + e + "." + a + "`") } } for (var a in t) i.call(t, a) && !1 === i.call(n, a) && s(n, "Field `" + e + "." + a + "` is missed") } } function l(e, t) { var n = t.structure, r = { type: String, loc: !0 }, s = { type: '"' + e + '"' }; for (var o in n) if (!1 !== i.call(n, o)) { for (var l = [], c = r[o] = Array.isArray(n[o]) ? n[o].slice() : [n[o]], u = 0; u < c.length; u++) { var d = c[u]; if (d === String || d === Boolean) l.push(d.name); else if (null === d) l.push("null"); else if ("string" == typeof d) l.push("<" + d + ">"); else { if (!Array.isArray(d)) throw new Error("Wrong value `" + d + "` in `" + e + "." + o + "` structure definition"); l.push("List") } } s[o] = l.join(" | ") } return { docs: s, check: a(e, r) } } e.exports = { getStructureFromConfig: function (e) { var t = {}; if (e.node) for (var n in e.node) if (i.call(e.node, n)) { var r = e.node[n]; if (!r.structure) throw new Error("Missed `structure` field in `" + n + "` node type definition"); t[n] = l(n, r) } return t } } }, function (e, t, n) { e.exports = { SyntaxError: n(94), parse: n(58), generate: n(56), walk: n(95) } }, function (e, t, n) { var r = n(283), i = n(90), s = n(36), o = n(20), a = n(0), l = n(37), { findWhiteSpaceStart: c, cmpStr: u } = n(26), d = n(284), h = function () { }, p = l.TYPE, m = l.NAME, f = p.WhiteSpace, g = p.Comment, y = p.Ident, b = p.Function, v = p.Url, S = p.Hash, w = p.Percentage, k = p.Number; function T(e) { return function () { return this[e]() } } e.exports = function (e) { var t = { scanner: new s, locationMap: new r, filename: "", needPositions: !1, onParseError: h, onParseErrorThrow: !1, parseAtrulePrelude: !0, parseRulePrelude: !0, parseValue: !0, parseCustomProperty: !1, readSequence: d, createList: function () { return new o }, createSingleNodeList: function (e) { return (new o).appendData(e) }, getFirstListNode: function (e) { return e && e.first() }, getLastListNode: function (e) { return e.last() }, parseWithFallback: function (e, t) { var n = this.scanner.tokenIndex; try { return e.call(this) } catch (e) { if (this.onParseErrorThrow) throw e; var r = t.call(this, n); return this.onParseErrorThrow = !0, this.onParseError(e, r), this.onParseErrorThrow = !1, r } }, lookupNonWSType: function (e) { do { var t = this.scanner.lookupType(e++); if (t !== f) return t } while (0 !== t); return 0 }, eat: function (e) { if (this.scanner.tokenType !== e) { var t = this.scanner.tokenStart, n = m[e] + " is expected"; switch (e) { case y: this.scanner.tokenType === b || this.scanner.tokenType === v ? (t = this.scanner.tokenEnd - 1, n = "Identifier is expected but function found") : n = "Identifier is expected"; break; case S: this.scanner.isDelim(35) && (this.scanner.next(), t++, n = "Name is expected"); break; case w: this.scanner.tokenType === k && (t = this.scanner.tokenEnd, n = "Percent sign is expected"); break; default: this.scanner.source.charCodeAt(this.scanner.tokenStart) === e && (t += 1) }this.error(n, t) } this.scanner.next() }, consume: function (e) { var t = this.scanner.getTokenValue(); return this.eat(e), t }, consumeFunctionName: function () { var e = this.scanner.source.substring(this.scanner.tokenStart, this.scanner.tokenEnd - 1); return this.eat(b), e }, getLocation: function (e, t) { return this.needPositions ? this.locationMap.getLocationRange(e, t, this.filename) : null }, getLocationFromList: function (e) { if (this.needPositions) { var t = this.getFirstListNode(e), n = this.getLastListNode(e); return this.locationMap.getLocationRange(null !== t ? t.loc.start.offset - this.locationMap.startOffset : this.scanner.tokenStart, null !== n ? n.loc.end.offset - this.locationMap.startOffset : this.scanner.tokenStart, this.filename) } return null }, error: function (e, t) { var n = void 0 !== t && t < this.scanner.source.length ? this.locationMap.getLocation(t) : this.scanner.eof ? this.locationMap.getLocation(c(this.scanner.source, this.scanner.source.length - 1)) : this.locationMap.getLocation(this.scanner.tokenStart); throw new i(e || "Unexpected input", this.scanner.source, n.offset, n.line, n.column) } }; for (var n in e = function (e) { var t = { context: {}, scope: {}, atrule: {}, pseudo: {} }; if (e.parseContext) for (var n in e.parseContext) switch (typeof e.parseContext[n]) { case "function": t.context[n] = e.parseContext[n]; break; case "string": t.context[n] = T(e.parseContext[n]) }if (e.scope) for (var n in e.scope) t.scope[n] = e.scope[n]; if (e.atrule) for (var n in e.atrule) { var r = e.atrule[n]; r.parse && (t.atrule[n] = r.parse) } if (e.pseudo) for (var n in e.pseudo) { var i = e.pseudo[n]; i.parse && (t.pseudo[n] = i.parse) } if (e.node) for (var n in e.node) t[n] = e.node[n].parse; return t }(e || {})) t[n] = e[n]; return function (e, n) { var r, i = (n = n || {}).context || "default", s = n.onComment; if (a(e, t.scanner), t.locationMap.setSource(e, n.offset, n.line, n.column), t.filename = n.filename || "", t.needPositions = Boolean(n.positions), t.onParseError = "function" == typeof n.onParseError ? n.onParseError : h, t.onParseErrorThrow = !1, t.parseAtrulePrelude = !("parseAtrulePrelude" in n) || Boolean(n.parseAtrulePrelude), t.parseRulePrelude = !("parseRulePrelude" in n) || Boolean(n.parseRulePrelude), t.parseValue = !("parseValue" in n) || Boolean(n.parseValue), t.parseCustomProperty = "parseCustomProperty" in n && Boolean(n.parseCustomProperty), !t.context.hasOwnProperty(i)) throw new Error("Unknown context `" + i + "`"); return "function" == typeof s && t.scanner.forEachToken(((n, r, i) => { if (n === g) { const n = t.getLocation(r, i), o = u(e, i - 2, i, "*/") ? e.slice(r + 2, i - 2) : e.slice(r + 2, i); s(o, n) } })), r = t.context[i].call(t, n), t.scanner.eof || t.error(), r } } }, function (e, t, n) { var r = n(93), i = n(0).isBOM; var s = function () { this.lines = null, this.columns = null, this.linesAndColumnsComputed = !1 }; s.prototype = { setSource: function (e, t, n, r) { this.source = e, this.startOffset = void 0 === t ? 0 : t, this.startLine = void 0 === n ? 1 : n, this.startColumn = void 0 === r ? 1 : r, this.linesAndColumnsComputed = !1 }, ensureLinesAndColumnsComputed: function () { this.linesAndColumnsComputed || (!function (e, t) { for (var n = t.length, s = r(e.lines, n), o = e.startLine, a = r(e.columns, n), l = e.startColumn, c = t.length > 0 ? i(t.charCodeAt(0)) : 0; c < n; c++) { var u = t.charCodeAt(c); s[c] = o, a[c] = l++, 10 !== u && 13 !== u && 12 !== u || (13 === u && c + 1 < n && 10 === t.charCodeAt(c + 1) && (s[++c] = o, a[c] = l), o++, l = 1) } s[c] = o, a[c] = l, e.lines = s, e.columns = a }(this, this.source), this.linesAndColumnsComputed = !0) }, getLocation: function (e, t) { return this.ensureLinesAndColumnsComputed(), { source: t, offset: this.startOffset + e, line: this.lines[e], column: this.columns[e] } }, getLocationRange: function (e, t, n) { return this.ensureLinesAndColumnsComputed(), { source: n, start: { offset: this.startOffset + e, line: this.lines[e], column: this.columns[e] }, end: { offset: this.startOffset + t, line: this.lines[t], column: this.columns[t] } } } }, e.exports = s }, function (e, t, n) { var r = n(0).TYPE, i = r.WhiteSpace, s = r.Comment; e.exports = function (e) { var t = this.createList(), n = null, r = { recognizer: e, space: null, ignoreWS: !1, ignoreWSAfter: !1 }; for (this.scanner.skipSC(); !this.scanner.eof;) { switch (this.scanner.tokenType) { case s: this.scanner.next(); continue; case i: r.ignoreWS ? this.scanner.next() : r.space = this.WhiteSpace(); continue }if (void 0 === (n = e.getNode.call(this, r))) break; null !== r.space && (t.push(r.space), r.space = null), t.push(n), r.ignoreWSAfter ? (r.ignoreWSAfter = !1, r.ignoreWS = !0) : r.ignoreWS = !1 } return t } }, function (e, t, n) { var r = n(286), i = Object.prototype.hasOwnProperty; function s(e, t) { var n = e.children, r = null; "function" != typeof t ? n.forEach(this.node, this) : n.forEach((function (e) { null !== r && t.call(this, r), this.node(e), r = e }), this) } e.exports = function (e) { function t(e) { if (!i.call(n, e.type)) throw new Error("Unknown node type: " + e.type); n[e.type].call(this, e) } var n = {}; if (e.node) for (var o in e.node) n[o] = e.node[o].generate; return function (e, n) { var i = "", o = { children: s, node: t, chunk: function (e) { i += e }, result: function () { return i } }; return n && ("function" == typeof n.decorator && (o = n.decorator(o)), n.sourceMap && (o = r(o))), o.node(e), o.result() } } }, function (e, t, n) { var r = n(287).SourceMapGenerator, i = { Atrule: !0, Selector: !0, Declaration: !0 }; e.exports = function (e) { var t = new r, n = 1, s = 0, o = { line: 1, column: 0 }, a = { line: 0, column: 0 }, l = !1, c = { line: 1, column: 0 }, u = { generated: c }, d = e.node; e.node = function (e) { if (e.loc && e.loc.start && i.hasOwnProperty(e.type)) { var r = e.loc.start.line, h = e.loc.start.column - 1; a.line === r && a.column === h || (a.line = r, a.column = h, o.line = n, o.column = s, l && (l = !1, o.line === c.line && o.column === c.column || t.addMapping(u)), l = !0, t.addMapping({ source: e.loc.source, original: a, generated: o })) } d.call(this, e), l && i.hasOwnProperty(e.type) && (c.line = n, c.column = s) }; var h = e.chunk; e.chunk = function (e) { for (var t = 0; t < e.length; t++)10 === e.charCodeAt(t) ? (n++, s = 0) : s++; h(e) }; var p = e.result; return e.result = function () { return l && t.addMapping(u), { css: p(), map: t } }, e } }, function (e, t, n) { var r = n(288), i = n(59), s = n(290).ArraySet, o = n(291).MappingList; function a(e) { e || (e = {}), this._file = i.getArg(e, "file", null), this._sourceRoot = i.getArg(e, "sourceRoot", null), this._skipValidation = i.getArg(e, "skipValidation", !1), this._sources = new s, this._names = new s, this._mappings = new o, this._sourcesContents = null } a.prototype._version = 3, a.fromSourceMap = function (e) { var t = e.sourceRoot, n = new a({ file: e.file, sourceRoot: t }); return e.eachMapping((function (e) { var r = { generated: { line: e.generatedLine, column: e.generatedColumn } }; null != e.source && (r.source = e.source, null != t && (r.source = i.relative(t, r.source)), r.original = { line: e.originalLine, column: e.originalColumn }, null != e.name && (r.name = e.name)), n.addMapping(r) })), e.sources.forEach((function (r) { var s = r; null !== t && (s = i.relative(t, r)), n._sources.has(s) || n._sources.add(s); var o = e.sourceContentFor(r); null != o && n.setSourceContent(r, o) })), n }, a.prototype.addMapping = function (e) { var t = i.getArg(e, "generated"), n = i.getArg(e, "original", null), r = i.getArg(e, "source", null), s = i.getArg(e, "name", null); this._skipValidation || this._validateMapping(t, n, r, s), null != r && (r = String(r), this._sources.has(r) || this._sources.add(r)), null != s && (s = String(s), this._names.has(s) || this._names.add(s)), this._mappings.add({ generatedLine: t.line, generatedColumn: t.column, originalLine: null != n && n.line, originalColumn: null != n && n.column, source: r, name: s }) }, a.prototype.setSourceContent = function (e, t) { var n = e; null != this._sourceRoot && (n = i.relative(this._sourceRoot, n)), null != t ? (this._sourcesContents || (this._sourcesContents = Object.create(null)), this._sourcesContents[i.toSetString(n)] = t) : this._sourcesContents && (delete this._sourcesContents[i.toSetString(n)], 0 === Object.keys(this._sourcesContents).length && (this._sourcesContents = null)) }, a.prototype.applySourceMap = function (e, t, n) { var r = t; if (null == t) { if (null == e.file) throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.'); r = e.file } var o = this._sourceRoot; null != o && (r = i.relative(o, r)); var a = new s, l = new s; this._mappings.unsortedForEach((function (t) { if (t.source === r && null != t.originalLine) { var s = e.originalPositionFor({ line: t.originalLine, column: t.originalColumn }); null != s.source && (t.source = s.source, null != n && (t.source = i.join(n, t.source)), null != o && (t.source = i.relative(o, t.source)), t.originalLine = s.line, t.originalColumn = s.column, null != s.name && (t.name = s.name)) } var c = t.source; null == c || a.has(c) || a.add(c); var u = t.name; null == u || l.has(u) || l.add(u) }), this), this._sources = a, this._names = l, e.sources.forEach((function (t) { var r = e.sourceContentFor(t); null != r && (null != n && (t = i.join(n, t)), null != o && (t = i.relative(o, t)), this.setSourceContent(t, r)) }), this) }, a.prototype._validateMapping = function (e, t, n, r) { if (t && "number" != typeof t.line && "number" != typeof t.column) throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values."); if ((!(e && "line" in e && "column" in e && e.line > 0 && e.column >= 0) || t || n || r) && !(e && "line" in e && "column" in e && t && "line" in t && "column" in t && e.line > 0 && e.column >= 0 && t.line > 0 && t.column >= 0 && n)) throw new Error("Invalid mapping: " + JSON.stringify({ generated: e, source: n, original: t, name: r })) }, a.prototype._serializeMappings = function () { for (var e, t, n, s, o = 0, a = 1, l = 0, c = 0, u = 0, d = 0, h = "", p = this._mappings.toArray(), m = 0, f = p.length; m < f; m++) { if (e = "", (t = p[m]).generatedLine !== a) for (o = 0; t.generatedLine !== a;)e += ";", a++; else if (m > 0) { if (!i.compareByGeneratedPositionsInflated(t, p[m - 1])) continue; e += "," } e += r.encode(t.generatedColumn - o), o = t.generatedColumn, null != t.source && (s = this._sources.indexOf(t.source), e += r.encode(s - d), d = s, e += r.encode(t.originalLine - 1 - c), c = t.originalLine - 1, e += r.encode(t.originalColumn - l), l = t.originalColumn, null != t.name && (n = this._names.indexOf(t.name), e += r.encode(n - u), u = n)), h += e } return h }, a.prototype._generateSourcesContent = function (e, t) { return e.map((function (e) { if (!this._sourcesContents) return null; null != t && (e = i.relative(t, e)); var n = i.toSetString(e); return Object.prototype.hasOwnProperty.call(this._sourcesContents, n) ? this._sourcesContents[n] : null }), this) }, a.prototype.toJSON = function () { var e = { version: this._version, sources: this._sources.toArray(), names: this._names.toArray(), mappings: this._serializeMappings() }; return null != this._file && (e.file = this._file), null != this._sourceRoot && (e.sourceRoot = this._sourceRoot), this._sourcesContents && (e.sourcesContent = this._generateSourcesContent(e.sources, e.sourceRoot)), e }, a.prototype.toString = function () { return JSON.stringify(this.toJSON()) }, t.SourceMapGenerator = a }, function (e, t, n) { var r = n(289); t.encode = function (e) { var t, n = "", i = function (e) { return e < 0 ? 1 + (-e << 1) : 0 + (e << 1) }(e); do { t = 31 & i, (i >>>= 5) > 0 && (t |= 32), n += r.encode(t) } while (i > 0); return n }, t.decode = function (e, t, n) { var i, s, o, a, l = e.length, c = 0, u = 0; do { if (t >= l) throw new Error("Expected more digits in base 64 VLQ value."); if (-1 === (s = r.decode(e.charCodeAt(t++)))) throw new Error("Invalid base64 digit: " + e.charAt(t - 1)); i = !!(32 & s), c += (s &= 31) << u, u += 5 } while (i); n.value = (a = (o = c) >> 1, 1 & ~o ? a : -a), n.rest = t } }, function (e, t) { var n = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""); t.encode = function (e) { if (0 <= e && e < n.length) return n[e]; throw new TypeError("Must be between 0 and 63: " + e) }, t.decode = function (e) { return 65 <= e && e <= 90 ? e - 65 : 97 <= e && e <= 122 ? e - 97 + 26 : 48 <= e && e <= 57 ? e - 48 + 52 : 43 == e ? 62 : 47 == e ? 63 : -1 } }, function (e, t, n) { var r = n(59), i = Object.prototype.hasOwnProperty, s = "undefined" != typeof Map; function o() { this._array = [], this._set = s ? new Map : Object.create(null) } o.fromArray = function (e, t) { for (var n = new o, r = 0, i = e.length; r < i; r++)n.add(e[r], t); return n }, o.prototype.size = function () { return s ? this._set.size : Object.getOwnPropertyNames(this._set).length }, o.prototype.add = function (e, t) { var n = s ? e : r.toSetString(e), o = s ? this.has(e) : i.call(this._set, n), a = this._array.length; o && !t || this._array.push(e), o || (s ? this._set.set(e, a) : this._set[n] = a) }, o.prototype.has = function (e) { if (s) return this._set.has(e); var t = r.toSetString(e); return i.call(this._set, t) }, o.prototype.indexOf = function (e) { if (s) { var t = this._set.get(e); if (t >= 0) return t } else { var n = r.toSetString(e); if (i.call(this._set, n)) return this._set[n] } throw new Error('"' + e + '" is not in the set.') }, o.prototype.at = function (e) { if (e >= 0 && e < this._array.length) return this._array[e]; throw new Error("No element indexed by " + e) }, o.prototype.toArray = function () { return this._array.slice() }, t.ArraySet = o }, function (e, t, n) { var r = n(59); function i() { this._array = [], this._sorted = !0, this._last = { generatedLine: -1, generatedColumn: 0 } } i.prototype.unsortedForEach = function (e, t) { this._array.forEach(e, t) }, i.prototype.add = function (e) { var t, n, i, s, o, a; t = this._last, n = e, i = t.generatedLine, s = n.generatedLine, o = t.generatedColumn, a = n.generatedColumn, s > i || s == i && a >= o || r.compareByGeneratedPositionsInflated(t, n) <= 0 ? (this._last = e, this._array.push(e)) : (this._sorted = !1, this._array.push(e)) }, i.prototype.toArray = function () { return this._sorted || (this._array.sort(r.compareByGeneratedPositionsInflated), this._sorted = !0), this._array }, t.MappingList = i }, function (e, t, n) { var r = n(20); e.exports = function (e) { return { fromPlainObject: function (t) { return e(t, { enter: function (e) { e.children && e.children instanceof r == !1 && (e.children = (new r).fromArray(e.children)) } }), t }, toPlainObject: function (t) { return e(t, { leave: function (e) { e.children && e.children instanceof r && (e.children = e.children.toArray()) } }), t } } } }, function (e, t) { var n = Object.prototype.hasOwnProperty, r = function () { }; function i(e) { return "function" == typeof e ? e : r } function s(e, t) { return function (n, r, i) { n.type === t && e.call(this, n, r, i) } } function o(e, t) { var r = t.structure, i = []; for (var s in r) if (!1 !== n.call(r, s)) { var o = r[s], a = { name: s, type: !1, nullable: !1 }; Array.isArray(r[s]) || (o = [r[s]]); for (var l = 0; l < o.length; l++) { var c = o[l]; null === c ? a.nullable = !0 : "string" == typeof c ? a.type = "node" : Array.isArray(c) && (a.type = "list") } a.type && i.push(a) } return i.length ? { context: t.walkContext, fields: i } : null } function a(e, t) { var n = e.fields.slice(), r = e.context, i = "string" == typeof r; return t && n.reverse(), function (e, s, o, a) { var l; i && (l = s[r], s[r] = e); for (var c = 0; c < n.length; c++) { var u = n[c], d = e[u.name]; if (!u.nullable || d) if ("list" === u.type) { if (t ? d.reduceRight(a, !1) : d.reduce(a, !1)) return !0 } else if (o(d)) return !0 } i && (s[r] = l) } } function l(e) { return { Atrule: { StyleSheet: e.StyleSheet, Atrule: e.Atrule, Rule: e.Rule, Block: e.Block }, Rule: { StyleSheet: e.StyleSheet, Atrule: e.Atrule, Rule: e.Rule, Block: e.Block }, Declaration: { StyleSheet: e.StyleSheet, Atrule: e.Atrule, Rule: e.Rule, Block: e.Block, DeclarationList: e.DeclarationList } } } e.exports = function (e) { var t = function (e) { var t = {}; for (var r in e.node) if (n.call(e.node, r)) { var i = e.node[r]; if (!i.structure) throw new Error("Missed `structure` field in `" + r + "` node type definition"); t[r] = o(0, i) } return t }(e), c = {}, u = {}, d = Symbol("break-walk"), h = Symbol("skip-node"); for (var p in t) n.call(t, p) && null !== t[p] && (c[p] = a(t[p], !1), u[p] = a(t[p], !0)); var m = l(c), f = l(u), g = function (e, n) { function o(e, t, n) { var r = l.call(y, e, t, n); return r === d || r !== h && (!(!g.hasOwnProperty(e.type) || !g[e.type](e, y, o, a)) || p.call(y, e, t, n) === d) } var a = (e, t, n, r) => e || o(t, n, r), l = r, p = r, g = c, y = { break: d, skip: h, root: e, stylesheet: null, atrule: null, atrulePrelude: null, rule: null, selector: null, block: null, declaration: null, function: null }; if ("function" == typeof n) l = n; else if (n && (l = i(n.enter), p = i(n.leave), n.reverse && (g = u), n.visit)) { if (m.hasOwnProperty(n.visit)) g = n.reverse ? f[n.visit] : m[n.visit]; else if (!t.hasOwnProperty(n.visit)) throw new Error("Bad value `" + n.visit + "` for `visit` option (should be: " + Object.keys(t).join(", ") + ")"); l = s(l, n.visit), p = s(p, n.visit) } if (l === r && p === r) throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function"); o(e) }; return g.break = d, g.skip = h, g.find = function (e, t) { var n = null; return g(e, (function (e, r, i) { if (t.call(this, e, r, i)) return n = e, d })), n }, g.findLast = function (e, t) { var n = null; return g(e, { reverse: !0, enter: function (e, r, i) { if (t.call(this, e, r, i)) return n = e, d } }), n }, g.findAll = function (e, t) { var n = []; return g(e, (function (e, r, i) { t.call(this, e, r, i) && n.push(e) })), n }, g } }, function (e, t, n) { var r = n(20); e.exports = function e(t) { var n = {}; for (var i in t) { var s = t[i]; s && (Array.isArray(s) || s instanceof r ? s = s.map(e) : s.constructor === Object && (s = e(s))), n[i] = s } return n } }, function (e, t) { const n = Object.prototype.hasOwnProperty, r = { generic: !0, types: a, atrules: { prelude: l, descriptors: l }, properties: a, parseContext: function (e, t) { return Object.assign(e, t) }, scope: function e(t, r) { for (const o in r) n.call(r, o) && (i(t[o]) ? e(t[o], s(r[o])) : t[o] = s(r[o])); return t }, atrule: ["parse"], pseudo: ["parse"], node: ["name", "structure", "parse", "generate", "walkContext"] }; function i(e) { return e && e.constructor === Object } function s(e) { return i(e) ? Object.assign({}, e) : e } function o(e, t) { return "string" == typeof t && /^\s*\|/.test(t) ? "string" == typeof e ? e + t : t.replace(/^\s*\|\s*/, "") : t || null } function a(e, t) { if ("string" == typeof t) return o(e, t); const r = Object.assign({}, e); for (let i in t) n.call(t, i) && (r[i] = o(n.call(e, i) ? e[i] : void 0, t[i])); return r } function l(e, t) { const n = a(e, t); return !i(n) || Object.keys(n).length ? n : null } function c(e, t, r) { for (const o in r) if (!1 !== n.call(r, o)) if (!0 === r[o]) o in t && n.call(t, o) && (e[o] = s(t[o])); else if (r[o]) if ("function" == typeof r[o]) { const n = r[o]; e[o] = n({}, e[o]), e[o] = n(e[o] || {}, t[o]) } else if (i(r[o])) { const n = {}; for (let t in e[o]) n[t] = c({}, e[o][t], r[o]); for (let e in t[o]) n[e] = c(n[e] || {}, t[o][e], r[o]); e[o] = n } else if (Array.isArray(r[o])) { const i = {}, s = r[o].reduce((function (e, t) { return e[t] = !0, e }), {}); for (const [t, n] of Object.entries(e[o] || {})) i[t] = {}, n && c(i[t], n, s); for (const e in t[o]) n.call(t[o], e) && (i[e] || (i[e] = {}), t[o] && t[o][e] && c(i[e], t[o][e], s)); e[o] = i } return e } e.exports = (e, t) => c(e, t, r) }, function (e, t, n) { var r = n(297); e.exports = { generic: !0, types: r.types, atrules: r.atrules, properties: r.properties, node: n(60) } }, function (e, t, n) { const r = n(298), i = n(299), s = n(300), o = n(301), a = /^\s*\|\s*/; function l(e, t) { const n = {}; for (const t in e) n[t] = e[t].syntax || e[t]; for (const r in t) r in e ? t[r].syntax ? n[r] = a.test(t[r].syntax) ? n[r] + " " + t[r].syntax.trim() : t[r].syntax : delete n[r] : t[r].syntax && (n[r] = t[r].syntax.replace(a, "")); return n } function c(e) { const t = {}; for (const n in e) t[n] = e[n].syntax; return t } e.exports = { types: l(s, o.syntaxes), atrules: function (e, t) { const n = {}; for (const r in e) { const i = t[r] && t[r].descriptors || null; n[r] = { prelude: r in t && "prelude" in t[r] ? t[r].prelude : e[r].prelude || null, descriptors: e[r].descriptors ? l(e[r].descriptors, i || {}) : i && c(i) } } for (const r in t) hasOwnProperty.call(e, r) || (n[r] = { prelude: t[r].prelude || null, descriptors: t[r].descriptors && c(t[r].descriptors) }); return n }(function (e) { const t = Object.create(null); for (const n in e) { const r = e[n]; let i = null; if (r.descriptors) { i = Object.create(null); for (const e in r.descriptors) i[e] = r.descriptors[e].syntax } t[n.substr(1)] = { prelude: r.syntax.trim().match(/^@\S+\s+([^;\{]*)/)[1].trim() || null, descriptors: i } } return t }(r), o.atrules), properties: l(i, o.properties) } }, function (e) { e.exports = JSON.parse('{"@charset":{"syntax":"@charset \\"\\";","groups":["CSS Charsets"],"status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/@charset"},"@counter-style":{"syntax":"@counter-style {\\n [ system: ; ] ||\\n [ symbols: ; ] ||\\n [ additive-symbols: ; ] ||\\n [ negative: ; ] ||\\n [ prefix: ; ] ||\\n [ suffix: ; ] ||\\n [ range: ; ] ||\\n [ pad: ; ] ||\\n [ speak-as: ; ] ||\\n [ fallback: ; ]\\n}","interfaces":["CSSCounterStyleRule"],"groups":["CSS Counter Styles"],"descriptors":{"additive-symbols":{"syntax":"[ && ]#","media":"all","initial":"n/a (required)","percentages":"no","computed":"asSpecified","order":"orderOfAppearance","status":"standard"},"fallback":{"syntax":"","media":"all","initial":"decimal","percentages":"no","computed":"asSpecified","order":"uniqueOrder","status":"standard"},"negative":{"syntax":" ?","media":"all","initial":"\\"-\\" hyphen-minus","percentages":"no","computed":"asSpecified","order":"orderOfAppearance","status":"standard"},"pad":{"syntax":" && ","media":"all","initial":"0 \\"\\"","percentages":"no","computed":"asSpecified","order":"uniqueOrder","status":"standard"},"prefix":{"syntax":"","media":"all","initial":"\\"\\"","percentages":"no","computed":"asSpecified","order":"uniqueOrder","status":"standard"},"range":{"syntax":"[ [ | infinite ]{2} ]# | auto","media":"all","initial":"auto","percentages":"no","computed":"asSpecified","order":"orderOfAppearance","status":"standard"},"speak-as":{"syntax":"auto | bullets | numbers | words | spell-out | ","media":"all","initial":"auto","percentages":"no","computed":"asSpecified","order":"uniqueOrder","status":"standard"},"suffix":{"syntax":"","media":"all","initial":"\\". \\"","percentages":"no","computed":"asSpecified","order":"uniqueOrder","status":"standard"},"symbols":{"syntax":"+","media":"all","initial":"n/a (required)","percentages":"no","computed":"asSpecified","order":"orderOfAppearance","status":"standard"},"system":{"syntax":"cyclic | numeric | alphabetic | symbolic | additive | [ fixed ? ] | [ extends ]","media":"all","initial":"symbolic","percentages":"no","computed":"asSpecified","order":"uniqueOrder","status":"standard"}},"status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/@counter-style"},"@document":{"syntax":"@document [ | url-prefix() | domain() | media-document() | regexp() ]# {\\n \\n}","interfaces":["CSSGroupingRule","CSSConditionRule"],"groups":["CSS Conditional Rules"],"status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/@document"},"@font-face":{"syntax":"@font-face {\\n [ font-family: ; ] ||\\n [ src: ; ] ||\\n [ unicode-range: ; ] ||\\n [ font-variant: ; ] ||\\n [ font-feature-settings: ; ] ||\\n [ font-variation-settings: ; ] ||\\n [ font-stretch: ; ] ||\\n [ font-weight: ; ] ||\\n [ font-style: ; ]\\n}","interfaces":["CSSFontFaceRule"],"groups":["CSS Fonts"],"descriptors":{"font-display":{"syntax":"[ auto | block | swap | fallback | optional ]","media":"visual","percentages":"no","initial":"auto","computed":"asSpecified","order":"uniqueOrder","status":"experimental"},"font-family":{"syntax":"","media":"all","initial":"n/a (required)","percentages":"no","computed":"asSpecified","order":"uniqueOrder","status":"standard"},"font-feature-settings":{"syntax":"normal | #","media":"all","initial":"normal","percentages":"no","computed":"asSpecified","order":"orderOfAppearance","status":"standard"},"font-variation-settings":{"syntax":"normal | [ ]#","media":"all","initial":"normal","percentages":"no","computed":"asSpecified","order":"orderOfAppearance","status":"standard"},"font-stretch":{"syntax":"{1,2}","media":"all","initial":"normal","percentages":"no","computed":"asSpecified","order":"uniqueOrder","status":"standard"},"font-style":{"syntax":"normal | italic | oblique {0,2}","media":"all","initial":"normal","percentages":"no","computed":"asSpecified","order":"uniqueOrder","status":"standard"},"font-weight":{"syntax":"{1,2}","media":"all","initial":"normal","percentages":"no","computed":"asSpecified","order":"uniqueOrder","status":"standard"},"font-variant":{"syntax":"normal | none | [ || || || || stylistic() || historical-forms || styleset(#) || character-variant(#) || swash() || ornaments() || annotation() || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || || || || ordinal || slashed-zero || || || ruby ]","media":"all","initial":"normal","percentages":"no","computed":"asSpecified","order":"orderOfAppearance","status":"standard"},"src":{"syntax":"[ [ format( # ) ]? | local( ) ]#","media":"all","initial":"n/a (required)","percentages":"no","computed":"asSpecified","order":"orderOfAppearance","status":"standard"},"unicode-range":{"syntax":"#","media":"all","initial":"U+0-10FFFF","percentages":"no","computed":"asSpecified","order":"orderOfAppearance","status":"standard"}},"status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/@font-face"},"@font-feature-values":{"syntax":"@font-feature-values # {\\n \\n}","interfaces":["CSSFontFeatureValuesRule"],"groups":["CSS Fonts"],"status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/@font-feature-values"},"@import":{"syntax":"@import [ | ] [ ]?;","groups":["Media Queries"],"status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/@import"},"@keyframes":{"syntax":"@keyframes {\\n \\n}","interfaces":["CSSKeyframeRule","CSSKeyframesRule"],"groups":["CSS Animations"],"status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/@keyframes"},"@media":{"syntax":"@media {\\n \\n}","interfaces":["CSSGroupingRule","CSSConditionRule","CSSMediaRule","CSSCustomMediaRule"],"groups":["CSS Conditional Rules","Media Queries"],"status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/@media"},"@namespace":{"syntax":"@namespace ? [ | ];","groups":["CSS Namespaces"],"status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/@namespace"},"@page":{"syntax":"@page {\\n \\n}","interfaces":["CSSPageRule"],"groups":["CSS Pages"],"descriptors":{"bleed":{"syntax":"auto | ","media":["visual","paged"],"initial":"auto","percentages":"no","computed":"asSpecified","order":"uniqueOrder","status":"standard"},"marks":{"syntax":"none | [ crop || cross ]","media":["visual","paged"],"initial":"none","percentages":"no","computed":"asSpecified","order":"orderOfAppearance","status":"standard"},"size":{"syntax":"{1,2} | auto | [ || [ portrait | landscape ] ]","media":["visual","paged"],"initial":"auto","percentages":"no","computed":"asSpecifiedRelativeToAbsoluteLengths","order":"orderOfAppearance","status":"standard"}},"status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/@page"},"@property":{"syntax":"@property {\\n \\n}","interfaces":["CSS","CSSPropertyRule"],"groups":["CSS Houdini"],"descriptors":{"syntax":{"syntax":"","media":"all","percentages":"no","initial":"n/a (required)","computed":"asSpecified","order":"uniqueOrder","status":"experimental"},"inherits":{"syntax":"true | false","media":"all","percentages":"no","initial":"auto","computed":"asSpecified","order":"uniqueOrder","status":"experimental"},"initial-value":{"syntax":"","media":"all","initial":"n/a (required)","percentages":"no","computed":"asSpecified","order":"uniqueOrder","status":"experimental"}},"status":"experimental","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/@property"},"@supports":{"syntax":"@supports {\\n \\n}","interfaces":["CSSGroupingRule","CSSConditionRule","CSSSupportsRule"],"groups":["CSS Conditional Rules"],"status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/@supports"},"@viewport":{"syntax":"@viewport {\\n \\n}","interfaces":["CSSViewportRule"],"groups":["CSS Device Adaptation"],"descriptors":{"height":{"syntax":"{1,2}","media":["visual","continuous"],"initial":["min-height","max-height"],"percentages":["min-height","max-height"],"computed":["min-height","max-height"],"order":"orderOfAppearance","status":"standard"},"max-height":{"syntax":"","media":["visual","continuous"],"initial":"auto","percentages":"referToHeightOfInitialViewport","computed":"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto","order":"uniqueOrder","status":"standard"},"max-width":{"syntax":"","media":["visual","continuous"],"initial":"auto","percentages":"referToWidthOfInitialViewport","computed":"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto","order":"uniqueOrder","status":"standard"},"max-zoom":{"syntax":"auto | | ","media":["visual","continuous"],"initial":"auto","percentages":"the zoom factor itself","computed":"autoNonNegativeOrPercentage","order":"uniqueOrder","status":"standard"},"min-height":{"syntax":"","media":["visual","continuous"],"initial":"auto","percentages":"referToHeightOfInitialViewport","computed":"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto","order":"uniqueOrder","status":"standard"},"min-width":{"syntax":"","media":["visual","continuous"],"initial":"auto","percentages":"referToWidthOfInitialViewport","computed":"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto","order":"uniqueOrder","status":"standard"},"min-zoom":{"syntax":"auto | | ","media":["visual","continuous"],"initial":"auto","percentages":"the zoom factor itself","computed":"autoNonNegativeOrPercentage","order":"uniqueOrder","status":"standard"},"orientation":{"syntax":"auto | portrait | landscape","media":["visual","continuous"],"initial":"auto","percentages":"referToSizeOfBoundingBox","computed":"asSpecified","order":"uniqueOrder","status":"standard"},"user-zoom":{"syntax":"zoom | fixed","media":["visual","continuous"],"initial":"zoom","percentages":"referToSizeOfBoundingBox","computed":"asSpecified","order":"uniqueOrder","status":"standard"},"viewport-fit":{"syntax":"auto | contain | cover","media":["visual","continuous"],"initial":"auto","percentages":"no","computed":"asSpecified","order":"uniqueOrder","status":"standard"},"width":{"syntax":"{1,2}","media":["visual","continuous"],"initial":["min-width","max-width"],"percentages":["min-width","max-width"],"computed":["min-width","max-width"],"order":"orderOfAppearance","status":"standard"},"zoom":{"syntax":"auto | | ","media":["visual","continuous"],"initial":"auto","percentages":"the zoom factor itself","computed":"autoNonNegativeOrPercentage","order":"uniqueOrder","status":"standard"}},"status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/@viewport"}}') }, function (e) { e.exports = JSON.parse('{"--*":{"syntax":"","media":"all","inherited":true,"animationType":"discrete","percentages":"no","groups":["CSS Variables"],"initial":"seeProse","appliesto":"allElements","computed":"asSpecifiedWithVarsSubstituted","order":"perGrammar","status":"experimental","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/--*"},"-ms-accelerator":{"syntax":"false | true","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"false","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-accelerator"},"-ms-block-progression":{"syntax":"tb | rl | bt | lr","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"tb","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-block-progression"},"-ms-content-zoom-chaining":{"syntax":"none | chained","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"none","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-chaining"},"-ms-content-zooming":{"syntax":"none | zoom","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"zoomForTheTopLevelNoneForTheRest","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zooming"},"-ms-content-zoom-limit":{"syntax":"<\'-ms-content-zoom-limit-min\'> <\'-ms-content-zoom-limit-max\'>","media":"interactive","inherited":false,"animationType":"discrete","percentages":["-ms-content-zoom-limit-max","-ms-content-zoom-limit-min"],"groups":["Microsoft Extensions"],"initial":["-ms-content-zoom-limit-max","-ms-content-zoom-limit-min"],"appliesto":"nonReplacedBlockAndInlineBlockElements","computed":["-ms-content-zoom-limit-max","-ms-content-zoom-limit-min"],"order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-limit"},"-ms-content-zoom-limit-max":{"syntax":"","media":"interactive","inherited":false,"animationType":"discrete","percentages":"maxZoomFactor","groups":["Microsoft Extensions"],"initial":"400%","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-limit-max"},"-ms-content-zoom-limit-min":{"syntax":"","media":"interactive","inherited":false,"animationType":"discrete","percentages":"minZoomFactor","groups":["Microsoft Extensions"],"initial":"100%","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-limit-min"},"-ms-content-zoom-snap":{"syntax":"<\'-ms-content-zoom-snap-type\'> || <\'-ms-content-zoom-snap-points\'>","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":["-ms-content-zoom-snap-type","-ms-content-zoom-snap-points"],"appliesto":"nonReplacedBlockAndInlineBlockElements","computed":["-ms-content-zoom-snap-type","-ms-content-zoom-snap-points"],"order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-snap"},"-ms-content-zoom-snap-points":{"syntax":"snapInterval( , ) | snapList( # )","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"snapInterval(0%, 100%)","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-snap-points"},"-ms-content-zoom-snap-type":{"syntax":"none | proximity | mandatory","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"none","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-snap-type"},"-ms-filter":{"syntax":"","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"\\"\\"","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-filter"},"-ms-flow-from":{"syntax":"[ none | ]#","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"none","appliesto":"nonReplacedElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-flow-from"},"-ms-flow-into":{"syntax":"[ none | ]#","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"none","appliesto":"iframeElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-flow-into"},"-ms-grid-columns":{"syntax":"none | | ","media":"visual","inherited":false,"animationType":"simpleListOfLpcDifferenceLpc","percentages":"referToDimensionOfContentArea","groups":["CSS Grid Layout"],"initial":"none","appliesto":"gridContainers","computed":"asSpecifiedRelativeToAbsoluteLengths","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-grid-columns"},"-ms-grid-rows":{"syntax":"none | | ","media":"visual","inherited":false,"animationType":"simpleListOfLpcDifferenceLpc","percentages":"referToDimensionOfContentArea","groups":["CSS Grid Layout"],"initial":"none","appliesto":"gridContainers","computed":"asSpecifiedRelativeToAbsoluteLengths","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-grid-rows"},"-ms-high-contrast-adjust":{"syntax":"auto | none","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"auto","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-high-contrast-adjust"},"-ms-hyphenate-limit-chars":{"syntax":"auto | {1,3}","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"auto","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-hyphenate-limit-chars"},"-ms-hyphenate-limit-lines":{"syntax":"no-limit | ","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"no-limit","appliesto":"blockContainerElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-hyphenate-limit-lines"},"-ms-hyphenate-limit-zone":{"syntax":" | ","media":"visual","inherited":true,"animationType":"discrete","percentages":"referToLineBoxWidth","groups":["Microsoft Extensions"],"initial":"0","appliesto":"blockContainerElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-hyphenate-limit-zone"},"-ms-ime-align":{"syntax":"auto | after","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"auto","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-ime-align"},"-ms-overflow-style":{"syntax":"auto | none | scrollbar | -ms-autohiding-scrollbar","media":"interactive","inherited":true,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"auto","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-overflow-style"},"-ms-scrollbar-3dlight-color":{"syntax":"","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"dependsOnUserAgent","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-3dlight-color"},"-ms-scrollbar-arrow-color":{"syntax":"","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"ButtonText","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-arrow-color"},"-ms-scrollbar-base-color":{"syntax":"","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"dependsOnUserAgent","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-base-color"},"-ms-scrollbar-darkshadow-color":{"syntax":"","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"ThreeDDarkShadow","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-darkshadow-color"},"-ms-scrollbar-face-color":{"syntax":"","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"ThreeDFace","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-face-color"},"-ms-scrollbar-highlight-color":{"syntax":"","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"ThreeDHighlight","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-highlight-color"},"-ms-scrollbar-shadow-color":{"syntax":"","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"ThreeDDarkShadow","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-shadow-color"},"-ms-scrollbar-track-color":{"syntax":"","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"Scrollbar","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-track-color"},"-ms-scroll-chaining":{"syntax":"chained | none","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"chained","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-chaining"},"-ms-scroll-limit":{"syntax":"<\'-ms-scroll-limit-x-min\'> <\'-ms-scroll-limit-y-min\'> <\'-ms-scroll-limit-x-max\'> <\'-ms-scroll-limit-y-max\'>","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":["-ms-scroll-limit-x-min","-ms-scroll-limit-y-min","-ms-scroll-limit-x-max","-ms-scroll-limit-y-max"],"appliesto":"nonReplacedBlockAndInlineBlockElements","computed":["-ms-scroll-limit-x-min","-ms-scroll-limit-y-min","-ms-scroll-limit-x-max","-ms-scroll-limit-y-max"],"order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-limit"},"-ms-scroll-limit-x-max":{"syntax":"auto | ","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"auto","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-limit-x-max"},"-ms-scroll-limit-x-min":{"syntax":"","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"0","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-limit-x-min"},"-ms-scroll-limit-y-max":{"syntax":"auto | ","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"auto","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-limit-y-max"},"-ms-scroll-limit-y-min":{"syntax":"","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"0","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-limit-y-min"},"-ms-scroll-rails":{"syntax":"none | railed","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"railed","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-rails"},"-ms-scroll-snap-points-x":{"syntax":"snapInterval( , ) | snapList( # )","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"snapInterval(0px, 100%)","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-snap-points-x"},"-ms-scroll-snap-points-y":{"syntax":"snapInterval( , ) | snapList( # )","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"snapInterval(0px, 100%)","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-snap-points-y"},"-ms-scroll-snap-type":{"syntax":"none | proximity | mandatory","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"none","appliesto":"nonReplacedBlockAndInlineBlockElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-snap-type"},"-ms-scroll-snap-x":{"syntax":"<\'-ms-scroll-snap-type\'> <\'-ms-scroll-snap-points-x\'>","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":["-ms-scroll-snap-type","-ms-scroll-snap-points-x"],"appliesto":"nonReplacedBlockAndInlineBlockElements","computed":["-ms-scroll-snap-type","-ms-scroll-snap-points-x"],"order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-snap-x"},"-ms-scroll-snap-y":{"syntax":"<\'-ms-scroll-snap-type\'> <\'-ms-scroll-snap-points-y\'>","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":["-ms-scroll-snap-type","-ms-scroll-snap-points-y"],"appliesto":"nonReplacedBlockAndInlineBlockElements","computed":["-ms-scroll-snap-type","-ms-scroll-snap-points-y"],"order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-snap-y"},"-ms-scroll-translation":{"syntax":"none | vertical-to-horizontal","media":"interactive","inherited":true,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"none","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-translation"},"-ms-text-autospace":{"syntax":"none | ideograph-alpha | ideograph-numeric | ideograph-parenthesis | ideograph-space","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"none","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-text-autospace"},"-ms-touch-select":{"syntax":"grippers | none","media":"interactive","inherited":true,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"grippers","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-touch-select"},"-ms-user-select":{"syntax":"none | element | text","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"text","appliesto":"nonReplacedElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-user-select"},"-ms-wrap-flow":{"syntax":"auto | both | start | end | maximum | clear","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"auto","appliesto":"blockLevelElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-wrap-flow"},"-ms-wrap-margin":{"syntax":"","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"0","appliesto":"exclusionElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-wrap-margin"},"-ms-wrap-through":{"syntax":"wrap | none","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Microsoft Extensions"],"initial":"wrap","appliesto":"blockLevelElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-ms-wrap-through"},"-moz-appearance":{"syntax":"none | button | button-arrow-down | button-arrow-next | button-arrow-previous | button-arrow-up | button-bevel | button-focus | caret | checkbox | checkbox-container | checkbox-label | checkmenuitem | dualbutton | groupbox | listbox | listitem | menuarrow | menubar | menucheckbox | menuimage | menuitem | menuitemtext | menulist | menulist-button | menulist-text | menulist-textfield | menupopup | menuradio | menuseparator | meterbar | meterchunk | progressbar | progressbar-vertical | progresschunk | progresschunk-vertical | radio | radio-container | radio-label | radiomenuitem | range | range-thumb | resizer | resizerpanel | scale-horizontal | scalethumbend | scalethumb-horizontal | scalethumbstart | scalethumbtick | scalethumb-vertical | scale-vertical | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | separator | sheet | spinner | spinner-downbutton | spinner-textfield | spinner-upbutton | splitter | statusbar | statusbarpanel | tab | tabpanel | tabpanels | tab-scroll-arrow-back | tab-scroll-arrow-forward | textfield | textfield-multiline | toolbar | toolbarbutton | toolbarbutton-dropdown | toolbargripper | toolbox | tooltip | treeheader | treeheadercell | treeheadersortarrow | treeitem | treeline | treetwisty | treetwistyopen | treeview | -moz-mac-unified-toolbar | -moz-win-borderless-glass | -moz-win-browsertabbar-toolbox | -moz-win-communicationstext | -moz-win-communications-toolbox | -moz-win-exclude-glass | -moz-win-glass | -moz-win-mediatext | -moz-win-media-toolbox | -moz-window-button-box | -moz-window-button-box-maximized | -moz-window-button-close | -moz-window-button-maximize | -moz-window-button-minimize | -moz-window-button-restore | -moz-window-frame-bottom | -moz-window-frame-left | -moz-window-frame-right | -moz-window-titlebar | -moz-window-titlebar-maximized","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions","WebKit Extensions"],"initial":"noneButOverriddenInUserAgentCSS","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/appearance"},"-moz-binding":{"syntax":" | none","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"none","appliesto":"allElementsExceptGeneratedContentOrPseudoElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-binding"},"-moz-border-bottom-colors":{"syntax":"+ | none","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"none","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-border-bottom-colors"},"-moz-border-left-colors":{"syntax":"+ | none","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"none","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-border-left-colors"},"-moz-border-right-colors":{"syntax":"+ | none","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"none","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-border-right-colors"},"-moz-border-top-colors":{"syntax":"+ | none","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"none","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-border-top-colors"},"-moz-context-properties":{"syntax":"none | [ fill | fill-opacity | stroke | stroke-opacity ]#","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"none","appliesto":"allElementsThatCanReferenceImages","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-context-properties"},"-moz-float-edge":{"syntax":"border-box | content-box | margin-box | padding-box","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"content-box","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-float-edge"},"-moz-force-broken-image-icon":{"syntax":"","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"0","appliesto":"images","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-force-broken-image-icon"},"-moz-image-region":{"syntax":" | auto","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"auto","appliesto":"xulImageElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-image-region"},"-moz-orient":{"syntax":"inline | block | horizontal | vertical","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"inline","appliesto":"anyElementEffectOnProgressAndMeter","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-orient"},"-moz-outline-radius":{"syntax":"{1,4} [ / {1,4} ]?","media":"visual","inherited":false,"animationType":["-moz-outline-radius-topleft","-moz-outline-radius-topright","-moz-outline-radius-bottomright","-moz-outline-radius-bottomleft"],"percentages":["-moz-outline-radius-topleft","-moz-outline-radius-topright","-moz-outline-radius-bottomright","-moz-outline-radius-bottomleft"],"groups":["Mozilla Extensions"],"initial":["-moz-outline-radius-topleft","-moz-outline-radius-topright","-moz-outline-radius-bottomright","-moz-outline-radius-bottomleft"],"appliesto":"allElements","computed":["-moz-outline-radius-topleft","-moz-outline-radius-topright","-moz-outline-radius-bottomright","-moz-outline-radius-bottomleft"],"order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius"},"-moz-outline-radius-bottomleft":{"syntax":"","media":"visual","inherited":false,"animationType":"lpc","percentages":"referToDimensionOfBorderBox","groups":["Mozilla Extensions"],"initial":"0","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-bottomleft"},"-moz-outline-radius-bottomright":{"syntax":"","media":"visual","inherited":false,"animationType":"lpc","percentages":"referToDimensionOfBorderBox","groups":["Mozilla Extensions"],"initial":"0","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-bottomright"},"-moz-outline-radius-topleft":{"syntax":"","media":"visual","inherited":false,"animationType":"lpc","percentages":"referToDimensionOfBorderBox","groups":["Mozilla Extensions"],"initial":"0","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-topleft"},"-moz-outline-radius-topright":{"syntax":"","media":"visual","inherited":false,"animationType":"lpc","percentages":"referToDimensionOfBorderBox","groups":["Mozilla Extensions"],"initial":"0","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-topright"},"-moz-stack-sizing":{"syntax":"ignore | stretch-to-fit","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"stretch-to-fit","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-stack-sizing"},"-moz-text-blink":{"syntax":"none | blink","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"none","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-text-blink"},"-moz-user-focus":{"syntax":"ignore | normal | select-after | select-before | select-menu | select-same | select-all | none","media":"interactive","inherited":false,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"none","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-user-focus"},"-moz-user-input":{"syntax":"auto | none | enabled | disabled","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"auto","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-user-input"},"-moz-user-modify":{"syntax":"read-only | read-write | write-only","media":"interactive","inherited":true,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"read-only","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-user-modify"},"-moz-window-dragging":{"syntax":"drag | no-drag","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"drag","appliesto":"allElementsCreatingNativeWindows","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-window-dragging"},"-moz-window-shadow":{"syntax":"default | menu | tooltip | sheet | none","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["Mozilla Extensions"],"initial":"default","appliesto":"allElementsCreatingNativeWindows","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-moz-window-shadow"},"-webkit-appearance":{"syntax":"none | button | button-bevel | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | push-button | radio | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield | -apple-pay-button","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"noneButOverriddenInUserAgentCSS","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/appearance"},"-webkit-border-before":{"syntax":"<\'border-width\'> || <\'border-style\'> || <\'color\'>","media":"visual","inherited":true,"animationType":"discrete","percentages":["-webkit-border-before-width"],"groups":["WebKit Extensions"],"initial":["border-width","border-style","color"],"appliesto":"allElements","computed":["border-width","border-style","color"],"order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-border-before"},"-webkit-border-before-color":{"syntax":"<\'color\'>","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"currentcolor","appliesto":"allElements","computed":"computedColor","order":"uniqueOrder","status":"nonstandard"},"-webkit-border-before-style":{"syntax":"<\'border-style\'>","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"none","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard"},"-webkit-border-before-width":{"syntax":"<\'border-width\'>","media":"visual","inherited":true,"animationType":"discrete","percentages":"logicalWidthOfContainingBlock","groups":["WebKit Extensions"],"initial":"medium","appliesto":"allElements","computed":"absoluteLengthZeroIfBorderStyleNoneOrHidden","order":"uniqueOrder","status":"nonstandard"},"-webkit-box-reflect":{"syntax":"[ above | below | right | left ]? ? ?","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"none","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-box-reflect"},"-webkit-line-clamp":{"syntax":"none | ","media":"visual","inherited":false,"animationType":"byComputedValueType","percentages":"no","groups":["WebKit Extensions","CSS Overflow"],"initial":"none","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-line-clamp"},"-webkit-mask":{"syntax":"[ || [ / ]? || || [ | border | padding | content | text ] || [ | border | padding | content ] ]#","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":["-webkit-mask-image","-webkit-mask-repeat","-webkit-mask-attachment","-webkit-mask-position","-webkit-mask-origin","-webkit-mask-clip"],"appliesto":"allElements","computed":["-webkit-mask-image","-webkit-mask-repeat","-webkit-mask-attachment","-webkit-mask-position","-webkit-mask-origin","-webkit-mask-clip"],"order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/mask"},"-webkit-mask-attachment":{"syntax":"#","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"scroll","appliesto":"allElements","computed":"asSpecified","order":"orderOfAppearance","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-attachment"},"-webkit-mask-clip":{"syntax":"[ | border | padding | content | text ]#","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"border","appliesto":"allElements","computed":"asSpecified","order":"orderOfAppearance","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/mask-clip"},"-webkit-mask-composite":{"syntax":"#","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"source-over","appliesto":"allElements","computed":"asSpecified","order":"orderOfAppearance","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-composite"},"-webkit-mask-image":{"syntax":"#","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"none","appliesto":"allElements","computed":"absoluteURIOrNone","order":"orderOfAppearance","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/mask-image"},"-webkit-mask-origin":{"syntax":"[ | border | padding | content ]#","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"padding","appliesto":"allElements","computed":"asSpecified","order":"orderOfAppearance","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/mask-origin"},"-webkit-mask-position":{"syntax":"#","media":"visual","inherited":false,"animationType":"discrete","percentages":"referToSizeOfElement","groups":["WebKit Extensions"],"initial":"0% 0%","appliesto":"allElements","computed":"absoluteLengthOrPercentage","order":"orderOfAppearance","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/mask-position"},"-webkit-mask-position-x":{"syntax":"[ | left | center | right ]#","media":"visual","inherited":false,"animationType":"discrete","percentages":"referToSizeOfElement","groups":["WebKit Extensions"],"initial":"0%","appliesto":"allElements","computed":"absoluteLengthOrPercentage","order":"orderOfAppearance","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-x"},"-webkit-mask-position-y":{"syntax":"[ | top | center | bottom ]#","media":"visual","inherited":false,"animationType":"discrete","percentages":"referToSizeOfElement","groups":["WebKit Extensions"],"initial":"0%","appliesto":"allElements","computed":"absoluteLengthOrPercentage","order":"orderOfAppearance","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-y"},"-webkit-mask-repeat":{"syntax":"#","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"repeat","appliesto":"allElements","computed":"asSpecified","order":"orderOfAppearance","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/mask-repeat"},"-webkit-mask-repeat-x":{"syntax":"repeat | no-repeat | space | round","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"repeat","appliesto":"allElements","computed":"asSpecified","order":"orderOfAppearance","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-x"},"-webkit-mask-repeat-y":{"syntax":"repeat | no-repeat | space | round","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"repeat","appliesto":"allElements","computed":"absoluteLengthOrPercentage","order":"orderOfAppearance","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-y"},"-webkit-mask-size":{"syntax":"#","media":"visual","inherited":false,"animationType":"discrete","percentages":"relativeToBackgroundPositioningArea","groups":["WebKit Extensions"],"initial":"auto auto","appliesto":"allElements","computed":"asSpecified","order":"orderOfAppearance","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/mask-size"},"-webkit-overflow-scrolling":{"syntax":"auto | touch","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"auto","appliesto":"scrollingBoxes","computed":"asSpecified","order":"orderOfAppearance","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-overflow-scrolling"},"-webkit-tap-highlight-color":{"syntax":"","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"black","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-tap-highlight-color"},"-webkit-text-fill-color":{"syntax":"","media":"visual","inherited":true,"animationType":"color","percentages":"no","groups":["WebKit Extensions"],"initial":"currentcolor","appliesto":"allElements","computed":"computedColor","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-fill-color"},"-webkit-text-stroke":{"syntax":" || ","media":"visual","inherited":true,"animationType":["-webkit-text-stroke-width","-webkit-text-stroke-color"],"percentages":"no","groups":["WebKit Extensions"],"initial":["-webkit-text-stroke-width","-webkit-text-stroke-color"],"appliesto":"allElements","computed":["-webkit-text-stroke-width","-webkit-text-stroke-color"],"order":"canonicalOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke"},"-webkit-text-stroke-color":{"syntax":"","media":"visual","inherited":true,"animationType":"color","percentages":"no","groups":["WebKit Extensions"],"initial":"currentcolor","appliesto":"allElements","computed":"computedColor","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-color"},"-webkit-text-stroke-width":{"syntax":"","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"0","appliesto":"allElements","computed":"absoluteLength","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-width"},"-webkit-touch-callout":{"syntax":"default | none","media":"visual","inherited":true,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"default","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/-webkit-touch-callout"},"-webkit-user-modify":{"syntax":"read-only | read-write | read-write-plaintext-only","media":"interactive","inherited":true,"animationType":"discrete","percentages":"no","groups":["WebKit Extensions"],"initial":"read-only","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"nonstandard"},"align-content":{"syntax":"normal | | | ? ","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["CSS Box Alignment"],"initial":"normal","appliesto":"multilineFlexContainers","computed":"asSpecified","order":"uniqueOrder","status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/align-content"},"align-items":{"syntax":"normal | stretch | | [ ? ]","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["CSS Box Alignment"],"initial":"normal","appliesto":"allElements","computed":"asSpecified","order":"uniqueOrder","status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/align-items"},"align-self":{"syntax":"auto | normal | stretch | | ? ","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["CSS Box Alignment"],"initial":"auto","appliesto":"flexItemsGridItemsAndAbsolutelyPositionedBoxes","computed":"autoOnAbsolutelyPositionedElementsValueOfAlignItemsOnParent","order":"uniqueOrder","status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/align-self"},"align-tracks":{"syntax":"[ normal | | | ? ]#","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["CSS Grid Layout"],"initial":"normal","appliesto":"gridContainersWithMasonryLayoutInTheirBlockAxis","computed":"asSpecified","order":"uniqueOrder","status":"experimental","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/align-tracks"},"all":{"syntax":"initial | inherit | unset | revert","media":"noPracticalMedia","inherited":false,"animationType":"eachOfShorthandPropertiesExceptUnicodeBiDiAndDirection","percentages":"no","groups":["CSS Miscellaneous"],"initial":"noPracticalInitialValue","appliesto":"allElements","computed":"asSpecifiedAppliesToEachProperty","order":"uniqueOrder","status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/all"},"animation":{"syntax":"#","media":"visual","inherited":false,"animationType":"discrete","percentages":"no","groups":["CSS Animations"],"initial":["animation-name","animation-duration","animation-timing-function","animation-delay","animation-iteration-count","animation-direction","animation-fill-mode","animation-play-state"],"appliesto":"allElementsAndPseudos","computed":["animation-name","animation-duration","animation-timing-function","animation-delay","animation-direction","animation-iteration-count","animation-fill-mode","animation-play-state"],"order":"orderOfAppearance","status":"standard","mdn_url":"https://developer.mozilla.org/docs/Web/CSS/animation"},"animation-delay":{"syntax":"

Overview of Planet Clicker

Planet Clicker is an incremental idle game that is a casual clicker experience where players progress by tapping, upgrading, and colonizing new planets.

Objective

In Planet Clicker, you need to collect resources from planets to unlock and explore new worlds.

The game combines tap-to-collect resources and automated production, allowing you to develop your planet sustainably. Once you meet the requirements, you can move to the next planet, unlocking various upgrades and new challenges.

How to control

Tap or click on the surface of the current planet to create resources. These resources are then used to purchase upgrades and production facilities, increasing the amount of resources collected per second.

Planet Clicker

Three types of planets

Earth

This is the first planet you start on. Earth provides basic resources and is where you learn the game's principles. From here, you increase your resources and unlock upgrades.

Mars

Once Earth is sufficiently developed, you can proceed to Mars. This planet offers new resources and more advanced upgrades, allowing you to scale up production.

Venus

This is the final planet in the initial exploration series. Venus specializes in advanced technologies and complex production complexes, offering quicker resource gathering speeds.

Upgrades on each planet

Earth upgrades

On Earth, you can invest in various facilities and upgrades to increase your income:

  • Earth Clicker - increases the number of resources per click.
  • Campfire - produces a stable resource.
  • Farm - creates agricultural resources.
  • Animal Farm - livestock help breed resources.
  • Windmill - generates wind energy and increases production.
  • Factory - large-scale production for superior income.

Mars upgrades

Mars offers new upgrade shops with higher efficiency:

  • Red Miner - resource mining machine.
  • Solar Panels - harvest solar energy as a resource.
  • Hydroponics - soilless farming that creates high yields.
  • Rover Depot - a fleet of autonomous vehicles that gather resources.

Venus upgrades

On Venus, you unlock more advanced technologies:

  • Acid Springs - a special resource.
  • Quantum Labs - high-tech manufacturing.
  • Venus Towers - massive energy towers.
  • Atmospheric Processors - converting the atmosphere into energy.