@redocly/revel-reef 0.124.0-next.1 → 0.124.0-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/cli/develop.js +1 -1
  4. package/dist/cli/develop.js.map +1 -1
  5. package/dist/cli/translations/update-translations.d.ts.map +1 -1
  6. package/dist/cli/translations/update-translations.js +1 -1
  7. package/dist/cli/translations/update-translations.js.map +1 -1
  8. package/dist/client/app/l10n/index.d.ts.map +1 -1
  9. package/dist/client/app/l10n/index.js +1 -1
  10. package/dist/client/app/l10n/index.js.map +1 -1
  11. package/dist/client/app/pages/CompilationError/CompilationError.d.ts +3 -1
  12. package/dist/client/app/pages/CompilationError/CompilationError.d.ts.map +1 -1
  13. package/dist/client/app/pages/CompilationError/CompilationError.js +2 -64
  14. package/dist/client/app/pages/CompilationError/CompilationError.js.map +1 -1
  15. package/dist/client/runtime/loader.d.ts +4 -1
  16. package/dist/client/runtime/loader.d.ts.map +1 -1
  17. package/dist/client/runtime/loader.js +1 -1
  18. package/dist/client/runtime/loader.js.map +1 -1
  19. package/dist/client/utils/utils.js +1 -1
  20. package/dist/client/utils/utils.js.map +1 -1
  21. package/dist/compiled/svgo/svgo-node.js +2 -2
  22. package/dist/server/plugins/l10n/index.d.ts.map +1 -1
  23. package/dist/server/plugins/l10n/index.js +1 -1
  24. package/dist/server/plugins/l10n/index.js.map +1 -1
  25. package/dist/server/plugins/markdown/markdoc/import-user-tags.d.ts.map +1 -1
  26. package/dist/server/plugins/markdown/markdoc/import-user-tags.js +1 -1
  27. package/dist/server/plugins/markdown/markdoc/import-user-tags.js.map +1 -1
  28. package/dist/server/ssr/render-compilation-error.d.ts +5 -0
  29. package/dist/server/ssr/render-compilation-error.d.ts.map +1 -0
  30. package/dist/server/ssr/render-compilation-error.js +41 -0
  31. package/dist/server/ssr/render-compilation-error.js.map +1 -0
  32. package/dist/server/ssr/render.d.ts.map +1 -1
  33. package/dist/server/ssr/render.js +1 -1
  34. package/dist/server/ssr/render.js.map +1 -1
  35. package/dist/server/store.d.ts +5 -1
  36. package/dist/server/store.d.ts.map +1 -1
  37. package/dist/server/store.js +1 -1
  38. package/dist/server/store.js.map +1 -1
  39. package/dist/server/web-server/middleware/dynamic-middleware/dynamic-middleware.d.ts.map +1 -1
  40. package/dist/server/web-server/middleware/dynamic-middleware/dynamic-middleware.js +1 -1
  41. package/dist/server/web-server/middleware/dynamic-middleware/dynamic-middleware.js.map +1 -1
  42. package/dist/server/web-server/routes/auth.d.ts +1 -1
  43. package/dist/server/web-server/routes/auth.d.ts.map +1 -1
  44. package/dist/server/web-server/routes/auth.js +1 -1
  45. package/dist/server/web-server/routes/auth.js.map +1 -1
  46. package/dist/server/web-server/routes/index.js +1 -1
  47. package/dist/server/web-server/routes/index.js.map +1 -1
  48. package/dist/shared/l10n/default-translations.d.ts +2 -2
  49. package/dist/shared/l10n/default-translations.d.ts.map +1 -1
  50. package/dist/shared/l10n/default-translations.js +1 -1
  51. package/dist/shared/l10n/default-translations.js.map +1 -1
  52. package/dist/shared/l10n/initL10n.d.ts.map +1 -1
  53. package/dist/shared/l10n/initL10n.js +1 -1
  54. package/dist/shared/l10n/initL10n.js.map +1 -1
  55. package/dist/shared/l10n/langs/ar.d.ts +3 -0
  56. package/dist/shared/l10n/langs/ar.d.ts.map +1 -0
  57. package/dist/shared/l10n/langs/ar.js +1 -0
  58. package/dist/shared/l10n/langs/ar.js.map +1 -0
  59. package/dist/shared/l10n/langs/de.d.ts +3 -0
  60. package/dist/shared/l10n/langs/de.d.ts.map +1 -0
  61. package/dist/shared/l10n/langs/de.js +1 -0
  62. package/dist/shared/l10n/langs/de.js.map +1 -0
  63. package/dist/shared/l10n/langs/en.d.ts +3 -0
  64. package/dist/shared/l10n/langs/en.d.ts.map +1 -0
  65. package/dist/shared/l10n/langs/en.js +1 -0
  66. package/dist/shared/l10n/langs/en.js.map +1 -0
  67. package/dist/shared/l10n/langs/es.d.ts +3 -0
  68. package/dist/shared/l10n/langs/es.d.ts.map +1 -0
  69. package/dist/shared/l10n/langs/es.js +1 -0
  70. package/dist/shared/l10n/langs/es.js.map +1 -0
  71. package/dist/shared/l10n/langs/fr.d.ts +3 -0
  72. package/dist/shared/l10n/langs/fr.d.ts.map +1 -0
  73. package/dist/shared/l10n/langs/fr.js +1 -0
  74. package/dist/shared/l10n/langs/fr.js.map +1 -0
  75. package/dist/shared/l10n/langs/hi.d.ts +3 -0
  76. package/dist/shared/l10n/langs/hi.d.ts.map +1 -0
  77. package/dist/shared/l10n/langs/hi.js +1 -0
  78. package/dist/shared/l10n/langs/hi.js.map +1 -0
  79. package/dist/shared/l10n/langs/it.d.ts +3 -0
  80. package/dist/shared/l10n/langs/it.d.ts.map +1 -0
  81. package/dist/shared/l10n/langs/it.js +1 -0
  82. package/dist/shared/l10n/langs/it.js.map +1 -0
  83. package/dist/shared/l10n/langs/ja.d.ts +3 -0
  84. package/dist/shared/l10n/langs/ja.d.ts.map +1 -0
  85. package/dist/shared/l10n/langs/ja.js +1 -0
  86. package/dist/shared/l10n/langs/ja.js.map +1 -0
  87. package/dist/shared/l10n/langs/ko.d.ts +3 -0
  88. package/dist/shared/l10n/langs/ko.d.ts.map +1 -0
  89. package/dist/shared/l10n/langs/ko.js +1 -0
  90. package/dist/shared/l10n/langs/ko.js.map +1 -0
  91. package/dist/shared/l10n/langs/pl.d.ts +3 -0
  92. package/dist/shared/l10n/langs/pl.d.ts.map +1 -0
  93. package/dist/shared/l10n/langs/pl.js +1 -0
  94. package/dist/shared/l10n/langs/pl.js.map +1 -0
  95. package/dist/shared/l10n/langs/pt-BR.d.ts +3 -0
  96. package/dist/shared/l10n/langs/pt-BR.d.ts.map +1 -0
  97. package/dist/shared/l10n/langs/pt-BR.js +1 -0
  98. package/dist/shared/l10n/langs/pt-BR.js.map +1 -0
  99. package/dist/shared/l10n/langs/pt.d.ts +3 -0
  100. package/dist/shared/l10n/langs/pt.d.ts.map +1 -0
  101. package/dist/shared/l10n/langs/pt.js +1 -0
  102. package/dist/shared/l10n/langs/pt.js.map +1 -0
  103. package/dist/shared/l10n/langs/ru.d.ts +3 -0
  104. package/dist/shared/l10n/langs/ru.d.ts.map +1 -0
  105. package/dist/shared/l10n/langs/ru.js +1 -0
  106. package/dist/shared/l10n/langs/ru.js.map +1 -0
  107. package/dist/shared/l10n/langs/uk.d.ts +3 -0
  108. package/dist/shared/l10n/langs/uk.d.ts.map +1 -0
  109. package/dist/shared/l10n/langs/uk.js +1 -0
  110. package/dist/shared/l10n/langs/uk.js.map +1 -0
  111. package/dist/shared/l10n/langs/zh.d.ts +3 -0
  112. package/dist/shared/l10n/langs/zh.d.ts.map +1 -0
  113. package/dist/shared/l10n/langs/zh.js +1 -0
  114. package/dist/shared/l10n/langs/zh.js.map +1 -0
  115. package/dist/types/extended-page-data.d.ts +1 -1
  116. package/dist/types/extended-page-data.d.ts.map +1 -1
  117. package/package.json +2 -2
@@ -38,7 +38,7 @@ plugins: [
38
38
  value: `+(n||"<empty string>")+`
39
39
  --------`+new Array(b.mismatchOffset+1).join("-")+"^",Object.assign(b,d),b.loc={source:g&&g.loc&&g.loc.source||"<unknown>",start:d,end:S},b};e.SyntaxMatchError=r,e.SyntaxReferenceError=a}),$e=O(e=>{"use strict";var t=new Map,p=new Map,y=45,s=o,c=l,u=r;function a(g,f){return f=f||0,g.length-f>=2&&g.charCodeAt(f)===y&&g.charCodeAt(f+1)===y}function r(g,f){if(f=f||0,g.length-f>=3&&g.charCodeAt(f)===y&&g.charCodeAt(f+1)!==y){let b=g.indexOf("-",f+2);if(b!==-1)return g.substring(f,b+1)}return""}function o(g){if(t.has(g))return t.get(g);let f=g.toLowerCase(),b=t.get(f);if(b===void 0){let n=a(f,0),i=n?"":r(f,0);b=Object.freeze({basename:f.substr(i.length),name:f,prefix:i,vendor:i,custom:n})}return t.set(g,b),b}function l(g){if(p.has(g))return p.get(g);let f=g,b=g[0];b==="/"?b=g[1]==="/"?"//":"/":b!=="_"&&b!=="*"&&b!=="$"&&b!=="#"&&b!=="+"&&b!=="&"&&(b="");let n=a(f,b.length);if(!n&&(f=f.toLowerCase(),p.has(f))){let S=p.get(f);return p.set(g,S),S}let i=n?"":r(f,b.length),m=f.substr(0,b.length+i.length),d=Object.freeze({basename:f.substr(m.length),name:f.substr(b.length),hack:b,vendor:i,prefix:m,custom:n});return p.set(g,d),d}e.isCustomProperty=a,e.keyword=s,e.property=c,e.vendorPrefix=u}),Tt=O(e=>{"use strict";var t=["initial","inherit","unset","revert","revert-layer"];e.cssWideKeywords=t}),Ri=O((e,t)=>{"use strict";var p=le(),y=Z(),s=he(),c=43,u=45,a=110,r=!0,o=!1;function l(i,m){return i!==null&&i.type===y.Delim&&i.value.charCodeAt(0)===m}function g(i,m,d){for(;i!==null&&(i.type===y.WhiteSpace||i.type===y.Comment);)i=d(++m);return m}function f(i,m,d,S){if(!i)return 0;let v=i.value.charCodeAt(m);if(v===c||v===u){if(d)return 0;m++}for(;m<i.value.length;m++)if(!p.isDigit(i.value.charCodeAt(m)))return 0;return S+1}function b(i,m,d){let S=!1,v=g(i,m,d);if(i=d(v),i===null)return m;if(i.type!==y.Number)if(l(i,c)||l(i,u)){if(S=!0,v=g(d(++v),v,d),i=d(v),i===null||i.type!==y.Number)return 0}else return m;if(!S){let x=i.value.charCodeAt(0);if(x!==c&&x!==u)return 0}return f(i,S?0:1,S,v)}function n(i,m){let d=0;if(!i)return 0;if(i.type===y.Number)return f(i,0,o,d);if(i.type===y.Ident&&i.value.charCodeAt(0)===u){if(!s.cmpChar(i.value,1,a))return 0;switch(i.value.length){case 2:return b(m(++d),d,m);case 3:return i.value.charCodeAt(2)!==u?0:(d=g(m(++d),d,m),i=m(d),f(i,0,r,d));default:return i.value.charCodeAt(2)!==u?0:f(i,3,r,d)}}else if(i.type===y.Ident||l(i,c)&&m(d+1).type===y.Ident){if(i.type!==y.Ident&&(i=m(++d)),i===null||!s.cmpChar(i.value,0,a))return 0;switch(i.value.length){case 1:return b(m(++d),d,m);case 2:return i.value.charCodeAt(1)!==u?0:(d=g(m(++d),d,m),i=m(d),f(i,0,r,d));default:return i.value.charCodeAt(1)!==u?0:f(i,2,r,d)}}else if(i.type===y.Dimension){let S=i.value.charCodeAt(0),v=S===c||S===u?1:0,x=v;for(;x<i.value.length&&p.isDigit(i.value.charCodeAt(x));x++);return x===v||!s.cmpChar(i.value,x,a)?0:x+1===i.value.length?b(m(++d),d,m):i.value.charCodeAt(x+1)!==u?0:x+2===i.value.length?(d=g(m(++d),d,m),i=m(d),f(i,0,r,d)):f(i,x+2,r,d)}return 0}t.exports=n}),Gi=O((e,t)=>{"use strict";var p=le(),y=Z(),s=he(),c=43,u=45,a=63,r=117;function o(n,i){return n!==null&&n.type===y.Delim&&n.value.charCodeAt(0)===i}function l(n,i){return n.value.charCodeAt(0)===i}function g(n,i,m){let d=0;for(let S=i;S<n.value.length;S++){let v=n.value.charCodeAt(S);if(v===u&&m&&d!==0)return g(n,i+d+1,!1),6;if(!p.isHexDigit(v)||++d>6)return 0}return d}function f(n,i,m){if(!n)return 0;for(;o(m(i),a);){if(++n>6)return 0;i++}return i}function b(n,i){let m=0;if(n===null||n.type!==y.Ident||!s.cmpChar(n.value,0,r)||(n=i(++m),n===null))return 0;if(o(n,c))return n=i(++m),n===null?0:n.type===y.Ident?f(g(n,0,!0),++m,i):o(n,a)?f(1,++m,i):0;if(n.type===y.Number){let d=g(n,1,!0);return d===0?0:(n=i(++m),n===null?m:n.type===y.Dimension||n.type===y.Number?!l(n,u)||!g(n,1,!1)?0:m+1:f(d,m,i))}return n.type===y.Dimension?f(g(n,1,!0),++m,i):0}t.exports=b}),ji=O(e=>{"use strict";var t=Tt(),p=Ri(),y=Gi(),s=Z(),c=le(),u=he(),a=["calc(","-moz-calc(","-webkit-calc("],r=new Map([[s.Function,s.RightParenthesis],[s.LeftParenthesis,s.RightParenthesis],[s.LeftSquareBracket,s.RightSquareBracket],[s.LeftCurlyBracket,s.RightCurlyBracket]]);function o(F,M){return M<F.length?F.charCodeAt(M):0}function l(F,M){return u.cmpStr(F,0,F.length,M)}function g(F,M){for(let G=0;G<M.length;G++)if(l(F,M[G]))return!0;return!1}function f(F,M){return M!==F.length-2?!1:o(F,M)===92&&c.isDigit(o(F,M+1))}function b(F,M,G){if(F&&F.type==="Range"){let V=Number(G!==void 0&&G!==M.length?M.substr(0,G):M);if(isNaN(V)||F.min!==null&&V<F.min&&typeof F.min!="string"||F.max!==null&&V>F.max&&typeof F.max!="string")return!0}return!1}function n(F,M){let G=0,V=[],H=0;e:do{switch(F.type){case s.RightCurlyBracket:case s.RightParenthesis:case s.RightSquareBracket:if(F.type!==G)break e;if(G=V.pop(),V.length===0){H++;break e}break;case s.Function:case s.LeftParenthesis:case s.LeftSquareBracket:case s.LeftCurlyBracket:V.push(G),G=r.get(F.type);break}H++}while(F=M(H));return H}function i(F){return function(M,G,V){return M===null?0:M.type===s.Function&&g(M.value,a)?n(M,G):F(M,G,V)}}function m(F){return function(M){return M===null||M.type!==F?0:1}}function d(F){if(F===null||F.type!==s.Ident)return 0;let M=F.value.toLowerCase();return g(M,t.cssWideKeywords)||l(M,"default")?0:1}function S(F){return F===null||F.type!==s.Ident||o(F.value,0)!==45||o(F.value,1)!==45?0:1}function v(F){if(F===null||F.type!==s.Hash)return 0;let M=F.value.length;if(M!==4&&M!==5&&M!==7&&M!==9)return 0;for(let G=1;G<M;G++)if(!c.isHexDigit(o(F.value,G)))return 0;return 1}function x(F){return F===null||F.type!==s.Hash||!c.isIdentifierStart(o(F.value,1),o(F.value,2),o(F.value,3))?0:1}function h(F,M){if(!F)return 0;let G=0,V=[],H=0;e:do{switch(F.type){case s.BadString:case s.BadUrl:break e;case s.RightCurlyBracket:case s.RightParenthesis:case s.RightSquareBracket:if(F.type!==G)break e;G=V.pop();break;case s.Semicolon:if(G===0)break e;break;case s.Delim:if(G===0&&F.value==="!")break e;break;case s.Function:case s.LeftParenthesis:case s.LeftSquareBracket:case s.LeftCurlyBracket:V.push(G),G=r.get(F.type);break}H++}while(F=M(H));return H}function k(F,M){if(!F)return 0;let G=0,V=[],H=0;e:do{switch(F.type){case s.BadString:case s.BadUrl:break e;case s.RightCurlyBracket:case s.RightParenthesis:case s.RightSquareBracket:if(F.type!==G)break e;G=V.pop();break;case s.Function:case s.LeftParenthesis:case s.LeftSquareBracket:case s.LeftCurlyBracket:V.push(G),G=r.get(F.type);break}H++}while(F=M(H));return H}function C(F){return F&&(F=new Set(F)),function(M,G,V){if(M===null||M.type!==s.Dimension)return 0;let H=u.consumeNumber(M.value,0);if(F!==null){let j=M.value.indexOf("\\",H),L=j===-1||!f(M.value,j)?M.value.substr(H):M.value.substring(H,j);if(F.has(L.toLowerCase())===!1)return 0}return b(V,M.value,H)?0:1}}function w(F,M,G){return F===null||F.type!==s.Percentage||b(G,F.value,F.value.length-1)?0:1}function A(F){return typeof F!="function"&&(F=function(){return 0}),function(M,G,V){return M!==null&&M.type===s.Number&&Number(M.value)===0?1:F(M,G,V)}}function z(F,M,G){if(F===null)return 0;let V=u.consumeNumber(F.value,0);return V!==F.value.length&&!f(F.value,V)||b(G,F.value,V)?0:1}function T(F,M,G){if(F===null||F.type!==s.Number)return 0;let V=o(F.value,0)===43||o(F.value,0)===45?1:0;for(;V<F.value.length;V++)if(!c.isDigit(o(F.value,V)))return 0;return b(G,F.value,V)?0:1}var D={"ident-token":m(s.Ident),"function-token":m(s.Function),"at-keyword-token":m(s.AtKeyword),"hash-token":m(s.Hash),"string-token":m(s.String),"bad-string-token":m(s.BadString),"url-token":m(s.Url),"bad-url-token":m(s.BadUrl),"delim-token":m(s.Delim),"number-token":m(s.Number),"percentage-token":m(s.Percentage),"dimension-token":m(s.Dimension),"whitespace-token":m(s.WhiteSpace),"CDO-token":m(s.CDO),"CDC-token":m(s.CDC),"colon-token":m(s.Colon),"semicolon-token":m(s.Semicolon),"comma-token":m(s.Comma),"[-token":m(s.LeftSquareBracket),"]-token":m(s.RightSquareBracket),"(-token":m(s.LeftParenthesis),")-token":m(s.RightParenthesis),"{-token":m(s.LeftCurlyBracket),"}-token":m(s.RightCurlyBracket)},_={string:m(s.String),ident:m(s.Ident),percentage:i(w),zero:A(),number:i(z),integer:i(T),"custom-ident":d,"custom-property-name":S,"hex-color":v,"id-selector":x,"an-plus-b":p,urange:y,"declaration-value":h,"any-value":k};function I(F){let{angle:M,decibel:G,frequency:V,flex:H,length:j,resolution:L,semitones:B,time:E}=F||{};return{dimension:i(C(null)),angle:i(C(M)),decibel:i(C(G)),frequency:i(C(V)),flex:i(C(H)),length:i(A(C(j))),resolution:i(C(L)),semitones:i(C(B)),time:i(C(E))}}function q(F){return{...D,..._,...I(F)}}e.createDemensionTypes=I,e.createGenericTypes=q,e.productionTypes=_,e.tokenTypes=D}),Ui=O(e=>{"use strict";var t=["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"],p=["deg","grad","rad","turn"],y=["s","ms"],s=["hz","khz"],c=["dpi","dpcm","dppx","x"],u=["fr"],a=["db"],r=["st"];e.angle=p,e.decibel=a,e.flex=u,e.frequency=s,e.length=t,e.resolution=c,e.semitones=r,e.time=y}),Vi=O((e,t)=>{"use strict";var p=We(),y={decorator(u){let a=[],r=null;return{...u,node(o){let l=r;r=o,u.node.call(this,o),r=l},emit(o,l,g){a.push({type:l,value:o,node:g?null:r})},result(){return a}}}};function s(u){let a=[];return p.tokenize(u,(r,o,l)=>a.push({type:r,value:u.slice(o,l),node:null})),a}function c(u,a){return typeof u=="string"?s(u):a.generate(u,y)}t.exports=c}),Bt=O(e=>{"use strict";var t=Ve();function p(y,s,c){return Object.assign(t.createCustomError("SyntaxError",y),{input:s,offset:c,rawMessage:y,message:y+`
40
40
  `+s+`
41
- --`+new Array((c||s.length)+1).join("-")+"^"})}e.SyntaxError=p}),Hi=O(e=>{"use strict";var t=Bt(),p=9,y=10,s=12,c=13,u=32,a=class{constructor(r){this.str=r,this.pos=0}charCodeAt(r){return r<this.str.length?this.str.charCodeAt(r):0}charCode(){return this.charCodeAt(this.pos)}nextCharCode(){return this.charCodeAt(this.pos+1)}nextNonWsCode(r){return this.charCodeAt(this.findWsEnd(r))}findWsEnd(r){for(;r<this.str.length;r++){let o=this.str.charCodeAt(r);if(o!==c&&o!==y&&o!==s&&o!==u&&o!==p)break}return r}substringToPos(r){return this.str.substring(this.pos,this.pos=r)}eat(r){this.charCode()!==r&&this.error("Expect `"+String.fromCharCode(r)+"`"),this.pos++}peek(){return this.pos<this.str.length?this.str.charAt(this.pos++):""}error(r){throw new t.SyntaxError(r,this.str,this.pos)}};e.Tokenizer=a}),Xe=O(e=>{"use strict";var t=Hi(),p=9,y=10,s=12,c=13,u=32,a=33,r=35,o=38,l=39,g=40,f=41,b=42,n=43,i=44,m=45,d=60,S=62,v=63,x=64,h=91,k=93,C=123,w=124,A=125,z=8734,T=new Uint8Array(128).map((W,N)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(N))?1:0),D={" ":1,"&&":2,"||":3,"|":4};function _(W){return W.substringToPos(W.findWsEnd(W.pos))}function I(W){let N=W.pos;for(;N<W.str.length;N++){let K=W.str.charCodeAt(N);if(K>=128||T[K]===0)break}return W.pos===N&&W.error("Expect a keyword"),W.substringToPos(N)}function q(W){let N=W.pos;for(;N<W.str.length;N++){let K=W.str.charCodeAt(N);if(K<48||K>57)break}return W.pos===N&&W.error("Expect a number"),W.substringToPos(N)}function F(W){let N=W.str.indexOf("'",W.pos+1);return N===-1&&(W.pos=W.str.length,W.error("Expect an apostrophe")),W.substringToPos(N+1)}function M(W){let N=null,K=null;return W.eat(C),N=q(W),W.charCode()===i?(W.pos++,W.charCode()!==A&&(K=q(W))):K=N,W.eat(A),{min:Number(N),max:K?Number(K):0}}function G(W){let N=null,K=!1;switch(W.charCode()){case b:W.pos++,N={min:0,max:0};break;case n:W.pos++,N={min:1,max:0};break;case v:W.pos++,N={min:0,max:1};break;case r:W.pos++,K=!0,W.charCode()===C?N=M(W):W.charCode()===v?(W.pos++,N={min:0,max:0}):N={min:1,max:0};break;case C:N=M(W);break;default:return null}return{type:"Multiplier",comma:K,min:N.min,max:N.max,term:null}}function V(W,N){let K=G(W);return K!==null?(K.term=N,W.charCode()===r&&W.charCodeAt(W.pos-1)===n?V(W,K):K):N}function H(W){let N=W.peek();return N===""?null:{type:"Token",value:N}}function j(W){let N;return W.eat(d),W.eat(l),N=I(W),W.eat(l),W.eat(S),V(W,{type:"Property",name:N})}function L(W){let N=null,K=null,Q=1;return W.eat(h),W.charCode()===m&&(W.peek(),Q=-1),Q==-1&&W.charCode()===z?W.peek():(N=Q*Number(q(W)),T[W.charCode()]!==0&&(N+=I(W))),_(W),W.eat(i),_(W),W.charCode()===z?W.peek():(Q=1,W.charCode()===m&&(W.peek(),Q=-1),K=Q*Number(q(W)),T[W.charCode()]!==0&&(K+=I(W))),W.eat(k),{type:"Range",min:N,max:K}}function B(W){let N,K=null;return W.eat(d),N=I(W),W.charCode()===g&&W.nextCharCode()===f&&(W.pos+=2,N+="()"),W.charCodeAt(W.findWsEnd(W.pos))===h&&(_(W),K=L(W)),W.eat(S),V(W,{type:"Type",name:N,opts:K})}function E(W){let N=I(W);return W.charCode()===g?(W.pos++,{type:"Function",name:N}):V(W,{type:"Keyword",name:N})}function R(W,N){function K(X,Y){return{type:"Group",terms:X,combinator:Y,disallowEmpty:!1,explicit:!1}}let Q;for(N=Object.keys(N).sort((X,Y)=>D[X]-D[Y]);N.length>0;){Q=N.shift();let X=0,Y=0;for(;X<W.length;X++){let J=W[X];J.type==="Combinator"&&(J.value===Q?(Y===-1&&(Y=X-1),W.splice(X,1),X--):(Y!==-1&&X-Y>1&&(W.splice(Y,X-Y,K(W.slice(Y,X),Q)),X=Y+1),Y=-1))}Y!==-1&&N.length&&W.splice(Y,X-Y,K(W.slice(Y,X),Q))}return Q}function P(W){let N=[],K={},Q,X=null,Y=W.pos;for(;Q=$(W);)Q.type!=="Spaces"&&(Q.type==="Combinator"?((X===null||X.type==="Combinator")&&(W.pos=Y,W.error("Unexpected combinator")),K[Q.value]=!0):X!==null&&X.type!=="Combinator"&&(K[" "]=!0,N.push({type:"Combinator",value:" "})),N.push(Q),X=Q,Y=W.pos);return X!==null&&X.type==="Combinator"&&(W.pos-=Y,W.error("Unexpected combinator")),{type:"Group",terms:N,combinator:R(N,K)||" ",disallowEmpty:!1,explicit:!1}}function U(W){let N;return W.eat(h),N=P(W),W.eat(k),N.explicit=!0,W.charCode()===a&&(W.pos++,N.disallowEmpty=!0),N}function $(W){let N=W.charCode();if(N<128&&T[N]===1)return E(W);switch(N){case k:break;case h:return V(W,U(W));case d:return W.nextCharCode()===l?j(W):B(W);case w:return{type:"Combinator",value:W.substringToPos(W.pos+(W.nextCharCode()===w?2:1))};case o:return W.pos++,W.eat(o),{type:"Combinator",value:"&&"};case i:return W.pos++,{type:"Comma"};case l:return V(W,{type:"String",value:F(W)});case u:case p:case y:case c:case s:return{type:"Spaces",value:_(W)};case x:return N=W.nextCharCode(),N<128&&T[N]===1?(W.pos++,{type:"AtKeyword",name:I(W)}):H(W);case b:case n:case v:case r:case a:break;case C:if(N=W.nextCharCode(),N<48||N>57)return H(W);break;default:return H(W)}}function te(W){let N=new t.Tokenizer(W),K=P(N);return N.pos!==W.length&&N.error("Unexpected input"),K.terms.length===1&&K.terms[0].type==="Group"?K.terms[0]:K}e.parse=te}),Ot=O(e=>{"use strict";var t=Xe(),p={type:"Match"},y={type:"Mismatch"},s={type:"DisallowEmpty"},c=40,u=41;function a(n,i,m){return i===p&&m===y||n===p&&i===p&&m===p?n:(n.type==="If"&&n.else===y&&i===p&&(i=n.then,n=n.match),{type:"If",match:n,then:i,else:m})}function r(n){return n.length>2&&n.charCodeAt(n.length-2)===c&&n.charCodeAt(n.length-1)===u}function o(n){return n.type==="Keyword"||n.type==="AtKeyword"||n.type==="Function"||n.type==="Type"&&r(n.name)}function l(n,i,m){switch(n){case" ":{let d=p;for(let S=i.length-1;S>=0;S--){let v=i[S];d=a(v,d,y)}return d}case"|":{let d=y,S=null;for(let v=i.length-1;v>=0;v--){let x=i[v];if(o(x)&&(S===null&&v>0&&o(i[v-1])&&(S=Object.create(null),d=a({type:"Enum",map:S},p,d)),S!==null)){let h=(r(x.name)?x.name.slice(0,-1):x.name).toLowerCase();if(!(h in S)){S[h]=x;continue}}S=null,d=a(x,p,d)}return d}case"&&":{if(i.length>5)return{type:"MatchOnce",terms:i,all:!0};let d=y;for(let S=i.length-1;S>=0;S--){let v=i[S],x;i.length>1?x=l(n,i.filter(function(h){return h!==v}),!1):x=p,d=a(v,x,d)}return d}case"||":{if(i.length>5)return{type:"MatchOnce",terms:i,all:!1};let d=m?p:y;for(let S=i.length-1;S>=0;S--){let v=i[S],x;i.length>1?x=l(n,i.filter(function(h){return h!==v}),!0):x=p,d=a(v,x,d)}return d}}}function g(n){let i=p,m=f(n.term);if(n.max===0)m=a(m,s,y),i=a(m,null,y),i.then=a(p,p,i),n.comma&&(i.then.else=a({type:"Comma",syntax:n},i,y));else for(let d=n.min||1;d<=n.max;d++)n.comma&&i!==p&&(i=a({type:"Comma",syntax:n},i,y)),i=a(m,a(p,p,i),y);if(n.min===0)i=a(p,p,i);else for(let d=0;d<n.min-1;d++)n.comma&&i!==p&&(i=a({type:"Comma",syntax:n},i,y)),i=a(m,i,y);return i}function f(n){if(typeof n=="function")return{type:"Generic",fn:n};switch(n.type){case"Group":{let i=l(n.combinator,n.terms.map(f),!1);return n.disallowEmpty&&(i=a(i,s,y)),i}case"Multiplier":return g(n);case"Type":case"Property":return{type:n.type,name:n.name,syntax:n};case"Keyword":return{type:n.type,name:n.name.toLowerCase(),syntax:n};case"AtKeyword":return{type:n.type,name:"@"+n.name.toLowerCase(),syntax:n};case"Function":return{type:n.type,name:n.name.toLowerCase()+"(",syntax:n};case"String":return n.value.length===3?{type:"Token",value:n.value.charAt(1),syntax:n}:{type:n.type,value:n.value.substr(1,n.value.length-2).replace(/\\'/g,"'"),syntax:n};case"Token":return{type:n.type,value:n.value,syntax:n};case"Comma":return{type:n.type,syntax:n};default:throw new Error("Unknown node type:",n.type)}}function b(n,i){return typeof n=="string"&&(n=t.parse(n)),{type:"MatchGraph",match:f(n),syntax:i||null,source:n}}e.DISALLOW_EMPTY=s,e.MATCH=p,e.MISMATCH=y,e.buildMatchGraph=b}),Ki=O(e=>{"use strict";var t=Ot(),p=Z(),{hasOwnProperty:y}=Object.prototype,s=0,c=1,u=2,a=3,r="Match",o="Mismatch",l="Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)",g=15e3;function f(x){let h=null,k=null,C=x;for(;C!==null;)k=C.prev,C.prev=h,h=C,C=k;return h}function b(x,h){if(x.length!==h.length)return!1;for(let k=0;k<x.length;k++){let C=h.charCodeAt(k),w=x.charCodeAt(k);if(w>=65&&w<=90&&(w=w|32),w!==C)return!1}return!0}function n(x){return x.type!==p.Delim?!1:x.value!=="?"}function i(x){return x===null?!0:x.type===p.Comma||x.type===p.Function||x.type===p.LeftParenthesis||x.type===p.LeftSquareBracket||x.type===p.LeftCurlyBracket||n(x)}function m(x){return x===null?!0:x.type===p.RightParenthesis||x.type===p.RightSquareBracket||x.type===p.RightCurlyBracket||x.type===p.Delim&&x.value==="/"}function d(x,h,k){function C(){do L++,j=L<x.length?x[L]:null;while(j!==null&&(j.type===p.WhiteSpace||j.type===p.Comment))}function w(R){let P=L+R;return P<x.length?x[P]:null}function A(R,P){return{nextState:R,matchStack:E,syntaxStack:q,thenStack:F,tokenIndex:L,prev:P}}function z(R){F={nextState:R,matchStack:E,syntaxStack:q,prev:F}}function T(R){M=A(R,M)}function D(){E={type:c,syntax:h.syntax,token:j,prev:E},C(),G=null,L>B&&(B=L)}function _(){q={syntax:h.syntax,opts:h.syntax.opts||q!==null&&q.opts||null,prev:q},E={type:u,syntax:h.syntax,token:E.token,prev:E}}function I(){E.type===u?E=E.prev:E={type:a,syntax:q.syntax,token:E.token,prev:E},q=q.prev}let q=null,F=null,M=null,G=null,V=0,H=null,j=null,L=-1,B=0,E={type:s,syntax:null,token:null,prev:null};for(C();H===null&&++V<g;)switch(h.type){case"Match":if(F===null){if(j!==null&&(L!==x.length-1||j.value!=="\\0"&&j.value!=="\\9")){h=t.MISMATCH;break}H=r;break}if(h=F.nextState,h===t.DISALLOW_EMPTY)if(F.matchStack===E){h=t.MISMATCH;break}else h=t.MATCH;for(;F.syntaxStack!==q;)I();F=F.prev;break;case"Mismatch":if(G!==null&&G!==!1)(M===null||L>M.tokenIndex)&&(M=G,G=!1);else if(M===null){H=o;break}h=M.nextState,F=M.thenStack,q=M.syntaxStack,E=M.matchStack,L=M.tokenIndex,j=L<x.length?x[L]:null,M=M.prev;break;case"MatchGraph":h=h.match;break;case"If":h.else!==t.MISMATCH&&T(h.else),h.then!==t.MATCH&&z(h.then),h=h.match;break;case"MatchOnce":h={type:"MatchOnceBuffer",syntax:h,index:0,mask:0};break;case"MatchOnceBuffer":{let U=h.syntax.terms;if(h.index===U.length){if(h.mask===0||h.syntax.all){h=t.MISMATCH;break}h=t.MATCH;break}if(h.mask===(1<<U.length)-1){h=t.MATCH;break}for(;h.index<U.length;h.index++){let $=1<<h.index;if(!(h.mask&$)){T(h),z({type:"AddMatchOnce",syntax:h.syntax,mask:h.mask|$}),h=U[h.index++];break}}break}case"AddMatchOnce":h={type:"MatchOnceBuffer",syntax:h.syntax,index:0,mask:h.mask};break;case"Enum":if(j!==null){let U=j.value.toLowerCase();if(U.indexOf("\\")!==-1&&(U=U.replace(/\\[09].*$/,"")),y.call(h.map,U)){h=h.map[U];break}}h=t.MISMATCH;break;case"Generic":{let U=q!==null?q.opts:null,$=L+Math.floor(h.fn(j,w,U));if(!isNaN($)&&$>L){for(;L<$;)D();h=t.MATCH}else h=t.MISMATCH;break}case"Type":case"Property":{let U=h.type==="Type"?"types":"properties",$=y.call(k,U)?k[U][h.name]:null;if(!$||!$.match)throw new Error("Bad syntax reference: "+(h.type==="Type"?"<"+h.name+">":"<'"+h.name+"'>"));if(G!==!1&&j!==null&&h.type==="Type"&&(h.name==="custom-ident"&&j.type===p.Ident||h.name==="length"&&j.value==="0")){G===null&&(G=A(h,M)),h=t.MISMATCH;break}_(),h=$.match;break}case"Keyword":{let U=h.name;if(j!==null){let $=j.value;if($.indexOf("\\")!==-1&&($=$.replace(/\\[09].*$/,"")),b($,U)){D(),h=t.MATCH;break}}h=t.MISMATCH;break}case"AtKeyword":case"Function":if(j!==null&&b(j.value,h.name)){D(),h=t.MATCH;break}h=t.MISMATCH;break;case"Token":if(j!==null&&j.value===h.value){D(),h=t.MATCH;break}h=t.MISMATCH;break;case"Comma":j!==null&&j.type===p.Comma?i(E.token)?h=t.MISMATCH:(D(),h=m(j)?t.MISMATCH:t.MATCH):h=i(E.token)||m(j)?t.MATCH:t.MISMATCH;break;case"String":let R="",P=L;for(;P<x.length&&R.length<h.value.length;P++)R+=x[P].value;if(b(R,h.value)){for(;L<P;)D();h=t.MATCH}else h=t.MISMATCH;break;default:throw new Error("Unknown node type: "+h.type)}switch(H){case null:console.warn("[csstree-match] BREAK after "+g+" iterations"),H=l,E=null;break;case r:for(;q!==null;)I();break;default:E=null}return{tokens:x,reason:H,iterations:V,match:E,longestMatch:B}}function S(x,h,k){let C=d(x,h,k||{});if(C.match!==null){let w=f(C.match).prev;for(C.match=[];w!==null;){switch(w.type){case u:case a:C.match.push({type:w.type,syntax:w.syntax});break;default:C.match.push({token:w.token.value,node:w.token.node});break}w=w.prev}}return C}function v(x,h,k){let C=d(x,h,k||{});if(C.match===null)return C;let w=C.match,A=C.match={syntax:h.syntax||null,match:[]},z=[A];for(w=f(w).prev;w!==null;){switch(w.type){case u:A.match.push(A={syntax:w.syntax,match:[]}),z.push(A);break;case a:z.pop(),A=z[z.length-1];break;default:A.match.push({syntax:w.syntax||null,token:w.token.value,node:w.token.node})}w=w.prev}return C}e.matchAsList=S,e.matchAsTree=v}),$i=O(e=>{"use strict";function t(u){function a(l){return l===null?!1:l.type==="Type"||l.type==="Property"||l.type==="Keyword"}function r(l){if(Array.isArray(l.match)){for(let g=0;g<l.match.length;g++)if(r(l.match[g]))return a(l.syntax)&&o.unshift(l.syntax),!0}else if(l.node===u)return o=a(l.syntax)?[l.syntax]:[],!0;return!1}let o=null;return this.matched!==null&&r(this.matched),o}function p(u,a){return c(this,u,r=>r.type==="Type"&&r.name===a)}function y(u,a){return c(this,u,r=>r.type==="Property"&&r.name===a)}function s(u){return c(this,u,a=>a.type==="Keyword")}function c(u,a,r){let o=t.call(u,a);return o===null?!1:o.some(r)}e.getTrace=t,e.isKeyword=s,e.isProperty=y,e.isType=p}),Xi=O(e=>{"use strict";var t=ke();function p(c){return"node"in c?c.node:p(c.match[0])}function y(c){return"node"in c?c.node:y(c.match[c.match.length-1])}function s(c,u,a,r,o){function l(f){if(f.syntax!==null&&f.syntax.type===r&&f.syntax.name===o){let b=p(f),n=y(f);c.syntax.walk(u,function(i,m,d){if(i===b){let S=new t.List;do{if(S.appendData(m.data),m.data===n)break;m=m.next}while(m!==null);g.push({parent:d,nodes:S})}})}Array.isArray(f.match)&&f.match.forEach(l)}let g=[];return a.matched!==null&&l(a.matched),g}e.matchFragments=s}),Yi=O(e=>{"use strict";var t=ke(),{hasOwnProperty:p}=Object.prototype;function y(r){return typeof r=="number"&&isFinite(r)&&Math.floor(r)===r&&r>=0}function s(r){return!!r&&y(r.offset)&&y(r.line)&&y(r.column)}function c(r,o){return function(l,g){if(!l||l.constructor!==Object)return g(l,"Type of node should be an Object");for(let f in l){let b=!0;if(p.call(l,f)!==!1){if(f==="type")l.type!==r&&g(l,"Wrong node type `"+l.type+"`, expected `"+r+"`");else if(f==="loc"){if(l.loc===null)continue;if(l.loc&&l.loc.constructor===Object)if(typeof l.loc.source!="string")f+=".source";else if(!s(l.loc.start))f+=".start";else if(!s(l.loc.end))f+=".end";else continue;b=!1}else if(o.hasOwnProperty(f)){b=!1;for(let n=0;!b&&n<o[f].length;n++){let i=o[f][n];switch(i){case String:b=typeof l[f]=="string";break;case Boolean:b=typeof l[f]=="boolean";break;case null:b=l[f]===null;break;default:typeof i=="string"?b=l[f]&&l[f].type===i:Array.isArray(i)&&(b=l[f]instanceof t.List)}}}else g(l,"Unknown field `"+f+"` for "+r+" node type");b||g(l,"Bad value for `"+r+"."+f+"`")}}for(let f in o)p.call(o,f)&&p.call(l,f)===!1&&g(l,"Field `"+r+"."+f+"` is missed")}}function u(r,o){let l=o.structure,g={type:String,loc:!0},f={type:'"'+r+'"'};for(let b in l){if(p.call(l,b)===!1)continue;let n=[],i=g[b]=Array.isArray(l[b])?l[b].slice():[l[b]];for(let m=0;m<i.length;m++){let d=i[m];if(d===String||d===Boolean)n.push(d.name);else if(d===null)n.push("null");else if(typeof d=="string")n.push("<"+d+">");else if(Array.isArray(d))n.push("List");else throw new Error("Wrong value `"+d+"` in `"+r+"."+b+"` structure definition")}f[b]=n.join(" | ")}return{docs:f,check:c(r,g)}}function a(r){let o={};if(r.node){for(let l in r.node)if(p.call(r.node,l)){let g=r.node[l];if(g.structure)o[l]=u(l,g);else throw new Error("Missed `structure` field in `"+l+"` node type definition")}}return o}e.getStructureFromConfig=a}),zt=O(e=>{"use strict";var t=function(){};function p(s){return typeof s=="function"?s:t}function y(s,c,u){function a(l){switch(r.call(u,l),l.type){case"Group":l.terms.forEach(a);break;case"Multiplier":a(l.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+l.type)}o.call(u,l)}let r=t,o=t;if(typeof c=="function"?r=c:c&&(r=p(c.enter),o=p(c.leave)),r===t&&o===t)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");a(s)}e.walk=y}),Dt=O(e=>{"use strict";var t=Ni(),p=$e(),y=Tt(),s=ji(),c=Ui(),u=Vi(),a=Ot(),r=Ki(),o=$i(),l=Xi(),g=Yi(),f=Xe(),b=Ke(),n=zt(),i=a.buildMatchGraph(y.cssWideKeywords.join(" | "));function m(k,C,w){let A={};for(let z in k)k[z].syntax&&(A[z]=w?k[z].syntax:b.generate(k[z].syntax,{compact:C}));return A}function d(k,C,w){let A={};for(let[z,T]of Object.entries(k))A[z]={prelude:T.prelude&&(w?T.prelude.syntax:b.generate(T.prelude.syntax,{compact:C})),descriptors:T.descriptors&&m(T.descriptors,C,w)};return A}function S(k){for(let C=0;C<k.length;C++)if(k[C].value.toLowerCase()==="var(")return!0;return!1}function v(k,C,w){return{matched:k,iterations:w,error:C,...o}}function x(k,C,w,A){let z=u(w,k.syntax),T;return S(z)?v(null,new Error("Matching for a tree with var() is not supported")):(A&&(T=r.matchAsTree(z,k.cssWideKeywordsSyntax,k)),(!A||!T.match)&&(T=r.matchAsTree(z,C.match,k),!T.match)?v(null,new t.SyntaxMatchError(T.reason,C.syntax,w,T),T.iterations):v(T.match,null,T.iterations))}var h=class{constructor(k,C,w){if(this.cssWideKeywordsSyntax=i,this.syntax=C,this.generic=!1,this.units={...c},this.atrules=Object.create(null),this.properties=Object.create(null),this.types=Object.create(null),this.structure=w||g.getStructureFromConfig(k),k){if(k.units)for(let A of Object.keys(c))Array.isArray(k.units[A])&&(this.units[A]=k.units[A]);if(k.types)for(let A in k.types)this.addType_(A,k.types[A]);if(k.generic){this.generic=!0;for(let[A,z]of Object.entries(s.createGenericTypes(this.units)))this.addType_(A,z)}if(k.atrules)for(let A in k.atrules)this.addAtrule_(A,k.atrules[A]);if(k.properties)for(let A in k.properties)this.addProperty_(A,k.properties[A])}}checkStructure(k){function C(z,T){A.push({node:z,message:T})}let w=this.structure,A=[];return this.syntax.walk(k,function(z){w.hasOwnProperty(z.type)?w[z.type].check(z,C):C(z,"Unknown node type `"+z.type+"`")}),A.length?A:!1}createDescriptor(k,C,w,A=null){let z={type:C,name:w},T={type:C,name:w,parent:A,serializable:typeof k=="string"||k&&typeof k.type=="string",syntax:null,match:null};return typeof k=="function"?T.match=a.buildMatchGraph(k,z):(typeof k=="string"?Object.defineProperty(T,"syntax",{get(){return Object.defineProperty(T,"syntax",{value:f.parse(k)}),T.syntax}}):T.syntax=k,Object.defineProperty(T,"match",{get(){return Object.defineProperty(T,"match",{value:a.buildMatchGraph(T.syntax,z)}),T.match}})),T}addAtrule_(k,C){C&&(this.atrules[k]={type:"Atrule",name:k,prelude:C.prelude?this.createDescriptor(C.prelude,"AtrulePrelude",k):null,descriptors:C.descriptors?Object.keys(C.descriptors).reduce((w,A)=>(w[A]=this.createDescriptor(C.descriptors[A],"AtruleDescriptor",A,k),w),Object.create(null)):null})}addProperty_(k,C){C&&(this.properties[k]=this.createDescriptor(C,"Property",k))}addType_(k,C){C&&(this.types[k]=this.createDescriptor(C,"Type",k))}checkAtruleName(k){if(!this.getAtrule(k))return new t.SyntaxReferenceError("Unknown at-rule","@"+k)}checkAtrulePrelude(k,C){let w=this.checkAtruleName(k);if(w)return w;let A=this.getAtrule(k);if(!A.prelude&&C)return new SyntaxError("At-rule `@"+k+"` should not contain a prelude");if(A.prelude&&!C&&!x(this,A.prelude,"",!1).matched)return new SyntaxError("At-rule `@"+k+"` should contain a prelude")}checkAtruleDescriptorName(k,C){let w=this.checkAtruleName(k);if(w)return w;let A=this.getAtrule(k),z=p.keyword(C);if(!A.descriptors)return new SyntaxError("At-rule `@"+k+"` has no known descriptors");if(!A.descriptors[z.name]&&!A.descriptors[z.basename])return new t.SyntaxReferenceError("Unknown at-rule descriptor",C)}checkPropertyName(k){if(!this.getProperty(k))return new t.SyntaxReferenceError("Unknown property",k)}matchAtrulePrelude(k,C){let w=this.checkAtrulePrelude(k,C);if(w)return v(null,w);let A=this.getAtrule(k);return A.prelude?x(this,A.prelude,C||"",!1):v(null,null)}matchAtruleDescriptor(k,C,w){let A=this.checkAtruleDescriptorName(k,C);if(A)return v(null,A);let z=this.getAtrule(k),T=p.keyword(C);return x(this,z.descriptors[T.name]||z.descriptors[T.basename],w,!1)}matchDeclaration(k){return k.type!=="Declaration"?v(null,new Error("Not a Declaration node")):this.matchProperty(k.property,k.value)}matchProperty(k,C){if(p.property(k).custom)return v(null,new Error("Lexer matching doesn't applicable for custom properties"));let w=this.checkPropertyName(k);return w?v(null,w):x(this,this.getProperty(k),C,!0)}matchType(k,C){let w=this.getType(k);return w?x(this,w,C,!1):v(null,new t.SyntaxReferenceError("Unknown type",k))}match(k,C){return typeof k!="string"&&(!k||!k.type)?v(null,new t.SyntaxReferenceError("Bad syntax")):((typeof k=="string"||!k.match)&&(k=this.createDescriptor(k,"Type","anonymous")),x(this,k,C,!1))}findValueFragments(k,C,w,A){return l.matchFragments(this,C,this.matchProperty(k,C),w,A)}findDeclarationValueFragments(k,C,w){return l.matchFragments(this,k.value,this.matchDeclaration(k),C,w)}findAllFragments(k,C,w){let A=[];return this.syntax.walk(k,{visit:"Declaration",enter:z=>{A.push.apply(A,this.findDeclarationValueFragments(z,C,w))}}),A}getAtrule(k,C=!0){let w=p.keyword(k);return(w.vendor&&C?this.atrules[w.name]||this.atrules[w.basename]:this.atrules[w.name])||null}getAtrulePrelude(k,C=!0){let w=this.getAtrule(k,C);return w&&w.prelude||null}getAtruleDescriptor(k,C){return this.atrules.hasOwnProperty(k)&&this.atrules.declarators&&this.atrules[k].declarators[C]||null}getProperty(k,C=!0){let w=p.property(k);return(w.vendor&&C?this.properties[w.name]||this.properties[w.basename]:this.properties[w.name])||null}getType(k){return hasOwnProperty.call(this.types,k)?this.types[k]:null}validate(){function k(A,z,T,D){if(T.has(z))return T.get(z);T.set(z,!1),D.syntax!==null&&n.walk(D.syntax,function(_){if(_.type!=="Type"&&_.type!=="Property")return;let I=_.type==="Type"?A.types:A.properties,q=_.type==="Type"?C:w;(!hasOwnProperty.call(I,_.name)||k(A,_.name,q,I[_.name]))&&T.set(z,!0)},this)}let C=new Map,w=new Map;for(let A in this.types)k(this,A,C,this.types[A]);for(let A in this.properties)k(this,A,w,this.properties[A]);return C=[...C.keys()].filter(A=>C.get(A)),w=[...w.keys()].filter(A=>w.get(A)),C.length||w.length?{types:C,properties:w}:null}dump(k,C){return{generic:this.generic,units:this.units,types:m(this.types,!C,k),properties:m(this.properties,!C,k),atrules:d(this.atrules,!C,k)}}toString(){return JSON.stringify(this.dump())}};e.Lexer=h}),Qi=O((e,t)=>{"use strict";function p(c,u){return typeof u=="string"&&/^\s*\|/.test(u)?typeof c=="string"?c+u:u.replace(/^\s*\|\s*/,""):u||null}function y(c,u){let a=Object.create(null);for(let[r,o]of Object.entries(c))if(o){a[r]={};for(let l of Object.keys(o))u.includes(l)&&(a[r][l]=o[l])}return a}function s(c,u){let a={...c};for(let[r,o]of Object.entries(u))switch(r){case"generic":a[r]=!!o;break;case"units":a[r]={...c[r]};for(let[l,g]of Object.entries(o))a[r][l]=Array.isArray(g)?g:[];break;case"atrules":a[r]={...c[r]};for(let[l,g]of Object.entries(o)){let f=a[r][l]||{},b=a[r][l]={prelude:f.prelude||null,descriptors:{...f.descriptors}};if(g){b.prelude=g.prelude?p(b.prelude,g.prelude):b.prelude||null;for(let[n,i]of Object.entries(g.descriptors||{}))b.descriptors[n]=i?p(b.descriptors[n],i):null;Object.keys(b.descriptors).length||(b.descriptors=null)}}break;case"types":case"properties":a[r]={...c[r]};for(let[l,g]of Object.entries(o))a[r][l]=p(a[r][l],g);break;case"scope":a[r]={...c[r]};for(let[l,g]of Object.entries(o))a[r][l]={...a[r][l],...g};break;case"parseContext":a[r]={...c[r],...o};break;case"atrule":case"pseudo":a[r]={...c[r],...y(o,["parse"])};break;case"node":a[r]={...c[r],...y(o,["name","structure","parse","generate","walkContext"])};break}return a}t.exports=s}),Ft=O((e,t)=>{"use strict";var p=We(),y=zi(),s=Pi(),c=Mi(),u=Ii(),a=Dt(),r=Qi();function o(g){let f=y.createParser(g),b=u.createWalker(g),n=s.createGenerator(g),{fromPlainObject:i,toPlainObject:m}=c.createConvertor(b),d={lexer:null,createLexer:S=>new a.Lexer(S,d,d.lexer.structure),tokenize:p.tokenize,parse:f,generate:n,walk:b,find:b.find,findLast:b.findLast,findAll:b.findAll,fromPlainObject:i,toPlainObject:m,fork(S){let v=r({},g);return o(typeof S=="function"?S(v,Object.assign):r(v,S))}};return d.lexer=new a.Lexer({generic:!0,units:g.units,types:g.types,atrules:g.atrules,properties:g.properties,node:g.node},d),d}var l=g=>o(r({},g));t.exports=l}),Zi=O((e,t)=>{t.exports={atrules:{charset:{prelude:"<string>"},"font-face":{descriptors:{"unicode-range":{comment:"replaces <unicode-range>, an old production name",syntax:"<urange>#"}}},nest:{prelude:"<complex-selector-list>"}},properties:{"-moz-background-clip":{comment:"deprecated syntax in old Firefox, https://developer.mozilla.org/en/docs/Web/CSS/background-clip",syntax:"padding | border"},"-moz-border-radius-bottomleft":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-left-radius",syntax:"<'border-bottom-left-radius'>"},"-moz-border-radius-bottomright":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius",syntax:"<'border-bottom-right-radius'>"},"-moz-border-radius-topleft":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-left-radius",syntax:"<'border-top-left-radius'>"},"-moz-border-radius-topright":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius",syntax:"<'border-bottom-right-radius'>"},"-moz-control-character-visibility":{comment:"firefox specific keywords, https://bugzilla.mozilla.org/show_bug.cgi?id=947588",syntax:"visible | hidden"},"-moz-osx-font-smoothing":{comment:"misssed old syntax https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth",syntax:"auto | grayscale"},"-moz-user-select":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/user-select",syntax:"none | text | all | -moz-none"},"-ms-flex-align":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align",syntax:"start | end | center | baseline | stretch"},"-ms-flex-item-align":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align",syntax:"auto | start | end | center | baseline | stretch"},"-ms-flex-line-pack":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-line-pack",syntax:"start | end | center | justify | distribute | stretch"},"-ms-flex-negative":{comment:"misssed old syntax implemented in IE; TODO: find references for comfirmation",syntax:"<'flex-shrink'>"},"-ms-flex-pack":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-pack",syntax:"start | end | center | justify | distribute"},"-ms-flex-order":{comment:"misssed old syntax implemented in IE; https://msdn.microsoft.com/en-us/library/jj127303(v=vs.85).aspx",syntax:"<integer>"},"-ms-flex-positive":{comment:"misssed old syntax implemented in IE; TODO: find references for comfirmation",syntax:"<'flex-grow'>"},"-ms-flex-preferred-size":{comment:"misssed old syntax implemented in IE; TODO: find references for comfirmation",syntax:"<'flex-basis'>"},"-ms-interpolation-mode":{comment:"https://msdn.microsoft.com/en-us/library/ff521095(v=vs.85).aspx",syntax:"nearest-neighbor | bicubic"},"-ms-grid-column-align":{comment:"add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466338.aspx",syntax:"start | end | center | stretch"},"-ms-grid-row-align":{comment:"add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466348.aspx",syntax:"start | end | center | stretch"},"-ms-hyphenate-limit-last":{comment:"misssed old syntax implemented in IE; https://www.w3.org/TR/css-text-4/#hyphenate-line-limits",syntax:"none | always | column | page | spread"},"-webkit-appearance":{comment:"webkit specific keywords",references:["http://css-infos.net/property/-webkit-appearance"],syntax:"none | button | button-bevel | caps-lock-indicator | 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 | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbargripper-horizontal | scrollbargripper-vertical | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | 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"},"-webkit-background-clip":{comment:"https://developer.mozilla.org/en/docs/Web/CSS/background-clip",syntax:"[ <box> | border | padding | content | text ]#"},"-webkit-column-break-after":{comment:"added, http://help.dottoro.com/lcrthhhv.php",syntax:"always | auto | avoid"},"-webkit-column-break-before":{comment:"added, http://help.dottoro.com/lcxquvkf.php",syntax:"always | auto | avoid"},"-webkit-column-break-inside":{comment:"added, http://help.dottoro.com/lclhnthl.php",syntax:"always | auto | avoid"},"-webkit-font-smoothing":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth",syntax:"auto | none | antialiased | subpixel-antialiased"},"-webkit-mask-box-image":{comment:"missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image",syntax:"[ <url> | <gradient> | none ] [ <length-percentage>{4} <-webkit-mask-box-repeat>{2} ]?"},"-webkit-print-color-adjust":{comment:"missed",references:["https://developer.mozilla.org/en/docs/Web/CSS/-webkit-print-color-adjust"],syntax:"economy | exact"},"-webkit-text-security":{comment:"missed; http://help.dottoro.com/lcbkewgt.php",syntax:"none | circle | disc | square"},"-webkit-user-drag":{comment:"missed; http://help.dottoro.com/lcbixvwm.php",syntax:"none | element | auto"},"-webkit-user-select":{comment:"auto is supported by old webkit, https://developer.mozilla.org/en-US/docs/Web/CSS/user-select",syntax:"auto | none | text | all"},"alignment-baseline":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#AlignmentBaselineProperty"],syntax:"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical"},"background-clip":{comment:"used <bg-clip> from CSS Backgrounds and Borders 4 since it adds new values",references:["https://github.com/csstree/csstree/issues/190"],syntax:"<bg-clip>#"},"baseline-shift":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#BaselineShiftProperty"],syntax:"baseline | sub | super | <svg-length>"},behavior:{comment:"added old IE property https://msdn.microsoft.com/en-us/library/ms530723(v=vs.85).aspx",syntax:"<url>+"},"clip-rule":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/masking.html#ClipRuleProperty"],syntax:"nonzero | evenodd"},cue:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<'cue-before'> <'cue-after'>?"},"cue-after":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<url> <decibel>? | none"},"cue-before":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<url> <decibel>? | none"},cursor:{comment:"added legacy keywords: hand, -webkit-grab. -webkit-grabbing, -webkit-zoom-in, -webkit-zoom-out, -moz-grab, -moz-grabbing, -moz-zoom-in, -moz-zoom-out",references:["https://www.sitepoint.com/css3-cursor-styles/"],syntax:"[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing | hand | -webkit-grab | -webkit-grabbing | -webkit-zoom-in | -webkit-zoom-out | -moz-grab | -moz-grabbing | -moz-zoom-in | -moz-zoom-out ] ]"},display:{comment:"extended with -ms-flexbox",syntax:"| <-non-standard-display>"},position:{comment:"extended with -webkit-sticky",syntax:"| -webkit-sticky"},"dominant-baseline":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#DominantBaselineProperty"],syntax:"auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge"},"image-rendering":{comment:"extended with <-non-standard-image-rendering>, added SVG keywords optimizeSpeed and optimizeQuality",references:["https://developer.mozilla.org/en/docs/Web/CSS/image-rendering","https://www.w3.org/TR/SVG/painting.html#ImageRenderingProperty"],syntax:"| optimizeSpeed | optimizeQuality | <-non-standard-image-rendering>"},fill:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#FillProperty"],syntax:"<paint>"},"fill-opacity":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#FillProperty"],syntax:"<number-zero-one>"},"fill-rule":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#FillProperty"],syntax:"nonzero | evenodd"},filter:{comment:"extend with IE legacy syntaxes",syntax:"| <-ms-filter-function-list>"},"glyph-orientation-horizontal":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#GlyphOrientationHorizontalProperty"],syntax:"<angle>"},"glyph-orientation-vertical":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#GlyphOrientationVerticalProperty"],syntax:"<angle>"},kerning:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#KerningProperty"],syntax:"auto | <svg-length>"},"letter-spacing":{comment:"fix syntax <length> -> <length-percentage>",references:["https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/letter-spacing"],syntax:"normal | <length-percentage>"},marker:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"marker-end":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"marker-mid":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"marker-start":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"max-width":{comment:"extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/max-width",syntax:"| <-non-standard-width>"},width:{references:["https://developer.mozilla.org/en-US/docs/Web/CSS/width","https://github.com/csstree/stylelint-validator/issues/29"],syntax:"| fill | stretch | intrinsic | -moz-max-content | -webkit-max-content | -moz-fit-content | -webkit-fit-content"},"min-width":{comment:"extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width",syntax:"| <-non-standard-width>"},overflow:{comment:"extend by vendor keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow",syntax:"| <-non-standard-overflow>"},pause:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<'pause-before'> <'pause-after'>?"},"pause-after":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},"pause-before":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},rest:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<'rest-before'> <'rest-after'>?"},"rest-after":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},"rest-before":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},"shape-rendering":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#ShapeRenderingPropert"],syntax:"auto | optimizeSpeed | crispEdges | geometricPrecision"},src:{comment:"added @font-face's src property https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/src",syntax:"[ <url> [ format( <string># ) ]? | local( <family-name> ) ]#"},speak:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"auto | none | normal"},"speak-as":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"normal | spell-out || digits || [ literal-punctuation | no-punctuation ]"},stroke:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<paint>"},"stroke-dasharray":{comment:"added SVG property; a list of comma and/or white space separated <length>s and <percentage>s",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"none | [ <svg-length>+ ]#"},"stroke-dashoffset":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<svg-length>"},"stroke-linecap":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"butt | round | square"},"stroke-linejoin":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"miter | round | bevel"},"stroke-miterlimit":{comment:"added SVG property (<miterlimit> = <number-one-or-greater>) ",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<number-one-or-greater>"},"stroke-opacity":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<number-zero-one>"},"stroke-width":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<svg-length>"},"text-anchor":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#TextAlignmentProperties"],syntax:"start | middle | end"},"unicode-bidi":{comment:"added prefixed keywords https://developer.mozilla.org/en-US/docs/Web/CSS/unicode-bidi",syntax:"| -moz-isolate | -moz-isolate-override | -moz-plaintext | -webkit-isolate | -webkit-isolate-override | -webkit-plaintext"},"unicode-range":{comment:"added missed property https://developer.mozilla.org/en-US/docs/Web/CSS/%40font-face/unicode-range",syntax:"<urange>#"},"voice-balance":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<number> | left | center | right | leftwards | rightwards"},"voice-duration":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"auto | <time>"},"voice-family":{comment:"<name> -> <family-name>, https://www.w3.org/TR/css3-speech/#property-index",syntax:"[ [ <family-name> | <generic-voice> ] , ]* [ <family-name> | <generic-voice> ] | preserve"},"voice-pitch":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]"},"voice-range":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]"},"voice-rate":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"[ normal | x-slow | slow | medium | fast | x-fast ] || <percentage>"},"voice-stress":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"normal | strong | moderate | none | reduced"},"voice-volume":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"silent | [ [ x-soft | soft | medium | loud | x-loud ] || <decibel> ]"},"writing-mode":{comment:"extend with SVG keywords",syntax:"| <svg-writing-mode>"}},types:{"-legacy-gradient":{comment:"added collection of legacy gradient syntaxes",syntax:"<-webkit-gradient()> | <-legacy-linear-gradient> | <-legacy-repeating-linear-gradient> | <-legacy-radial-gradient> | <-legacy-repeating-radial-gradient>"},"-legacy-linear-gradient":{comment:"like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",syntax:"-moz-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-linear-gradient( <-legacy-linear-gradient-arguments> )"},"-legacy-repeating-linear-gradient":{comment:"like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",syntax:"-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )"},"-legacy-linear-gradient-arguments":{comment:"like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",syntax:"[ <angle> | <side-or-corner> ]? , <color-stop-list>"},"-legacy-radial-gradient":{comment:"deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",syntax:"-moz-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-radial-gradient( <-legacy-radial-gradient-arguments> )"},"-legacy-repeating-radial-gradient":{comment:"deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",syntax:"-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )"},"-legacy-radial-gradient-arguments":{comment:"deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",syntax:"[ <position> , ]? [ [ [ <-legacy-radial-gradient-shape> || <-legacy-radial-gradient-size> ] | [ <length> | <percentage> ]{2} ] , ]? <color-stop-list>"},"-legacy-radial-gradient-size":{comment:"before a standard it contains 2 extra keywords (`contain` and `cover`) https://www.w3.org/TR/2011/WD-css3-images-20110908/#ltsize",syntax:"closest-side | closest-corner | farthest-side | farthest-corner | contain | cover"},"-legacy-radial-gradient-shape":{comment:"define to double sure it doesn't extends in future https://www.w3.org/TR/2011/WD-css3-images-20110908/#ltshape",syntax:"circle | ellipse"},"-non-standard-font":{comment:"non standard fonts",references:["https://webkit.org/blog/3709/using-the-system-font-in-web-content/"],syntax:"-apple-system-body | -apple-system-headline | -apple-system-subheadline | -apple-system-caption1 | -apple-system-caption2 | -apple-system-footnote | -apple-system-short-body | -apple-system-short-headline | -apple-system-short-subheadline | -apple-system-short-caption1 | -apple-system-short-footnote | -apple-system-tall-body"},"-non-standard-color":{comment:"non standard colors",references:["http://cssdot.ru/%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_CSS/color-i305.html","https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Mozilla_Color_Preference_Extensions"],syntax:"-moz-ButtonDefault | -moz-ButtonHoverFace | -moz-ButtonHoverText | -moz-CellHighlight | -moz-CellHighlightText | -moz-Combobox | -moz-ComboboxText | -moz-Dialog | -moz-DialogText | -moz-dragtargetzone | -moz-EvenTreeRow | -moz-Field | -moz-FieldText | -moz-html-CellHighlight | -moz-html-CellHighlightText | -moz-mac-accentdarkestshadow | -moz-mac-accentdarkshadow | -moz-mac-accentface | -moz-mac-accentlightesthighlight | -moz-mac-accentlightshadow | -moz-mac-accentregularhighlight | -moz-mac-accentregularshadow | -moz-mac-chrome-active | -moz-mac-chrome-inactive | -moz-mac-focusring | -moz-mac-menuselect | -moz-mac-menushadow | -moz-mac-menutextselect | -moz-MenuHover | -moz-MenuHoverText | -moz-MenuBarText | -moz-MenuBarHoverText | -moz-nativehyperlinktext | -moz-OddTreeRow | -moz-win-communicationstext | -moz-win-mediatext | -moz-activehyperlinktext | -moz-default-background-color | -moz-default-color | -moz-hyperlinktext | -moz-visitedhyperlinktext | -webkit-activelink | -webkit-focus-ring-color | -webkit-link | -webkit-text"},"-non-standard-image-rendering":{comment:"non-standard keywords http://phrogz.net/tmp/canvas_image_zoom.html",syntax:"optimize-contrast | -moz-crisp-edges | -o-crisp-edges | -webkit-optimize-contrast"},"-non-standard-overflow":{comment:"non-standard keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow",syntax:"-moz-scrollbars-none | -moz-scrollbars-horizontal | -moz-scrollbars-vertical | -moz-hidden-unscrollable"},"-non-standard-width":{comment:"non-standard keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width",syntax:"fill-available | min-intrinsic | intrinsic | -moz-available | -moz-fit-content | -moz-min-content | -moz-max-content | -webkit-min-content | -webkit-max-content"},"-webkit-gradient()":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/ - TODO: simplify when after match algorithm improvement ( [, point, radius | , point] -> [, radius]? , point )",syntax:"-webkit-gradient( <-webkit-gradient-type>, <-webkit-gradient-point> [, <-webkit-gradient-point> | , <-webkit-gradient-radius>, <-webkit-gradient-point> ] [, <-webkit-gradient-radius>]? [, <-webkit-gradient-color-stop>]* )"},"-webkit-gradient-color-stop":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"from( <color> ) | color-stop( [ <number-zero-one> | <percentage> ] , <color> ) | to( <color> )"},"-webkit-gradient-point":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"[ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]"},"-webkit-gradient-radius":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"<length> | <percentage>"},"-webkit-gradient-type":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"linear | radial"},"-webkit-mask-box-repeat":{comment:"missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image",syntax:"repeat | stretch | round"},"-webkit-mask-clip-style":{comment:"missed; there is no enough information about `-webkit-mask-clip` property, but looks like all those keywords are working",syntax:"border | border-box | padding | padding-box | content | content-box | text"},"-ms-filter-function-list":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"<-ms-filter-function>+"},"-ms-filter-function":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"<-ms-filter-function-progid> | <-ms-filter-function-legacy>"},"-ms-filter-function-progid":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"'progid:' [ <ident-token> '.' ]* [ <ident-token> | <function-token> <any-value>? ) ]"},"-ms-filter-function-legacy":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"<ident-token> | <function-token> <any-value>? )"},"-ms-filter":{syntax:"<string>"},age:{comment:"https://www.w3.org/TR/css3-speech/#voice-family",syntax:"child | young | old"},"attr-name":{syntax:"<wq-name>"},"attr-fallback":{syntax:"<any-value>"},"bg-clip":{comment:"missed, https://drafts.csswg.org/css-backgrounds-4/#typedef-bg-clip",syntax:"<box> | border | text"},bottom:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},"content-list":{comment:"added attr(), see https://github.com/csstree/csstree/issues/201",syntax:"[ <string> | contents | <image> | <counter> | <quote> | <target> | <leader()> | <attr()> ]+"},"element()":{comment:"https://drafts.csswg.org/css-gcpm/#element-syntax & https://drafts.csswg.org/css-images-4/#element-notation",syntax:"element( <custom-ident> , [ first | start | last | first-except ]? ) | element( <id-selector> )"},"generic-voice":{comment:"https://www.w3.org/TR/css3-speech/#voice-family",syntax:"[ <age>? <gender> <integer>? ]"},gender:{comment:"https://www.w3.org/TR/css3-speech/#voice-family",syntax:"male | female | neutral"},"generic-family":{comment:"added -apple-system",references:["https://webkit.org/blog/3709/using-the-system-font-in-web-content/"],syntax:"| -apple-system"},gradient:{comment:"added legacy syntaxes support",syntax:"| <-legacy-gradient>"},left:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},"mask-image":{comment:"missed; https://drafts.fxtf.org/css-masking-1/#the-mask-image",syntax:"<mask-reference>#"},"named-color":{comment:"added non standard color names",syntax:"| <-non-standard-color>"},paint:{comment:"used by SVG https://www.w3.org/TR/SVG/painting.html#SpecifyingPaint",syntax:"none | <color> | <url> [ none | <color> ]? | context-fill | context-stroke"},right:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},shape:{comment:"missed spaces in function body and add backwards compatible syntax",syntax:"rect( <top>, <right>, <bottom>, <left> ) | rect( <top> <right> <bottom> <left> )"},"scroll-timeline-axis":{comment:"missed definition",syntax:"block | inline | vertical | horizontal"},"scroll-timeline-name":{comment:"missed definition",references:["https://w3c.github.io/csswg-drafts/scroll-animations/#propdef-scroll-timeline-name"],syntax:"none | <custom-ident>"},"single-animation-composition":{comment:"missed definition",references:["https://w3c.github.io/csswg-drafts/css-animations-2/#typedef-single-animation-composition"],syntax:"replace | add | accumulate"},"svg-length":{comment:"All coordinates and lengths in SVG can be specified with or without a unit identifier",references:["https://www.w3.org/TR/SVG11/coords.html#Units"],syntax:"<percentage> | <length> | <number>"},"svg-writing-mode":{comment:"SVG specific keywords (deprecated for CSS)",references:["https://developer.mozilla.org/en/docs/Web/CSS/writing-mode","https://www.w3.org/TR/SVG/text.html#WritingModeProperty"],syntax:"lr-tb | rl-tb | tb-rl | lr | rl | tb"},top:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},x:{comment:"missed; not sure we should add it, but no others except `cursor` is using it so it's ok for now; https://drafts.csswg.org/css-ui-3/#cursor",syntax:"<number>"},y:{comment:"missed; not sure we should add it, but no others except `cursor` is using so it's ok for now; https://drafts.csswg.org/css-ui-3/#cursor",syntax:"<number>"},declaration:{comment:"missed, restored by https://drafts.csswg.org/css-syntax",syntax:"<ident-token> : <declaration-value>? [ '!' important ]?"},"declaration-list":{comment:"missed, restored by https://drafts.csswg.org/css-syntax",syntax:"[ <declaration>? ';' ]* <declaration>?"},url:{comment:"https://drafts.csswg.org/css-values-4/#urls",syntax:"url( <string> <url-modifier>* ) | <url-token>"},"url-modifier":{comment:"https://drafts.csswg.org/css-values-4/#typedef-url-modifier",syntax:"<ident> | <function-token> <any-value> )"},"number-zero-one":{syntax:"<number [0,1]>"},"number-one-or-greater":{syntax:"<number [1,\u221E]>"},"-non-standard-display":{syntax:"-ms-inline-flexbox | -ms-grid | -ms-inline-grid | -webkit-flex | -webkit-inline-flex | -webkit-box | -webkit-inline-box | -moz-inline-stack | -moz-box | -moz-inline-box"}}}}),Ji=O((e,t)=>{"use strict";var p=Zi(),y=p;t.exports=y}),ea=O((e,t)=>{t.exports={"@charset":{syntax:'@charset "<charset>";',groups:["CSS Charsets"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@charset"},"@counter-style":{syntax:`@counter-style <counter-style-name> {
41
+ --`+new Array((c||s.length)+1).join("-")+"^"})}e.SyntaxError=p}),Hi=O(e=>{"use strict";var t=Bt(),p=9,y=10,s=12,c=13,u=32,a=class{constructor(r){this.str=r,this.pos=0}charCodeAt(r){return r<this.str.length?this.str.charCodeAt(r):0}charCode(){return this.charCodeAt(this.pos)}nextCharCode(){return this.charCodeAt(this.pos+1)}nextNonWsCode(r){return this.charCodeAt(this.findWsEnd(r))}findWsEnd(r){for(;r<this.str.length;r++){let o=this.str.charCodeAt(r);if(o!==c&&o!==y&&o!==s&&o!==u&&o!==p)break}return r}substringToPos(r){return this.str.substring(this.pos,this.pos=r)}eat(r){this.charCode()!==r&&this.error("Expect `"+String.fromCharCode(r)+"`"),this.pos++}peek(){return this.pos<this.str.length?this.str.charAt(this.pos++):""}error(r){throw new t.SyntaxError(r,this.str,this.pos)}};e.Tokenizer=a}),Xe=O(e=>{"use strict";var t=Hi(),p=9,y=10,s=12,c=13,u=32,a=33,r=35,o=38,l=39,g=40,f=41,b=42,n=43,i=44,m=45,d=60,S=62,v=63,x=64,h=91,k=93,C=123,w=124,A=125,z=8734,T=new Uint8Array(128).map((W,N)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(N))?1:0),D={" ":1,"&&":2,"||":3,"|":4};function _(W){return W.substringToPos(W.findWsEnd(W.pos))}function I(W){let N=W.pos;for(;N<W.str.length;N++){let K=W.str.charCodeAt(N);if(K>=128||T[K]===0)break}return W.pos===N&&W.error("Expect a keyword"),W.substringToPos(N)}function q(W){let N=W.pos;for(;N<W.str.length;N++){let K=W.str.charCodeAt(N);if(K<48||K>57)break}return W.pos===N&&W.error("Expect a number"),W.substringToPos(N)}function F(W){let N=W.str.indexOf("'",W.pos+1);return N===-1&&(W.pos=W.str.length,W.error("Expect an apostrophe")),W.substringToPos(N+1)}function M(W){let N=null,K=null;return W.eat(C),N=q(W),W.charCode()===i?(W.pos++,W.charCode()!==A&&(K=q(W))):K=N,W.eat(A),{min:Number(N),max:K?Number(K):0}}function G(W){let N=null,K=!1;switch(W.charCode()){case b:W.pos++,N={min:0,max:0};break;case n:W.pos++,N={min:1,max:0};break;case v:W.pos++,N={min:0,max:1};break;case r:W.pos++,K=!0,W.charCode()===C?N=M(W):W.charCode()===v?(W.pos++,N={min:0,max:0}):N={min:1,max:0};break;case C:N=M(W);break;default:return null}return{type:"Multiplier",comma:K,min:N.min,max:N.max,term:null}}function V(W,N){let K=G(W);return K!==null?(K.term=N,W.charCode()===r&&W.charCodeAt(W.pos-1)===n?V(W,K):K):N}function H(W){let N=W.peek();return N===""?null:{type:"Token",value:N}}function j(W){let N;return W.eat(d),W.eat(l),N=I(W),W.eat(l),W.eat(S),V(W,{type:"Property",name:N})}function L(W){let N=null,K=null,Q=1;return W.eat(h),W.charCode()===m&&(W.peek(),Q=-1),Q==-1&&W.charCode()===z?W.peek():(N=Q*Number(q(W)),T[W.charCode()]!==0&&(N+=I(W))),_(W),W.eat(i),_(W),W.charCode()===z?W.peek():(Q=1,W.charCode()===m&&(W.peek(),Q=-1),K=Q*Number(q(W)),T[W.charCode()]!==0&&(K+=I(W))),W.eat(k),{type:"Range",min:N,max:K}}function B(W){let N,K=null;return W.eat(d),N=I(W),W.charCode()===g&&W.nextCharCode()===f&&(W.pos+=2,N+="()"),W.charCodeAt(W.findWsEnd(W.pos))===h&&(_(W),K=L(W)),W.eat(S),V(W,{type:"Type",name:N,opts:K})}function E(W){let N=I(W);return W.charCode()===g?(W.pos++,{type:"Function",name:N}):V(W,{type:"Keyword",name:N})}function R(W,N){function K(X,Y){return{type:"Group",terms:X,combinator:Y,disallowEmpty:!1,explicit:!1}}let Q;for(N=Object.keys(N).sort((X,Y)=>D[X]-D[Y]);N.length>0;){Q=N.shift();let X=0,Y=0;for(;X<W.length;X++){let J=W[X];J.type==="Combinator"&&(J.value===Q?(Y===-1&&(Y=X-1),W.splice(X,1),X--):(Y!==-1&&X-Y>1&&(W.splice(Y,X-Y,K(W.slice(Y,X),Q)),X=Y+1),Y=-1))}Y!==-1&&N.length&&W.splice(Y,X-Y,K(W.slice(Y,X),Q))}return Q}function P(W){let N=[],K={},Q,X=null,Y=W.pos;for(;Q=$(W);)Q.type!=="Spaces"&&(Q.type==="Combinator"?((X===null||X.type==="Combinator")&&(W.pos=Y,W.error("Unexpected combinator")),K[Q.value]=!0):X!==null&&X.type!=="Combinator"&&(K[" "]=!0,N.push({type:"Combinator",value:" "})),N.push(Q),X=Q,Y=W.pos);return X!==null&&X.type==="Combinator"&&(W.pos-=Y,W.error("Unexpected combinator")),{type:"Group",terms:N,combinator:R(N,K)||" ",disallowEmpty:!1,explicit:!1}}function U(W){let N;return W.eat(h),N=P(W),W.eat(k),N.explicit=!0,W.charCode()===a&&(W.pos++,N.disallowEmpty=!0),N}function $(W){let N=W.charCode();if(N<128&&T[N]===1)return E(W);switch(N){case k:break;case h:return V(W,U(W));case d:return W.nextCharCode()===l?j(W):B(W);case w:return{type:"Combinator",value:W.substringToPos(W.pos+(W.nextCharCode()===w?2:1))};case o:return W.pos++,W.eat(o),{type:"Combinator",value:"&&"};case i:return W.pos++,{type:"Comma"};case l:return V(W,{type:"String",value:F(W)});case u:case p:case y:case c:case s:return{type:"Spaces",value:_(W)};case x:return N=W.nextCharCode(),N<128&&T[N]===1?(W.pos++,{type:"AtKeyword",name:I(W)}):H(W);case b:case n:case v:case r:case a:break;case C:if(N=W.nextCharCode(),N<48||N>57)return H(W);break;default:return H(W)}}function te(W){let N=new t.Tokenizer(W),K=P(N);return N.pos!==W.length&&N.error("Unexpected input"),K.terms.length===1&&K.terms[0].type==="Group"?K.terms[0]:K}e.parse=te}),Ot=O(e=>{"use strict";var t=Xe(),p={type:"Match"},y={type:"Mismatch"},s={type:"DisallowEmpty"},c=40,u=41;function a(n,i,m){return i===p&&m===y||n===p&&i===p&&m===p?n:(n.type==="If"&&n.else===y&&i===p&&(i=n.then,n=n.match),{type:"If",match:n,then:i,else:m})}function r(n){return n.length>2&&n.charCodeAt(n.length-2)===c&&n.charCodeAt(n.length-1)===u}function o(n){return n.type==="Keyword"||n.type==="AtKeyword"||n.type==="Function"||n.type==="Type"&&r(n.name)}function l(n,i,m){switch(n){case" ":{let d=p;for(let S=i.length-1;S>=0;S--){let v=i[S];d=a(v,d,y)}return d}case"|":{let d=y,S=null;for(let v=i.length-1;v>=0;v--){let x=i[v];if(o(x)&&(S===null&&v>0&&o(i[v-1])&&(S=Object.create(null),d=a({type:"Enum",map:S},p,d)),S!==null)){let h=(r(x.name)?x.name.slice(0,-1):x.name).toLowerCase();if(!(h in S)){S[h]=x;continue}}S=null,d=a(x,p,d)}return d}case"&&":{if(i.length>5)return{type:"MatchOnce",terms:i,all:!0};let d=y;for(let S=i.length-1;S>=0;S--){let v=i[S],x;i.length>1?x=l(n,i.filter(function(h){return h!==v}),!1):x=p,d=a(v,x,d)}return d}case"||":{if(i.length>5)return{type:"MatchOnce",terms:i,all:!1};let d=m?p:y;for(let S=i.length-1;S>=0;S--){let v=i[S],x;i.length>1?x=l(n,i.filter(function(h){return h!==v}),!0):x=p,d=a(v,x,d)}return d}}}function g(n){let i=p,m=f(n.term);if(n.max===0)m=a(m,s,y),i=a(m,null,y),i.then=a(p,p,i),n.comma&&(i.then.else=a({type:"Comma",syntax:n},i,y));else for(let d=n.min||1;d<=n.max;d++)n.comma&&i!==p&&(i=a({type:"Comma",syntax:n},i,y)),i=a(m,a(p,p,i),y);if(n.min===0)i=a(p,p,i);else for(let d=0;d<n.min-1;d++)n.comma&&i!==p&&(i=a({type:"Comma",syntax:n},i,y)),i=a(m,i,y);return i}function f(n){if(typeof n=="function")return{type:"Generic",fn:n};switch(n.type){case"Group":{let i=l(n.combinator,n.terms.map(f),!1);return n.disallowEmpty&&(i=a(i,s,y)),i}case"Multiplier":return g(n);case"Type":case"Property":return{type:n.type,name:n.name,syntax:n};case"Keyword":return{type:n.type,name:n.name.toLowerCase(),syntax:n};case"AtKeyword":return{type:n.type,name:"@"+n.name.toLowerCase(),syntax:n};case"Function":return{type:n.type,name:n.name.toLowerCase()+"(",syntax:n};case"String":return n.value.length===3?{type:"Token",value:n.value.charAt(1),syntax:n}:{type:n.type,value:n.value.substr(1,n.value.length-2).replace(/\\'/g,"'"),syntax:n};case"Token":return{type:n.type,value:n.value,syntax:n};case"Comma":return{type:n.type,syntax:n};default:throw new Error("Unknown node type:",n.type)}}function b(n,i){return typeof n=="string"&&(n=t.parse(n)),{type:"MatchGraph",match:f(n),syntax:i||null,source:n}}e.DISALLOW_EMPTY=s,e.MATCH=p,e.MISMATCH=y,e.buildMatchGraph=b}),Ki=O(e=>{"use strict";var t=Ot(),p=Z(),{hasOwnProperty:y}=Object.prototype,s=0,c=1,u=2,a=3,r="Match",o="Mismatch",l="Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)",g=15e3;function f(x){let h=null,k=null,C=x;for(;C!==null;)k=C.prev,C.prev=h,h=C,C=k;return h}function b(x,h){if(x.length!==h.length)return!1;for(let k=0;k<x.length;k++){let C=h.charCodeAt(k),w=x.charCodeAt(k);if(w>=65&&w<=90&&(w=w|32),w!==C)return!1}return!0}function n(x){return x.type!==p.Delim?!1:x.value!=="?"}function i(x){return x===null?!0:x.type===p.Comma||x.type===p.Function||x.type===p.LeftParenthesis||x.type===p.LeftSquareBracket||x.type===p.LeftCurlyBracket||n(x)}function m(x){return x===null?!0:x.type===p.RightParenthesis||x.type===p.RightSquareBracket||x.type===p.RightCurlyBracket||x.type===p.Delim&&x.value==="/"}function d(x,h,k){function C(){do L++,j=L<x.length?x[L]:null;while(j!==null&&(j.type===p.WhiteSpace||j.type===p.Comment))}function w(R){let P=L+R;return P<x.length?x[P]:null}function A(R,P){return{nextState:R,matchStack:E,syntaxStack:q,thenStack:F,tokenIndex:L,prev:P}}function z(R){F={nextState:R,matchStack:E,syntaxStack:q,prev:F}}function T(R){M=A(R,M)}function D(){E={type:c,syntax:h.syntax,token:j,prev:E},C(),G=null,L>B&&(B=L)}function _(){q={syntax:h.syntax,opts:h.syntax.opts||q!==null&&q.opts||null,prev:q},E={type:u,syntax:h.syntax,token:E.token,prev:E}}function I(){E.type===u?E=E.prev:E={type:a,syntax:q.syntax,token:E.token,prev:E},q=q.prev}let q=null,F=null,M=null,G=null,V=0,H=null,j=null,L=-1,B=0,E={type:s,syntax:null,token:null,prev:null};for(C();H===null&&++V<g;)switch(h.type){case"Match":if(F===null){if(j!==null&&(L!==x.length-1||j.value!=="\\0"&&j.value!=="\\9")){h=t.MISMATCH;break}H=r;break}if(h=F.nextState,h===t.DISALLOW_EMPTY)if(F.matchStack===E){h=t.MISMATCH;break}else h=t.MATCH;for(;F.syntaxStack!==q;)I();F=F.prev;break;case"Mismatch":if(G!==null&&G!==!1)(M===null||L>M.tokenIndex)&&(M=G,G=!1);else if(M===null){H=o;break}h=M.nextState,F=M.thenStack,q=M.syntaxStack,E=M.matchStack,L=M.tokenIndex,j=L<x.length?x[L]:null,M=M.prev;break;case"MatchGraph":h=h.match;break;case"If":h.else!==t.MISMATCH&&T(h.else),h.then!==t.MATCH&&z(h.then),h=h.match;break;case"MatchOnce":h={type:"MatchOnceBuffer",syntax:h,index:0,mask:0};break;case"MatchOnceBuffer":{let U=h.syntax.terms;if(h.index===U.length){if(h.mask===0||h.syntax.all){h=t.MISMATCH;break}h=t.MATCH;break}if(h.mask===(1<<U.length)-1){h=t.MATCH;break}for(;h.index<U.length;h.index++){let $=1<<h.index;if((h.mask&$)===0){T(h),z({type:"AddMatchOnce",syntax:h.syntax,mask:h.mask|$}),h=U[h.index++];break}}break}case"AddMatchOnce":h={type:"MatchOnceBuffer",syntax:h.syntax,index:0,mask:h.mask};break;case"Enum":if(j!==null){let U=j.value.toLowerCase();if(U.indexOf("\\")!==-1&&(U=U.replace(/\\[09].*$/,"")),y.call(h.map,U)){h=h.map[U];break}}h=t.MISMATCH;break;case"Generic":{let U=q!==null?q.opts:null,$=L+Math.floor(h.fn(j,w,U));if(!isNaN($)&&$>L){for(;L<$;)D();h=t.MATCH}else h=t.MISMATCH;break}case"Type":case"Property":{let U=h.type==="Type"?"types":"properties",$=y.call(k,U)?k[U][h.name]:null;if(!$||!$.match)throw new Error("Bad syntax reference: "+(h.type==="Type"?"<"+h.name+">":"<'"+h.name+"'>"));if(G!==!1&&j!==null&&h.type==="Type"&&(h.name==="custom-ident"&&j.type===p.Ident||h.name==="length"&&j.value==="0")){G===null&&(G=A(h,M)),h=t.MISMATCH;break}_(),h=$.match;break}case"Keyword":{let U=h.name;if(j!==null){let $=j.value;if($.indexOf("\\")!==-1&&($=$.replace(/\\[09].*$/,"")),b($,U)){D(),h=t.MATCH;break}}h=t.MISMATCH;break}case"AtKeyword":case"Function":if(j!==null&&b(j.value,h.name)){D(),h=t.MATCH;break}h=t.MISMATCH;break;case"Token":if(j!==null&&j.value===h.value){D(),h=t.MATCH;break}h=t.MISMATCH;break;case"Comma":j!==null&&j.type===p.Comma?i(E.token)?h=t.MISMATCH:(D(),h=m(j)?t.MISMATCH:t.MATCH):h=i(E.token)||m(j)?t.MATCH:t.MISMATCH;break;case"String":let R="",P=L;for(;P<x.length&&R.length<h.value.length;P++)R+=x[P].value;if(b(R,h.value)){for(;L<P;)D();h=t.MATCH}else h=t.MISMATCH;break;default:throw new Error("Unknown node type: "+h.type)}switch(H){case null:console.warn("[csstree-match] BREAK after "+g+" iterations"),H=l,E=null;break;case r:for(;q!==null;)I();break;default:E=null}return{tokens:x,reason:H,iterations:V,match:E,longestMatch:B}}function S(x,h,k){let C=d(x,h,k||{});if(C.match!==null){let w=f(C.match).prev;for(C.match=[];w!==null;){switch(w.type){case u:case a:C.match.push({type:w.type,syntax:w.syntax});break;default:C.match.push({token:w.token.value,node:w.token.node});break}w=w.prev}}return C}function v(x,h,k){let C=d(x,h,k||{});if(C.match===null)return C;let w=C.match,A=C.match={syntax:h.syntax||null,match:[]},z=[A];for(w=f(w).prev;w!==null;){switch(w.type){case u:A.match.push(A={syntax:w.syntax,match:[]}),z.push(A);break;case a:z.pop(),A=z[z.length-1];break;default:A.match.push({syntax:w.syntax||null,token:w.token.value,node:w.token.node})}w=w.prev}return C}e.matchAsList=S,e.matchAsTree=v}),$i=O(e=>{"use strict";function t(u){function a(l){return l===null?!1:l.type==="Type"||l.type==="Property"||l.type==="Keyword"}function r(l){if(Array.isArray(l.match)){for(let g=0;g<l.match.length;g++)if(r(l.match[g]))return a(l.syntax)&&o.unshift(l.syntax),!0}else if(l.node===u)return o=a(l.syntax)?[l.syntax]:[],!0;return!1}let o=null;return this.matched!==null&&r(this.matched),o}function p(u,a){return c(this,u,r=>r.type==="Type"&&r.name===a)}function y(u,a){return c(this,u,r=>r.type==="Property"&&r.name===a)}function s(u){return c(this,u,a=>a.type==="Keyword")}function c(u,a,r){let o=t.call(u,a);return o===null?!1:o.some(r)}e.getTrace=t,e.isKeyword=s,e.isProperty=y,e.isType=p}),Xi=O(e=>{"use strict";var t=ke();function p(c){return"node"in c?c.node:p(c.match[0])}function y(c){return"node"in c?c.node:y(c.match[c.match.length-1])}function s(c,u,a,r,o){function l(f){if(f.syntax!==null&&f.syntax.type===r&&f.syntax.name===o){let b=p(f),n=y(f);c.syntax.walk(u,function(i,m,d){if(i===b){let S=new t.List;do{if(S.appendData(m.data),m.data===n)break;m=m.next}while(m!==null);g.push({parent:d,nodes:S})}})}Array.isArray(f.match)&&f.match.forEach(l)}let g=[];return a.matched!==null&&l(a.matched),g}e.matchFragments=s}),Yi=O(e=>{"use strict";var t=ke(),{hasOwnProperty:p}=Object.prototype;function y(r){return typeof r=="number"&&isFinite(r)&&Math.floor(r)===r&&r>=0}function s(r){return!!r&&y(r.offset)&&y(r.line)&&y(r.column)}function c(r,o){return function(l,g){if(!l||l.constructor!==Object)return g(l,"Type of node should be an Object");for(let f in l){let b=!0;if(p.call(l,f)!==!1){if(f==="type")l.type!==r&&g(l,"Wrong node type `"+l.type+"`, expected `"+r+"`");else if(f==="loc"){if(l.loc===null)continue;if(l.loc&&l.loc.constructor===Object)if(typeof l.loc.source!="string")f+=".source";else if(!s(l.loc.start))f+=".start";else if(!s(l.loc.end))f+=".end";else continue;b=!1}else if(o.hasOwnProperty(f)){b=!1;for(let n=0;!b&&n<o[f].length;n++){let i=o[f][n];switch(i){case String:b=typeof l[f]=="string";break;case Boolean:b=typeof l[f]=="boolean";break;case null:b=l[f]===null;break;default:typeof i=="string"?b=l[f]&&l[f].type===i:Array.isArray(i)&&(b=l[f]instanceof t.List)}}}else g(l,"Unknown field `"+f+"` for "+r+" node type");b||g(l,"Bad value for `"+r+"."+f+"`")}}for(let f in o)p.call(o,f)&&p.call(l,f)===!1&&g(l,"Field `"+r+"."+f+"` is missed")}}function u(r,o){let l=o.structure,g={type:String,loc:!0},f={type:'"'+r+'"'};for(let b in l){if(p.call(l,b)===!1)continue;let n=[],i=g[b]=Array.isArray(l[b])?l[b].slice():[l[b]];for(let m=0;m<i.length;m++){let d=i[m];if(d===String||d===Boolean)n.push(d.name);else if(d===null)n.push("null");else if(typeof d=="string")n.push("<"+d+">");else if(Array.isArray(d))n.push("List");else throw new Error("Wrong value `"+d+"` in `"+r+"."+b+"` structure definition")}f[b]=n.join(" | ")}return{docs:f,check:c(r,g)}}function a(r){let o={};if(r.node){for(let l in r.node)if(p.call(r.node,l)){let g=r.node[l];if(g.structure)o[l]=u(l,g);else throw new Error("Missed `structure` field in `"+l+"` node type definition")}}return o}e.getStructureFromConfig=a}),zt=O(e=>{"use strict";var t=function(){};function p(s){return typeof s=="function"?s:t}function y(s,c,u){function a(l){switch(r.call(u,l),l.type){case"Group":l.terms.forEach(a);break;case"Multiplier":a(l.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+l.type)}o.call(u,l)}let r=t,o=t;if(typeof c=="function"?r=c:c&&(r=p(c.enter),o=p(c.leave)),r===t&&o===t)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");a(s)}e.walk=y}),Dt=O(e=>{"use strict";var t=Ni(),p=$e(),y=Tt(),s=ji(),c=Ui(),u=Vi(),a=Ot(),r=Ki(),o=$i(),l=Xi(),g=Yi(),f=Xe(),b=Ke(),n=zt(),i=a.buildMatchGraph(y.cssWideKeywords.join(" | "));function m(k,C,w){let A={};for(let z in k)k[z].syntax&&(A[z]=w?k[z].syntax:b.generate(k[z].syntax,{compact:C}));return A}function d(k,C,w){let A={};for(let[z,T]of Object.entries(k))A[z]={prelude:T.prelude&&(w?T.prelude.syntax:b.generate(T.prelude.syntax,{compact:C})),descriptors:T.descriptors&&m(T.descriptors,C,w)};return A}function S(k){for(let C=0;C<k.length;C++)if(k[C].value.toLowerCase()==="var(")return!0;return!1}function v(k,C,w){return{matched:k,iterations:w,error:C,...o}}function x(k,C,w,A){let z=u(w,k.syntax),T;return S(z)?v(null,new Error("Matching for a tree with var() is not supported")):(A&&(T=r.matchAsTree(z,k.cssWideKeywordsSyntax,k)),(!A||!T.match)&&(T=r.matchAsTree(z,C.match,k),!T.match)?v(null,new t.SyntaxMatchError(T.reason,C.syntax,w,T),T.iterations):v(T.match,null,T.iterations))}var h=class{constructor(k,C,w){if(this.cssWideKeywordsSyntax=i,this.syntax=C,this.generic=!1,this.units={...c},this.atrules=Object.create(null),this.properties=Object.create(null),this.types=Object.create(null),this.structure=w||g.getStructureFromConfig(k),k){if(k.units)for(let A of Object.keys(c))Array.isArray(k.units[A])&&(this.units[A]=k.units[A]);if(k.types)for(let A in k.types)this.addType_(A,k.types[A]);if(k.generic){this.generic=!0;for(let[A,z]of Object.entries(s.createGenericTypes(this.units)))this.addType_(A,z)}if(k.atrules)for(let A in k.atrules)this.addAtrule_(A,k.atrules[A]);if(k.properties)for(let A in k.properties)this.addProperty_(A,k.properties[A])}}checkStructure(k){function C(z,T){A.push({node:z,message:T})}let w=this.structure,A=[];return this.syntax.walk(k,function(z){w.hasOwnProperty(z.type)?w[z.type].check(z,C):C(z,"Unknown node type `"+z.type+"`")}),A.length?A:!1}createDescriptor(k,C,w,A=null){let z={type:C,name:w},T={type:C,name:w,parent:A,serializable:typeof k=="string"||k&&typeof k.type=="string",syntax:null,match:null};return typeof k=="function"?T.match=a.buildMatchGraph(k,z):(typeof k=="string"?Object.defineProperty(T,"syntax",{get(){return Object.defineProperty(T,"syntax",{value:f.parse(k)}),T.syntax}}):T.syntax=k,Object.defineProperty(T,"match",{get(){return Object.defineProperty(T,"match",{value:a.buildMatchGraph(T.syntax,z)}),T.match}})),T}addAtrule_(k,C){C&&(this.atrules[k]={type:"Atrule",name:k,prelude:C.prelude?this.createDescriptor(C.prelude,"AtrulePrelude",k):null,descriptors:C.descriptors?Object.keys(C.descriptors).reduce((w,A)=>(w[A]=this.createDescriptor(C.descriptors[A],"AtruleDescriptor",A,k),w),Object.create(null)):null})}addProperty_(k,C){C&&(this.properties[k]=this.createDescriptor(C,"Property",k))}addType_(k,C){C&&(this.types[k]=this.createDescriptor(C,"Type",k))}checkAtruleName(k){if(!this.getAtrule(k))return new t.SyntaxReferenceError("Unknown at-rule","@"+k)}checkAtrulePrelude(k,C){let w=this.checkAtruleName(k);if(w)return w;let A=this.getAtrule(k);if(!A.prelude&&C)return new SyntaxError("At-rule `@"+k+"` should not contain a prelude");if(A.prelude&&!C&&!x(this,A.prelude,"",!1).matched)return new SyntaxError("At-rule `@"+k+"` should contain a prelude")}checkAtruleDescriptorName(k,C){let w=this.checkAtruleName(k);if(w)return w;let A=this.getAtrule(k),z=p.keyword(C);if(!A.descriptors)return new SyntaxError("At-rule `@"+k+"` has no known descriptors");if(!A.descriptors[z.name]&&!A.descriptors[z.basename])return new t.SyntaxReferenceError("Unknown at-rule descriptor",C)}checkPropertyName(k){if(!this.getProperty(k))return new t.SyntaxReferenceError("Unknown property",k)}matchAtrulePrelude(k,C){let w=this.checkAtrulePrelude(k,C);if(w)return v(null,w);let A=this.getAtrule(k);return A.prelude?x(this,A.prelude,C||"",!1):v(null,null)}matchAtruleDescriptor(k,C,w){let A=this.checkAtruleDescriptorName(k,C);if(A)return v(null,A);let z=this.getAtrule(k),T=p.keyword(C);return x(this,z.descriptors[T.name]||z.descriptors[T.basename],w,!1)}matchDeclaration(k){return k.type!=="Declaration"?v(null,new Error("Not a Declaration node")):this.matchProperty(k.property,k.value)}matchProperty(k,C){if(p.property(k).custom)return v(null,new Error("Lexer matching doesn't applicable for custom properties"));let w=this.checkPropertyName(k);return w?v(null,w):x(this,this.getProperty(k),C,!0)}matchType(k,C){let w=this.getType(k);return w?x(this,w,C,!1):v(null,new t.SyntaxReferenceError("Unknown type",k))}match(k,C){return typeof k!="string"&&(!k||!k.type)?v(null,new t.SyntaxReferenceError("Bad syntax")):((typeof k=="string"||!k.match)&&(k=this.createDescriptor(k,"Type","anonymous")),x(this,k,C,!1))}findValueFragments(k,C,w,A){return l.matchFragments(this,C,this.matchProperty(k,C),w,A)}findDeclarationValueFragments(k,C,w){return l.matchFragments(this,k.value,this.matchDeclaration(k),C,w)}findAllFragments(k,C,w){let A=[];return this.syntax.walk(k,{visit:"Declaration",enter:z=>{A.push.apply(A,this.findDeclarationValueFragments(z,C,w))}}),A}getAtrule(k,C=!0){let w=p.keyword(k);return(w.vendor&&C?this.atrules[w.name]||this.atrules[w.basename]:this.atrules[w.name])||null}getAtrulePrelude(k,C=!0){let w=this.getAtrule(k,C);return w&&w.prelude||null}getAtruleDescriptor(k,C){return this.atrules.hasOwnProperty(k)&&this.atrules.declarators&&this.atrules[k].declarators[C]||null}getProperty(k,C=!0){let w=p.property(k);return(w.vendor&&C?this.properties[w.name]||this.properties[w.basename]:this.properties[w.name])||null}getType(k){return hasOwnProperty.call(this.types,k)?this.types[k]:null}validate(){function k(A,z,T,D){if(T.has(z))return T.get(z);T.set(z,!1),D.syntax!==null&&n.walk(D.syntax,function(_){if(_.type!=="Type"&&_.type!=="Property")return;let I=_.type==="Type"?A.types:A.properties,q=_.type==="Type"?C:w;(!hasOwnProperty.call(I,_.name)||k(A,_.name,q,I[_.name]))&&T.set(z,!0)},this)}let C=new Map,w=new Map;for(let A in this.types)k(this,A,C,this.types[A]);for(let A in this.properties)k(this,A,w,this.properties[A]);return C=[...C.keys()].filter(A=>C.get(A)),w=[...w.keys()].filter(A=>w.get(A)),C.length||w.length?{types:C,properties:w}:null}dump(k,C){return{generic:this.generic,units:this.units,types:m(this.types,!C,k),properties:m(this.properties,!C,k),atrules:d(this.atrules,!C,k)}}toString(){return JSON.stringify(this.dump())}};e.Lexer=h}),Qi=O((e,t)=>{"use strict";function p(c,u){return typeof u=="string"&&/^\s*\|/.test(u)?typeof c=="string"?c+u:u.replace(/^\s*\|\s*/,""):u||null}function y(c,u){let a=Object.create(null);for(let[r,o]of Object.entries(c))if(o){a[r]={};for(let l of Object.keys(o))u.includes(l)&&(a[r][l]=o[l])}return a}function s(c,u){let a={...c};for(let[r,o]of Object.entries(u))switch(r){case"generic":a[r]=!!o;break;case"units":a[r]={...c[r]};for(let[l,g]of Object.entries(o))a[r][l]=Array.isArray(g)?g:[];break;case"atrules":a[r]={...c[r]};for(let[l,g]of Object.entries(o)){let f=a[r][l]||{},b=a[r][l]={prelude:f.prelude||null,descriptors:{...f.descriptors}};if(g){b.prelude=g.prelude?p(b.prelude,g.prelude):b.prelude||null;for(let[n,i]of Object.entries(g.descriptors||{}))b.descriptors[n]=i?p(b.descriptors[n],i):null;Object.keys(b.descriptors).length||(b.descriptors=null)}}break;case"types":case"properties":a[r]={...c[r]};for(let[l,g]of Object.entries(o))a[r][l]=p(a[r][l],g);break;case"scope":a[r]={...c[r]};for(let[l,g]of Object.entries(o))a[r][l]={...a[r][l],...g};break;case"parseContext":a[r]={...c[r],...o};break;case"atrule":case"pseudo":a[r]={...c[r],...y(o,["parse"])};break;case"node":a[r]={...c[r],...y(o,["name","structure","parse","generate","walkContext"])};break}return a}t.exports=s}),Ft=O((e,t)=>{"use strict";var p=We(),y=zi(),s=Pi(),c=Mi(),u=Ii(),a=Dt(),r=Qi();function o(g){let f=y.createParser(g),b=u.createWalker(g),n=s.createGenerator(g),{fromPlainObject:i,toPlainObject:m}=c.createConvertor(b),d={lexer:null,createLexer:S=>new a.Lexer(S,d,d.lexer.structure),tokenize:p.tokenize,parse:f,generate:n,walk:b,find:b.find,findLast:b.findLast,findAll:b.findAll,fromPlainObject:i,toPlainObject:m,fork(S){let v=r({},g);return o(typeof S=="function"?S(v,Object.assign):r(v,S))}};return d.lexer=new a.Lexer({generic:!0,units:g.units,types:g.types,atrules:g.atrules,properties:g.properties,node:g.node},d),d}var l=g=>o(r({},g));t.exports=l}),Zi=O((e,t)=>{t.exports={atrules:{charset:{prelude:"<string>"},"font-face":{descriptors:{"unicode-range":{comment:"replaces <unicode-range>, an old production name",syntax:"<urange>#"}}},nest:{prelude:"<complex-selector-list>"}},properties:{"-moz-background-clip":{comment:"deprecated syntax in old Firefox, https://developer.mozilla.org/en/docs/Web/CSS/background-clip",syntax:"padding | border"},"-moz-border-radius-bottomleft":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-left-radius",syntax:"<'border-bottom-left-radius'>"},"-moz-border-radius-bottomright":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius",syntax:"<'border-bottom-right-radius'>"},"-moz-border-radius-topleft":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-left-radius",syntax:"<'border-top-left-radius'>"},"-moz-border-radius-topright":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius",syntax:"<'border-bottom-right-radius'>"},"-moz-control-character-visibility":{comment:"firefox specific keywords, https://bugzilla.mozilla.org/show_bug.cgi?id=947588",syntax:"visible | hidden"},"-moz-osx-font-smoothing":{comment:"misssed old syntax https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth",syntax:"auto | grayscale"},"-moz-user-select":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/user-select",syntax:"none | text | all | -moz-none"},"-ms-flex-align":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align",syntax:"start | end | center | baseline | stretch"},"-ms-flex-item-align":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align",syntax:"auto | start | end | center | baseline | stretch"},"-ms-flex-line-pack":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-line-pack",syntax:"start | end | center | justify | distribute | stretch"},"-ms-flex-negative":{comment:"misssed old syntax implemented in IE; TODO: find references for comfirmation",syntax:"<'flex-shrink'>"},"-ms-flex-pack":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-pack",syntax:"start | end | center | justify | distribute"},"-ms-flex-order":{comment:"misssed old syntax implemented in IE; https://msdn.microsoft.com/en-us/library/jj127303(v=vs.85).aspx",syntax:"<integer>"},"-ms-flex-positive":{comment:"misssed old syntax implemented in IE; TODO: find references for comfirmation",syntax:"<'flex-grow'>"},"-ms-flex-preferred-size":{comment:"misssed old syntax implemented in IE; TODO: find references for comfirmation",syntax:"<'flex-basis'>"},"-ms-interpolation-mode":{comment:"https://msdn.microsoft.com/en-us/library/ff521095(v=vs.85).aspx",syntax:"nearest-neighbor | bicubic"},"-ms-grid-column-align":{comment:"add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466338.aspx",syntax:"start | end | center | stretch"},"-ms-grid-row-align":{comment:"add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466348.aspx",syntax:"start | end | center | stretch"},"-ms-hyphenate-limit-last":{comment:"misssed old syntax implemented in IE; https://www.w3.org/TR/css-text-4/#hyphenate-line-limits",syntax:"none | always | column | page | spread"},"-webkit-appearance":{comment:"webkit specific keywords",references:["http://css-infos.net/property/-webkit-appearance"],syntax:"none | button | button-bevel | caps-lock-indicator | 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 | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbargripper-horizontal | scrollbargripper-vertical | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | 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"},"-webkit-background-clip":{comment:"https://developer.mozilla.org/en/docs/Web/CSS/background-clip",syntax:"[ <box> | border | padding | content | text ]#"},"-webkit-column-break-after":{comment:"added, http://help.dottoro.com/lcrthhhv.php",syntax:"always | auto | avoid"},"-webkit-column-break-before":{comment:"added, http://help.dottoro.com/lcxquvkf.php",syntax:"always | auto | avoid"},"-webkit-column-break-inside":{comment:"added, http://help.dottoro.com/lclhnthl.php",syntax:"always | auto | avoid"},"-webkit-font-smoothing":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth",syntax:"auto | none | antialiased | subpixel-antialiased"},"-webkit-mask-box-image":{comment:"missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image",syntax:"[ <url> | <gradient> | none ] [ <length-percentage>{4} <-webkit-mask-box-repeat>{2} ]?"},"-webkit-print-color-adjust":{comment:"missed",references:["https://developer.mozilla.org/en/docs/Web/CSS/-webkit-print-color-adjust"],syntax:"economy | exact"},"-webkit-text-security":{comment:"missed; http://help.dottoro.com/lcbkewgt.php",syntax:"none | circle | disc | square"},"-webkit-user-drag":{comment:"missed; http://help.dottoro.com/lcbixvwm.php",syntax:"none | element | auto"},"-webkit-user-select":{comment:"auto is supported by old webkit, https://developer.mozilla.org/en-US/docs/Web/CSS/user-select",syntax:"auto | none | text | all"},"alignment-baseline":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#AlignmentBaselineProperty"],syntax:"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical"},"background-clip":{comment:"used <bg-clip> from CSS Backgrounds and Borders 4 since it adds new values",references:["https://github.com/csstree/csstree/issues/190"],syntax:"<bg-clip>#"},"baseline-shift":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#BaselineShiftProperty"],syntax:"baseline | sub | super | <svg-length>"},behavior:{comment:"added old IE property https://msdn.microsoft.com/en-us/library/ms530723(v=vs.85).aspx",syntax:"<url>+"},"clip-rule":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/masking.html#ClipRuleProperty"],syntax:"nonzero | evenodd"},cue:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<'cue-before'> <'cue-after'>?"},"cue-after":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<url> <decibel>? | none"},"cue-before":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<url> <decibel>? | none"},cursor:{comment:"added legacy keywords: hand, -webkit-grab. -webkit-grabbing, -webkit-zoom-in, -webkit-zoom-out, -moz-grab, -moz-grabbing, -moz-zoom-in, -moz-zoom-out",references:["https://www.sitepoint.com/css3-cursor-styles/"],syntax:"[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing | hand | -webkit-grab | -webkit-grabbing | -webkit-zoom-in | -webkit-zoom-out | -moz-grab | -moz-grabbing | -moz-zoom-in | -moz-zoom-out ] ]"},display:{comment:"extended with -ms-flexbox",syntax:"| <-non-standard-display>"},position:{comment:"extended with -webkit-sticky",syntax:"| -webkit-sticky"},"dominant-baseline":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#DominantBaselineProperty"],syntax:"auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge"},"image-rendering":{comment:"extended with <-non-standard-image-rendering>, added SVG keywords optimizeSpeed and optimizeQuality",references:["https://developer.mozilla.org/en/docs/Web/CSS/image-rendering","https://www.w3.org/TR/SVG/painting.html#ImageRenderingProperty"],syntax:"| optimizeSpeed | optimizeQuality | <-non-standard-image-rendering>"},fill:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#FillProperty"],syntax:"<paint>"},"fill-opacity":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#FillProperty"],syntax:"<number-zero-one>"},"fill-rule":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#FillProperty"],syntax:"nonzero | evenodd"},filter:{comment:"extend with IE legacy syntaxes",syntax:"| <-ms-filter-function-list>"},"glyph-orientation-horizontal":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#GlyphOrientationHorizontalProperty"],syntax:"<angle>"},"glyph-orientation-vertical":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#GlyphOrientationVerticalProperty"],syntax:"<angle>"},kerning:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#KerningProperty"],syntax:"auto | <svg-length>"},"letter-spacing":{comment:"fix syntax <length> -> <length-percentage>",references:["https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/letter-spacing"],syntax:"normal | <length-percentage>"},marker:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"marker-end":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"marker-mid":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"marker-start":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"max-width":{comment:"extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/max-width",syntax:"| <-non-standard-width>"},width:{references:["https://developer.mozilla.org/en-US/docs/Web/CSS/width","https://github.com/csstree/stylelint-validator/issues/29"],syntax:"| fill | stretch | intrinsic | -moz-max-content | -webkit-max-content | -moz-fit-content | -webkit-fit-content"},"min-width":{comment:"extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width",syntax:"| <-non-standard-width>"},overflow:{comment:"extend by vendor keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow",syntax:"| <-non-standard-overflow>"},pause:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<'pause-before'> <'pause-after'>?"},"pause-after":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},"pause-before":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},rest:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<'rest-before'> <'rest-after'>?"},"rest-after":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},"rest-before":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},"shape-rendering":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#ShapeRenderingPropert"],syntax:"auto | optimizeSpeed | crispEdges | geometricPrecision"},src:{comment:"added @font-face's src property https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/src",syntax:"[ <url> [ format( <string># ) ]? | local( <family-name> ) ]#"},speak:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"auto | none | normal"},"speak-as":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"normal | spell-out || digits || [ literal-punctuation | no-punctuation ]"},stroke:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<paint>"},"stroke-dasharray":{comment:"added SVG property; a list of comma and/or white space separated <length>s and <percentage>s",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"none | [ <svg-length>+ ]#"},"stroke-dashoffset":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<svg-length>"},"stroke-linecap":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"butt | round | square"},"stroke-linejoin":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"miter | round | bevel"},"stroke-miterlimit":{comment:"added SVG property (<miterlimit> = <number-one-or-greater>) ",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<number-one-or-greater>"},"stroke-opacity":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<number-zero-one>"},"stroke-width":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<svg-length>"},"text-anchor":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#TextAlignmentProperties"],syntax:"start | middle | end"},"unicode-bidi":{comment:"added prefixed keywords https://developer.mozilla.org/en-US/docs/Web/CSS/unicode-bidi",syntax:"| -moz-isolate | -moz-isolate-override | -moz-plaintext | -webkit-isolate | -webkit-isolate-override | -webkit-plaintext"},"unicode-range":{comment:"added missed property https://developer.mozilla.org/en-US/docs/Web/CSS/%40font-face/unicode-range",syntax:"<urange>#"},"voice-balance":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<number> | left | center | right | leftwards | rightwards"},"voice-duration":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"auto | <time>"},"voice-family":{comment:"<name> -> <family-name>, https://www.w3.org/TR/css3-speech/#property-index",syntax:"[ [ <family-name> | <generic-voice> ] , ]* [ <family-name> | <generic-voice> ] | preserve"},"voice-pitch":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]"},"voice-range":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]"},"voice-rate":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"[ normal | x-slow | slow | medium | fast | x-fast ] || <percentage>"},"voice-stress":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"normal | strong | moderate | none | reduced"},"voice-volume":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"silent | [ [ x-soft | soft | medium | loud | x-loud ] || <decibel> ]"},"writing-mode":{comment:"extend with SVG keywords",syntax:"| <svg-writing-mode>"}},types:{"-legacy-gradient":{comment:"added collection of legacy gradient syntaxes",syntax:"<-webkit-gradient()> | <-legacy-linear-gradient> | <-legacy-repeating-linear-gradient> | <-legacy-radial-gradient> | <-legacy-repeating-radial-gradient>"},"-legacy-linear-gradient":{comment:"like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",syntax:"-moz-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-linear-gradient( <-legacy-linear-gradient-arguments> )"},"-legacy-repeating-linear-gradient":{comment:"like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",syntax:"-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )"},"-legacy-linear-gradient-arguments":{comment:"like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",syntax:"[ <angle> | <side-or-corner> ]? , <color-stop-list>"},"-legacy-radial-gradient":{comment:"deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",syntax:"-moz-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-radial-gradient( <-legacy-radial-gradient-arguments> )"},"-legacy-repeating-radial-gradient":{comment:"deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",syntax:"-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )"},"-legacy-radial-gradient-arguments":{comment:"deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",syntax:"[ <position> , ]? [ [ [ <-legacy-radial-gradient-shape> || <-legacy-radial-gradient-size> ] | [ <length> | <percentage> ]{2} ] , ]? <color-stop-list>"},"-legacy-radial-gradient-size":{comment:"before a standard it contains 2 extra keywords (`contain` and `cover`) https://www.w3.org/TR/2011/WD-css3-images-20110908/#ltsize",syntax:"closest-side | closest-corner | farthest-side | farthest-corner | contain | cover"},"-legacy-radial-gradient-shape":{comment:"define to double sure it doesn't extends in future https://www.w3.org/TR/2011/WD-css3-images-20110908/#ltshape",syntax:"circle | ellipse"},"-non-standard-font":{comment:"non standard fonts",references:["https://webkit.org/blog/3709/using-the-system-font-in-web-content/"],syntax:"-apple-system-body | -apple-system-headline | -apple-system-subheadline | -apple-system-caption1 | -apple-system-caption2 | -apple-system-footnote | -apple-system-short-body | -apple-system-short-headline | -apple-system-short-subheadline | -apple-system-short-caption1 | -apple-system-short-footnote | -apple-system-tall-body"},"-non-standard-color":{comment:"non standard colors",references:["http://cssdot.ru/%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_CSS/color-i305.html","https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Mozilla_Color_Preference_Extensions"],syntax:"-moz-ButtonDefault | -moz-ButtonHoverFace | -moz-ButtonHoverText | -moz-CellHighlight | -moz-CellHighlightText | -moz-Combobox | -moz-ComboboxText | -moz-Dialog | -moz-DialogText | -moz-dragtargetzone | -moz-EvenTreeRow | -moz-Field | -moz-FieldText | -moz-html-CellHighlight | -moz-html-CellHighlightText | -moz-mac-accentdarkestshadow | -moz-mac-accentdarkshadow | -moz-mac-accentface | -moz-mac-accentlightesthighlight | -moz-mac-accentlightshadow | -moz-mac-accentregularhighlight | -moz-mac-accentregularshadow | -moz-mac-chrome-active | -moz-mac-chrome-inactive | -moz-mac-focusring | -moz-mac-menuselect | -moz-mac-menushadow | -moz-mac-menutextselect | -moz-MenuHover | -moz-MenuHoverText | -moz-MenuBarText | -moz-MenuBarHoverText | -moz-nativehyperlinktext | -moz-OddTreeRow | -moz-win-communicationstext | -moz-win-mediatext | -moz-activehyperlinktext | -moz-default-background-color | -moz-default-color | -moz-hyperlinktext | -moz-visitedhyperlinktext | -webkit-activelink | -webkit-focus-ring-color | -webkit-link | -webkit-text"},"-non-standard-image-rendering":{comment:"non-standard keywords http://phrogz.net/tmp/canvas_image_zoom.html",syntax:"optimize-contrast | -moz-crisp-edges | -o-crisp-edges | -webkit-optimize-contrast"},"-non-standard-overflow":{comment:"non-standard keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow",syntax:"-moz-scrollbars-none | -moz-scrollbars-horizontal | -moz-scrollbars-vertical | -moz-hidden-unscrollable"},"-non-standard-width":{comment:"non-standard keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width",syntax:"fill-available | min-intrinsic | intrinsic | -moz-available | -moz-fit-content | -moz-min-content | -moz-max-content | -webkit-min-content | -webkit-max-content"},"-webkit-gradient()":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/ - TODO: simplify when after match algorithm improvement ( [, point, radius | , point] -> [, radius]? , point )",syntax:"-webkit-gradient( <-webkit-gradient-type>, <-webkit-gradient-point> [, <-webkit-gradient-point> | , <-webkit-gradient-radius>, <-webkit-gradient-point> ] [, <-webkit-gradient-radius>]? [, <-webkit-gradient-color-stop>]* )"},"-webkit-gradient-color-stop":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"from( <color> ) | color-stop( [ <number-zero-one> | <percentage> ] , <color> ) | to( <color> )"},"-webkit-gradient-point":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"[ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]"},"-webkit-gradient-radius":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"<length> | <percentage>"},"-webkit-gradient-type":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"linear | radial"},"-webkit-mask-box-repeat":{comment:"missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image",syntax:"repeat | stretch | round"},"-webkit-mask-clip-style":{comment:"missed; there is no enough information about `-webkit-mask-clip` property, but looks like all those keywords are working",syntax:"border | border-box | padding | padding-box | content | content-box | text"},"-ms-filter-function-list":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"<-ms-filter-function>+"},"-ms-filter-function":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"<-ms-filter-function-progid> | <-ms-filter-function-legacy>"},"-ms-filter-function-progid":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"'progid:' [ <ident-token> '.' ]* [ <ident-token> | <function-token> <any-value>? ) ]"},"-ms-filter-function-legacy":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"<ident-token> | <function-token> <any-value>? )"},"-ms-filter":{syntax:"<string>"},age:{comment:"https://www.w3.org/TR/css3-speech/#voice-family",syntax:"child | young | old"},"attr-name":{syntax:"<wq-name>"},"attr-fallback":{syntax:"<any-value>"},"bg-clip":{comment:"missed, https://drafts.csswg.org/css-backgrounds-4/#typedef-bg-clip",syntax:"<box> | border | text"},bottom:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},"content-list":{comment:"added attr(), see https://github.com/csstree/csstree/issues/201",syntax:"[ <string> | contents | <image> | <counter> | <quote> | <target> | <leader()> | <attr()> ]+"},"element()":{comment:"https://drafts.csswg.org/css-gcpm/#element-syntax & https://drafts.csswg.org/css-images-4/#element-notation",syntax:"element( <custom-ident> , [ first | start | last | first-except ]? ) | element( <id-selector> )"},"generic-voice":{comment:"https://www.w3.org/TR/css3-speech/#voice-family",syntax:"[ <age>? <gender> <integer>? ]"},gender:{comment:"https://www.w3.org/TR/css3-speech/#voice-family",syntax:"male | female | neutral"},"generic-family":{comment:"added -apple-system",references:["https://webkit.org/blog/3709/using-the-system-font-in-web-content/"],syntax:"| -apple-system"},gradient:{comment:"added legacy syntaxes support",syntax:"| <-legacy-gradient>"},left:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},"mask-image":{comment:"missed; https://drafts.fxtf.org/css-masking-1/#the-mask-image",syntax:"<mask-reference>#"},"named-color":{comment:"added non standard color names",syntax:"| <-non-standard-color>"},paint:{comment:"used by SVG https://www.w3.org/TR/SVG/painting.html#SpecifyingPaint",syntax:"none | <color> | <url> [ none | <color> ]? | context-fill | context-stroke"},right:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},shape:{comment:"missed spaces in function body and add backwards compatible syntax",syntax:"rect( <top>, <right>, <bottom>, <left> ) | rect( <top> <right> <bottom> <left> )"},"scroll-timeline-axis":{comment:"missed definition",syntax:"block | inline | vertical | horizontal"},"scroll-timeline-name":{comment:"missed definition",references:["https://w3c.github.io/csswg-drafts/scroll-animations/#propdef-scroll-timeline-name"],syntax:"none | <custom-ident>"},"single-animation-composition":{comment:"missed definition",references:["https://w3c.github.io/csswg-drafts/css-animations-2/#typedef-single-animation-composition"],syntax:"replace | add | accumulate"},"svg-length":{comment:"All coordinates and lengths in SVG can be specified with or without a unit identifier",references:["https://www.w3.org/TR/SVG11/coords.html#Units"],syntax:"<percentage> | <length> | <number>"},"svg-writing-mode":{comment:"SVG specific keywords (deprecated for CSS)",references:["https://developer.mozilla.org/en/docs/Web/CSS/writing-mode","https://www.w3.org/TR/SVG/text.html#WritingModeProperty"],syntax:"lr-tb | rl-tb | tb-rl | lr | rl | tb"},top:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},x:{comment:"missed; not sure we should add it, but no others except `cursor` is using it so it's ok for now; https://drafts.csswg.org/css-ui-3/#cursor",syntax:"<number>"},y:{comment:"missed; not sure we should add it, but no others except `cursor` is using so it's ok for now; https://drafts.csswg.org/css-ui-3/#cursor",syntax:"<number>"},declaration:{comment:"missed, restored by https://drafts.csswg.org/css-syntax",syntax:"<ident-token> : <declaration-value>? [ '!' important ]?"},"declaration-list":{comment:"missed, restored by https://drafts.csswg.org/css-syntax",syntax:"[ <declaration>? ';' ]* <declaration>?"},url:{comment:"https://drafts.csswg.org/css-values-4/#urls",syntax:"url( <string> <url-modifier>* ) | <url-token>"},"url-modifier":{comment:"https://drafts.csswg.org/css-values-4/#typedef-url-modifier",syntax:"<ident> | <function-token> <any-value> )"},"number-zero-one":{syntax:"<number [0,1]>"},"number-one-or-greater":{syntax:"<number [1,\u221E]>"},"-non-standard-display":{syntax:"-ms-inline-flexbox | -ms-grid | -ms-inline-grid | -webkit-flex | -webkit-inline-flex | -webkit-box | -webkit-inline-box | -moz-inline-stack | -moz-box | -moz-inline-box"}}}}),Ji=O((e,t)=>{"use strict";var p=Zi(),y=p;t.exports=y}),ea=O((e,t)=>{t.exports={"@charset":{syntax:'@charset "<charset>";',groups:["CSS Charsets"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@charset"},"@counter-style":{syntax:`@counter-style <counter-style-name> {
42
42
  [ system: <counter-system>; ] ||
43
43
  [ symbols: <counter-symbols>; ] ||
44
44
  [ additive-symbols: <additive-symbols>; ] ||
@@ -100,7 +100,7 @@ plugins: [
100
100
  value: `+(n||"<empty string>")+`
101
101
  --------`+new Array(b.mismatchOffset+1).join("-")+"^",Object.assign(b,d),b.loc={source:g&&g.loc&&g.loc.source||"<unknown>",start:d,end:S},b};e.SyntaxMatchError=r,e.SyntaxReferenceError=a}),tt=O(e=>{"use strict";var t=new Map,p=new Map,y=45,s=o,c=l,u=r;function a(g,f){return f=f||0,g.length-f>=2&&g.charCodeAt(f)===y&&g.charCodeAt(f+1)===y}function r(g,f){if(f=f||0,g.length-f>=3&&g.charCodeAt(f)===y&&g.charCodeAt(f+1)!==y){let b=g.indexOf("-",f+2);if(b!==-1)return g.substring(f,b+1)}return""}function o(g){if(t.has(g))return t.get(g);let f=g.toLowerCase(),b=t.get(f);if(b===void 0){let n=a(f,0),i=n?"":r(f,0);b=Object.freeze({basename:f.substr(i.length),name:f,prefix:i,vendor:i,custom:n})}return t.set(g,b),b}function l(g){if(p.has(g))return p.get(g);let f=g,b=g[0];b==="/"?b=g[1]==="/"?"//":"/":b!=="_"&&b!=="*"&&b!=="$"&&b!=="#"&&b!=="+"&&b!=="&"&&(b="");let n=a(f,b.length);if(!n&&(f=f.toLowerCase(),p.has(f))){let S=p.get(f);return p.set(g,S),S}let i=n?"":r(f,b.length),m=f.substr(0,b.length+i.length),d=Object.freeze({basename:f.substr(m.length),name:f.substr(b.length),hack:b,vendor:i,prefix:m,custom:n});return p.set(g,d),d}e.isCustomProperty=a,e.keyword=s,e.property=c,e.vendorPrefix=u}),Ar=O(e=>{"use strict";var t=["initial","inherit","unset","revert","revert-layer"];e.cssWideKeywords=t}),Ia=O((e,t)=>{"use strict";var p=ue(),y=ee(),s=ge(),c=43,u=45,a=110,r=!0,o=!1;function l(i,m){return i!==null&&i.type===y.Delim&&i.value.charCodeAt(0)===m}function g(i,m,d){for(;i!==null&&(i.type===y.WhiteSpace||i.type===y.Comment);)i=d(++m);return m}function f(i,m,d,S){if(!i)return 0;let v=i.value.charCodeAt(m);if(v===c||v===u){if(d)return 0;m++}for(;m<i.value.length;m++)if(!p.isDigit(i.value.charCodeAt(m)))return 0;return S+1}function b(i,m,d){let S=!1,v=g(i,m,d);if(i=d(v),i===null)return m;if(i.type!==y.Number)if(l(i,c)||l(i,u)){if(S=!0,v=g(d(++v),v,d),i=d(v),i===null||i.type!==y.Number)return 0}else return m;if(!S){let x=i.value.charCodeAt(0);if(x!==c&&x!==u)return 0}return f(i,S?0:1,S,v)}function n(i,m){let d=0;if(!i)return 0;if(i.type===y.Number)return f(i,0,o,d);if(i.type===y.Ident&&i.value.charCodeAt(0)===u){if(!s.cmpChar(i.value,1,a))return 0;switch(i.value.length){case 2:return b(m(++d),d,m);case 3:return i.value.charCodeAt(2)!==u?0:(d=g(m(++d),d,m),i=m(d),f(i,0,r,d));default:return i.value.charCodeAt(2)!==u?0:f(i,3,r,d)}}else if(i.type===y.Ident||l(i,c)&&m(d+1).type===y.Ident){if(i.type!==y.Ident&&(i=m(++d)),i===null||!s.cmpChar(i.value,0,a))return 0;switch(i.value.length){case 1:return b(m(++d),d,m);case 2:return i.value.charCodeAt(1)!==u?0:(d=g(m(++d),d,m),i=m(d),f(i,0,r,d));default:return i.value.charCodeAt(1)!==u?0:f(i,2,r,d)}}else if(i.type===y.Dimension){let S=i.value.charCodeAt(0),v=S===c||S===u?1:0,x=v;for(;x<i.value.length&&p.isDigit(i.value.charCodeAt(x));x++);return x===v||!s.cmpChar(i.value,x,a)?0:x+1===i.value.length?b(m(++d),d,m):i.value.charCodeAt(x+1)!==u?0:x+2===i.value.length?(d=g(m(++d),d,m),i=m(d),f(i,0,r,d)):f(i,x+2,r,d)}return 0}t.exports=n}),Na=O((e,t)=>{"use strict";var p=ue(),y=ee(),s=ge(),c=43,u=45,a=63,r=117;function o(n,i){return n!==null&&n.type===y.Delim&&n.value.charCodeAt(0)===i}function l(n,i){return n.value.charCodeAt(0)===i}function g(n,i,m){let d=0;for(let S=i;S<n.value.length;S++){let v=n.value.charCodeAt(S);if(v===u&&m&&d!==0)return g(n,i+d+1,!1),6;if(!p.isHexDigit(v)||++d>6)return 0}return d}function f(n,i,m){if(!n)return 0;for(;o(m(i),a);){if(++n>6)return 0;i++}return i}function b(n,i){let m=0;if(n===null||n.type!==y.Ident||!s.cmpChar(n.value,0,r)||(n=i(++m),n===null))return 0;if(o(n,c))return n=i(++m),n===null?0:n.type===y.Ident?f(g(n,0,!0),++m,i):o(n,a)?f(1,++m,i):0;if(n.type===y.Number){let d=g(n,1,!0);return d===0?0:(n=i(++m),n===null?m:n.type===y.Dimension||n.type===y.Number?!l(n,u)||!g(n,1,!1)?0:m+1:f(d,m,i))}return n.type===y.Dimension?f(g(n,1,!0),++m,i):0}t.exports=b}),Ra=O((e,t)=>{"use strict";var p=Ar(),y=Ia(),s=Na(),c=ee(),u=ue(),a=ge(),r=["calc(","-moz-calc(","-webkit-calc("],o=new Map([[c.Function,c.RightParenthesis],[c.LeftParenthesis,c.RightParenthesis],[c.LeftSquareBracket,c.RightSquareBracket],[c.LeftCurlyBracket,c.RightCurlyBracket]]),l=["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"],g=["deg","grad","rad","turn"],f=["s","ms"],b=["hz","khz"],n=["dpi","dpcm","dppx","x"],i=["fr"],m=["db"],d=["st"];function S(L,B){return B<L.length?L.charCodeAt(B):0}function v(L,B){return a.cmpStr(L,0,L.length,B)}function x(L,B){for(let E=0;E<B.length;E++)if(v(L,B[E]))return!0;return!1}function h(L,B){return B!==L.length-2?!1:S(L,B)===92&&u.isDigit(S(L,B+1))}function k(L,B,E){if(L&&L.type==="Range"){let R=Number(E!==void 0&&E!==B.length?B.substr(0,E):B);if(isNaN(R)||L.min!==null&&R<L.min&&typeof L.min!="string"||L.max!==null&&R>L.max&&typeof L.max!="string")return!0}return!1}function C(L,B){let E=0,R=[],P=0;e:do{switch(L.type){case c.RightCurlyBracket:case c.RightParenthesis:case c.RightSquareBracket:if(L.type!==E)break e;if(E=R.pop(),R.length===0){P++;break e}break;case c.Function:case c.LeftParenthesis:case c.LeftSquareBracket:case c.LeftCurlyBracket:R.push(E),E=o.get(L.type);break}P++}while(L=B(P));return P}function w(L){return function(B,E,R){return B===null?0:B.type===c.Function&&x(B.value,r)?C(B,E):L(B,E,R)}}function A(L){return function(B){return B===null||B.type!==L?0:1}}function z(L){if(L===null||L.type!==c.Ident)return 0;let B=L.value.toLowerCase();return x(B,p.cssWideKeywords)||v(B,"default")?0:1}function T(L){return L===null||L.type!==c.Ident||S(L.value,0)!==45||S(L.value,1)!==45?0:1}function D(L){if(L===null||L.type!==c.Hash)return 0;let B=L.value.length;if(B!==4&&B!==5&&B!==7&&B!==9)return 0;for(let E=1;E<B;E++)if(!u.isHexDigit(S(L.value,E)))return 0;return 1}function _(L){return L===null||L.type!==c.Hash||!u.isIdentifierStart(S(L.value,1),S(L.value,2),S(L.value,3))?0:1}function I(L,B){if(!L)return 0;let E=0,R=[],P=0;e:do{switch(L.type){case c.BadString:case c.BadUrl:break e;case c.RightCurlyBracket:case c.RightParenthesis:case c.RightSquareBracket:if(L.type!==E)break e;E=R.pop();break;case c.Semicolon:if(E===0)break e;break;case c.Delim:if(E===0&&L.value==="!")break e;break;case c.Function:case c.LeftParenthesis:case c.LeftSquareBracket:case c.LeftCurlyBracket:R.push(E),E=o.get(L.type);break}P++}while(L=B(P));return P}function q(L,B){if(!L)return 0;let E=0,R=[],P=0;e:do{switch(L.type){case c.BadString:case c.BadUrl:break e;case c.RightCurlyBracket:case c.RightParenthesis:case c.RightSquareBracket:if(L.type!==E)break e;E=R.pop();break;case c.Function:case c.LeftParenthesis:case c.LeftSquareBracket:case c.LeftCurlyBracket:R.push(E),E=o.get(L.type);break}P++}while(L=B(P));return P}function F(L){return L&&(L=new Set(L)),function(B,E,R){if(B===null||B.type!==c.Dimension)return 0;let P=a.consumeNumber(B.value,0);if(L!==null){let U=B.value.indexOf("\\",P),$=U===-1||!h(B.value,U)?B.value.substr(P):B.value.substring(P,U);if(L.has($.toLowerCase())===!1)return 0}return k(R,B.value,P)?0:1}}function M(L,B,E){return L===null||L.type!==c.Percentage||k(E,L.value,L.value.length-1)?0:1}function G(L){return typeof L!="function"&&(L=function(){return 0}),function(B,E,R){return B!==null&&B.type===c.Number&&Number(B.value)===0?1:L(B,E,R)}}function V(L,B,E){if(L===null)return 0;let R=a.consumeNumber(L.value,0);return R!==L.value.length&&!h(L.value,R)||k(E,L.value,R)?0:1}function H(L,B,E){if(L===null||L.type!==c.Number)return 0;let R=S(L.value,0)===43||S(L.value,0)===45?1:0;for(;R<L.value.length;R++)if(!u.isDigit(S(L.value,R)))return 0;return k(E,L.value,R)?0:1}var j={"ident-token":A(c.Ident),"function-token":A(c.Function),"at-keyword-token":A(c.AtKeyword),"hash-token":A(c.Hash),"string-token":A(c.String),"bad-string-token":A(c.BadString),"url-token":A(c.Url),"bad-url-token":A(c.BadUrl),"delim-token":A(c.Delim),"number-token":A(c.Number),"percentage-token":A(c.Percentage),"dimension-token":A(c.Dimension),"whitespace-token":A(c.WhiteSpace),"CDO-token":A(c.CDO),"CDC-token":A(c.CDC),"colon-token":A(c.Colon),"semicolon-token":A(c.Semicolon),"comma-token":A(c.Comma),"[-token":A(c.LeftSquareBracket),"]-token":A(c.RightSquareBracket),"(-token":A(c.LeftParenthesis),")-token":A(c.RightParenthesis),"{-token":A(c.LeftCurlyBracket),"}-token":A(c.RightCurlyBracket),string:A(c.String),ident:A(c.Ident),"custom-ident":z,"custom-property-name":T,"hex-color":D,"id-selector":_,"an-plus-b":y,urange:s,"declaration-value":I,"any-value":q,dimension:w(F(null)),angle:w(F(g)),decibel:w(F(m)),frequency:w(F(b)),flex:w(F(i)),length:w(G(F(l))),resolution:w(F(n)),semitones:w(F(d)),time:w(F(f)),percentage:w(M),zero:G(),number:w(V),integer:w(H)};t.exports=j}),Ga=O((e,t)=>{"use strict";var p=Le(),y={decorator(u){let a=[],r=null;return{...u,node(o){let l=r;r=o,u.node.call(this,o),r=l},emit(o,l,g){a.push({type:l,value:o,node:g?null:r})},result(){return a}}}};function s(u){let a=[];return p.tokenize(u,(r,o,l)=>a.push({type:r,value:u.slice(o,l),node:null})),a}function c(u,a){return typeof u=="string"?s(u):a.generate(u,y)}t.exports=c}),Er=O(e=>{"use strict";var t=Je();function p(y,s,c){return Object.assign(t.createCustomError("SyntaxError",y),{input:s,offset:c,rawMessage:y,message:y+`
102
102
  `+s+`
103
- --`+new Array((c||s.length)+1).join("-")+"^"})}e.SyntaxError=p}),ja=O(e=>{"use strict";var t=Er(),p=9,y=10,s=12,c=13,u=32,a=class{constructor(r){this.str=r,this.pos=0}charCodeAt(r){return r<this.str.length?this.str.charCodeAt(r):0}charCode(){return this.charCodeAt(this.pos)}nextCharCode(){return this.charCodeAt(this.pos+1)}nextNonWsCode(r){return this.charCodeAt(this.findWsEnd(r))}findWsEnd(r){for(;r<this.str.length;r++){let o=this.str.charCodeAt(r);if(o!==c&&o!==y&&o!==s&&o!==u&&o!==p)break}return r}substringToPos(r){return this.str.substring(this.pos,this.pos=r)}eat(r){this.charCode()!==r&&this.error("Expect `"+String.fromCharCode(r)+"`"),this.pos++}peek(){return this.pos<this.str.length?this.str.charAt(this.pos++):""}error(r){throw new t.SyntaxError(r,this.str,this.pos)}};e.Tokenizer=a}),rt=O(e=>{"use strict";var t=ja(),p=9,y=10,s=12,c=13,u=32,a=33,r=35,o=38,l=39,g=40,f=41,b=42,n=43,i=44,m=45,d=60,S=62,v=63,x=64,h=91,k=93,C=123,w=124,A=125,z=8734,T=new Uint8Array(128).map((W,N)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(N))?1:0),D={" ":1,"&&":2,"||":3,"|":4};function _(W){return W.substringToPos(W.findWsEnd(W.pos))}function I(W){let N=W.pos;for(;N<W.str.length;N++){let K=W.str.charCodeAt(N);if(K>=128||T[K]===0)break}return W.pos===N&&W.error("Expect a keyword"),W.substringToPos(N)}function q(W){let N=W.pos;for(;N<W.str.length;N++){let K=W.str.charCodeAt(N);if(K<48||K>57)break}return W.pos===N&&W.error("Expect a number"),W.substringToPos(N)}function F(W){let N=W.str.indexOf("'",W.pos+1);return N===-1&&(W.pos=W.str.length,W.error("Expect an apostrophe")),W.substringToPos(N+1)}function M(W){let N=null,K=null;return W.eat(C),N=q(W),W.charCode()===i?(W.pos++,W.charCode()!==A&&(K=q(W))):K=N,W.eat(A),{min:Number(N),max:K?Number(K):0}}function G(W){let N=null,K=!1;switch(W.charCode()){case b:W.pos++,N={min:0,max:0};break;case n:W.pos++,N={min:1,max:0};break;case v:W.pos++,N={min:0,max:1};break;case r:W.pos++,K=!0,W.charCode()===C?N=M(W):W.charCode()===v?(W.pos++,N={min:0,max:0}):N={min:1,max:0};break;case C:N=M(W);break;default:return null}return{type:"Multiplier",comma:K,min:N.min,max:N.max,term:null}}function V(W,N){let K=G(W);return K!==null?(K.term=N,W.charCode()===r&&W.charCodeAt(W.pos-1)===n?V(W,K):K):N}function H(W){let N=W.peek();return N===""?null:{type:"Token",value:N}}function j(W){let N;return W.eat(d),W.eat(l),N=I(W),W.eat(l),W.eat(S),V(W,{type:"Property",name:N})}function L(W){let N=null,K=null,Q=1;return W.eat(h),W.charCode()===m&&(W.peek(),Q=-1),Q==-1&&W.charCode()===z?W.peek():(N=Q*Number(q(W)),T[W.charCode()]!==0&&(N+=I(W))),_(W),W.eat(i),_(W),W.charCode()===z?W.peek():(Q=1,W.charCode()===m&&(W.peek(),Q=-1),K=Q*Number(q(W)),T[W.charCode()]!==0&&(K+=I(W))),W.eat(k),{type:"Range",min:N,max:K}}function B(W){let N,K=null;return W.eat(d),N=I(W),W.charCode()===g&&W.nextCharCode()===f&&(W.pos+=2,N+="()"),W.charCodeAt(W.findWsEnd(W.pos))===h&&(_(W),K=L(W)),W.eat(S),V(W,{type:"Type",name:N,opts:K})}function E(W){let N=I(W);return W.charCode()===g?(W.pos++,{type:"Function",name:N}):V(W,{type:"Keyword",name:N})}function R(W,N){function K(X,Y){return{type:"Group",terms:X,combinator:Y,disallowEmpty:!1,explicit:!1}}let Q;for(N=Object.keys(N).sort((X,Y)=>D[X]-D[Y]);N.length>0;){Q=N.shift();let X=0,Y=0;for(;X<W.length;X++){let J=W[X];J.type==="Combinator"&&(J.value===Q?(Y===-1&&(Y=X-1),W.splice(X,1),X--):(Y!==-1&&X-Y>1&&(W.splice(Y,X-Y,K(W.slice(Y,X),Q)),X=Y+1),Y=-1))}Y!==-1&&N.length&&W.splice(Y,X-Y,K(W.slice(Y,X),Q))}return Q}function P(W){let N=[],K={},Q,X=null,Y=W.pos;for(;Q=$(W);)Q.type!=="Spaces"&&(Q.type==="Combinator"?((X===null||X.type==="Combinator")&&(W.pos=Y,W.error("Unexpected combinator")),K[Q.value]=!0):X!==null&&X.type!=="Combinator"&&(K[" "]=!0,N.push({type:"Combinator",value:" "})),N.push(Q),X=Q,Y=W.pos);return X!==null&&X.type==="Combinator"&&(W.pos-=Y,W.error("Unexpected combinator")),{type:"Group",terms:N,combinator:R(N,K)||" ",disallowEmpty:!1,explicit:!1}}function U(W){let N;return W.eat(h),N=P(W),W.eat(k),N.explicit=!0,W.charCode()===a&&(W.pos++,N.disallowEmpty=!0),N}function $(W){let N=W.charCode();if(N<128&&T[N]===1)return E(W);switch(N){case k:break;case h:return V(W,U(W));case d:return W.nextCharCode()===l?j(W):B(W);case w:return{type:"Combinator",value:W.substringToPos(W.pos+(W.nextCharCode()===w?2:1))};case o:return W.pos++,W.eat(o),{type:"Combinator",value:"&&"};case i:return W.pos++,{type:"Comma"};case l:return V(W,{type:"String",value:F(W)});case u:case p:case y:case c:case s:return{type:"Spaces",value:_(W)};case x:return N=W.nextCharCode(),N<128&&T[N]===1?(W.pos++,{type:"AtKeyword",name:I(W)}):H(W);case b:case n:case v:case r:case a:break;case C:if(N=W.nextCharCode(),N<48||N>57)return H(W);break;default:return H(W)}}function te(W){let N=new t.Tokenizer(W),K=P(N);return N.pos!==W.length&&N.error("Unexpected input"),K.terms.length===1&&K.terms[0].type==="Group"?K.terms[0]:K}e.parse=te}),Tr=O(e=>{"use strict";var t=rt(),p={type:"Match"},y={type:"Mismatch"},s={type:"DisallowEmpty"},c=40,u=41;function a(n,i,m){return i===p&&m===y||n===p&&i===p&&m===p?n:(n.type==="If"&&n.else===y&&i===p&&(i=n.then,n=n.match),{type:"If",match:n,then:i,else:m})}function r(n){return n.length>2&&n.charCodeAt(n.length-2)===c&&n.charCodeAt(n.length-1)===u}function o(n){return n.type==="Keyword"||n.type==="AtKeyword"||n.type==="Function"||n.type==="Type"&&r(n.name)}function l(n,i,m){switch(n){case" ":{let d=p;for(let S=i.length-1;S>=0;S--){let v=i[S];d=a(v,d,y)}return d}case"|":{let d=y,S=null;for(let v=i.length-1;v>=0;v--){let x=i[v];if(o(x)&&(S===null&&v>0&&o(i[v-1])&&(S=Object.create(null),d=a({type:"Enum",map:S},p,d)),S!==null)){let h=(r(x.name)?x.name.slice(0,-1):x.name).toLowerCase();if(!(h in S)){S[h]=x;continue}}S=null,d=a(x,p,d)}return d}case"&&":{if(i.length>5)return{type:"MatchOnce",terms:i,all:!0};let d=y;for(let S=i.length-1;S>=0;S--){let v=i[S],x;i.length>1?x=l(n,i.filter(function(h){return h!==v}),!1):x=p,d=a(v,x,d)}return d}case"||":{if(i.length>5)return{type:"MatchOnce",terms:i,all:!1};let d=m?p:y;for(let S=i.length-1;S>=0;S--){let v=i[S],x;i.length>1?x=l(n,i.filter(function(h){return h!==v}),!0):x=p,d=a(v,x,d)}return d}}}function g(n){let i=p,m=f(n.term);if(n.max===0)m=a(m,s,y),i=a(m,null,y),i.then=a(p,p,i),n.comma&&(i.then.else=a({type:"Comma",syntax:n},i,y));else for(let d=n.min||1;d<=n.max;d++)n.comma&&i!==p&&(i=a({type:"Comma",syntax:n},i,y)),i=a(m,a(p,p,i),y);if(n.min===0)i=a(p,p,i);else for(let d=0;d<n.min-1;d++)n.comma&&i!==p&&(i=a({type:"Comma",syntax:n},i,y)),i=a(m,i,y);return i}function f(n){if(typeof n=="function")return{type:"Generic",fn:n};switch(n.type){case"Group":{let i=l(n.combinator,n.terms.map(f),!1);return n.disallowEmpty&&(i=a(i,s,y)),i}case"Multiplier":return g(n);case"Type":case"Property":return{type:n.type,name:n.name,syntax:n};case"Keyword":return{type:n.type,name:n.name.toLowerCase(),syntax:n};case"AtKeyword":return{type:n.type,name:"@"+n.name.toLowerCase(),syntax:n};case"Function":return{type:n.type,name:n.name.toLowerCase()+"(",syntax:n};case"String":return n.value.length===3?{type:"Token",value:n.value.charAt(1),syntax:n}:{type:n.type,value:n.value.substr(1,n.value.length-2).replace(/\\'/g,"'"),syntax:n};case"Token":return{type:n.type,value:n.value,syntax:n};case"Comma":return{type:n.type,syntax:n};default:throw new Error("Unknown node type:",n.type)}}function b(n,i){return typeof n=="string"&&(n=t.parse(n)),{type:"MatchGraph",match:f(n),syntax:i||null,source:n}}e.DISALLOW_EMPTY=s,e.MATCH=p,e.MISMATCH=y,e.buildMatchGraph=b}),Ua=O(e=>{"use strict";var t=Tr(),p=ee(),{hasOwnProperty:y}=Object.prototype,s=0,c=1,u=2,a=3,r="Match",o="Mismatch",l="Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)",g=15e3;function f(x){let h=null,k=null,C=x;for(;C!==null;)k=C.prev,C.prev=h,h=C,C=k;return h}function b(x,h){if(x.length!==h.length)return!1;for(let k=0;k<x.length;k++){let C=h.charCodeAt(k),w=x.charCodeAt(k);if(w>=65&&w<=90&&(w=w|32),w!==C)return!1}return!0}function n(x){return x.type!==p.Delim?!1:x.value!=="?"}function i(x){return x===null?!0:x.type===p.Comma||x.type===p.Function||x.type===p.LeftParenthesis||x.type===p.LeftSquareBracket||x.type===p.LeftCurlyBracket||n(x)}function m(x){return x===null?!0:x.type===p.RightParenthesis||x.type===p.RightSquareBracket||x.type===p.RightCurlyBracket||x.type===p.Delim&&x.value==="/"}function d(x,h,k){function C(){do L++,j=L<x.length?x[L]:null;while(j!==null&&(j.type===p.WhiteSpace||j.type===p.Comment))}function w(R){let P=L+R;return P<x.length?x[P]:null}function A(R,P){return{nextState:R,matchStack:E,syntaxStack:q,thenStack:F,tokenIndex:L,prev:P}}function z(R){F={nextState:R,matchStack:E,syntaxStack:q,prev:F}}function T(R){M=A(R,M)}function D(){E={type:c,syntax:h.syntax,token:j,prev:E},C(),G=null,L>B&&(B=L)}function _(){q={syntax:h.syntax,opts:h.syntax.opts||q!==null&&q.opts||null,prev:q},E={type:u,syntax:h.syntax,token:E.token,prev:E}}function I(){E.type===u?E=E.prev:E={type:a,syntax:q.syntax,token:E.token,prev:E},q=q.prev}let q=null,F=null,M=null,G=null,V=0,H=null,j=null,L=-1,B=0,E={type:s,syntax:null,token:null,prev:null};for(C();H===null&&++V<g;)switch(h.type){case"Match":if(F===null){if(j!==null&&(L!==x.length-1||j.value!=="\\0"&&j.value!=="\\9")){h=t.MISMATCH;break}H=r;break}if(h=F.nextState,h===t.DISALLOW_EMPTY)if(F.matchStack===E){h=t.MISMATCH;break}else h=t.MATCH;for(;F.syntaxStack!==q;)I();F=F.prev;break;case"Mismatch":if(G!==null&&G!==!1)(M===null||L>M.tokenIndex)&&(M=G,G=!1);else if(M===null){H=o;break}h=M.nextState,F=M.thenStack,q=M.syntaxStack,E=M.matchStack,L=M.tokenIndex,j=L<x.length?x[L]:null,M=M.prev;break;case"MatchGraph":h=h.match;break;case"If":h.else!==t.MISMATCH&&T(h.else),h.then!==t.MATCH&&z(h.then),h=h.match;break;case"MatchOnce":h={type:"MatchOnceBuffer",syntax:h,index:0,mask:0};break;case"MatchOnceBuffer":{let U=h.syntax.terms;if(h.index===U.length){if(h.mask===0||h.syntax.all){h=t.MISMATCH;break}h=t.MATCH;break}if(h.mask===(1<<U.length)-1){h=t.MATCH;break}for(;h.index<U.length;h.index++){let $=1<<h.index;if(!(h.mask&$)){T(h),z({type:"AddMatchOnce",syntax:h.syntax,mask:h.mask|$}),h=U[h.index++];break}}break}case"AddMatchOnce":h={type:"MatchOnceBuffer",syntax:h.syntax,index:0,mask:h.mask};break;case"Enum":if(j!==null){let U=j.value.toLowerCase();if(U.indexOf("\\")!==-1&&(U=U.replace(/\\[09].*$/,"")),y.call(h.map,U)){h=h.map[U];break}}h=t.MISMATCH;break;case"Generic":{let U=q!==null?q.opts:null,$=L+Math.floor(h.fn(j,w,U));if(!isNaN($)&&$>L){for(;L<$;)D();h=t.MATCH}else h=t.MISMATCH;break}case"Type":case"Property":{let U=h.type==="Type"?"types":"properties",$=y.call(k,U)?k[U][h.name]:null;if(!$||!$.match)throw new Error("Bad syntax reference: "+(h.type==="Type"?"<"+h.name+">":"<'"+h.name+"'>"));if(G!==!1&&j!==null&&h.type==="Type"&&(h.name==="custom-ident"&&j.type===p.Ident||h.name==="length"&&j.value==="0")){G===null&&(G=A(h,M)),h=t.MISMATCH;break}_(),h=$.match;break}case"Keyword":{let U=h.name;if(j!==null){let $=j.value;if($.indexOf("\\")!==-1&&($=$.replace(/\\[09].*$/,"")),b($,U)){D(),h=t.MATCH;break}}h=t.MISMATCH;break}case"AtKeyword":case"Function":if(j!==null&&b(j.value,h.name)){D(),h=t.MATCH;break}h=t.MISMATCH;break;case"Token":if(j!==null&&j.value===h.value){D(),h=t.MATCH;break}h=t.MISMATCH;break;case"Comma":j!==null&&j.type===p.Comma?i(E.token)?h=t.MISMATCH:(D(),h=m(j)?t.MISMATCH:t.MATCH):h=i(E.token)||m(j)?t.MATCH:t.MISMATCH;break;case"String":let R="",P=L;for(;P<x.length&&R.length<h.value.length;P++)R+=x[P].value;if(b(R,h.value)){for(;L<P;)D();h=t.MATCH}else h=t.MISMATCH;break;default:throw new Error("Unknown node type: "+h.type)}switch(H){case null:console.warn("[csstree-match] BREAK after "+g+" iterations"),H=l,E=null;break;case r:for(;q!==null;)I();break;default:E=null}return{tokens:x,reason:H,iterations:V,match:E,longestMatch:B}}function S(x,h,k){let C=d(x,h,k||{});if(C.match!==null){let w=f(C.match).prev;for(C.match=[];w!==null;){switch(w.type){case u:case a:C.match.push({type:w.type,syntax:w.syntax});break;default:C.match.push({token:w.token.value,node:w.token.node});break}w=w.prev}}return C}function v(x,h,k){let C=d(x,h,k||{});if(C.match===null)return C;let w=C.match,A=C.match={syntax:h.syntax||null,match:[]},z=[A];for(w=f(w).prev;w!==null;){switch(w.type){case u:A.match.push(A={syntax:w.syntax,match:[]}),z.push(A);break;case a:z.pop(),A=z[z.length-1];break;default:A.match.push({syntax:w.syntax||null,token:w.token.value,node:w.token.node})}w=w.prev}return C}e.matchAsList=S,e.matchAsTree=v}),Va=O(e=>{"use strict";function t(u){function a(l){return l===null?!1:l.type==="Type"||l.type==="Property"||l.type==="Keyword"}function r(l){if(Array.isArray(l.match)){for(let g=0;g<l.match.length;g++)if(r(l.match[g]))return a(l.syntax)&&o.unshift(l.syntax),!0}else if(l.node===u)return o=a(l.syntax)?[l.syntax]:[],!0;return!1}let o=null;return this.matched!==null&&r(this.matched),o}function p(u,a){return c(this,u,r=>r.type==="Type"&&r.name===a)}function y(u,a){return c(this,u,r=>r.type==="Property"&&r.name===a)}function s(u){return c(this,u,a=>a.type==="Keyword")}function c(u,a,r){let o=t.call(u,a);return o===null?!1:o.some(r)}e.getTrace=t,e.isKeyword=s,e.isProperty=y,e.isType=p}),Ha=O(e=>{"use strict";var t=we();function p(c){return"node"in c?c.node:p(c.match[0])}function y(c){return"node"in c?c.node:y(c.match[c.match.length-1])}function s(c,u,a,r,o){function l(f){if(f.syntax!==null&&f.syntax.type===r&&f.syntax.name===o){let b=p(f),n=y(f);c.syntax.walk(u,function(i,m,d){if(i===b){let S=new t.List;do{if(S.appendData(m.data),m.data===n)break;m=m.next}while(m!==null);g.push({parent:d,nodes:S})}})}Array.isArray(f.match)&&f.match.forEach(l)}let g=[];return a.matched!==null&&l(a.matched),g}e.matchFragments=s}),Ka=O(e=>{"use strict";var t=we(),{hasOwnProperty:p}=Object.prototype;function y(r){return typeof r=="number"&&isFinite(r)&&Math.floor(r)===r&&r>=0}function s(r){return!!r&&y(r.offset)&&y(r.line)&&y(r.column)}function c(r,o){return function(l,g){if(!l||l.constructor!==Object)return g(l,"Type of node should be an Object");for(let f in l){let b=!0;if(p.call(l,f)!==!1){if(f==="type")l.type!==r&&g(l,"Wrong node type `"+l.type+"`, expected `"+r+"`");else if(f==="loc"){if(l.loc===null)continue;if(l.loc&&l.loc.constructor===Object)if(typeof l.loc.source!="string")f+=".source";else if(!s(l.loc.start))f+=".start";else if(!s(l.loc.end))f+=".end";else continue;b=!1}else if(o.hasOwnProperty(f)){b=!1;for(let n=0;!b&&n<o[f].length;n++){let i=o[f][n];switch(i){case String:b=typeof l[f]=="string";break;case Boolean:b=typeof l[f]=="boolean";break;case null:b=l[f]===null;break;default:typeof i=="string"?b=l[f]&&l[f].type===i:Array.isArray(i)&&(b=l[f]instanceof t.List)}}}else g(l,"Unknown field `"+f+"` for "+r+" node type");b||g(l,"Bad value for `"+r+"."+f+"`")}}for(let f in o)p.call(o,f)&&p.call(l,f)===!1&&g(l,"Field `"+r+"."+f+"` is missed")}}function u(r,o){let l=o.structure,g={type:String,loc:!0},f={type:'"'+r+'"'};for(let b in l){if(p.call(l,b)===!1)continue;let n=[],i=g[b]=Array.isArray(l[b])?l[b].slice():[l[b]];for(let m=0;m<i.length;m++){let d=i[m];if(d===String||d===Boolean)n.push(d.name);else if(d===null)n.push("null");else if(typeof d=="string")n.push("<"+d+">");else if(Array.isArray(d))n.push("List");else throw new Error("Wrong value `"+d+"` in `"+r+"."+b+"` structure definition")}f[b]=n.join(" | ")}return{docs:f,check:c(r,g)}}function a(r){let o={};if(r.node){for(let l in r.node)if(p.call(r.node,l)){let g=r.node[l];if(g.structure)o[l]=u(l,g);else throw new Error("Missed `structure` field in `"+l+"` node type definition")}}return o}e.getStructureFromConfig=a}),Br=O(e=>{"use strict";var t=function(){};function p(s){return typeof s=="function"?s:t}function y(s,c,u){function a(l){switch(r.call(u,l),l.type){case"Group":l.terms.forEach(a);break;case"Multiplier":a(l.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+l.type)}o.call(u,l)}let r=t,o=t;if(typeof c=="function"?r=c:c&&(r=p(c.enter),o=p(c.leave)),r===t&&o===t)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");a(s)}e.walk=y}),Or=O(e=>{"use strict";var t=Ma(),p=tt(),y=Ar(),s=Ra(),c=Ga(),u=Tr(),a=Ua(),r=Va(),o=Ha(),l=Ka(),g=rt(),f=et(),b=Br(),n=u.buildMatchGraph(y.cssWideKeywords.join(" | "));function i(h,k,C){let w={};for(let A in h)h[A].syntax&&(w[A]=C?h[A].syntax:f.generate(h[A].syntax,{compact:k}));return w}function m(h,k,C){let w={};for(let[A,z]of Object.entries(h))w[A]={prelude:z.prelude&&(C?z.prelude.syntax:f.generate(z.prelude.syntax,{compact:k})),descriptors:z.descriptors&&i(z.descriptors,k,C)};return w}function d(h){for(let k=0;k<h.length;k++)if(h[k].value.toLowerCase()==="var(")return!0;return!1}function S(h,k,C){return{matched:h,iterations:C,error:k,...r}}function v(h,k,C,w){let A=c(C,h.syntax),z;return d(A)?S(null,new Error("Matching for a tree with var() is not supported")):(w&&(z=a.matchAsTree(A,h.cssWideKeywordsSyntax,h)),(!w||!z.match)&&(z=a.matchAsTree(A,k.match,h),!z.match)?S(null,new t.SyntaxMatchError(z.reason,k.syntax,C,z),z.iterations):S(z.match,null,z.iterations))}var x=class{constructor(h,k,C){if(this.cssWideKeywordsSyntax=n,this.syntax=k,this.generic=!1,this.atrules=Object.create(null),this.properties=Object.create(null),this.types=Object.create(null),this.structure=C||l.getStructureFromConfig(h),h){if(h.types)for(let w in h.types)this.addType_(w,h.types[w]);if(h.generic){this.generic=!0;for(let w in s)this.addType_(w,s[w])}if(h.atrules)for(let w in h.atrules)this.addAtrule_(w,h.atrules[w]);if(h.properties)for(let w in h.properties)this.addProperty_(w,h.properties[w])}}checkStructure(h){function k(A,z){w.push({node:A,message:z})}let C=this.structure,w=[];return this.syntax.walk(h,function(A){C.hasOwnProperty(A.type)?C[A.type].check(A,k):k(A,"Unknown node type `"+A.type+"`")}),w.length?w:!1}createDescriptor(h,k,C,w=null){let A={type:k,name:C},z={type:k,name:C,parent:w,serializable:typeof h=="string"||h&&typeof h.type=="string",syntax:null,match:null};return typeof h=="function"?z.match=u.buildMatchGraph(h,A):(typeof h=="string"?Object.defineProperty(z,"syntax",{get(){return Object.defineProperty(z,"syntax",{value:g.parse(h)}),z.syntax}}):z.syntax=h,Object.defineProperty(z,"match",{get(){return Object.defineProperty(z,"match",{value:u.buildMatchGraph(z.syntax,A)}),z.match}})),z}addAtrule_(h,k){k&&(this.atrules[h]={type:"Atrule",name:h,prelude:k.prelude?this.createDescriptor(k.prelude,"AtrulePrelude",h):null,descriptors:k.descriptors?Object.keys(k.descriptors).reduce((C,w)=>(C[w]=this.createDescriptor(k.descriptors[w],"AtruleDescriptor",w,h),C),Object.create(null)):null})}addProperty_(h,k){k&&(this.properties[h]=this.createDescriptor(k,"Property",h))}addType_(h,k){k&&(this.types[h]=this.createDescriptor(k,"Type",h))}checkAtruleName(h){if(!this.getAtrule(h))return new t.SyntaxReferenceError("Unknown at-rule","@"+h)}checkAtrulePrelude(h,k){let C=this.checkAtruleName(h);if(C)return C;let w=this.getAtrule(h);if(!w.prelude&&k)return new SyntaxError("At-rule `@"+h+"` should not contain a prelude");if(w.prelude&&!k&&!v(this,w.prelude,"",!1).matched)return new SyntaxError("At-rule `@"+h+"` should contain a prelude")}checkAtruleDescriptorName(h,k){let C=this.checkAtruleName(h);if(C)return C;let w=this.getAtrule(h),A=p.keyword(k);if(!w.descriptors)return new SyntaxError("At-rule `@"+h+"` has no known descriptors");if(!w.descriptors[A.name]&&!w.descriptors[A.basename])return new t.SyntaxReferenceError("Unknown at-rule descriptor",k)}checkPropertyName(h){if(!this.getProperty(h))return new t.SyntaxReferenceError("Unknown property",h)}matchAtrulePrelude(h,k){let C=this.checkAtrulePrelude(h,k);if(C)return S(null,C);let w=this.getAtrule(h);return w.prelude?v(this,w.prelude,k||"",!1):S(null,null)}matchAtruleDescriptor(h,k,C){let w=this.checkAtruleDescriptorName(h,k);if(w)return S(null,w);let A=this.getAtrule(h),z=p.keyword(k);return v(this,A.descriptors[z.name]||A.descriptors[z.basename],C,!1)}matchDeclaration(h){return h.type!=="Declaration"?S(null,new Error("Not a Declaration node")):this.matchProperty(h.property,h.value)}matchProperty(h,k){if(p.property(h).custom)return S(null,new Error("Lexer matching doesn't applicable for custom properties"));let C=this.checkPropertyName(h);return C?S(null,C):v(this,this.getProperty(h),k,!0)}matchType(h,k){let C=this.getType(h);return C?v(this,C,k,!1):S(null,new t.SyntaxReferenceError("Unknown type",h))}match(h,k){return typeof h!="string"&&(!h||!h.type)?S(null,new t.SyntaxReferenceError("Bad syntax")):((typeof h=="string"||!h.match)&&(h=this.createDescriptor(h,"Type","anonymous")),v(this,h,k,!1))}findValueFragments(h,k,C,w){return o.matchFragments(this,k,this.matchProperty(h,k),C,w)}findDeclarationValueFragments(h,k,C){return o.matchFragments(this,h.value,this.matchDeclaration(h),k,C)}findAllFragments(h,k,C){let w=[];return this.syntax.walk(h,{visit:"Declaration",enter:A=>{w.push.apply(w,this.findDeclarationValueFragments(A,k,C))}}),w}getAtrule(h,k=!0){let C=p.keyword(h);return(C.vendor&&k?this.atrules[C.name]||this.atrules[C.basename]:this.atrules[C.name])||null}getAtrulePrelude(h,k=!0){let C=this.getAtrule(h,k);return C&&C.prelude||null}getAtruleDescriptor(h,k){return this.atrules.hasOwnProperty(h)&&this.atrules.declarators&&this.atrules[h].declarators[k]||null}getProperty(h,k=!0){let C=p.property(h);return(C.vendor&&k?this.properties[C.name]||this.properties[C.basename]:this.properties[C.name])||null}getType(h){return hasOwnProperty.call(this.types,h)?this.types[h]:null}validate(){function h(w,A,z,T){if(z.has(A))return z.get(A);z.set(A,!1),T.syntax!==null&&b.walk(T.syntax,function(D){if(D.type!=="Type"&&D.type!=="Property")return;let _=D.type==="Type"?w.types:w.properties,I=D.type==="Type"?k:C;(!hasOwnProperty.call(_,D.name)||h(w,D.name,I,_[D.name]))&&z.set(A,!0)},this)}let k=new Map,C=new Map;for(let w in this.types)h(this,w,k,this.types[w]);for(let w in this.properties)h(this,w,C,this.properties[w]);return k=[...k.keys()].filter(w=>k.get(w)),C=[...C.keys()].filter(w=>C.get(w)),k.length||C.length?{types:k,properties:C}:null}dump(h,k){return{generic:this.generic,types:i(this.types,!k,h),properties:i(this.properties,!k,h),atrules:m(this.atrules,!k,h)}}toString(){return JSON.stringify(this.dump())}};e.Lexer=x}),$a=O((e,t)=>{"use strict";var{hasOwnProperty:p}=Object.prototype,y={generic:!0,types:o,atrules:{prelude:l,descriptors:l},properties:o,parseContext:u,scope:a,atrule:["parse"],pseudo:["parse"],node:["name","structure","parse","generate","walkContext"]};function s(b){return b&&b.constructor===Object}function c(b){return s(b)?{...b}:b}function u(b,n){return Object.assign(b,n)}function a(b,n){for(let i in n)p.call(n,i)&&(s(b[i])?a(b[i],n[i]):b[i]=c(n[i]));return b}function r(b,n){return typeof n=="string"&&/^\s*\|/.test(n)?typeof b=="string"?b+n:n.replace(/^\s*\|\s*/,""):n||null}function o(b,n){if(typeof n=="string")return r(b,n);let i={...b};for(let m in n)p.call(n,m)&&(i[m]=r(p.call(b,m)?b[m]:void 0,n[m]));return i}function l(b,n){let i=o(b,n);return!s(i)||Object.keys(i).length?i:null}function g(b,n,i){for(let m in i)if(p.call(i,m)!==!1){if(i[m]===!0)p.call(n,m)&&(b[m]=c(n[m]));else if(i[m]){if(typeof i[m]=="function"){let d=i[m];b[m]=d({},b[m]),b[m]=d(b[m]||{},n[m])}else if(s(i[m])){let d={};for(let S in b[m])d[S]=g({},b[m][S],i[m]);for(let S in n[m])d[S]=g(d[S]||{},n[m][S],i[m]);b[m]=d}else if(Array.isArray(i[m])){let d={},S=i[m].reduce(function(v,x){return v[x]=!0,v},{});for(let[v,x]of Object.entries(b[m]||{}))d[v]={},x&&g(d[v],x,S);for(let v in n[m])p.call(n[m],v)&&(d[v]||(d[v]={}),n[m]&&n[m][v]&&g(d[v],n[m][v],S));b[m]=d}}}return b}var f=(b,n)=>g(b,n,y);t.exports=f}),zr=O((e,t)=>{"use strict";var p=Le(),y=Fa(),s=La(),c=qa(),u=Pa(),a=Or(),r=$a();function o(g){let f=y.createParser(g),b=u.createWalker(g),n=s.createGenerator(g),{fromPlainObject:i,toPlainObject:m}=c.createConvertor(b),d={lexer:null,createLexer:S=>new a.Lexer(S,d,d.lexer.structure),tokenize:p.tokenize,parse:f,generate:n,walk:b,find:b.find,findLast:b.findLast,findAll:b.findAll,fromPlainObject:i,toPlainObject:m,fork(S){let v=r({},g);return o(typeof S=="function"?S(v,Object.assign):r(v,S))}};return d.lexer=new a.Lexer({generic:!0,types:g.types,atrules:g.atrules,properties:g.properties,node:g.node},d),d}var l=g=>o(r({},g));t.exports=l}),Xa=O((e,t)=>{t.exports={atrules:{charset:{prelude:"<string>"},"font-face":{descriptors:{"unicode-range":{comment:"replaces <unicode-range>, an old production name",syntax:"<urange>#"}}}},properties:{"-moz-background-clip":{comment:"deprecated syntax in old Firefox, https://developer.mozilla.org/en/docs/Web/CSS/background-clip",syntax:"padding | border"},"-moz-border-radius-bottomleft":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-left-radius",syntax:"<'border-bottom-left-radius'>"},"-moz-border-radius-bottomright":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius",syntax:"<'border-bottom-right-radius'>"},"-moz-border-radius-topleft":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-left-radius",syntax:"<'border-top-left-radius'>"},"-moz-border-radius-topright":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius",syntax:"<'border-bottom-right-radius'>"},"-moz-control-character-visibility":{comment:"firefox specific keywords, https://bugzilla.mozilla.org/show_bug.cgi?id=947588",syntax:"visible | hidden"},"-moz-osx-font-smoothing":{comment:"misssed old syntax https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth",syntax:"auto | grayscale"},"-moz-user-select":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/user-select",syntax:"none | text | all | -moz-none"},"-ms-flex-align":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align",syntax:"start | end | center | baseline | stretch"},"-ms-flex-item-align":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align",syntax:"auto | start | end | center | baseline | stretch"},"-ms-flex-line-pack":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-line-pack",syntax:"start | end | center | justify | distribute | stretch"},"-ms-flex-negative":{comment:"misssed old syntax implemented in IE; TODO: find references for comfirmation",syntax:"<'flex-shrink'>"},"-ms-flex-pack":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-pack",syntax:"start | end | center | justify | distribute"},"-ms-flex-order":{comment:"misssed old syntax implemented in IE; https://msdn.microsoft.com/en-us/library/jj127303(v=vs.85).aspx",syntax:"<integer>"},"-ms-flex-positive":{comment:"misssed old syntax implemented in IE; TODO: find references for comfirmation",syntax:"<'flex-grow'>"},"-ms-flex-preferred-size":{comment:"misssed old syntax implemented in IE; TODO: find references for comfirmation",syntax:"<'flex-basis'>"},"-ms-interpolation-mode":{comment:"https://msdn.microsoft.com/en-us/library/ff521095(v=vs.85).aspx",syntax:"nearest-neighbor | bicubic"},"-ms-grid-column-align":{comment:"add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466338.aspx",syntax:"start | end | center | stretch"},"-ms-grid-row-align":{comment:"add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466348.aspx",syntax:"start | end | center | stretch"},"-ms-hyphenate-limit-last":{comment:"misssed old syntax implemented in IE; https://www.w3.org/TR/css-text-4/#hyphenate-line-limits",syntax:"none | always | column | page | spread"},"-webkit-appearance":{comment:"webkit specific keywords",references:["http://css-infos.net/property/-webkit-appearance"],syntax:"none | button | button-bevel | caps-lock-indicator | 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 | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbargripper-horizontal | scrollbargripper-vertical | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | 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"},"-webkit-background-clip":{comment:"https://developer.mozilla.org/en/docs/Web/CSS/background-clip",syntax:"[ <box> | border | padding | content | text ]#"},"-webkit-column-break-after":{comment:"added, http://help.dottoro.com/lcrthhhv.php",syntax:"always | auto | avoid"},"-webkit-column-break-before":{comment:"added, http://help.dottoro.com/lcxquvkf.php",syntax:"always | auto | avoid"},"-webkit-column-break-inside":{comment:"added, http://help.dottoro.com/lclhnthl.php",syntax:"always | auto | avoid"},"-webkit-font-smoothing":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth",syntax:"auto | none | antialiased | subpixel-antialiased"},"-webkit-mask-box-image":{comment:"missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image",syntax:"[ <url> | <gradient> | none ] [ <length-percentage>{4} <-webkit-mask-box-repeat>{2} ]?"},"-webkit-print-color-adjust":{comment:"missed",references:["https://developer.mozilla.org/en/docs/Web/CSS/-webkit-print-color-adjust"],syntax:"economy | exact"},"-webkit-text-security":{comment:"missed; http://help.dottoro.com/lcbkewgt.php",syntax:"none | circle | disc | square"},"-webkit-user-drag":{comment:"missed; http://help.dottoro.com/lcbixvwm.php",syntax:"none | element | auto"},"-webkit-user-select":{comment:"auto is supported by old webkit, https://developer.mozilla.org/en-US/docs/Web/CSS/user-select",syntax:"auto | none | text | all"},"alignment-baseline":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#AlignmentBaselineProperty"],syntax:"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical"},"background-clip":{comment:"used <bg-clip> from CSS Backgrounds and Borders 4 since it adds new values",references:["https://github.com/csstree/csstree/issues/190"],syntax:"<bg-clip>#"},"baseline-shift":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#BaselineShiftProperty"],syntax:"baseline | sub | super | <svg-length>"},behavior:{comment:"added old IE property https://msdn.microsoft.com/en-us/library/ms530723(v=vs.85).aspx",syntax:"<url>+"},"clip-rule":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/masking.html#ClipRuleProperty"],syntax:"nonzero | evenodd"},cue:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<'cue-before'> <'cue-after'>?"},"cue-after":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<url> <decibel>? | none"},"cue-before":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<url> <decibel>? | none"},cursor:{comment:"added legacy keywords: hand, -webkit-grab. -webkit-grabbing, -webkit-zoom-in, -webkit-zoom-out, -moz-grab, -moz-grabbing, -moz-zoom-in, -moz-zoom-out",references:["https://www.sitepoint.com/css3-cursor-styles/"],syntax:"[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing | hand | -webkit-grab | -webkit-grabbing | -webkit-zoom-in | -webkit-zoom-out | -moz-grab | -moz-grabbing | -moz-zoom-in | -moz-zoom-out ] ]"},display:{comment:"extended with -ms-flexbox",syntax:"| <-non-standard-display>"},position:{comment:"extended with -webkit-sticky",syntax:"| -webkit-sticky"},"dominant-baseline":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#DominantBaselineProperty"],syntax:"auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge"},"image-rendering":{comment:"extended with <-non-standard-image-rendering>, added SVG keywords optimizeSpeed and optimizeQuality",references:["https://developer.mozilla.org/en/docs/Web/CSS/image-rendering","https://www.w3.org/TR/SVG/painting.html#ImageRenderingProperty"],syntax:"| optimizeSpeed | optimizeQuality | <-non-standard-image-rendering>"},fill:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#FillProperty"],syntax:"<paint>"},"fill-opacity":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#FillProperty"],syntax:"<number-zero-one>"},"fill-rule":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#FillProperty"],syntax:"nonzero | evenodd"},filter:{comment:"extend with IE legacy syntaxes",syntax:"| <-ms-filter-function-list>"},"glyph-orientation-horizontal":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#GlyphOrientationHorizontalProperty"],syntax:"<angle>"},"glyph-orientation-vertical":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#GlyphOrientationVerticalProperty"],syntax:"<angle>"},kerning:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#KerningProperty"],syntax:"auto | <svg-length>"},"letter-spacing":{comment:"fix syntax <length> -> <length-percentage>",references:["https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/letter-spacing"],syntax:"normal | <length-percentage>"},marker:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"marker-end":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"marker-mid":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"marker-start":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"max-width":{comment:"extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/max-width",syntax:"| <-non-standard-width>"},width:{references:["https://developer.mozilla.org/en-US/docs/Web/CSS/width","https://github.com/csstree/stylelint-validator/issues/29"],syntax:"| fill | stretch | intrinsic | -moz-max-content | -webkit-max-content | -moz-fit-content | -webkit-fit-content"},"min-width":{comment:"extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width",syntax:"| <-non-standard-width>"},overflow:{comment:"extend by vendor keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow",syntax:"| <-non-standard-overflow>"},pause:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<'pause-before'> <'pause-after'>?"},"pause-after":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},"pause-before":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},rest:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<'rest-before'> <'rest-after'>?"},"rest-after":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},"rest-before":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},"shape-rendering":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#ShapeRenderingPropert"],syntax:"auto | optimizeSpeed | crispEdges | geometricPrecision"},src:{comment:"added @font-face's src property https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/src",syntax:"[ <url> [ format( <string># ) ]? | local( <family-name> ) ]#"},speak:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"auto | none | normal"},"speak-as":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"normal | spell-out || digits || [ literal-punctuation | no-punctuation ]"},stroke:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<paint>"},"stroke-dasharray":{comment:"added SVG property; a list of comma and/or white space separated <length>s and <percentage>s",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"none | [ <svg-length>+ ]#"},"stroke-dashoffset":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<svg-length>"},"stroke-linecap":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"butt | round | square"},"stroke-linejoin":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"miter | round | bevel"},"stroke-miterlimit":{comment:"added SVG property (<miterlimit> = <number-one-or-greater>) ",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<number-one-or-greater>"},"stroke-opacity":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<number-zero-one>"},"stroke-width":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<svg-length>"},"text-anchor":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#TextAlignmentProperties"],syntax:"start | middle | end"},"unicode-bidi":{comment:"added prefixed keywords https://developer.mozilla.org/en-US/docs/Web/CSS/unicode-bidi",syntax:"| -moz-isolate | -moz-isolate-override | -moz-plaintext | -webkit-isolate | -webkit-isolate-override | -webkit-plaintext"},"unicode-range":{comment:"added missed property https://developer.mozilla.org/en-US/docs/Web/CSS/%40font-face/unicode-range",syntax:"<urange>#"},"voice-balance":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<number> | left | center | right | leftwards | rightwards"},"voice-duration":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"auto | <time>"},"voice-family":{comment:"<name> -> <family-name>, https://www.w3.org/TR/css3-speech/#property-index",syntax:"[ [ <family-name> | <generic-voice> ] , ]* [ <family-name> | <generic-voice> ] | preserve"},"voice-pitch":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]"},"voice-range":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]"},"voice-rate":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"[ normal | x-slow | slow | medium | fast | x-fast ] || <percentage>"},"voice-stress":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"normal | strong | moderate | none | reduced"},"voice-volume":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"silent | [ [ x-soft | soft | medium | loud | x-loud ] || <decibel> ]"},"writing-mode":{comment:"extend with SVG keywords",syntax:"| <svg-writing-mode>"}},types:{"-legacy-gradient":{comment:"added collection of legacy gradient syntaxes",syntax:"<-webkit-gradient()> | <-legacy-linear-gradient> | <-legacy-repeating-linear-gradient> | <-legacy-radial-gradient> | <-legacy-repeating-radial-gradient>"},"-legacy-linear-gradient":{comment:"like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",syntax:"-moz-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-linear-gradient( <-legacy-linear-gradient-arguments> )"},"-legacy-repeating-linear-gradient":{comment:"like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",syntax:"-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )"},"-legacy-linear-gradient-arguments":{comment:"like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",syntax:"[ <angle> | <side-or-corner> ]? , <color-stop-list>"},"-legacy-radial-gradient":{comment:"deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",syntax:"-moz-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-radial-gradient( <-legacy-radial-gradient-arguments> )"},"-legacy-repeating-radial-gradient":{comment:"deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",syntax:"-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )"},"-legacy-radial-gradient-arguments":{comment:"deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",syntax:"[ <position> , ]? [ [ [ <-legacy-radial-gradient-shape> || <-legacy-radial-gradient-size> ] | [ <length> | <percentage> ]{2} ] , ]? <color-stop-list>"},"-legacy-radial-gradient-size":{comment:"before a standard it contains 2 extra keywords (`contain` and `cover`) https://www.w3.org/TR/2011/WD-css3-images-20110908/#ltsize",syntax:"closest-side | closest-corner | farthest-side | farthest-corner | contain | cover"},"-legacy-radial-gradient-shape":{comment:"define to double sure it doesn't extends in future https://www.w3.org/TR/2011/WD-css3-images-20110908/#ltshape",syntax:"circle | ellipse"},"-non-standard-font":{comment:"non standard fonts",references:["https://webkit.org/blog/3709/using-the-system-font-in-web-content/"],syntax:"-apple-system-body | -apple-system-headline | -apple-system-subheadline | -apple-system-caption1 | -apple-system-caption2 | -apple-system-footnote | -apple-system-short-body | -apple-system-short-headline | -apple-system-short-subheadline | -apple-system-short-caption1 | -apple-system-short-footnote | -apple-system-tall-body"},"-non-standard-color":{comment:"non standard colors",references:["http://cssdot.ru/%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_CSS/color-i305.html","https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Mozilla_Color_Preference_Extensions"],syntax:"-moz-ButtonDefault | -moz-ButtonHoverFace | -moz-ButtonHoverText | -moz-CellHighlight | -moz-CellHighlightText | -moz-Combobox | -moz-ComboboxText | -moz-Dialog | -moz-DialogText | -moz-dragtargetzone | -moz-EvenTreeRow | -moz-Field | -moz-FieldText | -moz-html-CellHighlight | -moz-html-CellHighlightText | -moz-mac-accentdarkestshadow | -moz-mac-accentdarkshadow | -moz-mac-accentface | -moz-mac-accentlightesthighlight | -moz-mac-accentlightshadow | -moz-mac-accentregularhighlight | -moz-mac-accentregularshadow | -moz-mac-chrome-active | -moz-mac-chrome-inactive | -moz-mac-focusring | -moz-mac-menuselect | -moz-mac-menushadow | -moz-mac-menutextselect | -moz-MenuHover | -moz-MenuHoverText | -moz-MenuBarText | -moz-MenuBarHoverText | -moz-nativehyperlinktext | -moz-OddTreeRow | -moz-win-communicationstext | -moz-win-mediatext | -moz-activehyperlinktext | -moz-default-background-color | -moz-default-color | -moz-hyperlinktext | -moz-visitedhyperlinktext | -webkit-activelink | -webkit-focus-ring-color | -webkit-link | -webkit-text"},"-non-standard-image-rendering":{comment:"non-standard keywords http://phrogz.net/tmp/canvas_image_zoom.html",syntax:"optimize-contrast | -moz-crisp-edges | -o-crisp-edges | -webkit-optimize-contrast"},"-non-standard-overflow":{comment:"non-standard keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow",syntax:"-moz-scrollbars-none | -moz-scrollbars-horizontal | -moz-scrollbars-vertical | -moz-hidden-unscrollable"},"-non-standard-width":{comment:"non-standard keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width",syntax:"fill-available | min-intrinsic | intrinsic | -moz-available | -moz-fit-content | -moz-min-content | -moz-max-content | -webkit-min-content | -webkit-max-content"},"-webkit-gradient()":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/ - TODO: simplify when after match algorithm improvement ( [, point, radius | , point] -> [, radius]? , point )",syntax:"-webkit-gradient( <-webkit-gradient-type>, <-webkit-gradient-point> [, <-webkit-gradient-point> | , <-webkit-gradient-radius>, <-webkit-gradient-point> ] [, <-webkit-gradient-radius>]? [, <-webkit-gradient-color-stop>]* )"},"-webkit-gradient-color-stop":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"from( <color> ) | color-stop( [ <number-zero-one> | <percentage> ] , <color> ) | to( <color> )"},"-webkit-gradient-point":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"[ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]"},"-webkit-gradient-radius":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"<length> | <percentage>"},"-webkit-gradient-type":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"linear | radial"},"-webkit-mask-box-repeat":{comment:"missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image",syntax:"repeat | stretch | round"},"-webkit-mask-clip-style":{comment:"missed; there is no enough information about `-webkit-mask-clip` property, but looks like all those keywords are working",syntax:"border | border-box | padding | padding-box | content | content-box | text"},"-ms-filter-function-list":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"<-ms-filter-function>+"},"-ms-filter-function":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"<-ms-filter-function-progid> | <-ms-filter-function-legacy>"},"-ms-filter-function-progid":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"'progid:' [ <ident-token> '.' ]* [ <ident-token> | <function-token> <any-value>? ) ]"},"-ms-filter-function-legacy":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"<ident-token> | <function-token> <any-value>? )"},"-ms-filter":{syntax:"<string>"},age:{comment:"https://www.w3.org/TR/css3-speech/#voice-family",syntax:"child | young | old"},"attr-name":{syntax:"<wq-name>"},"attr-fallback":{syntax:"<any-value>"},"bg-clip":{comment:"missed, https://drafts.csswg.org/css-backgrounds-4/#typedef-bg-clip",syntax:"<box> | border | text"},"border-radius":{comment:"missed, https://drafts.csswg.org/css-backgrounds-3/#the-border-radius",syntax:"<length-percentage>{1,2}"},bottom:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},"content-list":{comment:"added attr(), see https://github.com/csstree/csstree/issues/201",syntax:"[ <string> | contents | <image> | <counter> | <quote> | <target> | <leader()> | <attr()> ]+"},"element()":{comment:"https://drafts.csswg.org/css-gcpm/#element-syntax & https://drafts.csswg.org/css-images-4/#element-notation",syntax:"element( <custom-ident> , [ first | start | last | first-except ]? ) | element( <id-selector> )"},"generic-voice":{comment:"https://www.w3.org/TR/css3-speech/#voice-family",syntax:"[ <age>? <gender> <integer>? ]"},gender:{comment:"https://www.w3.org/TR/css3-speech/#voice-family",syntax:"male | female | neutral"},"generic-family":{comment:"added -apple-system",references:["https://webkit.org/blog/3709/using-the-system-font-in-web-content/"],syntax:"| -apple-system"},gradient:{comment:"added legacy syntaxes support",syntax:"| <-legacy-gradient>"},"lab()":{comment:"missed; https://www.w3.org/TR/css-color-4/#specifying-lab-lch",syntax:"lab( [<percentage> | <number> | none] [ <percentage> | <number> | none] [ <percentage> | <number> | none] [ / [<alpha-value> | none] ]? )"},"lch()":{comment:"missed; https://www.w3.org/TR/css-color-4/#specifying-lab-lch",syntax:"lch( [<percentage> | <number> | none] [ <percentage> | <number> | none] [ <hue> | none] [ / [<alpha-value> | none] ]? )"},left:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},"mask-image":{comment:"missed; https://drafts.fxtf.org/css-masking-1/#the-mask-image",syntax:"<mask-reference>#"},"named-color":{comment:"added non standard color names",syntax:"| <-non-standard-color>"},paint:{comment:"used by SVG https://www.w3.org/TR/SVG/painting.html#SpecifyingPaint",syntax:"none | <color> | <url> [ none | <color> ]? | context-fill | context-stroke"},ratio:{comment:"missed, https://drafts.csswg.org/css-values-4/#ratio-value",syntax:"<number [0,\u221E]> [ / <number [0,\u221E]> ]?"},"reversed-counter-name":{comment:"missed; https://drafts.csswg.org/css-lists/#typedef-reversed-counter-name",syntax:"reversed( <counter-name> )"},right:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},shape:{comment:"missed spaces in function body and add backwards compatible syntax",syntax:"rect( <top>, <right>, <bottom>, <left> ) | rect( <top> <right> <bottom> <left> )"},"svg-length":{comment:"All coordinates and lengths in SVG can be specified with or without a unit identifier",references:["https://www.w3.org/TR/SVG11/coords.html#Units"],syntax:"<percentage> | <length> | <number>"},"svg-writing-mode":{comment:"SVG specific keywords (deprecated for CSS)",references:["https://developer.mozilla.org/en/docs/Web/CSS/writing-mode","https://www.w3.org/TR/SVG/text.html#WritingModeProperty"],syntax:"lr-tb | rl-tb | tb-rl | lr | rl | tb"},top:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},"track-group":{comment:"used by old grid-columns and grid-rows syntax v0",syntax:"'(' [ <string>* <track-minmax> <string>* ]+ ')' [ '[' <positive-integer> ']' ]? | <track-minmax>"},"track-list-v0":{comment:"used by old grid-columns and grid-rows syntax v0",syntax:"[ <string>* <track-group> <string>* ]+ | none"},"track-minmax":{comment:"used by old grid-columns and grid-rows syntax v0",syntax:"minmax( <track-breadth> , <track-breadth> ) | auto | <track-breadth> | fit-content"},x:{comment:"missed; not sure we should add it, but no others except `cursor` is using it so it's ok for now; https://drafts.csswg.org/css-ui-3/#cursor",syntax:"<number>"},y:{comment:"missed; not sure we should add it, but no others except `cursor` is using so it's ok for now; https://drafts.csswg.org/css-ui-3/#cursor",syntax:"<number>"},declaration:{comment:"missed, restored by https://drafts.csswg.org/css-syntax",syntax:"<ident-token> : <declaration-value>? [ '!' important ]?"},"declaration-list":{comment:"missed, restored by https://drafts.csswg.org/css-syntax",syntax:"[ <declaration>? ';' ]* <declaration>?"},url:{comment:"https://drafts.csswg.org/css-values-4/#urls",syntax:"url( <string> <url-modifier>* ) | <url-token>"},"url-modifier":{comment:"https://drafts.csswg.org/css-values-4/#typedef-url-modifier",syntax:"<ident> | <function-token> <any-value> )"},"number-zero-one":{syntax:"<number [0,1]>"},"number-one-or-greater":{syntax:"<number [1,\u221E]>"},"positive-integer":{syntax:"<integer [0,\u221E]>"},"-non-standard-display":{syntax:"-ms-inline-flexbox | -ms-grid | -ms-inline-grid | -webkit-flex | -webkit-inline-flex | -webkit-box | -webkit-inline-box | -moz-inline-stack | -moz-box | -moz-inline-box"}}}}),Ya=O((e,t)=>{"use strict";var p=Xa(),y=p;t.exports=y}),Qa=O((e,t)=>{t.exports={"@charset":{syntax:'@charset "<charset>";',groups:["CSS Charsets"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@charset"},"@counter-style":{syntax:`@counter-style <counter-style-name> {
103
+ --`+new Array((c||s.length)+1).join("-")+"^"})}e.SyntaxError=p}),ja=O(e=>{"use strict";var t=Er(),p=9,y=10,s=12,c=13,u=32,a=class{constructor(r){this.str=r,this.pos=0}charCodeAt(r){return r<this.str.length?this.str.charCodeAt(r):0}charCode(){return this.charCodeAt(this.pos)}nextCharCode(){return this.charCodeAt(this.pos+1)}nextNonWsCode(r){return this.charCodeAt(this.findWsEnd(r))}findWsEnd(r){for(;r<this.str.length;r++){let o=this.str.charCodeAt(r);if(o!==c&&o!==y&&o!==s&&o!==u&&o!==p)break}return r}substringToPos(r){return this.str.substring(this.pos,this.pos=r)}eat(r){this.charCode()!==r&&this.error("Expect `"+String.fromCharCode(r)+"`"),this.pos++}peek(){return this.pos<this.str.length?this.str.charAt(this.pos++):""}error(r){throw new t.SyntaxError(r,this.str,this.pos)}};e.Tokenizer=a}),rt=O(e=>{"use strict";var t=ja(),p=9,y=10,s=12,c=13,u=32,a=33,r=35,o=38,l=39,g=40,f=41,b=42,n=43,i=44,m=45,d=60,S=62,v=63,x=64,h=91,k=93,C=123,w=124,A=125,z=8734,T=new Uint8Array(128).map((W,N)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(N))?1:0),D={" ":1,"&&":2,"||":3,"|":4};function _(W){return W.substringToPos(W.findWsEnd(W.pos))}function I(W){let N=W.pos;for(;N<W.str.length;N++){let K=W.str.charCodeAt(N);if(K>=128||T[K]===0)break}return W.pos===N&&W.error("Expect a keyword"),W.substringToPos(N)}function q(W){let N=W.pos;for(;N<W.str.length;N++){let K=W.str.charCodeAt(N);if(K<48||K>57)break}return W.pos===N&&W.error("Expect a number"),W.substringToPos(N)}function F(W){let N=W.str.indexOf("'",W.pos+1);return N===-1&&(W.pos=W.str.length,W.error("Expect an apostrophe")),W.substringToPos(N+1)}function M(W){let N=null,K=null;return W.eat(C),N=q(W),W.charCode()===i?(W.pos++,W.charCode()!==A&&(K=q(W))):K=N,W.eat(A),{min:Number(N),max:K?Number(K):0}}function G(W){let N=null,K=!1;switch(W.charCode()){case b:W.pos++,N={min:0,max:0};break;case n:W.pos++,N={min:1,max:0};break;case v:W.pos++,N={min:0,max:1};break;case r:W.pos++,K=!0,W.charCode()===C?N=M(W):W.charCode()===v?(W.pos++,N={min:0,max:0}):N={min:1,max:0};break;case C:N=M(W);break;default:return null}return{type:"Multiplier",comma:K,min:N.min,max:N.max,term:null}}function V(W,N){let K=G(W);return K!==null?(K.term=N,W.charCode()===r&&W.charCodeAt(W.pos-1)===n?V(W,K):K):N}function H(W){let N=W.peek();return N===""?null:{type:"Token",value:N}}function j(W){let N;return W.eat(d),W.eat(l),N=I(W),W.eat(l),W.eat(S),V(W,{type:"Property",name:N})}function L(W){let N=null,K=null,Q=1;return W.eat(h),W.charCode()===m&&(W.peek(),Q=-1),Q==-1&&W.charCode()===z?W.peek():(N=Q*Number(q(W)),T[W.charCode()]!==0&&(N+=I(W))),_(W),W.eat(i),_(W),W.charCode()===z?W.peek():(Q=1,W.charCode()===m&&(W.peek(),Q=-1),K=Q*Number(q(W)),T[W.charCode()]!==0&&(K+=I(W))),W.eat(k),{type:"Range",min:N,max:K}}function B(W){let N,K=null;return W.eat(d),N=I(W),W.charCode()===g&&W.nextCharCode()===f&&(W.pos+=2,N+="()"),W.charCodeAt(W.findWsEnd(W.pos))===h&&(_(W),K=L(W)),W.eat(S),V(W,{type:"Type",name:N,opts:K})}function E(W){let N=I(W);return W.charCode()===g?(W.pos++,{type:"Function",name:N}):V(W,{type:"Keyword",name:N})}function R(W,N){function K(X,Y){return{type:"Group",terms:X,combinator:Y,disallowEmpty:!1,explicit:!1}}let Q;for(N=Object.keys(N).sort((X,Y)=>D[X]-D[Y]);N.length>0;){Q=N.shift();let X=0,Y=0;for(;X<W.length;X++){let J=W[X];J.type==="Combinator"&&(J.value===Q?(Y===-1&&(Y=X-1),W.splice(X,1),X--):(Y!==-1&&X-Y>1&&(W.splice(Y,X-Y,K(W.slice(Y,X),Q)),X=Y+1),Y=-1))}Y!==-1&&N.length&&W.splice(Y,X-Y,K(W.slice(Y,X),Q))}return Q}function P(W){let N=[],K={},Q,X=null,Y=W.pos;for(;Q=$(W);)Q.type!=="Spaces"&&(Q.type==="Combinator"?((X===null||X.type==="Combinator")&&(W.pos=Y,W.error("Unexpected combinator")),K[Q.value]=!0):X!==null&&X.type!=="Combinator"&&(K[" "]=!0,N.push({type:"Combinator",value:" "})),N.push(Q),X=Q,Y=W.pos);return X!==null&&X.type==="Combinator"&&(W.pos-=Y,W.error("Unexpected combinator")),{type:"Group",terms:N,combinator:R(N,K)||" ",disallowEmpty:!1,explicit:!1}}function U(W){let N;return W.eat(h),N=P(W),W.eat(k),N.explicit=!0,W.charCode()===a&&(W.pos++,N.disallowEmpty=!0),N}function $(W){let N=W.charCode();if(N<128&&T[N]===1)return E(W);switch(N){case k:break;case h:return V(W,U(W));case d:return W.nextCharCode()===l?j(W):B(W);case w:return{type:"Combinator",value:W.substringToPos(W.pos+(W.nextCharCode()===w?2:1))};case o:return W.pos++,W.eat(o),{type:"Combinator",value:"&&"};case i:return W.pos++,{type:"Comma"};case l:return V(W,{type:"String",value:F(W)});case u:case p:case y:case c:case s:return{type:"Spaces",value:_(W)};case x:return N=W.nextCharCode(),N<128&&T[N]===1?(W.pos++,{type:"AtKeyword",name:I(W)}):H(W);case b:case n:case v:case r:case a:break;case C:if(N=W.nextCharCode(),N<48||N>57)return H(W);break;default:return H(W)}}function te(W){let N=new t.Tokenizer(W),K=P(N);return N.pos!==W.length&&N.error("Unexpected input"),K.terms.length===1&&K.terms[0].type==="Group"?K.terms[0]:K}e.parse=te}),Tr=O(e=>{"use strict";var t=rt(),p={type:"Match"},y={type:"Mismatch"},s={type:"DisallowEmpty"},c=40,u=41;function a(n,i,m){return i===p&&m===y||n===p&&i===p&&m===p?n:(n.type==="If"&&n.else===y&&i===p&&(i=n.then,n=n.match),{type:"If",match:n,then:i,else:m})}function r(n){return n.length>2&&n.charCodeAt(n.length-2)===c&&n.charCodeAt(n.length-1)===u}function o(n){return n.type==="Keyword"||n.type==="AtKeyword"||n.type==="Function"||n.type==="Type"&&r(n.name)}function l(n,i,m){switch(n){case" ":{let d=p;for(let S=i.length-1;S>=0;S--){let v=i[S];d=a(v,d,y)}return d}case"|":{let d=y,S=null;for(let v=i.length-1;v>=0;v--){let x=i[v];if(o(x)&&(S===null&&v>0&&o(i[v-1])&&(S=Object.create(null),d=a({type:"Enum",map:S},p,d)),S!==null)){let h=(r(x.name)?x.name.slice(0,-1):x.name).toLowerCase();if(!(h in S)){S[h]=x;continue}}S=null,d=a(x,p,d)}return d}case"&&":{if(i.length>5)return{type:"MatchOnce",terms:i,all:!0};let d=y;for(let S=i.length-1;S>=0;S--){let v=i[S],x;i.length>1?x=l(n,i.filter(function(h){return h!==v}),!1):x=p,d=a(v,x,d)}return d}case"||":{if(i.length>5)return{type:"MatchOnce",terms:i,all:!1};let d=m?p:y;for(let S=i.length-1;S>=0;S--){let v=i[S],x;i.length>1?x=l(n,i.filter(function(h){return h!==v}),!0):x=p,d=a(v,x,d)}return d}}}function g(n){let i=p,m=f(n.term);if(n.max===0)m=a(m,s,y),i=a(m,null,y),i.then=a(p,p,i),n.comma&&(i.then.else=a({type:"Comma",syntax:n},i,y));else for(let d=n.min||1;d<=n.max;d++)n.comma&&i!==p&&(i=a({type:"Comma",syntax:n},i,y)),i=a(m,a(p,p,i),y);if(n.min===0)i=a(p,p,i);else for(let d=0;d<n.min-1;d++)n.comma&&i!==p&&(i=a({type:"Comma",syntax:n},i,y)),i=a(m,i,y);return i}function f(n){if(typeof n=="function")return{type:"Generic",fn:n};switch(n.type){case"Group":{let i=l(n.combinator,n.terms.map(f),!1);return n.disallowEmpty&&(i=a(i,s,y)),i}case"Multiplier":return g(n);case"Type":case"Property":return{type:n.type,name:n.name,syntax:n};case"Keyword":return{type:n.type,name:n.name.toLowerCase(),syntax:n};case"AtKeyword":return{type:n.type,name:"@"+n.name.toLowerCase(),syntax:n};case"Function":return{type:n.type,name:n.name.toLowerCase()+"(",syntax:n};case"String":return n.value.length===3?{type:"Token",value:n.value.charAt(1),syntax:n}:{type:n.type,value:n.value.substr(1,n.value.length-2).replace(/\\'/g,"'"),syntax:n};case"Token":return{type:n.type,value:n.value,syntax:n};case"Comma":return{type:n.type,syntax:n};default:throw new Error("Unknown node type:",n.type)}}function b(n,i){return typeof n=="string"&&(n=t.parse(n)),{type:"MatchGraph",match:f(n),syntax:i||null,source:n}}e.DISALLOW_EMPTY=s,e.MATCH=p,e.MISMATCH=y,e.buildMatchGraph=b}),Ua=O(e=>{"use strict";var t=Tr(),p=ee(),{hasOwnProperty:y}=Object.prototype,s=0,c=1,u=2,a=3,r="Match",o="Mismatch",l="Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)",g=15e3;function f(x){let h=null,k=null,C=x;for(;C!==null;)k=C.prev,C.prev=h,h=C,C=k;return h}function b(x,h){if(x.length!==h.length)return!1;for(let k=0;k<x.length;k++){let C=h.charCodeAt(k),w=x.charCodeAt(k);if(w>=65&&w<=90&&(w=w|32),w!==C)return!1}return!0}function n(x){return x.type!==p.Delim?!1:x.value!=="?"}function i(x){return x===null?!0:x.type===p.Comma||x.type===p.Function||x.type===p.LeftParenthesis||x.type===p.LeftSquareBracket||x.type===p.LeftCurlyBracket||n(x)}function m(x){return x===null?!0:x.type===p.RightParenthesis||x.type===p.RightSquareBracket||x.type===p.RightCurlyBracket||x.type===p.Delim&&x.value==="/"}function d(x,h,k){function C(){do L++,j=L<x.length?x[L]:null;while(j!==null&&(j.type===p.WhiteSpace||j.type===p.Comment))}function w(R){let P=L+R;return P<x.length?x[P]:null}function A(R,P){return{nextState:R,matchStack:E,syntaxStack:q,thenStack:F,tokenIndex:L,prev:P}}function z(R){F={nextState:R,matchStack:E,syntaxStack:q,prev:F}}function T(R){M=A(R,M)}function D(){E={type:c,syntax:h.syntax,token:j,prev:E},C(),G=null,L>B&&(B=L)}function _(){q={syntax:h.syntax,opts:h.syntax.opts||q!==null&&q.opts||null,prev:q},E={type:u,syntax:h.syntax,token:E.token,prev:E}}function I(){E.type===u?E=E.prev:E={type:a,syntax:q.syntax,token:E.token,prev:E},q=q.prev}let q=null,F=null,M=null,G=null,V=0,H=null,j=null,L=-1,B=0,E={type:s,syntax:null,token:null,prev:null};for(C();H===null&&++V<g;)switch(h.type){case"Match":if(F===null){if(j!==null&&(L!==x.length-1||j.value!=="\\0"&&j.value!=="\\9")){h=t.MISMATCH;break}H=r;break}if(h=F.nextState,h===t.DISALLOW_EMPTY)if(F.matchStack===E){h=t.MISMATCH;break}else h=t.MATCH;for(;F.syntaxStack!==q;)I();F=F.prev;break;case"Mismatch":if(G!==null&&G!==!1)(M===null||L>M.tokenIndex)&&(M=G,G=!1);else if(M===null){H=o;break}h=M.nextState,F=M.thenStack,q=M.syntaxStack,E=M.matchStack,L=M.tokenIndex,j=L<x.length?x[L]:null,M=M.prev;break;case"MatchGraph":h=h.match;break;case"If":h.else!==t.MISMATCH&&T(h.else),h.then!==t.MATCH&&z(h.then),h=h.match;break;case"MatchOnce":h={type:"MatchOnceBuffer",syntax:h,index:0,mask:0};break;case"MatchOnceBuffer":{let U=h.syntax.terms;if(h.index===U.length){if(h.mask===0||h.syntax.all){h=t.MISMATCH;break}h=t.MATCH;break}if(h.mask===(1<<U.length)-1){h=t.MATCH;break}for(;h.index<U.length;h.index++){let $=1<<h.index;if((h.mask&$)===0){T(h),z({type:"AddMatchOnce",syntax:h.syntax,mask:h.mask|$}),h=U[h.index++];break}}break}case"AddMatchOnce":h={type:"MatchOnceBuffer",syntax:h.syntax,index:0,mask:h.mask};break;case"Enum":if(j!==null){let U=j.value.toLowerCase();if(U.indexOf("\\")!==-1&&(U=U.replace(/\\[09].*$/,"")),y.call(h.map,U)){h=h.map[U];break}}h=t.MISMATCH;break;case"Generic":{let U=q!==null?q.opts:null,$=L+Math.floor(h.fn(j,w,U));if(!isNaN($)&&$>L){for(;L<$;)D();h=t.MATCH}else h=t.MISMATCH;break}case"Type":case"Property":{let U=h.type==="Type"?"types":"properties",$=y.call(k,U)?k[U][h.name]:null;if(!$||!$.match)throw new Error("Bad syntax reference: "+(h.type==="Type"?"<"+h.name+">":"<'"+h.name+"'>"));if(G!==!1&&j!==null&&h.type==="Type"&&(h.name==="custom-ident"&&j.type===p.Ident||h.name==="length"&&j.value==="0")){G===null&&(G=A(h,M)),h=t.MISMATCH;break}_(),h=$.match;break}case"Keyword":{let U=h.name;if(j!==null){let $=j.value;if($.indexOf("\\")!==-1&&($=$.replace(/\\[09].*$/,"")),b($,U)){D(),h=t.MATCH;break}}h=t.MISMATCH;break}case"AtKeyword":case"Function":if(j!==null&&b(j.value,h.name)){D(),h=t.MATCH;break}h=t.MISMATCH;break;case"Token":if(j!==null&&j.value===h.value){D(),h=t.MATCH;break}h=t.MISMATCH;break;case"Comma":j!==null&&j.type===p.Comma?i(E.token)?h=t.MISMATCH:(D(),h=m(j)?t.MISMATCH:t.MATCH):h=i(E.token)||m(j)?t.MATCH:t.MISMATCH;break;case"String":let R="",P=L;for(;P<x.length&&R.length<h.value.length;P++)R+=x[P].value;if(b(R,h.value)){for(;L<P;)D();h=t.MATCH}else h=t.MISMATCH;break;default:throw new Error("Unknown node type: "+h.type)}switch(H){case null:console.warn("[csstree-match] BREAK after "+g+" iterations"),H=l,E=null;break;case r:for(;q!==null;)I();break;default:E=null}return{tokens:x,reason:H,iterations:V,match:E,longestMatch:B}}function S(x,h,k){let C=d(x,h,k||{});if(C.match!==null){let w=f(C.match).prev;for(C.match=[];w!==null;){switch(w.type){case u:case a:C.match.push({type:w.type,syntax:w.syntax});break;default:C.match.push({token:w.token.value,node:w.token.node});break}w=w.prev}}return C}function v(x,h,k){let C=d(x,h,k||{});if(C.match===null)return C;let w=C.match,A=C.match={syntax:h.syntax||null,match:[]},z=[A];for(w=f(w).prev;w!==null;){switch(w.type){case u:A.match.push(A={syntax:w.syntax,match:[]}),z.push(A);break;case a:z.pop(),A=z[z.length-1];break;default:A.match.push({syntax:w.syntax||null,token:w.token.value,node:w.token.node})}w=w.prev}return C}e.matchAsList=S,e.matchAsTree=v}),Va=O(e=>{"use strict";function t(u){function a(l){return l===null?!1:l.type==="Type"||l.type==="Property"||l.type==="Keyword"}function r(l){if(Array.isArray(l.match)){for(let g=0;g<l.match.length;g++)if(r(l.match[g]))return a(l.syntax)&&o.unshift(l.syntax),!0}else if(l.node===u)return o=a(l.syntax)?[l.syntax]:[],!0;return!1}let o=null;return this.matched!==null&&r(this.matched),o}function p(u,a){return c(this,u,r=>r.type==="Type"&&r.name===a)}function y(u,a){return c(this,u,r=>r.type==="Property"&&r.name===a)}function s(u){return c(this,u,a=>a.type==="Keyword")}function c(u,a,r){let o=t.call(u,a);return o===null?!1:o.some(r)}e.getTrace=t,e.isKeyword=s,e.isProperty=y,e.isType=p}),Ha=O(e=>{"use strict";var t=we();function p(c){return"node"in c?c.node:p(c.match[0])}function y(c){return"node"in c?c.node:y(c.match[c.match.length-1])}function s(c,u,a,r,o){function l(f){if(f.syntax!==null&&f.syntax.type===r&&f.syntax.name===o){let b=p(f),n=y(f);c.syntax.walk(u,function(i,m,d){if(i===b){let S=new t.List;do{if(S.appendData(m.data),m.data===n)break;m=m.next}while(m!==null);g.push({parent:d,nodes:S})}})}Array.isArray(f.match)&&f.match.forEach(l)}let g=[];return a.matched!==null&&l(a.matched),g}e.matchFragments=s}),Ka=O(e=>{"use strict";var t=we(),{hasOwnProperty:p}=Object.prototype;function y(r){return typeof r=="number"&&isFinite(r)&&Math.floor(r)===r&&r>=0}function s(r){return!!r&&y(r.offset)&&y(r.line)&&y(r.column)}function c(r,o){return function(l,g){if(!l||l.constructor!==Object)return g(l,"Type of node should be an Object");for(let f in l){let b=!0;if(p.call(l,f)!==!1){if(f==="type")l.type!==r&&g(l,"Wrong node type `"+l.type+"`, expected `"+r+"`");else if(f==="loc"){if(l.loc===null)continue;if(l.loc&&l.loc.constructor===Object)if(typeof l.loc.source!="string")f+=".source";else if(!s(l.loc.start))f+=".start";else if(!s(l.loc.end))f+=".end";else continue;b=!1}else if(o.hasOwnProperty(f)){b=!1;for(let n=0;!b&&n<o[f].length;n++){let i=o[f][n];switch(i){case String:b=typeof l[f]=="string";break;case Boolean:b=typeof l[f]=="boolean";break;case null:b=l[f]===null;break;default:typeof i=="string"?b=l[f]&&l[f].type===i:Array.isArray(i)&&(b=l[f]instanceof t.List)}}}else g(l,"Unknown field `"+f+"` for "+r+" node type");b||g(l,"Bad value for `"+r+"."+f+"`")}}for(let f in o)p.call(o,f)&&p.call(l,f)===!1&&g(l,"Field `"+r+"."+f+"` is missed")}}function u(r,o){let l=o.structure,g={type:String,loc:!0},f={type:'"'+r+'"'};for(let b in l){if(p.call(l,b)===!1)continue;let n=[],i=g[b]=Array.isArray(l[b])?l[b].slice():[l[b]];for(let m=0;m<i.length;m++){let d=i[m];if(d===String||d===Boolean)n.push(d.name);else if(d===null)n.push("null");else if(typeof d=="string")n.push("<"+d+">");else if(Array.isArray(d))n.push("List");else throw new Error("Wrong value `"+d+"` in `"+r+"."+b+"` structure definition")}f[b]=n.join(" | ")}return{docs:f,check:c(r,g)}}function a(r){let o={};if(r.node){for(let l in r.node)if(p.call(r.node,l)){let g=r.node[l];if(g.structure)o[l]=u(l,g);else throw new Error("Missed `structure` field in `"+l+"` node type definition")}}return o}e.getStructureFromConfig=a}),Br=O(e=>{"use strict";var t=function(){};function p(s){return typeof s=="function"?s:t}function y(s,c,u){function a(l){switch(r.call(u,l),l.type){case"Group":l.terms.forEach(a);break;case"Multiplier":a(l.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+l.type)}o.call(u,l)}let r=t,o=t;if(typeof c=="function"?r=c:c&&(r=p(c.enter),o=p(c.leave)),r===t&&o===t)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");a(s)}e.walk=y}),Or=O(e=>{"use strict";var t=Ma(),p=tt(),y=Ar(),s=Ra(),c=Ga(),u=Tr(),a=Ua(),r=Va(),o=Ha(),l=Ka(),g=rt(),f=et(),b=Br(),n=u.buildMatchGraph(y.cssWideKeywords.join(" | "));function i(h,k,C){let w={};for(let A in h)h[A].syntax&&(w[A]=C?h[A].syntax:f.generate(h[A].syntax,{compact:k}));return w}function m(h,k,C){let w={};for(let[A,z]of Object.entries(h))w[A]={prelude:z.prelude&&(C?z.prelude.syntax:f.generate(z.prelude.syntax,{compact:k})),descriptors:z.descriptors&&i(z.descriptors,k,C)};return w}function d(h){for(let k=0;k<h.length;k++)if(h[k].value.toLowerCase()==="var(")return!0;return!1}function S(h,k,C){return{matched:h,iterations:C,error:k,...r}}function v(h,k,C,w){let A=c(C,h.syntax),z;return d(A)?S(null,new Error("Matching for a tree with var() is not supported")):(w&&(z=a.matchAsTree(A,h.cssWideKeywordsSyntax,h)),(!w||!z.match)&&(z=a.matchAsTree(A,k.match,h),!z.match)?S(null,new t.SyntaxMatchError(z.reason,k.syntax,C,z),z.iterations):S(z.match,null,z.iterations))}var x=class{constructor(h,k,C){if(this.cssWideKeywordsSyntax=n,this.syntax=k,this.generic=!1,this.atrules=Object.create(null),this.properties=Object.create(null),this.types=Object.create(null),this.structure=C||l.getStructureFromConfig(h),h){if(h.types)for(let w in h.types)this.addType_(w,h.types[w]);if(h.generic){this.generic=!0;for(let w in s)this.addType_(w,s[w])}if(h.atrules)for(let w in h.atrules)this.addAtrule_(w,h.atrules[w]);if(h.properties)for(let w in h.properties)this.addProperty_(w,h.properties[w])}}checkStructure(h){function k(A,z){w.push({node:A,message:z})}let C=this.structure,w=[];return this.syntax.walk(h,function(A){C.hasOwnProperty(A.type)?C[A.type].check(A,k):k(A,"Unknown node type `"+A.type+"`")}),w.length?w:!1}createDescriptor(h,k,C,w=null){let A={type:k,name:C},z={type:k,name:C,parent:w,serializable:typeof h=="string"||h&&typeof h.type=="string",syntax:null,match:null};return typeof h=="function"?z.match=u.buildMatchGraph(h,A):(typeof h=="string"?Object.defineProperty(z,"syntax",{get(){return Object.defineProperty(z,"syntax",{value:g.parse(h)}),z.syntax}}):z.syntax=h,Object.defineProperty(z,"match",{get(){return Object.defineProperty(z,"match",{value:u.buildMatchGraph(z.syntax,A)}),z.match}})),z}addAtrule_(h,k){k&&(this.atrules[h]={type:"Atrule",name:h,prelude:k.prelude?this.createDescriptor(k.prelude,"AtrulePrelude",h):null,descriptors:k.descriptors?Object.keys(k.descriptors).reduce((C,w)=>(C[w]=this.createDescriptor(k.descriptors[w],"AtruleDescriptor",w,h),C),Object.create(null)):null})}addProperty_(h,k){k&&(this.properties[h]=this.createDescriptor(k,"Property",h))}addType_(h,k){k&&(this.types[h]=this.createDescriptor(k,"Type",h))}checkAtruleName(h){if(!this.getAtrule(h))return new t.SyntaxReferenceError("Unknown at-rule","@"+h)}checkAtrulePrelude(h,k){let C=this.checkAtruleName(h);if(C)return C;let w=this.getAtrule(h);if(!w.prelude&&k)return new SyntaxError("At-rule `@"+h+"` should not contain a prelude");if(w.prelude&&!k&&!v(this,w.prelude,"",!1).matched)return new SyntaxError("At-rule `@"+h+"` should contain a prelude")}checkAtruleDescriptorName(h,k){let C=this.checkAtruleName(h);if(C)return C;let w=this.getAtrule(h),A=p.keyword(k);if(!w.descriptors)return new SyntaxError("At-rule `@"+h+"` has no known descriptors");if(!w.descriptors[A.name]&&!w.descriptors[A.basename])return new t.SyntaxReferenceError("Unknown at-rule descriptor",k)}checkPropertyName(h){if(!this.getProperty(h))return new t.SyntaxReferenceError("Unknown property",h)}matchAtrulePrelude(h,k){let C=this.checkAtrulePrelude(h,k);if(C)return S(null,C);let w=this.getAtrule(h);return w.prelude?v(this,w.prelude,k||"",!1):S(null,null)}matchAtruleDescriptor(h,k,C){let w=this.checkAtruleDescriptorName(h,k);if(w)return S(null,w);let A=this.getAtrule(h),z=p.keyword(k);return v(this,A.descriptors[z.name]||A.descriptors[z.basename],C,!1)}matchDeclaration(h){return h.type!=="Declaration"?S(null,new Error("Not a Declaration node")):this.matchProperty(h.property,h.value)}matchProperty(h,k){if(p.property(h).custom)return S(null,new Error("Lexer matching doesn't applicable for custom properties"));let C=this.checkPropertyName(h);return C?S(null,C):v(this,this.getProperty(h),k,!0)}matchType(h,k){let C=this.getType(h);return C?v(this,C,k,!1):S(null,new t.SyntaxReferenceError("Unknown type",h))}match(h,k){return typeof h!="string"&&(!h||!h.type)?S(null,new t.SyntaxReferenceError("Bad syntax")):((typeof h=="string"||!h.match)&&(h=this.createDescriptor(h,"Type","anonymous")),v(this,h,k,!1))}findValueFragments(h,k,C,w){return o.matchFragments(this,k,this.matchProperty(h,k),C,w)}findDeclarationValueFragments(h,k,C){return o.matchFragments(this,h.value,this.matchDeclaration(h),k,C)}findAllFragments(h,k,C){let w=[];return this.syntax.walk(h,{visit:"Declaration",enter:A=>{w.push.apply(w,this.findDeclarationValueFragments(A,k,C))}}),w}getAtrule(h,k=!0){let C=p.keyword(h);return(C.vendor&&k?this.atrules[C.name]||this.atrules[C.basename]:this.atrules[C.name])||null}getAtrulePrelude(h,k=!0){let C=this.getAtrule(h,k);return C&&C.prelude||null}getAtruleDescriptor(h,k){return this.atrules.hasOwnProperty(h)&&this.atrules.declarators&&this.atrules[h].declarators[k]||null}getProperty(h,k=!0){let C=p.property(h);return(C.vendor&&k?this.properties[C.name]||this.properties[C.basename]:this.properties[C.name])||null}getType(h){return hasOwnProperty.call(this.types,h)?this.types[h]:null}validate(){function h(w,A,z,T){if(z.has(A))return z.get(A);z.set(A,!1),T.syntax!==null&&b.walk(T.syntax,function(D){if(D.type!=="Type"&&D.type!=="Property")return;let _=D.type==="Type"?w.types:w.properties,I=D.type==="Type"?k:C;(!hasOwnProperty.call(_,D.name)||h(w,D.name,I,_[D.name]))&&z.set(A,!0)},this)}let k=new Map,C=new Map;for(let w in this.types)h(this,w,k,this.types[w]);for(let w in this.properties)h(this,w,C,this.properties[w]);return k=[...k.keys()].filter(w=>k.get(w)),C=[...C.keys()].filter(w=>C.get(w)),k.length||C.length?{types:k,properties:C}:null}dump(h,k){return{generic:this.generic,types:i(this.types,!k,h),properties:i(this.properties,!k,h),atrules:m(this.atrules,!k,h)}}toString(){return JSON.stringify(this.dump())}};e.Lexer=x}),$a=O((e,t)=>{"use strict";var{hasOwnProperty:p}=Object.prototype,y={generic:!0,types:o,atrules:{prelude:l,descriptors:l},properties:o,parseContext:u,scope:a,atrule:["parse"],pseudo:["parse"],node:["name","structure","parse","generate","walkContext"]};function s(b){return b&&b.constructor===Object}function c(b){return s(b)?{...b}:b}function u(b,n){return Object.assign(b,n)}function a(b,n){for(let i in n)p.call(n,i)&&(s(b[i])?a(b[i],n[i]):b[i]=c(n[i]));return b}function r(b,n){return typeof n=="string"&&/^\s*\|/.test(n)?typeof b=="string"?b+n:n.replace(/^\s*\|\s*/,""):n||null}function o(b,n){if(typeof n=="string")return r(b,n);let i={...b};for(let m in n)p.call(n,m)&&(i[m]=r(p.call(b,m)?b[m]:void 0,n[m]));return i}function l(b,n){let i=o(b,n);return!s(i)||Object.keys(i).length?i:null}function g(b,n,i){for(let m in i)if(p.call(i,m)!==!1){if(i[m]===!0)p.call(n,m)&&(b[m]=c(n[m]));else if(i[m]){if(typeof i[m]=="function"){let d=i[m];b[m]=d({},b[m]),b[m]=d(b[m]||{},n[m])}else if(s(i[m])){let d={};for(let S in b[m])d[S]=g({},b[m][S],i[m]);for(let S in n[m])d[S]=g(d[S]||{},n[m][S],i[m]);b[m]=d}else if(Array.isArray(i[m])){let d={},S=i[m].reduce(function(v,x){return v[x]=!0,v},{});for(let[v,x]of Object.entries(b[m]||{}))d[v]={},x&&g(d[v],x,S);for(let v in n[m])p.call(n[m],v)&&(d[v]||(d[v]={}),n[m]&&n[m][v]&&g(d[v],n[m][v],S));b[m]=d}}}return b}var f=(b,n)=>g(b,n,y);t.exports=f}),zr=O((e,t)=>{"use strict";var p=Le(),y=Fa(),s=La(),c=qa(),u=Pa(),a=Or(),r=$a();function o(g){let f=y.createParser(g),b=u.createWalker(g),n=s.createGenerator(g),{fromPlainObject:i,toPlainObject:m}=c.createConvertor(b),d={lexer:null,createLexer:S=>new a.Lexer(S,d,d.lexer.structure),tokenize:p.tokenize,parse:f,generate:n,walk:b,find:b.find,findLast:b.findLast,findAll:b.findAll,fromPlainObject:i,toPlainObject:m,fork(S){let v=r({},g);return o(typeof S=="function"?S(v,Object.assign):r(v,S))}};return d.lexer=new a.Lexer({generic:!0,types:g.types,atrules:g.atrules,properties:g.properties,node:g.node},d),d}var l=g=>o(r({},g));t.exports=l}),Xa=O((e,t)=>{t.exports={atrules:{charset:{prelude:"<string>"},"font-face":{descriptors:{"unicode-range":{comment:"replaces <unicode-range>, an old production name",syntax:"<urange>#"}}}},properties:{"-moz-background-clip":{comment:"deprecated syntax in old Firefox, https://developer.mozilla.org/en/docs/Web/CSS/background-clip",syntax:"padding | border"},"-moz-border-radius-bottomleft":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-left-radius",syntax:"<'border-bottom-left-radius'>"},"-moz-border-radius-bottomright":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius",syntax:"<'border-bottom-right-radius'>"},"-moz-border-radius-topleft":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-left-radius",syntax:"<'border-top-left-radius'>"},"-moz-border-radius-topright":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius",syntax:"<'border-bottom-right-radius'>"},"-moz-control-character-visibility":{comment:"firefox specific keywords, https://bugzilla.mozilla.org/show_bug.cgi?id=947588",syntax:"visible | hidden"},"-moz-osx-font-smoothing":{comment:"misssed old syntax https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth",syntax:"auto | grayscale"},"-moz-user-select":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/user-select",syntax:"none | text | all | -moz-none"},"-ms-flex-align":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align",syntax:"start | end | center | baseline | stretch"},"-ms-flex-item-align":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align",syntax:"auto | start | end | center | baseline | stretch"},"-ms-flex-line-pack":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-line-pack",syntax:"start | end | center | justify | distribute | stretch"},"-ms-flex-negative":{comment:"misssed old syntax implemented in IE; TODO: find references for comfirmation",syntax:"<'flex-shrink'>"},"-ms-flex-pack":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-pack",syntax:"start | end | center | justify | distribute"},"-ms-flex-order":{comment:"misssed old syntax implemented in IE; https://msdn.microsoft.com/en-us/library/jj127303(v=vs.85).aspx",syntax:"<integer>"},"-ms-flex-positive":{comment:"misssed old syntax implemented in IE; TODO: find references for comfirmation",syntax:"<'flex-grow'>"},"-ms-flex-preferred-size":{comment:"misssed old syntax implemented in IE; TODO: find references for comfirmation",syntax:"<'flex-basis'>"},"-ms-interpolation-mode":{comment:"https://msdn.microsoft.com/en-us/library/ff521095(v=vs.85).aspx",syntax:"nearest-neighbor | bicubic"},"-ms-grid-column-align":{comment:"add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466338.aspx",syntax:"start | end | center | stretch"},"-ms-grid-row-align":{comment:"add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466348.aspx",syntax:"start | end | center | stretch"},"-ms-hyphenate-limit-last":{comment:"misssed old syntax implemented in IE; https://www.w3.org/TR/css-text-4/#hyphenate-line-limits",syntax:"none | always | column | page | spread"},"-webkit-appearance":{comment:"webkit specific keywords",references:["http://css-infos.net/property/-webkit-appearance"],syntax:"none | button | button-bevel | caps-lock-indicator | 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 | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbargripper-horizontal | scrollbargripper-vertical | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | 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"},"-webkit-background-clip":{comment:"https://developer.mozilla.org/en/docs/Web/CSS/background-clip",syntax:"[ <box> | border | padding | content | text ]#"},"-webkit-column-break-after":{comment:"added, http://help.dottoro.com/lcrthhhv.php",syntax:"always | auto | avoid"},"-webkit-column-break-before":{comment:"added, http://help.dottoro.com/lcxquvkf.php",syntax:"always | auto | avoid"},"-webkit-column-break-inside":{comment:"added, http://help.dottoro.com/lclhnthl.php",syntax:"always | auto | avoid"},"-webkit-font-smoothing":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth",syntax:"auto | none | antialiased | subpixel-antialiased"},"-webkit-mask-box-image":{comment:"missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image",syntax:"[ <url> | <gradient> | none ] [ <length-percentage>{4} <-webkit-mask-box-repeat>{2} ]?"},"-webkit-print-color-adjust":{comment:"missed",references:["https://developer.mozilla.org/en/docs/Web/CSS/-webkit-print-color-adjust"],syntax:"economy | exact"},"-webkit-text-security":{comment:"missed; http://help.dottoro.com/lcbkewgt.php",syntax:"none | circle | disc | square"},"-webkit-user-drag":{comment:"missed; http://help.dottoro.com/lcbixvwm.php",syntax:"none | element | auto"},"-webkit-user-select":{comment:"auto is supported by old webkit, https://developer.mozilla.org/en-US/docs/Web/CSS/user-select",syntax:"auto | none | text | all"},"alignment-baseline":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#AlignmentBaselineProperty"],syntax:"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical"},"background-clip":{comment:"used <bg-clip> from CSS Backgrounds and Borders 4 since it adds new values",references:["https://github.com/csstree/csstree/issues/190"],syntax:"<bg-clip>#"},"baseline-shift":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#BaselineShiftProperty"],syntax:"baseline | sub | super | <svg-length>"},behavior:{comment:"added old IE property https://msdn.microsoft.com/en-us/library/ms530723(v=vs.85).aspx",syntax:"<url>+"},"clip-rule":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/masking.html#ClipRuleProperty"],syntax:"nonzero | evenodd"},cue:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<'cue-before'> <'cue-after'>?"},"cue-after":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<url> <decibel>? | none"},"cue-before":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<url> <decibel>? | none"},cursor:{comment:"added legacy keywords: hand, -webkit-grab. -webkit-grabbing, -webkit-zoom-in, -webkit-zoom-out, -moz-grab, -moz-grabbing, -moz-zoom-in, -moz-zoom-out",references:["https://www.sitepoint.com/css3-cursor-styles/"],syntax:"[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing | hand | -webkit-grab | -webkit-grabbing | -webkit-zoom-in | -webkit-zoom-out | -moz-grab | -moz-grabbing | -moz-zoom-in | -moz-zoom-out ] ]"},display:{comment:"extended with -ms-flexbox",syntax:"| <-non-standard-display>"},position:{comment:"extended with -webkit-sticky",syntax:"| -webkit-sticky"},"dominant-baseline":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#DominantBaselineProperty"],syntax:"auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge"},"image-rendering":{comment:"extended with <-non-standard-image-rendering>, added SVG keywords optimizeSpeed and optimizeQuality",references:["https://developer.mozilla.org/en/docs/Web/CSS/image-rendering","https://www.w3.org/TR/SVG/painting.html#ImageRenderingProperty"],syntax:"| optimizeSpeed | optimizeQuality | <-non-standard-image-rendering>"},fill:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#FillProperty"],syntax:"<paint>"},"fill-opacity":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#FillProperty"],syntax:"<number-zero-one>"},"fill-rule":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#FillProperty"],syntax:"nonzero | evenodd"},filter:{comment:"extend with IE legacy syntaxes",syntax:"| <-ms-filter-function-list>"},"glyph-orientation-horizontal":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#GlyphOrientationHorizontalProperty"],syntax:"<angle>"},"glyph-orientation-vertical":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#GlyphOrientationVerticalProperty"],syntax:"<angle>"},kerning:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#KerningProperty"],syntax:"auto | <svg-length>"},"letter-spacing":{comment:"fix syntax <length> -> <length-percentage>",references:["https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/letter-spacing"],syntax:"normal | <length-percentage>"},marker:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"marker-end":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"marker-mid":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"marker-start":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"max-width":{comment:"extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/max-width",syntax:"| <-non-standard-width>"},width:{references:["https://developer.mozilla.org/en-US/docs/Web/CSS/width","https://github.com/csstree/stylelint-validator/issues/29"],syntax:"| fill | stretch | intrinsic | -moz-max-content | -webkit-max-content | -moz-fit-content | -webkit-fit-content"},"min-width":{comment:"extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width",syntax:"| <-non-standard-width>"},overflow:{comment:"extend by vendor keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow",syntax:"| <-non-standard-overflow>"},pause:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<'pause-before'> <'pause-after'>?"},"pause-after":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},"pause-before":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},rest:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<'rest-before'> <'rest-after'>?"},"rest-after":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},"rest-before":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},"shape-rendering":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#ShapeRenderingPropert"],syntax:"auto | optimizeSpeed | crispEdges | geometricPrecision"},src:{comment:"added @font-face's src property https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/src",syntax:"[ <url> [ format( <string># ) ]? | local( <family-name> ) ]#"},speak:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"auto | none | normal"},"speak-as":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"normal | spell-out || digits || [ literal-punctuation | no-punctuation ]"},stroke:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<paint>"},"stroke-dasharray":{comment:"added SVG property; a list of comma and/or white space separated <length>s and <percentage>s",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"none | [ <svg-length>+ ]#"},"stroke-dashoffset":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<svg-length>"},"stroke-linecap":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"butt | round | square"},"stroke-linejoin":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"miter | round | bevel"},"stroke-miterlimit":{comment:"added SVG property (<miterlimit> = <number-one-or-greater>) ",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<number-one-or-greater>"},"stroke-opacity":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<number-zero-one>"},"stroke-width":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<svg-length>"},"text-anchor":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#TextAlignmentProperties"],syntax:"start | middle | end"},"unicode-bidi":{comment:"added prefixed keywords https://developer.mozilla.org/en-US/docs/Web/CSS/unicode-bidi",syntax:"| -moz-isolate | -moz-isolate-override | -moz-plaintext | -webkit-isolate | -webkit-isolate-override | -webkit-plaintext"},"unicode-range":{comment:"added missed property https://developer.mozilla.org/en-US/docs/Web/CSS/%40font-face/unicode-range",syntax:"<urange>#"},"voice-balance":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<number> | left | center | right | leftwards | rightwards"},"voice-duration":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"auto | <time>"},"voice-family":{comment:"<name> -> <family-name>, https://www.w3.org/TR/css3-speech/#property-index",syntax:"[ [ <family-name> | <generic-voice> ] , ]* [ <family-name> | <generic-voice> ] | preserve"},"voice-pitch":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]"},"voice-range":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]"},"voice-rate":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"[ normal | x-slow | slow | medium | fast | x-fast ] || <percentage>"},"voice-stress":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"normal | strong | moderate | none | reduced"},"voice-volume":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"silent | [ [ x-soft | soft | medium | loud | x-loud ] || <decibel> ]"},"writing-mode":{comment:"extend with SVG keywords",syntax:"| <svg-writing-mode>"}},types:{"-legacy-gradient":{comment:"added collection of legacy gradient syntaxes",syntax:"<-webkit-gradient()> | <-legacy-linear-gradient> | <-legacy-repeating-linear-gradient> | <-legacy-radial-gradient> | <-legacy-repeating-radial-gradient>"},"-legacy-linear-gradient":{comment:"like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",syntax:"-moz-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-linear-gradient( <-legacy-linear-gradient-arguments> )"},"-legacy-repeating-linear-gradient":{comment:"like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",syntax:"-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )"},"-legacy-linear-gradient-arguments":{comment:"like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",syntax:"[ <angle> | <side-or-corner> ]? , <color-stop-list>"},"-legacy-radial-gradient":{comment:"deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",syntax:"-moz-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-radial-gradient( <-legacy-radial-gradient-arguments> )"},"-legacy-repeating-radial-gradient":{comment:"deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",syntax:"-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )"},"-legacy-radial-gradient-arguments":{comment:"deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",syntax:"[ <position> , ]? [ [ [ <-legacy-radial-gradient-shape> || <-legacy-radial-gradient-size> ] | [ <length> | <percentage> ]{2} ] , ]? <color-stop-list>"},"-legacy-radial-gradient-size":{comment:"before a standard it contains 2 extra keywords (`contain` and `cover`) https://www.w3.org/TR/2011/WD-css3-images-20110908/#ltsize",syntax:"closest-side | closest-corner | farthest-side | farthest-corner | contain | cover"},"-legacy-radial-gradient-shape":{comment:"define to double sure it doesn't extends in future https://www.w3.org/TR/2011/WD-css3-images-20110908/#ltshape",syntax:"circle | ellipse"},"-non-standard-font":{comment:"non standard fonts",references:["https://webkit.org/blog/3709/using-the-system-font-in-web-content/"],syntax:"-apple-system-body | -apple-system-headline | -apple-system-subheadline | -apple-system-caption1 | -apple-system-caption2 | -apple-system-footnote | -apple-system-short-body | -apple-system-short-headline | -apple-system-short-subheadline | -apple-system-short-caption1 | -apple-system-short-footnote | -apple-system-tall-body"},"-non-standard-color":{comment:"non standard colors",references:["http://cssdot.ru/%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_CSS/color-i305.html","https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Mozilla_Color_Preference_Extensions"],syntax:"-moz-ButtonDefault | -moz-ButtonHoverFace | -moz-ButtonHoverText | -moz-CellHighlight | -moz-CellHighlightText | -moz-Combobox | -moz-ComboboxText | -moz-Dialog | -moz-DialogText | -moz-dragtargetzone | -moz-EvenTreeRow | -moz-Field | -moz-FieldText | -moz-html-CellHighlight | -moz-html-CellHighlightText | -moz-mac-accentdarkestshadow | -moz-mac-accentdarkshadow | -moz-mac-accentface | -moz-mac-accentlightesthighlight | -moz-mac-accentlightshadow | -moz-mac-accentregularhighlight | -moz-mac-accentregularshadow | -moz-mac-chrome-active | -moz-mac-chrome-inactive | -moz-mac-focusring | -moz-mac-menuselect | -moz-mac-menushadow | -moz-mac-menutextselect | -moz-MenuHover | -moz-MenuHoverText | -moz-MenuBarText | -moz-MenuBarHoverText | -moz-nativehyperlinktext | -moz-OddTreeRow | -moz-win-communicationstext | -moz-win-mediatext | -moz-activehyperlinktext | -moz-default-background-color | -moz-default-color | -moz-hyperlinktext | -moz-visitedhyperlinktext | -webkit-activelink | -webkit-focus-ring-color | -webkit-link | -webkit-text"},"-non-standard-image-rendering":{comment:"non-standard keywords http://phrogz.net/tmp/canvas_image_zoom.html",syntax:"optimize-contrast | -moz-crisp-edges | -o-crisp-edges | -webkit-optimize-contrast"},"-non-standard-overflow":{comment:"non-standard keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow",syntax:"-moz-scrollbars-none | -moz-scrollbars-horizontal | -moz-scrollbars-vertical | -moz-hidden-unscrollable"},"-non-standard-width":{comment:"non-standard keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width",syntax:"fill-available | min-intrinsic | intrinsic | -moz-available | -moz-fit-content | -moz-min-content | -moz-max-content | -webkit-min-content | -webkit-max-content"},"-webkit-gradient()":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/ - TODO: simplify when after match algorithm improvement ( [, point, radius | , point] -> [, radius]? , point )",syntax:"-webkit-gradient( <-webkit-gradient-type>, <-webkit-gradient-point> [, <-webkit-gradient-point> | , <-webkit-gradient-radius>, <-webkit-gradient-point> ] [, <-webkit-gradient-radius>]? [, <-webkit-gradient-color-stop>]* )"},"-webkit-gradient-color-stop":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"from( <color> ) | color-stop( [ <number-zero-one> | <percentage> ] , <color> ) | to( <color> )"},"-webkit-gradient-point":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"[ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]"},"-webkit-gradient-radius":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"<length> | <percentage>"},"-webkit-gradient-type":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"linear | radial"},"-webkit-mask-box-repeat":{comment:"missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image",syntax:"repeat | stretch | round"},"-webkit-mask-clip-style":{comment:"missed; there is no enough information about `-webkit-mask-clip` property, but looks like all those keywords are working",syntax:"border | border-box | padding | padding-box | content | content-box | text"},"-ms-filter-function-list":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"<-ms-filter-function>+"},"-ms-filter-function":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"<-ms-filter-function-progid> | <-ms-filter-function-legacy>"},"-ms-filter-function-progid":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"'progid:' [ <ident-token> '.' ]* [ <ident-token> | <function-token> <any-value>? ) ]"},"-ms-filter-function-legacy":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"<ident-token> | <function-token> <any-value>? )"},"-ms-filter":{syntax:"<string>"},age:{comment:"https://www.w3.org/TR/css3-speech/#voice-family",syntax:"child | young | old"},"attr-name":{syntax:"<wq-name>"},"attr-fallback":{syntax:"<any-value>"},"bg-clip":{comment:"missed, https://drafts.csswg.org/css-backgrounds-4/#typedef-bg-clip",syntax:"<box> | border | text"},"border-radius":{comment:"missed, https://drafts.csswg.org/css-backgrounds-3/#the-border-radius",syntax:"<length-percentage>{1,2}"},bottom:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},"content-list":{comment:"added attr(), see https://github.com/csstree/csstree/issues/201",syntax:"[ <string> | contents | <image> | <counter> | <quote> | <target> | <leader()> | <attr()> ]+"},"element()":{comment:"https://drafts.csswg.org/css-gcpm/#element-syntax & https://drafts.csswg.org/css-images-4/#element-notation",syntax:"element( <custom-ident> , [ first | start | last | first-except ]? ) | element( <id-selector> )"},"generic-voice":{comment:"https://www.w3.org/TR/css3-speech/#voice-family",syntax:"[ <age>? <gender> <integer>? ]"},gender:{comment:"https://www.w3.org/TR/css3-speech/#voice-family",syntax:"male | female | neutral"},"generic-family":{comment:"added -apple-system",references:["https://webkit.org/blog/3709/using-the-system-font-in-web-content/"],syntax:"| -apple-system"},gradient:{comment:"added legacy syntaxes support",syntax:"| <-legacy-gradient>"},"lab()":{comment:"missed; https://www.w3.org/TR/css-color-4/#specifying-lab-lch",syntax:"lab( [<percentage> | <number> | none] [ <percentage> | <number> | none] [ <percentage> | <number> | none] [ / [<alpha-value> | none] ]? )"},"lch()":{comment:"missed; https://www.w3.org/TR/css-color-4/#specifying-lab-lch",syntax:"lch( [<percentage> | <number> | none] [ <percentage> | <number> | none] [ <hue> | none] [ / [<alpha-value> | none] ]? )"},left:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},"mask-image":{comment:"missed; https://drafts.fxtf.org/css-masking-1/#the-mask-image",syntax:"<mask-reference>#"},"named-color":{comment:"added non standard color names",syntax:"| <-non-standard-color>"},paint:{comment:"used by SVG https://www.w3.org/TR/SVG/painting.html#SpecifyingPaint",syntax:"none | <color> | <url> [ none | <color> ]? | context-fill | context-stroke"},ratio:{comment:"missed, https://drafts.csswg.org/css-values-4/#ratio-value",syntax:"<number [0,\u221E]> [ / <number [0,\u221E]> ]?"},"reversed-counter-name":{comment:"missed; https://drafts.csswg.org/css-lists/#typedef-reversed-counter-name",syntax:"reversed( <counter-name> )"},right:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},shape:{comment:"missed spaces in function body and add backwards compatible syntax",syntax:"rect( <top>, <right>, <bottom>, <left> ) | rect( <top> <right> <bottom> <left> )"},"svg-length":{comment:"All coordinates and lengths in SVG can be specified with or without a unit identifier",references:["https://www.w3.org/TR/SVG11/coords.html#Units"],syntax:"<percentage> | <length> | <number>"},"svg-writing-mode":{comment:"SVG specific keywords (deprecated for CSS)",references:["https://developer.mozilla.org/en/docs/Web/CSS/writing-mode","https://www.w3.org/TR/SVG/text.html#WritingModeProperty"],syntax:"lr-tb | rl-tb | tb-rl | lr | rl | tb"},top:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},"track-group":{comment:"used by old grid-columns and grid-rows syntax v0",syntax:"'(' [ <string>* <track-minmax> <string>* ]+ ')' [ '[' <positive-integer> ']' ]? | <track-minmax>"},"track-list-v0":{comment:"used by old grid-columns and grid-rows syntax v0",syntax:"[ <string>* <track-group> <string>* ]+ | none"},"track-minmax":{comment:"used by old grid-columns and grid-rows syntax v0",syntax:"minmax( <track-breadth> , <track-breadth> ) | auto | <track-breadth> | fit-content"},x:{comment:"missed; not sure we should add it, but no others except `cursor` is using it so it's ok for now; https://drafts.csswg.org/css-ui-3/#cursor",syntax:"<number>"},y:{comment:"missed; not sure we should add it, but no others except `cursor` is using so it's ok for now; https://drafts.csswg.org/css-ui-3/#cursor",syntax:"<number>"},declaration:{comment:"missed, restored by https://drafts.csswg.org/css-syntax",syntax:"<ident-token> : <declaration-value>? [ '!' important ]?"},"declaration-list":{comment:"missed, restored by https://drafts.csswg.org/css-syntax",syntax:"[ <declaration>? ';' ]* <declaration>?"},url:{comment:"https://drafts.csswg.org/css-values-4/#urls",syntax:"url( <string> <url-modifier>* ) | <url-token>"},"url-modifier":{comment:"https://drafts.csswg.org/css-values-4/#typedef-url-modifier",syntax:"<ident> | <function-token> <any-value> )"},"number-zero-one":{syntax:"<number [0,1]>"},"number-one-or-greater":{syntax:"<number [1,\u221E]>"},"positive-integer":{syntax:"<integer [0,\u221E]>"},"-non-standard-display":{syntax:"-ms-inline-flexbox | -ms-grid | -ms-inline-grid | -webkit-flex | -webkit-inline-flex | -webkit-box | -webkit-inline-box | -moz-inline-stack | -moz-box | -moz-inline-box"}}}}),Ya=O((e,t)=>{"use strict";var p=Xa(),y=p;t.exports=y}),Qa=O((e,t)=>{t.exports={"@charset":{syntax:'@charset "<charset>";',groups:["CSS Charsets"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@charset"},"@counter-style":{syntax:`@counter-style <counter-style-name> {
104
104
  [ system: <counter-system>; ] ||
105
105
  [ symbols: <counter-symbols>; ] ||
106
106
  [ additive-symbols: <additive-symbols>; ] ||