|
|
var Wm=Object.defineProperty;var Vm=(vt,He,Ge)=>He in vt?Wm(vt,He,{enumerable:!0,configurable:!0,writable:!0,value:Ge}):vt[He]=Ge;var bt=(vt,He,Ge)=>Vm(vt,typeof He!="symbol"?He+"":He,Ge);(function(){"use strict";class vt{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(t){setTimeout(()=>{throw t.stack?Rt.isErrorNoTelemetry(t)?new Rt(t.message+`
`+t.stack):new Error(t.message+`
`+t.stack):t},0)}}emit(t){this.listeners.forEach(n=>{n(t)})}onUnexpectedError(t){this.unexpectedErrorHandler(t),this.emit(t)}onUnexpectedExternalError(t){this.unexpectedErrorHandler(t)}}const He=new vt;function Ge(e){Nc(e)||He.onUnexpectedError(e)}function us(e){if(e instanceof Error){const{name:t,message:n}=e,r=e.stacktrace||e.stack;return{$isError:!0,name:t,message:n,stack:r,noTelemetry:Rt.isErrorNoTelemetry(e)}}return e}const br="Canceled";function Nc(e){return e instanceof Ic?!0:e instanceof Error&&e.name===br&&e.message===br}class Ic extends Error{constructor(){super(br),this.name=this.message}}class Rt extends Error{constructor(t){super(t),this.name="CodeExpectedError"}static fromError(t){if(t instanceof Rt)return t;const n=new Rt;return n.message=t.message,n.stack=t.stack,n}static isErrorNoTelemetry(t){return t.name==="CodeExpectedError"}}class Te extends Error{constructor(t){super(t||"An unexpected bug occurred."),Object.setPrototypeOf(this,Te.prototype)}}function Ac(e,t){const n=this;let r=!1,i;return function(){return r||(r=!0,i=e.apply(n,arguments)),i}}var Fn;(function(e){function t(C){return C&&typeof C=="object"&&typeof C[Symbol.iterator]=="function"}e.is=t;const n=Object.freeze([]);function r(){return n}e.empty=r;function*i(C){yield C}e.single=i;function s(C){return t(C)?C:i(C)}e.wrap=s;function a(C){return C||n}e.from=a;function*l(C){for(let I=C.length-1;I>=0;I--)yield C[I]}e.reverse=l;function o(C){return!C||C[Symbol.iterator]().next().done===!0}e.isEmpty=o;function c(C){return C[Symbol.iterator]().next().value}e.first=c;function d(C,I){for(const D of C)if(I(D))return!0;return!1}e.some=d;function u(C,I){for(const D of C)if(I(D))return D}e.find=u;function*f(C,I){for(const D of C)I(D)&&(yield D)}e.filter=f;function*m(C,I){let D=0;for(const L of C)yield I(L,D++)}e.map=m;function*w(...C){for(const I of C)yield*I}e.concat=w;function y(C,I,D){let L=D;for(const O of C)L=I(L,O);return L}e.reduce=y;function*E(C,I,D=C.length){for(I<0&&(I+=C.length),D<0?D+=C.length:D>C.length&&(D=C.length);I<D;I++)yield C[I]}e.slice=E;function R(C,I=Number.POSITIVE_INFINITY){const D=[];if(I===0)return[D,C];const L=C[Symbol.iterator]();for(let O=0;O<I;O++){const z=L.next();if(z.done)return[D,e.empty()];D.push(z.value)}return[D,{[Symbol.iterator](){return L}}]}e.consume=R;async function N(C){const I=[];for await(const D of C)I.push(D);return Promise.resolve(I)}e.asyncToArray=N})(Fn||(Fn={}));function Um(e){return e}function $m(e,t){}function ps(e){if(Fn.is(e)){const t=[];for(const n of e)if(n)try{n.dispose()}catch(r){t.push(r)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Encountered errors while disposing of store");return Array.isArray(e)?[]:e}else if(e)return e.dispose(),e}function Mc(...e){return Rn(()=>ps(e))}function Rn(e){return{dispose:Ac(()=>{e()})}}class Dt{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{ps(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?Dt.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}deleteAndLeak(t){t&&this._toDispose.has(t)&&this._toDispose.delete(t)}}Dt.DISABLE_DISPOSED_WARNING=!1;class Zt{constructor(){this._store=new Dt,this._store}dispose(){this._store.dispose()}_register(t){if(t===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(t)}}Zt.None=Object.freeze({dispose(){}});let ie=class ls{constructor(t){this.element=t,this.next=ls.Undefined,this.prev=ls.Undefined}};ie.Undefined=new ie(void 0);class Lc{constructor(){this._first=ie.Undefined,this._last=ie.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===ie.Undefined}clear(){let t=this._first;for(;t!==ie.Undefined;){const n=t.next;t.prev=ie.Un
`).slice(2).join(``))}}class Oc extends Error{constructor(t,n){super(t),this.name="ListenerLeakError",this.stack=n}}class Wc extends Error{constructor(t,n){super(t),this.name="ListenerRefusalError",this.stack=n}}class yr{constructor(t){this.value=t}}const Vc=2;class Ae{constructor(t){var n,r,i,s,a,l;this._size=0,this._options=t,this._leakageMon=!((n=this._options)===null||n===void 0)&&n.leakWarningThreshold?new Tc((r=t==null?void 0:t.onListenerError)!==null&&r!==void 0?r:Ge,(s=(i=this._options)===null||i===void 0?void 0:i.leakWarningThreshold)!==null&&s!==void 0?s:Pc):void 0,this._perfMon=!((a=this._options)===null||a===void 0)&&a._profName?new Nt(this._options._profName):void 0,this._deliveryQueue=(l=this._options)===null||l===void 0?void 0:l.deliveryQueue}dispose(){var t,n,r,i;this._disposed||(this._disposed=!0,((t=this._deliveryQueue)===null||t===void 0?void 0:t.current)===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),(r=(n=this._options)===null||n===void 0?void 0:n.onDidRemoveLastListener)===null||r===void 0||r.call(n),(i=this._leakageMon)===null||i===void 0||i.dispose())}get event(){var t;return(t=this._event)!==null&&t!==void 0||(this._event=(n,r,i)=>{var s,a,l,o,c,d,u;if(this._leakageMon&&this._size>this._leakageMon.threshold**2){const y=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(y);const E=(s=this._leakageMon.getMostFrequentStack())!==null&&s!==void 0?s:["UNKNOWN stack",-1],R=new Wc(`${y}. HINT: Stack shows most frequent listener (${E[1]}-times)`,E[0]);return(((a=this._options)===null||a===void 0?void 0:a.onListenerError)||Ge)(R),Zt.None}if(this._disposed)return Zt.None;r&&(n=n.bind(r));const f=new yr(n);let m;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(f.stack=wr.create(),m=this._leakageMon.check(f.stack,this._size+1)),this._listeners?this._listeners instanceof yr?((u=this._deliveryQueue)!==null&&u!==void 0||(this._deliveryQueue=new Uc),this._listeners=[this._listeners,f]):this._listeners.push(f):((o=(l=this._options)===null||l===void 0?void 0:l.onWillAddFirstListener)===null||o===void 0||o.call(l,this),this._listeners=f,(d=(c=this._options)===null||c===void 0?void 0:c.onDidAddFirstListener)===null||d===void 0||d.call(c,this)),this._size++;const w=Rn(()=>{m==null||m(),this._removeListener(f)});return i instanceof Dt?i.add(w):Array.isArray(i)&&i.push(w),w}),this._event}_removeListener(t){var n,r,i,s;if((r=(n=this._options)===null||n===void 0?void 0:n.onWillRemoveListener)===null||r===void 0||r.call(n,this),!this._listeners)return;if(this._size===1){this._listeners=void 0,(s=(i=this._options)===null||i===void 0?void 0:i.onDidRemoveLastListener)===null||s===void 0||s.call(i,this),this._size=0;return}const a=this._listeners,l=a.indexOf(t);if(l===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,a[l]=void 0;const o=this._deliveryQueue.current===this;if(this._size*Vc<=a.length){let c=0;for(let d=0;d<a.length;d++)a[d]?a[c++]=a[d]:o&&(this._deliveryQueue.end--,c<this._deliveryQueue.i&&this._deliveryQueue.i--);a.length=c}}_deliver(t,n){var r;if(!t)return;const i=((r=this._options)===null||r===void 0?void 0:r.onListenerError)||Ge;if(!i){t.value(n);return}try{t.value(n)}catch(s){i(s)}}_deliverQueue(t){const n=t.current._listeners;for(;t.i<t.end;)this._deliver(n[t.i++],t.value);t.reset()}fire(t){var n,r,i,s;if(!((n=this._deliveryQueue)===null||n===void 0)&&n.current&&(this._deliverQueue(this._deliveryQueue),(r=this._perfMon)===null||r===void 0||r.stop()),(i=this._perfMon)===null||i===void 0||i.start(this._size),this._listeners)if(this._listeners instanceof yr)this._deliver(this._listeners,t);else{const a=this._deliveryQueue;a.enqueue(this,t,this._listeners.length),this._deliverQueue(a)}(s=this._perfMon)===null||s===void 0||s.stop()}hasListeners(){return this._size>0}}class Uc{constructor(){this.i=-1,this.en
`||e===" "}class Un{constructor(t,n,r){this.changes=t,this.moves=n,this.hitTimeout=r}}class xd{constructor(t,n){this.lineRangeMapping=t,this.changes=n}}class j{static addRange(t,n){let r=0;for(;r<n.length&&n[r].endExclusive<t.start;)r++;let i=r;for(;i<n.length&&n[i].start<=t.endExclusive;)i++;if(r===i)n.splice(r,0,t);else{const s=Math.min(t.start,n[r].start),a=Math.max(t.endExclusive,n[i-1].endExclusive);n.splice(r,i-r,new j(s,a))}}static tryCreate(t,n){if(!(t>n))return new j(t,n)}static ofLength(t){return new j(0,t)}static ofStartAndLength(t,n){return new j(t,t+n)}constructor(t,n){if(this.start=t,this.endExclusive=n,t>n)throw new Te(`Invalid range: ${this.toString()}`)}get isEmpty(){return this.start===this.endExclusive}delta(t){return new j(this.start+t,this.endExclusive+t)}deltaStart(t){return new j(this.start+t,this.endExclusive)}deltaEnd(t){return new j(this.start,this.endExclusive+t)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}contains(t){return this.start<=t&&t<this.endExclusive}join(t){return new j(Math.min(this.start,t.start),Math.max(this.endExclusive,t.endExclusive))}intersect(t){const n=Math.max(this.start,t.start),r=Math.min(this.endExclusive,t.endExclusive);if(n<=r)return new j(n,r)}intersects(t){const n=Math.max(this.start,t.start),r=Math.min(this.endExclusive,t.endExclusive);return n<r}isBefore(t){return this.endExclusive<=t.start}isAfter(t){return this.start>=t.endExclusive}slice(t){return t.slice(this.start,this.endExclusive)}substring(t){return t.substring(this.start,this.endExclusive)}clip(t){if(this.isEmpty)throw new Te(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,t))}clipCyclic(t){if(this.isEmpty)throw new Te(`Invalid clipping range: ${this.toString()}`);return t<this.start?this.endExclusive-(this.start-t)%this.length:t>=this.endExclusive?this.start+(t-this.start)%this.length:t}forEach(t){for(let n=this.start;n<this.endExclusive;n++)t(n)}}function Ot(e,t){const n=rn(e,t);return n===-1?void 0:e[n]}function rn(e,t,n=0,r=e.length){let i=n,s=r;for(;i<s;){const a=Math.floor((i+s)/2);t(e[a])?i=a+1:s=a}return i-1}function Sd(e,t){const n=jr(e,t);return n===e.length?void 0:e[n]}function jr(e,t,n=0,r=e.length){let i=n,s=r;for(;i<s;){const a=Math.floor((i+s)/2);t(e[a])?s=a:i=a+1}return i}class sn{constructor(t){this._array=t,this._findLastMonotonousLastIdx=0}findLastMonotonous(t){if(sn.assertInvariants){if(this._prevFindLastPredicate){for(const r of this._array)if(this._prevFindLastPredicate(r)&&!t(r))throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.")}this._prevFindLastPredicate=t}const n=rn(this._array,t,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=n+1,n===-1?void 0:this._array[n]}}sn.assertInvariants=!1;class B{static fromRangeInclusive(t){return new B(t.startLineNumber,t.endLineNumber+1)}static joinMany(t){if(t.length===0)return[];let n=new Ve(t[0].slice());for(let r=1;r<t.length;r++)n=n.getUnion(new Ve(t[r].slice()));return n.ranges}static join(t){if(t.length===0)throw new Te("lineRanges cannot be empty");let n=t[0].startLineNumber,r=t[0].endLineNumberExclusive;for(let i=1;i<t.length;i++)n=Math.min(n,t[i].startLineNumber),r=Math.max(r,t[i].endLineNumberExclusive);return new B(n,r)}static ofLength(t,n){return new B(t,t+n)}static deserialize(t){return new B(t[0],t[1])}constructor(t,n){if(t>n)throw new Te(`startLineNumber ${t} cannot be after endLineNumberExclusive ${n}`);this.startLineNumber=t,this.endLineNumberExclusive=n}contains(t){return this.startLineNumber<=t&&t<this.endLineNumberExclusive}get isEmpty(){return this.startLineNumber===this.endLineNumberExclusive}delta(t){return new B(this.startLineNumber+t,this.endLineNumberExclusive+t)}deltaLength(t){return new B(this.startLineNumber,this.endLineNumberExclusive+t)}get length(){return this.endLineNumberExclusive-this.startLineNumber}join(t){return new B(Math.min(this.startLineNumber,t.startLineNumber),Math.max(this.endLineNumberExclusive,t.endLineNu
`);this.histogram[l]=(this.histogram[l]||0)+1}this.totalCount=i}computeSimilarity(t){var n,r;let i=0;const s=Math.max(this.histogram.length,t.histogram.length);for(let a=0;a<s;a++)i+=Math.abs(((n=this.histogram[a])!==null&&n!==void 0?n:0)-((r=t.histogram[a])!==null&&r!==void 0?r:0));return 1-i/(this.totalCount+t.totalCount)}}Vt.chrKeys=new Map;class Nd{compute(t,n,r=on.instance,i){if(t.length===0||n.length===0)return Xe.trivial(t,n);const s=new Jr(t.length,n.length),a=new Jr(t.length,n.length),l=new Jr(t.length,n.length);for(let w=0;w<t.length;w++)for(let y=0;y<n.length;y++){if(!r.isValid())return Xe.trivialTimedOut(t,n);const E=w===0?0:s.get(w-1,y),R=y===0?0:s.get(w,y-1);let N;t.getElement(w)===n.getElement(y)?(w===0||y===0?N=0:N=s.get(w-1,y-1),w>0&&y>0&&a.get(w-1,y-1)===3&&(N+=l.get(w-1,y-1)),N+=i?i(w,y):1):N=-1;const C=Math.max(E,R,N);if(C===N){const I=w>0&&y>0?l.get(w-1,y-1):0;l.set(w,y,I+1),a.set(w,y,3)}else C===E?(l.set(w,y,0),a.set(w,y,1)):C===R&&(l.set(w,y,0),a.set(w,y,2));s.set(w,y,C)}const o=[];let c=t.length,d=n.length;function u(w,y){(w+1!==c||y+1!==d)&&o.push(new ae(new j(w+1,c),new j(y+1,d))),c=w,d=y}let f=t.length-1,m=n.length-1;for(;f>=0&&m>=0;)a.get(f,m)===3?(u(f,m),f--,m--):a.get(f,m)===1?f--:m--;return u(-1,-1),o.reverse(),new Xe(o,!1)}}class Xa{compute(t,n,r=on.instance){if(t.length===0||n.length===0)return Xe.trivial(t,n);const i=t,s=n;function a(y,E){for(;y<i.length&&E<s.length&&i.getElement(y)===s.getElement(E);)y++,E++;return y}let l=0;const o=new Id;o.set(0,a(0,0));const c=new Ad;c.set(0,o.get(0)===0?null:new Ya(null,0,0,o.get(0)));let d=0;e:for(;;){if(l++,!r.isValid())return Xe.trivialTimedOut(i,s);const y=-Math.min(l,s.length+l%2),E=Math.min(l,i.length+l%2);for(d=y;d<=E;d+=2){const R=d===E?-1:o.get(d+1),N=d===y?-1:o.get(d-1)+1,C=Math.min(Math.max(R,N),i.length),I=C-d;if(C>i.length||I>s.length)continue;const D=a(C,I);o.set(d,D);const L=C===R?c.get(d+1):c.get(d-1);if(c.set(d,D!==C?new Ya(L,C,I,D-C):L),o.get(d)===i.length&&o.get(d)-d===s.length)break e}}let u=c.get(d);const f=[];let m=i.length,w=s.length;for(;;){const y=u?u.x+u.length:0,E=u?u.y+u.length:0;if((y!==m||E!==w)&&f.push(new ae(new j(y,m),new j(E,w))),!u)break;m=u.x,w=u.y,u=u.prev}return f.reverse(),new Xe(f,!1)}}class Ya{constructor(t,n,r,i){this.prev=t,this.x=n,this.y=r,this.length=i}}class Id{constructor(){this.positiveArr=new Int32Array(10),this.negativeArr=new Int32Array(10)}get(t){return t<0?(t=-t-1,this.negativeArr[t]):this.positiveArr[t]}set(t,n){if(t<0){if(t=-t-1,t>=this.negativeArr.length){const r=this.negativeArr;this.negativeArr=new Int32Array(r.length*2),this.negativeArr.set(r)}this.negativeArr[t]=n}else{if(t>=this.positiveArr.length){const r=this.positiveArr;this.positiveArr=new Int32Array(r.length*2),this.positiveArr.set(r)}this.positiveArr[t]=n}}}class Ad{constructor(){this.positiveArr=[],this.negativeArr=[]}get(t){return t<0?(t=-t-1,this.negativeArr[t]):this.positiveArr[t]}set(t,n){t<0?(t=-t-1,this.negativeArr[t]=n):this.positiveArr[t]=n}}class $n{constructor(t,n,r){this.lines=t,this.considerWhitespaceChanges=r,this.elements=[],this.firstCharOffsetByLine=[],this.additionalOffsetByLine=[];let i=!1;n.start>0&&n.endExclusive>=t.length&&(n=new j(n.start-1,n.endExclusive),i=!0),this.lineRange=n,this.firstCharOffsetByLine[0]=0;for(let s=this.lineRange.start;s<this.lineRange.endExclusive;s++){let a=t[s],l=0;if(i)l=a.length,a="",i=!1;else if(!r){const o=a.trimStart();l=a.length-o.length,a=o.trimEnd()}this.additionalOffsetByLine.push(l);for(let o=0;o<a.length;o++)this.elements.push(a.charCodeAt(o));s<t.length-1&&(this.elements.push(10),this.firstCharOffsetByLine[s-this.lineRange.start+1]=this.elements.length)}this.additionalOffsetByLine.push(0)}toString(){return`Slice: "${this.text}"`}get text(){return this.getText(new j(0,this.length))}getText(t){return this.elements.slice(t.start,t.endExclusive).map(n=>String.fromCharCode(n)).join("")}getElement(t){return this.elements[t]}get length(){return this.elements.length}getBoundaryScore(t){const n=Ka(t>0?this.elements[t-1]:-1),r=Ka(t<this.elements.length?this.elements[t]:-1);if(n===7&
`).length>=15&&zd(u,m=>m.length>=2)>=2}),a=Wd(e,a),a}function zd(e,t){let n=0;for(const r of e)t(r)&&n++;return n}function Pd(e,t,n,r){const i=[],s=e.filter(o=>o.modified.isEmpty&&o.original.length>=3).map(o=>new Vt(o.original,t,o)),a=new Set(e.filter(o=>o.original.isEmpty&&o.modified.length>=3).map(o=>new Vt(o.modified,n,o))),l=new Set;for(const o of s){let c=-1,d;for(const u of a){const f=o.computeSimilarity(u);f>c&&(c=f,d=u)}if(c>.9&&d&&(a.delete(d),i.push(new ze(o.range,d.range)),l.add(o.source),l.add(d.source)),!r.isValid())return{moves:i,excludedChanges:l}}return{moves:i,excludedChanges:l}}function Td(e,t,n,r,i,s){const a=[],l=new pd;for(const f of e)for(let m=f.original.startLineNumber;m<f.original.endLineNumberExclusive-2;m++){const w=`${t[m-1]}:${t[m+1-1]}:${t[m+2-1]}`;l.add(w,{range:new B(m,m+3)})}const o=[];e.sort(Ln(f=>f.modified.startLineNumber,zn));for(const f of e){let m=[];for(let w=f.modified.startLineNumber;w<f.modified.endLineNumberExclusive-2;w++){const y=`${n[w-1]}:${n[w+1-1]}:${n[w+2-1]}`,E=new B(w,w+3),R=[];l.forEach(y,({range:N})=>{for(const I of m)if(I.originalLineRange.endLineNumberExclusive+1===N.endLineNumberExclusive&&I.modifiedLineRange.endLineNumberExclusive+1===E.endLineNumberExclusive){I.originalLineRange=new B(I.originalLineRange.startLineNumber,N.endLineNumberExclusive),I.modifiedLineRange=new B(I.modifiedLineRange.startLineNumber,E.endLineNumberExclusive),R.push(I);return}const C={modifiedLineRange:E,originalLineRange:N};o.push(C),R.push(C)}),m=R}if(!s.isValid())return[]}o.sort(Uh(Ln(f=>f.modifiedLineRange.length,zn)));const c=new Ve,d=new Ve;for(const f of o){const m=f.modifiedLineRange.startLineNumber-f.originalLineRange.startLineNumber,w=c.subtractFrom(f.modifiedLineRange),y=d.subtractFrom(f.originalLineRange).getWithDelta(m),E=w.getIntersection(y);for(const R of E.ranges){if(R.length<3)continue;const N=R,C=R.delta(-m);a.push(new ze(C,N)),c.addRange(N),d.addRange(C)}}a.sort(Ln(f=>f.original.startLineNumber,zn));const u=new sn(e);for(let f=0;f<a.length;f++){const m=a[f],w=u.findLastMonotonous(L=>L.original.startLineNumber<=m.original.startLineNumber),y=Ot(e,L=>L.modified.startLineNumber<=m.modified.startLineNumber),E=Math.max(m.original.startLineNumber-w.original.startLineNumber,m.modified.startLineNumber-y.modified.startLineNumber),R=u.findLastMonotonous(L=>L.original.startLineNumber<m.original.endLineNumberExclusive),N=Ot(e,L=>L.modified.startLineNumber<m.modified.endLineNumberExclusive),C=Math.max(R.original.endLineNumberExclusive-m.original.endLineNumberExclusive,N.modified.endLineNumberExclusive-m.modified.endLineNumberExclusive);let I;for(I=0;I<E;I++){const L=m.original.startLineNumber-I-1,O=m.modified.startLineNumber-I-1;if(L>r.length||O>i.length||c.contains(O)||d.contains(L)||!Za(r[L-1],i[O-1],s))break}I>0&&(d.addRange(new B(m.original.startLineNumber-I,m.original.startLineNumber)),c.addRange(new B(m.modified.startLineNumber-I,m.modified.startLineNumber)));let D;for(D=0;D<C;D++){const L=m.original.endLineNumberExclusive+D,O=m.modified.endLineNumberExclusive+D;if(L>r.length||O>i.length||c.contains(O)||d.contains(L)||!Za(r[L-1],i[O-1],s))break}D>0&&(d.addRange(new B(m.original.endLineNumberExclusive,m.original.endLineNumberExclusive+D)),c.addRange(new B(m.modified.endLineNumberExclusive,m.modified.endLineNumberExclusive+D))),(I>0||D>0)&&(a[f]=new ze(new B(m.original.startLineNumber-I,m.original.endLineNumberExclusive+D),new B(m.modified.startLineNumber-I,m.modified.endLineNumberExclusive+D)))}return a}function Za(e,t,n){if(e.trim()===t.trim())return!0;if(e.length>300&&t.length>300)return!1;const i=new Xa().compute(new $n([e],new j(0,1),!1),new $n([t],new j(0,1),!1),n);let s=0;const a=ae.invert(i.diffs,e.length);for(const d of a)d.seq1Range.forEach(u=>{Xr(e.charCodeAt(u))||s++});function l(d){let u=0;for(let f=0;f<e.length;f++)Xr(d.charCodeAt(f))||u++;return u}const o=l(e.length>t.length?e:t);return s/o>.6&&o>10}function Od(e){if(e.length===0)return e;e.sort(Ln(n=>n.original.startLineNumber,zn));const t=[e[0]];for(let n=1;n<e.length;n++){const r=t[t.length-1],i=e[n],s=i.origina
`)}isStronglyEqual(t,n){return this.lines[t]===this.lines[n]}}function io(e){let t=0;for(;t<e.length&&(e.charCodeAt(t)===32||e.charCodeAt(t)===9);)t++;return t}class Hd{constructor(){this.dynamicProgrammingDiffing=new Nd,this.myersDiffingAlgorithm=new Xa}computeDiff(t,n,r){if(t.length<=1&&Ph(t,n,(D,L)=>D===L))return new Un([],[],!1);if(t.length===1&&t[0].length===0||n.length===1&&n[0].length===0)return new Un([new Je(new B(1,t.length+1),new B(1,n.length+1),[new dt(new se(1,1,t.length,t[t.length-1].length+1),new se(1,1,n.length,n[n.length-1].length+1))])],[],!1);const i=r.maxComputationTimeMs===0?on.instance:new Dd(r.maxComputationTimeMs),s=!r.ignoreTrimWhitespace,a=new Map;function l(D){let L=a.get(D);return L===void 0&&(L=a.size,a.set(D,L)),L}const o=t.map(D=>l(D.trim())),c=n.map(D=>l(D.trim())),d=new ro(o,t),u=new ro(c,n),f=d.length+u.length<1700?this.dynamicProgrammingDiffing.compute(d,u,i,(D,L)=>t[D]===n[L]?n[L].length===0?.1:1+Math.log(1+n[L].length):.99):this.myersDiffingAlgorithm.compute(d,u,i);let m=f.diffs,w=f.hitTimeout;m=eo(d,u,m),m=qd(d,u,m);const y=[],E=D=>{if(s)for(let L=0;L<D;L++){const O=R+L,z=N+L;if(t[O]!==n[z]){const q=this.refineDiff(t,n,new ae(new j(O,O+1),new j(z,z+1)),i,s);for(const K of q.mappings)y.push(K);q.hitTimeout&&(w=!0)}}};let R=0,N=0;for(const D of m){Vn(()=>D.seq1Range.start-R===D.seq2Range.start-N);const L=D.seq1Range.start-R;E(L),R=D.seq1Range.endExclusive,N=D.seq2Range.endExclusive;const O=this.refineDiff(t,n,D,i,s);O.hitTimeout&&(w=!0);for(const z of O.mappings)y.push(z)}E(t.length-R);const C=so(y,t,n);let I=[];return r.computeMoves&&(I=this.computeMoves(C,t,n,o,c,i,s)),Vn(()=>{function D(O,z){if(O.lineNumber<1||O.lineNumber>z.length)return!1;const q=z[O.lineNumber-1];return!(O.column<1||O.column>q.length+1)}function L(O,z){return!(O.startLineNumber<1||O.startLineNumber>z.length+1||O.endLineNumberExclusive<1||O.endLineNumberExclusive>z.length+1)}for(const O of C){if(!O.innerChanges)return!1;for(const z of O.innerChanges)if(!(D(z.modifiedRange.getStartPosition(),n)&&D(z.modifiedRange.getEndPosition(),n)&&D(z.originalRange.getStartPosition(),t)&&D(z.originalRange.getEndPosition(),t)))return!1;if(!L(O.modified,n)||!L(O.original,t))return!1}return!0}),new Un(C,I,w)}computeMoves(t,n,r,i,s,a,l){return Ld(t,n,r,i,s,a).map(d=>{const u=this.refineDiff(n,r,new ae(d.original.toOffsetRange(),d.modified.toOffsetRange()),a,l),f=so(u.mappings,n,r,!0);return new xd(d,f)})}refineDiff(t,n,r,i,s){const a=new $n(t,r.seq1Range,s),l=new $n(n,r.seq2Range,s),o=a.length+l.length<500?this.dynamicProgrammingDiffing.compute(a,l,i):this.myersDiffingAlgorithm.compute(a,l,i);let c=o.diffs;return c=eo(a,l,c),c=$d(a,l,c),c=Ud(a,l,c),c=jd(a,l,c),{mappings:c.map(u=>new dt(a.translateRange(u.seq1Range),l.translateRange(u.seq2Range))),hitTimeout:o.hitTimeout}}}function so(e,t,n,r=!1){const i=[];for(const s of Th(e.map(a=>Gd(a,t,n)),(a,l)=>a.original.overlapOrTouch(l.original)||a.modified.overlapOrTouch(l.modified))){const a=s[0],l=s[s.length-1];i.push(new Je(a.original.join(l.original),a.modified.join(l.modified),s.map(o=>o.innerChanges[0])))}return Vn(()=>!r&&i.length>0&&(i[0].modified.startLineNumber!==i[0].original.startLineNumber||n.length-i[i.length-1].modified.endLineNumberExclusive!==t.length-i[i.length-1].original.endLineNumberExclusive)?!1:Ba(i,(s,a)=>a.original.startLineNumber-s.original.endLineNumberExclusive===a.modified.startLineNumber-s.modified.endLineNumberExclusive&&s.original.endLineNumberExclusive<a.original.startLineNumber&&s.modified.endLineNumberExclusive<a.modified.startLineNumber)),i}function Gd(e,t,n){let r=0,i=0;e.modifiedRange.endColumn===1&&e.originalRange.endColumn===1&&e.originalRange.startLineNumber+r<=e.originalRange.endLineNumber&&e.modifiedRange.startLineNumber+r<=e.modifiedRange.endLineNumber&&(i=-1),e.modifiedRange.startColumn-1>=n[e.modifiedRange.startLineNumber-1].length&&e.originalRange.startColumn-1>=t[e.originalRange.startLineNumber-1].length&&e.originalRange.startLineNumber<=e.originalRange.endLineNumber+i&&e.modifiedRange.startLineNumber<=e.modifiedRange.endLineNumber+i&&(r=1);
* Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
*-----------------------------------------------------------------------------*/var p;(function(e){e[e.Ident=0]="Ident",e[e.AtKeyword=1]="AtKeyword",e[e.String=2]="String",e[e.BadString=3]="BadString",e[e.UnquotedString=4]="UnquotedString",e[e.Hash=5]="Hash",e[e.Num=6]="Num",e[e.Percentage=7]="Percentage",e[e.Dimension=8]="Dimension",e[e.UnicodeRange=9]="UnicodeRange",e[e.CDO=10]="CDO",e[e.CDC=11]="CDC",e[e.Colon=12]="Colon",e[e.SemiColon=13]="SemiColon",e[e.CurlyL=14]="CurlyL",e[e.CurlyR=15]="CurlyR",e[e.ParenthesisL=16]="ParenthesisL",e[e.ParenthesisR=17]="ParenthesisR",e[e.BracketL=18]="BracketL",e[e.BracketR=19]="BracketR",e[e.Whitespace=20]="Whitespace",e[e.Includes=21]="Includes",e[e.Dashmatch=22]="Dashmatch",e[e.SubstringOperator=23]="SubstringOperator",e[e.PrefixOperator=24]="PrefixOperator",e[e.SuffixOperator=25]="SuffixOperator",e[e.Delim=26]="Delim",e[e.EMS=27]="EMS",e[e.EXS=28]="EXS",e[e.Length=29]="Length",e[e.Angle=30]="Angle",e[e.Time=31]="Time",e[e.Freq=32]="Freq",e[e.Exclamation=33]="Exclamation",e[e.Resolution=34]="Resolution",e[e.Comma=35]="Comma",e[e.Charset=36]="Charset",e[e.EscapedJavaScript=37]="EscapedJavaScript",e[e.BadEscapedJavaScript=38]="BadEscapedJavaScript",e[e.Comment=39]="Comment",e[e.SingleLineComment=40]="SingleLineComment",e[e.EOF=41]="EOF",e[e.ContainerQueryLength=42]="ContainerQueryLength",e[e.CustomToken=43]="CustomToken"})(p||(p={}));var mo=class{constructor(e){this.source=e,this.len=e.length,this.position=0}substring(e,t=this.position){return this.source.substring(e,t)}eos(){return this.len<=this.position}pos(){return this.position}goBackTo(e){this.position=e}goBack(e){this.position-=e}advance(e){this.position+=e}nextChar(){return this.source.charCodeAt(this.position++)||0}peekChar(e=0){return this.source.charCodeAt(this.position+e)||0}lookbackChar(e=0){return this.source.charCodeAt(this.position-e)||0}advanceIfChar(e){return e===this.source.charCodeAt(this.position)?(this.position++,!0):!1}advanceIfChars(e){if(this.position+e.length>this.source.length)return!1;let t=0;for(;t<e.length;t++)if(this.source.charCodeAt(this.position+t)!==e[t])return!1;return this.advance(t),!0}advanceWhileChar(e){const t=this.position;for(;this.position<this.len&&e(this.source.charCodeAt(this.position));)this.position++;return this.position-t}},Bn=97,fo=102,go=122,qn=65,bo=70,vo=90,hn=48,dn=57,ru=126,iu=94,un=61,su=124,St=45,wo=95,au=37,Zr=42,yo=40,xo=41,ou=60,lu=62,cu=64,hu=35,du=36,ei=92,So=47,$t=10,Bt=13,pn=12,Co=34,_o=39,ti=32,ni=9,uu=59,pu=58,mu=123,fu=125,gu=91,bu=93,vu=44,ko=46,Eo=33,wu=63,yu=43,Ue={};Ue[uu]=p.SemiColon,Ue[pu]=p.Colon,Ue[mu]=p.CurlyL,Ue[fu]=p.CurlyR,Ue[bu]=p.BracketR,Ue[gu]=p.BracketL,Ue[yo]=p.ParenthesisL,Ue[xo]=p.ParenthesisR,Ue[vu]=p.Comma;var ne={};ne.em=p.EMS,ne.ex=p.EXS,ne.px=p.Length,ne.cm=p.Length,ne.mm=p.Length,ne.in=p.Length,ne.pt=p.Length,ne.pc=p.Length,ne.deg=p.Angle,ne.rad=p.Angle,ne.grad=p.Angle,ne.ms=p.Time,ne.s=p.Time,ne.hz=p.Freq,ne.khz=p.Freq,ne["%"]=p.Percentage,ne.fr=p.Percentage,ne.dpi=p.Resolution,ne.dpcm=p.Resolution,ne.cqw=p.ContainerQueryLength,ne.cqh=p.ContainerQueryLength,ne.cqi=p.ContainerQueryLength,ne.cqb=p.ContainerQueryLength,ne.cqmin=p.ContainerQueryLength,ne.cqmax=p.ContainerQueryLength;var mn=class{constructor(){this.stream=new mo(""),this.ignoreComment=!0,this.ignoreWhitespace=!0,this.inURL=!1}setSource(e){this.stream=new mo(e)}finishToken(e,t,n){return{offset:e,len:this.stream.pos()-e,type:t,text:n||this.stream.substring(e)}}substring(e,t){return this.stream.substring(e,e+t)}pos(){return this.stream.pos()}goBackTo(e){this.stream.goBackTo(e)}scanUnquotedString(){const e=this.stream.pos(),t=[];return this._unquotedString(t)?this.finishToken(e,p.UnquotedString,t.join("")):null}scan(){const e=this.trivia();if(e!==null)return e;const t=this.stream.pos();return this.stream.eos()?this.finishToken(t,p.EOF):this.scanNext(t)}tryScanUnicode(){const e=this.stream.pos();if(!this.stream.eos()&&this._unicodeRange())return this.finishToken(e,p.UnicodeRange);this.stream.goBackTo(e)}scanNext(e){if(this.stream.advanceIfChars([ou,Eo,St,St]))return this.finishT`),!0}return!1}_escape(e,t){let n=this.stream.peekChar();if(n===ei){this.stream.advance(1),n=this.stream.peekChar();let r=0;for(;r<6&&(n>=hn&&n<=dn||n>=Bn&&n<=fo||n>=qn&&n<=bo);)this.stream.advance(1),n=this.stream.peekChar(),r++;if(r>0){try{const i=parseInt(this.stream.substring(this.stream.pos()-r),16);i&&e.push(String.fromCharCode(i))}catch{}return n===ti||n===ni?this.stream.advance(1):this._newline([]),!0}if(n!==Bt&&n!==pn&&n!==$t)return this.stream.advance(1),e.push(String.fromCharCode(n)),!0;if(t)return this._newline(e)}return!1}_stringChar(e,t){const n=this.stream.peekChar();return n!==0&&n!==e&&n!==ei&&n!==Bt&&n!==pn&&n!==$t?(this.stream.advance(1),t.push(String.fromCharCode(n)),!0):!1}_string(e){if(this.stream.peekChar()===_o||this.stream.peekChar()===Co){const t=this.stream.nextChar();for(e.push(String.fromCharCode(t));this._stringChar(t,e)||this._escape(e,!0););return this.stream.peekChar()===t?(this.stream.nextChar(),e.push(String.fromCharCode(t)),p.String):p.BadString}return null}_unquotedChar(e){const t=this.stream.peekChar();return t!==0&&t!==ei&&t!==_o&&t!==Co&&t!==yo&&t!==xo&&t!==ti&&t!==ni&&t!==$t&&t!==pn&&t!==Bt?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1}_unquotedString(e){let t=!1;for(;this._unquotedChar(e)||this._escape(e);)t=!0;return t}_whitespace(){return this.stream.advanceWhileChar(t=>t===ti||t===ni||t===$t||t===pn||t===Bt)>0}_name(e){let t=!1;for(;this._identChar(e)||this._escape(e);)t=!0;return t}ident(e){const t=this.stream.pos();if(this._minus(e)){if(this._minus(e)||this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}}else if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}return this.stream.goBackTo(t),!1}_identFirstChar(e){const t=this.stream.peekChar();return t===wo||t>=Bn&&t<=go||t>=qn&&t<=vo||t>=128&&t<=65535?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1}_minus(e){const t=this.stream.peekChar();return t===St?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1}_identChar(e){const t=this.stream.peekChar();return t===wo||t===St||t>=Bn&&t<=go||t>=qn&&t<=vo||t>=hn&&t<=dn||t>=128&&t<=65535?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1}_unicodeRange(){if(this.stream.advanceIfChar(yu)){const e=n=>n>=hn&&n<=dn||n>=Bn&&n<=fo||n>=qn&&n<=bo,t=this.stream.advanceWhileChar(e)+this.stream.advanceWhileChar(n=>n===wu);if(t>=1&&t<=6)if(this.stream.advanceIfChar(St)){const n=this.stream.advanceWhileChar(e);if(n>=1&&n<=6)return!0}else return!0}return!1}};function de(e,t){if(e.length<t.length)return!1;for(let n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0}function Fo(e,t){let n=e.length-t.length;return n>0?e.lastIndexOf(t)===n:n===0?e===t:!1}function xu(e,t,n=4){let r=Math.abs(e.length-t.length);if(r>n)return 0;let i=[],s=[],a,l;for(a=0;a<t.length+1;++a)s.push(0);for(a=0;a<e.length+1;++a)i.push(s);for(a=1;a<e.length+1;++a)for(l=1;l<t.length+1;++l)e[a-1]===t[l-1]?i[a][l]=i[a-1][l-1]+1:i[a][l]=Math.max(i[a-1][l],i[a][l-1]);return i[e.length][t.length]-Math.sqrt(r)}function Ro(e,t=!0){return e?e.length<140?e:e.slice(0,140)+(t?"…":""):""}function Su(e,t){const n=t.exec(e);return n&&n[0].length?e.substr(0,e.length-n[0].length):e}function Do(e,t){let n="";for(;t>0;)(t&1)===1&&(n+=e),e+=e,t=t>>>1;return n}var b;(function(e){e[e.Undefined=0]="Undefined",e[e.Identifier=1]="Identifier",e[e.Stylesheet=2]="Stylesheet",e[e.Ruleset=3]="Ruleset",e[e.Selector=4]="Selector",e[e.SimpleSelector=5]="SimpleSelector",e[e.SelectorInterpolation=6]="SelectorInterpolation",e[e.SelectorCombinator=7]="SelectorCombinator",e[e.SelectorCombinatorParent=8]="SelectorCombinatorParent",e[e.SelectorCombinatorSibling=9]="SelectorCombinatorSibling",e[e.SelectorCombinatorAllSiblings=10]="SelectorCombinatorAllSiblings",e[e.SelectorCombinatorShadowPiercingDescendant=11]="SelectorCombinatorShadowPiercingDescendant",e[e.Page=12]="Page",e[e.PageBoxMarginBox=13]="PageBoxMarginBox",e[e.ClassSelector=14]="ClassSelector",e[e.IdentifierSelector=15]="IdentifierSelector",e[e.ElementNameSelector=16]="Ele
`,i==="\r"&&r+1<t.length&&t.charAt(r+1)===``&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),n=0,r=t.length;if(r===0)return ve.create(0,e);for(;n<r;){let s=Math.floor((n+r)/2);t[s]>e?r=s:n=s+1}let i=n-1;return ve.create(i,e-t[i])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)}get lineCount(){return this.getLineOffsets().length}},S;(function(e){const t=Object.prototype.toString;function n(m){return typeof m<"u"}e.defined=n;function r(m){return typeof m>"u"}e.undefined=r;function i(m){return m===!0||m===!1}e.boolean=i;function s(m){return t.call(m)==="[object String]"}e.string=s;function a(m){return t.call(m)==="[object Number]"}e.number=a;function l(m,w,y){return t.call(m)==="[object Number]"&&w<=m&&m<=y}e.numberRange=l;function o(m){return t.call(m)==="[object Number]"&&-2147483648<=m&&m<=2147483647}e.integer=o;function c(m){return t.call(m)==="[object Number]"&&0<=m&&m<=2147483647}e.uinteger=c;function d(m){return t.call(m)==="[object Function]"}e.func=d;function u(m){return m!==null&&typeof m=="object"}e.objectLiteral=u;function f(m,w){return Array.isArray(m)&&m.every(w)}e.typedArray=f})(S||(S={}));var Il=class cs{constructor(t,n,r,i){this._uri=t,this._languageId=n,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(t){if(t){const n=this.offsetAt(t.start),r=this.offsetAt(t.end);return this._content.substring(n,r)}return this._content}update(t,n){for(let r of t)if(cs.isIncremental(r)){const i=Ml(r.range),s=this.offsetAt(i.start),a=this.offsetAt(i.end);this._content=this._content.substring(0,s)+r.text+this._content.substring(a,this._content.length);const l=Math.max(i.start.line,0),o=Math.max(i.end.line,0);let c=this._lineOffsets;const d=Al(r.text,!1,s);if(o-l===d.length)for(let f=0,m=d.length;f<m;f++)c[f+l+1]=d[f];else d.length<1e4?c.splice(l+1,o-l,...d):this._lineOffsets=c=c.slice(0,l+1).concat(d,c.slice(o+1));const u=r.text.length-(a-s);if(u!==0)for(let f=l+1+d.length,m=c.length;f<m;f++)c[f]=c[f]+u}else if(cs.isFull(r))this._content=r.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=n}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=Al(this._content,!0)),this._lineOffsets}positionAt(t){t=Math.max(Math.min(t,this._content.length),0);let n=this.getLineOffsets(),r=0,i=n.length;if(i===0)return{line:0,character:t};for(;r<i;){let a=Math.floor((r+i)/2);n[a]>t?i=a:r=a+1}let s=r-1;return{line:s,character:t-n[s]}}offsetAt(t){let n=this.getLineOffsets();if(t.line>=n.length)return this._content.length;if(t.line<0)return 0;let r=n[t.line],i=t.line+1<n.length?n[t.line+1]:this._content.length;return Math.max(Math.min(r+t.character,i),r)}get lineCount(){return this.getLineOffsets().length}static isIncremental(t){let n=t;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(t){let n=t;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},Ni;(function(e){function t(i,s,a,l){return new Il(i,s,a,l)}e.create=t;function n(i,s,a){if(i instanceof Il)return i.update(s,a),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}e.update=n;function r(i,s){let a=i.getText(),l=Ii(s.map(cp),(d,u)=>{let f=d.range.start.line-u.range.start.line;return f===0?d.range.start.character-u.range.start.character:f}),o=0;const c=[];for(const d of l){let u=i.offsetAt(d.range.start);if(u<o)throw new Error("Overlapping edit");u>o&&c.push(a.substring(o,u)),d.newText.length&&c.push(d.newText),o=i.offsetAt(d.range.end)}return c.push(a.substr(o)),c.join("")}e.applyEdits=r})(Ni||(Ni={}));function Ii(e,t){if(e.length<=1)return e;const n=e.length/2|0,r=e.slice(0,n),i=e.slice(n);Ii(r,t),Ii(i,t);let
`;case"nonstandard":return`🚨️ Property is nonstandard. Avoid using it.
`;case"obsolete":return`🚨️️️ Property is obsolete. Avoid using it.
`;default:return""}}function pt(e,t,n){let r;if(t?r={kind:"markdown",value:dp(e,n)}:r={kind:"plaintext",value:hp(e,n)},r.value!=="")return r}function nr(e){return e=e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&"),e.replace(/</g,"<").replace(/>/g,">")}function hp(e,t){if(!e.description||e.description==="")return"";if(typeof e.description!="string")return e.description.value;let n="";if((t==null?void 0:t.documentation)!==!1){e.status&&(n+=Pl(e.status)),n+=e.description;const r=Tl(e.browsers);r&&(n+=`
(`+r+")"),"syntax"in e&&(n+=`
Syntax: ${e.syntax}`)}return e.references&&e.references.length>0&&(t==null?void 0:t.references)!==!1&&(n.length>0&&(n+=`
`),n+=e.references.map(r=>`${r.name}: ${r.url}`).join(" | ")),n}function dp(e,t){if(!e.description||e.description==="")return"";let n="";if((t==null?void 0:t.documentation)!==!1){e.status&&(n+=Pl(e.status)),typeof e.description=="string"?n+=nr(e.description):n+=e.description.kind===Be.Markdown?e.description.value:nr(e.description.value);const r=Tl(e.browsers);r&&(n+=`
(`+nr(r)+")"),"syntax"in e&&e.syntax&&(n+=`
Syntax: ${nr(e.syntax)}`)}return e.references&&e.references.length>0&&(t==null?void 0:t.references)!==!1&&(n.length>0&&(n+=`
`),n+=e.references.map(r=>`[${r.name}](${r.url})`).join(" | ")),n}function Tl(e=[]){return e.length===0?null:e.map(t=>{let n="";const r=t.match(/([A-Z]+)(\d+)?/),i=r[1],s=r[2];return i in zl&&(n+=zl[i]),s&&(n+=" "+s),n}).join(", ")}var up=/(^#([0-9A-F]{3}){1,2}$)|(^#([0-9A-F]{4}){1,2}$)/i,pp=[{label:"rgb",func:"rgb($red, $green, $blue)",insertText:"rgb(${1:red}, ${2:green}, ${3:blue})",desc:g("Creates a Color from red, green, and blue values.")},{label:"rgba",func:"rgba($red, $green, $blue, $alpha)",insertText:"rgba(${1:red}, ${2:green}, ${3:blue}, ${4:alpha})",desc:g("Creates a Color from red, green, blue, and alpha values.")},{label:"rgb relative",func:"rgb(from $color $red $green $blue)",insertText:"rgb(from ${1:color} ${2:r} ${3:g} ${4:b})",desc:g("Creates a Color from the red, green, and blue values of another Color.")},{label:"hsl",func:"hsl($hue, $saturation, $lightness)",insertText:"hsl(${1:hue}, ${2:saturation}, ${3:lightness})",desc:g("Creates a Color from hue, saturation, and lightness values.")},{label:"hsla",func:"hsla($hue, $saturation, $lightness, $alpha)",insertText:"hsla(${1:hue}, ${2:saturation}, ${3:lightness}, ${4:alpha})",desc:g("Creates a Color from hue, saturation, lightness, and alpha values.")},{label:"hsl relative",func:"hsl(from $color $hue $saturation $lightness)",insertText:"hsl(from ${1:color} ${2:h} ${3:s} ${4:l})",desc:g("Creates a Color from the hue, saturation, and lightness values of another Color.")},{label:"hwb",func:"hwb($hue $white $black)",insertText:"hwb(${1:hue} ${2:white} ${3:black})",desc:g("Creates a Color from hue, white, and black values.")},{label:"hwb relative",func:"hwb(from $color $hue $white $black)",insertText:"hwb(from ${1:color} ${2:h} ${3:w} ${4:b})",desc:g("Creates a Color from the hue, white, and black values of another Color.")},{label:"lab",func:"lab($lightness $a $b)",insertText:"lab(${1:lightness} ${2:a} ${3:b})",desc:g("Creates a Color from lightness, a, and b values.")},{label:"lab relative",func:"lab(from $color $lightness $a $b)",insertText:"lab(from ${1:color} ${2:l} ${3:a} ${4:b})",desc:g("Creates a Color from the lightness, a, and b values of another Color.")},{label:"oklab",func:"oklab($lightness $a $b)",insertText:"oklab(${1:lightness} ${2:a} ${3:b})",desc:g("Creates a Color from lightness, a, and b values.")},{label:"oklab relative",func:"oklab(from $color $lightness $a $b)",insertText:"oklab(from ${1:color} ${2:l} ${3:a} ${4:b})",desc:g("Creates a Color from the lightness, a, and b values of another Color.")},{label:"lch",func:"lch($lightness $chroma $hue)",insertText:"lch(${1:lightness} ${2:chroma} ${3:hue})",desc:g("Creates a Color from lightness, chroma, and hue values.")},{label:"lch relative",func:"lch(from $color $lightness $chroma $hue)",insertText:"lch(from ${1:color} ${2:l} ${3:c} ${4:h})",desc:g("Creates a Color from the lightness, chroma, and hue values of another Color.")},{label:"oklch",func:"oklch($lightness $chroma $hue)",insertText:"oklch(${1:lightness} ${2:chroma} ${3:hue})",desc:g("Creates a Color from lightness, chroma, and hue values.")},{label:"oklch relative",func:"oklch(from $color $lightness $chroma $hue)",insertText:"oklch(from ${1:color} ${2:l} ${3:c} ${4:h})",desc:g("Creates a Color from the lightness, chroma, and hue values of another Color.")},{label:"color",func:"color($color-space $red $green $blue)",insertText:"color(${1|srgb,srgb-linear,display-p3,a98-rgb,prophoto-rgb,rec2020,xyx,xyz-d50,xyz-d65|} ${2:red} ${3:green} ${4:blue})",desc:g("Creates a Color in a specific color space from red, green, and blue values.")},{label:"color relative",func:"color(from $color $color-space $red $green $blue)",insertText:"color(from ${1:color} ${2|srgb,srgb-linear,display-p3,a98-rgb,prophoto-rgb,rec2020,xyx,xyz-d50,xyz-d65|} ${3:r} ${4:g} ${5:b})",desc:g("Creates a Color in a specific color space from the red, green, and blue values of another Color.")},{label:"color-mix",func:"color-mix(in $color-space, $color $percentage, $color $percentage)",insertText:"color-mix(in ${1|srgb,srgb-linear,lab,oklab,xyz,xyz-d50,xyz-d65|}, ${3:color}
\r":{[()]},*>+`.indexOf(r.charAt(n))===-1;)n--;return r.substring(n+1,t)}var Wi=class hs{constructor(){this.parent=null,this.children=null,this.attributes=null}findAttribute(t){if(this.attributes){for(const n of this.attributes)if(n.name===t)return n.value}return null}addChild(t){t instanceof hs&&(t.parent=this),this.children||(this.children=[]),this.children.push(t)}append(t){if(this.attributes){const n=this.attributes[this.attributes.length-1];n.value=n.value+t}}prepend(t){if(this.attributes){const n=this.attributes[0];n.value=t+n.value}}findRoot(){let t=this;for(;t.parent&&!(t.parent instanceof Yt);)t=t.parent;return t}removeChild(t){if(this.children){const n=this.children.indexOf(t);if(n!==-1)return this.children.splice(n,1),!0}return!1}addAttr(t,n){this.attributes||(this.attributes=[]);for(const r of this.attributes)if(r.name===t){r.value+=" "+n;return}this.attributes.push({name:t,value:n})}clone(t=!0){const n=new hs;if(this.attributes){n.attributes=[];for(const r of this.attributes)n.addAttr(r.name,r.value)}if(t&&this.children){n.children=[];for(let r=0;r<this.children.length;r++)n.addChild(this.children[r].clone())}return n}cloneWithParent(){const t=this.clone(!1);return this.parent&&!(this.parent instanceof Yt)&&this.parent.cloneWithParent().addChild(t),t}},Yt=class extends Wi{},Vi=class extends Wi{constructor(e){super(),this.addAttr("name",e)}},sc=class{constructor(e){this.quote=e,this.result=[]}print(e,t){this.result=[],e instanceof Yt?e.children&&this.doPrint(e.children,0):this.doPrint([e],0);let n;return t?n=`${t.text}
… `+this.result.join(``):n=this.result.join(``),[{language:"html",value:n}]}doPrint(e,t){for(const n of e)this.doPrintElement(n,t),n.children&&this.doPrint(n.children,t+1)}writeLine(e,t){const n=new Array(e+1).join(" ");this.result.push(n+t)}doPrintElement(e,t){const n=e.findAttribute("name");if(e instanceof Vi||n==="…"){this.writeLine(t,n);return}const r=["<"];if(n?r.push(n):r.push("element"),e.attributes){for(const i of e.attributes)if(i.name!=="name"){r.push(" "),r.push(i.name);const s=i.value;s&&(r.push("="),r.push(Ke.ensure(s,this.quote)))}}r.push(">"),this.writeLine(t,r.join(""))}},Ke;(function(e){function t(r,i){return i+n(r)+i}e.ensure=t;function n(r){const i=r.match(/^['"](.*)["']$/);return i?i[1]:r}e.remove=n})(Ke||(Ke={}));var Ui=class{constructor(){this.id=0,this.attr=0,this.tag=0}};function ac(e,t){let n=new Wi;for(const r of e.getChildren())switch(r.type){case b.SelectorCombinator:if(t){const l=r.getText().split("&");if(l.length===1){n.addAttr("name",l[0]);break}n=t.cloneWithParent(),l[0]&&n.findRoot().prepend(l[0]);for(let o=1;o<l.length;o++){if(o>1){const c=t.cloneWithParent();n.addChild(c.findRoot()),n=c}n.append(l[o])}}break;case b.SelectorPlaceholder:if(r.matches("@at-root"))return n;case b.ElementNameSelector:const i=r.getText();n.addAttr("name",i==="*"?"element":Ne(i));break;case b.ClassSelector:n.addAttr("class",Ne(r.getText().substring(1)));break;case b.IdentifierSelector:n.addAttr("id",Ne(r.getText().substring(1)));break;case b.MixinDeclaration:n.addAttr("class",r.getName());break;case b.PseudoSelector:n.addAttr(Ne(r.getText()),"");break;case b.AttributeSelector:const s=r,a=s.getIdentifier();if(a){const l=s.getValue(),o=s.getOperator();let c;if(l&&o)switch(Ne(o.getText())){case"|=":c=`${Ke.remove(Ne(l.getText()))}-…`;break;case"^=":c=`${Ke.remove(Ne(l.getText()))}…`;break;case"$=":c=`…${Ke.remove(Ne(l.getText()))}`;break;case"~=":c=` … ${Ke.remove(Ne(l.getText()))} … `;break;case"*=":c=`…${Ke.remove(Ne(l.getText()))}…`;break;default:c=Ke.remove(Ne(l.getText()));break}n.addAttr(Ne(a.getText()),c)}break}return n}function Ne(e){const t=new mn;t.setSource(e);const n=t.scanUnquotedString();return n?n.text:e}var Vp=class{constructor(e){this.cssDataManager=e}selectorToMarkedString(e,t){const n=Bp(e);if(n){const r=new sc('"').print(n,t);return r.push(this.selectorToSpecificityMarkedString(e)),r}else return[]}simpleSelectorToMarkedString(e){const t=ac(e),n=new sc('"').print(t);return n.push(this.selectorToSpecificityMarkedString(e)),n}isPseudoElementIdentifier(e){const t=e.match(/^::?([\w-]+)/);return t?!!this.cssDataManager.getPseudoElement("::"+t[1]):!1}selectorToSpecificityMarkedString(e){const t=i=>{const s=new Ui;let a=new Ui;for(const l of i)for(const o of l.getChildren()){const c=n(o);if(c.id>a.id){a=c;continue}else if(c.id<a.id)continue;if(c.attr>a.attr){a=c;continue}else if(c.attr<a.attr)continue;if(c.tag>a.tag){a=c;continue}}return s.id+=a.id,s.attr+=a.attr,s.tag+=a.tag,s},n=i=>{const s=new Ui;e:for(const a of i.getChildren()){switch(a.type){case b.IdentifierSelector:s.id++;break;case b.ClassSelector:case b.AttributeSelector:s.attr++;break;case b.ElementNameSelector:if(a.matches("*"))break;s.tag++;break;case b.PseudoSelector:const l=a.getText(),o=a.getChildren();if(this.isPseudoElementIdentifier(l)){if(l.match(/^::slotted/i)&&o.length>0){s.tag++;let c=t(o);s.id+=c.id,s.attr+=c.attr,s.tag+=c.tag;continue e}s.tag++;continue e}if(l.match(/^:where/i))continue e;if(l.match(/^:(?:not|has|is)/i)&&o.length>0){let c=t(o);s.id+=c.id,s.attr+=c.attr,s.tag+=c.tag;continue e}if(l.match(/^:(?:host|host-context)/i)&&o.length>0){s.attr++;let c=t(o);s.id+=c.id,s.attr+=c.attr,s.tag+=c.tag;continue e}if(l.match(/^:(?:nth-child|nth-last-child)/i)&&o.length>0){if(s.attr++,o.length===3&&o[1].type===23){let m=t(o[2].getChildren());s.id+=m.id,s.attr+=m.attr,s.tag+=m.tag;continue e}const c=new ar,d=o[1].getText();c.scanner.setSource(d);const u=c.scanner.scan(),f=c.scanner.scan();if(u.text==="n"||u.text==="-n"&&f.text==="of"){const m=[],y=d.slice(f.offset+2).split(",");for(const R of y){const N=c.internalParse(R,c._parseSelector);N&&m.push(N)}let E=
$0}`,insertTextFormat:ke.Snippet,kind:V.Keyword},{label:"@for",documentation:g("For loop that repeatedly outputs a set of styles for each `$var` in the `from/through` or `from/to` clause."),insertText:"@for \\$${1:var} from ${2:start} ${3|to,through|} ${4:end} {\n $0\n}",insertTextFormat:ke.Snippet,kind:V.Keyword},{label:"@each",documentation:g("Each loop that sets `$var` to each item in the list or map, then outputs the styles it contains using that value of `$var`."),insertText:"@each \\$${1:var} in ${2:list} {\n $0\n}",insertTextFormat:ke.Snippet,kind:V.Keyword},{label:"@while",documentation:g("While loop that takes an expression and repeatedly outputs the nested styles until the statement evaluates to `false`."),insertText:`@while \${1:condition} { $0}`,insertTextFormat:ke.Snippet,kind:V.Keyword},{label:"@mixin",documentation:g("Defines styles that can be re-used throughout the stylesheet with `@include`."),insertText:`@mixin \${1:name} { $0}`,insertTextFormat:ke.Snippet,kind:V.Keyword},{label:"@include",documentation:g("Includes the styles defined by another mixin into the current rule."),kind:V.Keyword},{label:"@function",documentation:g("Defines complex operations that can be re-used throughout stylesheets."),kind:V.Keyword}],gt.scssModuleLoaders=[{label:"@use",documentation:g("Loads mixins, functions, and variables from other Sass stylesheets as 'modules', and combines CSS from multiple stylesheets together."),references:[{name:tt,url:"https://sass-lang.com/documentation/at-rules/use"}],insertText:"@use $0;",insertTextFormat:ke.Snippet,kind:V.Keyword},{label:"@forward",documentation:g("Loads a Sass stylesheet and makes its mixins, functions, and variables available when this stylesheet is loaded with the @use rule."),references:[{name:tt,url:"https://sass-lang.com/documentation/at-rules/forward"}],insertText:"@forward $0;",insertTextFormat:ke.Snippet,kind:V.Keyword}],gt.scssModuleBuiltIns=[{label:"sass:math",documentation:g("Provides functions that operate on numbers."),references:[{name:tt,url:"https://sass-lang.com/documentation/modules/math"}]},{label:"sass:string",documentation:g("Makes it easy to combine, search, or split apart strings."),references:[{name:tt,url:"https://sass-lang.com/documentation/modules/string"}]},{label:"sass:color",documentation:g("Generates new colors based on existing ones, making it easy to build color themes."),references:[{name:tt,url:"https://sass-lang.com/documentation/modules/color"}]},{label:"sass:list",documentation:g("Lets you access and modify values in lists."),references:[{name:tt,url:"https://sass-lang.com/documentation/modules/list"}]},{label:"sass:map",documentation:g("Makes it possible to look up the value associated with a key in a map, and much more."),references:[{name:tt,url:"https://sass-lang.com/documentation/modules/map"}]},{label:"sass:selector",documentation:g("Provides access to Sass’s powerful selector engine."),references:[{name:tt,url:"https://sass-lang.com/documentation/modules/selector"}]},{label:"sass:meta",documentation:g("Exposes the details of Sass’s inner workings."),references:[{name:tt,url:"https://sass-lang.com/documentation/modules/meta"}]}];function wc(e){e.forEach(t=>{if(t.documentation&&t.references&&t.references.length>0){const n=typeof t.documentation=="string"?{kind:"markdown",value:t.documentation}:{kind:"markdown",value:t.documentation.value};n.value+=`
`,n.value+=t.references.map(r=>`[${r.name}](${r.url})`).join(" | "),t.documentation=n}})}var yc=47,dm=10,um=13,pm=12,es=96,ts=46,mm=p.CustomToken,ns=mm++,xc=class extends mn{scanNext(e){const t=this.escapedJavaScript();return t!==null?this.finishToken(e,t):this.stream.advanceIfChars([ts,ts,ts])?this.finishToken(e,ns):super.scanNext(e)}comment(){return super.comment()?!0:!this.inURL&&this.stream.advanceIfChars([yc,yc])?(this.stream.advanceWhileChar(e=>{switch(e){case dm:case um:case pm:return!1;default:return!0}}),!0):!1}escapedJavaScript(){return this.stream.peekChar()===es?(this.stream.advance(1),this.stream.advanceWhileChar(t=>t!==es),this.stream.advanceIfChar(es)?p.EscapedJavaScript:p.BadEscapedJavaScript):null}},fm=class extends ar{constructor(){super(new xc)}_parseStylesheetStatement(e=!1){return this.peek(p.AtKeyword)?this._parseVariableDeclaration()||this._parsePlugin()||super._parseStylesheetAtStatement(e):this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseFunction()||this._parseRuleset(!0)}_parseImport(){if(!this.peekKeyword("@import")&&!this.peekKeyword("@import-once"))return null;const e=this.create(li);if(this.consumeToken(),this.accept(p.ParenthesisL)){if(!this.accept(p.Ident))return this.finish(e,x.IdentifierExpected,[p.SemiColon]);do if(!this.accept(p.Comma))break;while(this.accept(p.Ident));if(!this.accept(p.ParenthesisR))return this.finish(e,x.RightParenthesisExpected,[p.SemiColon])}return!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral())?this.finish(e,x.URIOrStringExpected,[p.SemiColon]):(!this.peek(p.SemiColon)&&!this.peek(p.EOF)&&e.setMedialist(this._parseMediaQueryList()),this._completeParseImport(e))}_parsePlugin(){if(!this.peekKeyword("@plugin"))return null;const e=this.createNode(b.Plugin);return this.consumeToken(),e.addChild(this._parseStringLiteral())?this.accept(p.SemiColon)?this.finish(e):this.finish(e,x.SemiColonExpected):this.finish(e,x.StringLiteralExpected)}_parseMediaQuery(){const e=super._parseMediaQuery();if(!e){const t=this.create(zo);return t.addChild(this._parseVariable())?this.finish(t):null}return e}_parseMediaDeclaration(e=!1){return this._tryParseRuleset(e)||this._tryToParseDeclaration()||this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseDetachedRuleSetMixin()||this._parseStylesheetStatement(e)}_parseMediaFeatureName(){return this._parseIdent()||this._parseVariable()}_parseVariableDeclaration(e=[]){const t=this.create(Gn),n=this.mark();if(!t.setVariable(this._parseVariable(!0)))return null;if(this.accept(p.Colon)){if(this.prevToken&&(t.colonPosition=this.prevToken.offset),t.setValue(this._parseDetachedRuleSet()))t.needsSemicolon=!1;else if(!t.setValue(this._parseExpr()))return this.finish(t,x.VariableValueExpected,[],e);t.addChild(this._parsePrio())}else return this.restoreAtMark(n),null;return this.peek(p.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)}_parseDetachedRuleSet(){let e=this.mark();if(this.peekDelim("#")||this.peekDelim("."))if(this.consumeToken(),!this.hasWhitespace()&&this.accept(p.ParenthesisL)){let n=this.create(wn);if(n.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(p.Comma)||this.accept(p.SemiColon))&&!this.peek(p.ParenthesisR);)n.getParameters().addChild(this._parseMixinParameter())||this.markError(n,x.IdentifierExpected,[],[p.ParenthesisR]);if(!this.accept(p.ParenthesisR))return this.restoreAtMark(e),null}else return this.restoreAtMark(e),null;if(!this.peek(p.CurlyL))return null;const t=this.create(re);return this._parseBody(t,this._parseDetachedRuleSetBody.bind(this)),this.finish(t)}_parseDetachedRuleSetBody(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()}_addLookupChildren(e){if(!e.addChild(this._parseLookupValue()))return!1;let t=!1;for(;this.peek(p.BracketL)&&(t=!0),!!e.addChild(this._parseLookupValue());)t=!1;return!t}_parseLookupValue(){const e=this.create(T),t=this.mark();return this.accept(p.BracketL)?(e.addChild(this._parseVariable(!1,!0))||e.addChild(this._parsePropertyIdentifier()))&&this.accept(p.
`);c!==-1?this.__character_count=o.length-c:this.__character_count+=o.length},s.prototype.pop=function(){var o=null;return this.is_empty()||(o=this.__items.pop(),this.__character_count-=o.length),o},s.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},s.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},s.prototype.trim=function(){for(;this.last()===" ";)this.__items.pop(),this.__character_count-=1},s.prototype.toString=function(){var o="";return this.is_empty()?this.__parent.indent_empty_lines&&(o=this.__parent.get_indent_string(this.__indent_count)):(o=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),o+=this.__items.join("")),o};function a(o,c){this.__cache=[""],this.__indent_size=o.indent_size,this.__indent_string=o.indent_char,o.indent_with_tabs||(this.__indent_string=new Array(o.indent_size+1).join(o.indent_char)),c=c||"",o.indent_level>0&&(c=new Array(o.indent_level+1).join(this.__indent_string)),this.__base_string=c,this.__base_string_length=c.length}a.prototype.get_indent_size=function(o,c){var d=this.__base_string_length;return c=c||0,o<0&&(d=0),d+=o*this.__indent_size,d+=c,d},a.prototype.get_indent_string=function(o,c){var d=this.__base_string;return c=c||0,o<0&&(o=0,d=""),c+=o*this.__indent_size,this.__ensure_cache(c),d+=this.__cache[c],d},a.prototype.__ensure_cache=function(o){for(;o>=this.__cache.length;)this.__add_column()},a.prototype.__add_column=function(){var o=this.__cache.length,c=0,d="";this.__indent_size&&o>=this.__indent_size&&(c=Math.floor(o/this.__indent_size),o-=c*this.__indent_size,d=new Array(c+1).join(this.__indent_string)),o&&(d+=new Array(o+1).join(" ")),this.__cache.push(d)};function l(o,c){this.__indent_cache=new a(o,c),this.raw=!1,this._end_with_newline=o.end_with_newline,this.indent_size=o.indent_size,this.wrap_line_length=o.wrap_line_length,this.indent_empty_lines=o.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new s(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}l.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},l.prototype.get_line_number=function(){return this.__lines.length},l.prototype.get_indent_string=function(o,c){return this.__indent_cache.get_indent_string(o,c)},l.prototype.get_indent_size=function(o,c){return this.__indent_cache.get_indent_size(o,c)},l.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},l.prototype.add_new_line=function(o){return this.is_empty()||!o&&this.just_added_newline()?!1:(this.raw||this.__add_outputline(),!0)},l.prototype.get_code=function(o){this.trim(!0);var c=this.current_line.pop();c&&(c[c.length-1]===``&&(c=c.replace(/\n+$/g,"")),this.current_line.push(c)),this._end_with_newline&&this.__add_outputline();var d=this.__lines.join(``);return o!==``&&(d=d.replace(/[\n]/g,o)),d},l.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},l.prototype.set_indent=function(o,c){return o=o||0,c=c||0,this.next_line.set_indent(o,c),this.__lines.length>1?(this.current_line.set_indent(o,c),!0):(this.current_line.set_indent(),!1)},l.prototype.add_raw_token=function(o){for(var c=0;c<o.newlines;c++)this.__add_outputline();this.current_line.set_indent(-1),this.current_line.push(o.whitespace_before),this.current_line.push(o.text),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1},l.prototype.add_token=function(o){this.__add_space_before_token(),this.current_line.push(o),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=this.current_line._allow_wrap()},l.prototype.__add_space_before_token=function(){this.space_before_token&&!this.just_added_newline()&&(this.non_breaking_space||this.set_wrap_point(),this.current_line.push(" "))},l.prototype.remove_indent=function(o){for(var c=this.__lines.length;o<c;)this.__lines[o]._remove_indent(),o++;this.current_line._remove_wrap_indent()},l.prototype.trim=function(o){for(o=o===void 0?!1:o,this.current_line.trim();o&&this.__lines.length>1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},l.prototype.just_added_newline=function(){return this.current_line.is_empty()},l.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},l.prototype.ensure_empty_line_above=function(o,c){for(var d=this.__lines.length-2;d>=0;){var u=this.__lines[d];if(u.is_empty())break;if(u.item(0).indexOf(o)!==0&&u.item(-1)!==c){this.__lines.splice(d+1,0,new s(this)),this.previous_line=this.__lines[this.__lines.length-2];break}d--}},i.exports.Output=l},,,,function(i){function s(o,c){this.raw_options=a(o,c),this.disabled=this._get_boolean("disabled"),this.eol=this._get_characters("eol","auto"),this.end_with_newline=this._get_boolean("end_with_newline"),this.indent_size=this._get_number("indent_size",4),this.indent_char=this._get_characters("indent_char"," "),this.indent_level=this._get_number("indent_level"),this.preserve_newlines=this._get_boolean("preserve_newlines",!0),this.max_preserve_newlines=this._get_number("max_preserve_newlines",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean("indent_with_tabs",this.indent_char===" "),this.indent_with_tabs&&(this.indent_char=" ",this.indent_size===1&&(this.indent_size=4)),this.wrap_line_length=this._get_number("wrap_line_length",this._get_number("max_char")),this.indent_empty_lines=this._get_boolean("indent_empty_lines"),this.templating=this._get_selection_list("templating",["auto","none","angular","django","erb","handlebars","php","smarty"],["auto"])}s.prototype._get_array=function(o,c){var d=this.raw_options[o],u=c||[];return typeof d=="object"?d!==null&&typeof d.concat=="function"&&(u=d.concat()):typeof d=="string"&&(u=d.split(/[^a-zA-Z0-9_\/\-]+/)),u},s.prototype._get_boolean=function(o,c){var d=this.raw_options[o],u=d===void 0?!!c:!!d;return u},s.prototype._get_characters=function(o,c){var d=this.raw_options[o],u=c||"";return typeof d=="string"&&(u=d.replace(/\\r/,"\r").replace(/\\n/,``).replace(/\\t/," ")),u},s.prototype._get_number=function(o,c){var d=this.raw_options[o];c=parseInt(c,10),isNaN(c)&&(c=0);var u=parseInt(d,10);return isNaN(u)&&(u=c),u},s.prototype._get_selection=function(o,c,d){var u=this._get_selection_list(o,c,d);if(u.length!==1)throw new Error("Invalid Option Value: The option '"+o+`' can only be one of the following values:`+c+`You passed in: '`+this.raw_options[o]+"'");return u[0]},s.prototype._get_selection_list=function(o,c,d){if(!c||c.length===0)throw new Error("Selection list cannot be empty.");if(d=d||[c[0]],!this._is_valid_selection(d,c))throw new Error("Invalid Default Value!");var u=this._get_array(o,d);if(!this._is_valid_selection(u,c))throw new Error("Invalid Option Value: The option '"+o+`' can contain only the following values:`+c+`You passed in: '`+this.raw_options[o]+"'");return u},s.prototype._is_valid_selection=function(o,c){return o.length&&c.length&&!o.some(function(d){return c.indexOf(d)===-1})};function a(o,c){var d={};o=l(o);var u;for(u in o)u!==c&&(d[u]=o[u]);if(c&&o[c])for(u in o[c])d[u]=o[c][u];return d}function l(o){var c={},d;for(d in o){var u=d.replace(/-/g,"_");c[u]=o[d]}return c}i.exports.Options=s,i.exports.normalizeOpts=l,i.exports.mergeOpts=a},,function(i){var s=RegExp.prototype.hasOwnProperty("sticky");function a(l){this.__input=l||"",this.__input_length=this.__input.length,this.__position=0}a.prototype.restart=function(){this.__position=0},a.prototype.back=function(){this.__position>0&&(this.__position-=1)},a.prototype.hasNext=function(){return this.__position<this.__input_length},a.prototype.next=function(){var l=null;return this.hasNext()&&(l=this.__input.charAt(this.__position),this.__position+=1),l},a.prototype.peek=function(l){var o=null;return l=l||0,l+=this.__position,l>=0&&l<this.__input_length&&(o=this.__input.charAt(l)),o},a.prototype.__match=function(l,o){l.lastIndex=o;var c=l.exec(this.__input);return c&&!(s&&l.sticky)&&c.index!==o&&(c=null),c},a.prototype.test=function(l,o){return o=o||0,o+=this.__position,o>=0&&o<this.__input_length?!!this.__match(l,o):!1},a.prototype.testChar=function(l,o){var c=this.peek(o);return l.lastIndex=0,c!==null&&l.test(c)},a.prototype.match=function(l){var o=this.__match(l,this.__position);return o?this.__position+=o[0].length:o=null,o},a.prototype.read=function(l,o,c){var d="",u;return l&&(u=this.match(l),u&&(d+=u[0])),o&&(u||!l)&&(d+=this.readUntil(o,c)),d},a.prototype.readUntil=function(l,o){var c="",d=this.__position;l.lastIndex=this.__position;var u=l.exec(this.__input);return u?(d=u.index,o&&(d+=u[0].length)):d=this.__input_length,c=this.__input.substring(this.__position,d),this.__position=d,c},a.prototype.readUntilAfter=function(l){return this.readUntil(l,!0)},a.prototype.get_regexp=function(l,o){var c=null,d="g";return o&&s&&(d="y"),typeof l=="string"&&l!==""?c=new RegExp(l,d):l&&(c=new RegExp(l.source,d)),c},a.prototype.get_literal_regexp=function(l){return RegExp(l.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"))},a.prototype.peekUntilAfter=function(l){var o=this.__position,c=this.readUntilAfter(l);return this.__position=o,c},a.prototype.lookBack=function(l){var o=this.__position-1;return o>=l.length&&this.__input.substring(o-l.length,o).toLowerCase()===l},i.exports.InputScanner=a},,,,,function(i){function s(a,l){a=typeof a=="string"?a:a.source,l=typeof l=="string"?l:l.source,this.__directives_block_pattern=new RegExp(a+/ beautify( \w+[:]\w+)+ /.source+l,"g"),this.__directive_pattern=/ (\w+)[:](\w+)/g,this.__directives_end_ignore_pattern=new RegExp(a+/\sbeautify\signore:end\s/.source+l,"g")}s.prototype.get_directives=function(a){if(!a.match(this.__directives_block_pattern))return null;var l={};this.__directive_pattern.lastIndex=0;for(var o=this.__directive_pattern.exec(a);o;)l[o[1]]=o[2],o=this.__directive_pattern.exec(a);return l},s.prototype.readIgnored=function(a){return a.readUntilAfter(this.__directives_end_ignore_pattern)},i.exports.Directives=s},,function(i,s,a){var l=a(16).Beautifier,o=a(17).Options;function c(d,u){var f=new l(d,u);return f.beautify()}i.exports=c,i.exports.defaultOptions=function(){return new o}},function(i,s,a){var l=a(17).Options,o=a(2).Output,c=a(8).InputScanner,d=a(13).Directives,u=new d(/\/\*/,/\*\//),f=/\r\n|[\r\n]/,m=/\r\n|[\r\n]/g,w=/\s/,y=/(?:\s|\n)+/g,E=/\/\*(?:[\s\S]*?)((?:\*\/)|$)/g,R=/\/\/(?:[^\n\r\u2028\u2029]*)/g;function N(C,I){this._source_text=C||"",this._options=new l(I),this._ch=null,this._input=null,this.NESTED_AT_RULE={page:!0,"font-face":!0,keyframes:!0,media:!0,supports:!0,document:!0},this.CONDITIONAL_GROUP_RULE={media:!0,supports:!0,document:!0},this.NON_SEMICOLON_NEWLINE_PROPERTY=["grid-template-areas","grid-template"]}N.prototype.eatString=function(C){var I="";for(this._ch=this._input.next();this._ch;){if(I+=this._ch,this._ch==="\\")I+=this._input.next();else if(C.indexOf(this._ch)!==-1||this._ch===`
`)break;this._ch=this._input.next()}return I},N.prototype.eatWhitespace=function(C){for(var I=w.test(this._input.peek()),D=0;w.test(this._input.peek());)this._ch=this._input.next(),C&&this._ch===``&&(D===0||D<this._options.max_preserve_newlines)&&(D++,this._output.add_new_line(!0));return I},N.prototype.foundNestedPseudoClass=function(){for(var C=0,I=1,D=this._input.peek(I);D;){if(D==="{")return!0;if(D==="(")C+=1;else if(D===")"){if(C===0)return!1;C-=1}else if(D===";"||D==="}")return!1;I++,D=this._input.peek(I)}return!1},N.prototype.print_string=function(C){this._output.set_indent(this._indentLevel),this._output.non_breaking_space=!0,this._output.add_token(C)},N.prototype.preserveSingleSpace=function(C){C&&(this._output.space_before_token=!0)},N.prototype.indent=function(){this._indentLevel++},N.prototype.outdent=function(){this._indentLevel>0&&this._indentLevel--},N.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var C=this._source_text,I=this._options.eol;I==="auto"&&(I=``,C&&f.test(C||"")&&(I=C.match(f)[0])),C=C.replace(m,``);var D=C.match(/^[\t ]*/)[0];this._output=new o(this._options,D),this._input=new c(C),this._indentLevel=0,this._nestedLevel=0,this._ch=null;for(var L=0,O=!1,z=!1,q=!1,K=!1,_=!1,v=this._ch,k=!1,F,A,M;F=this._input.read(y),A=F!=="",M=v,this._ch=this._input.next(),this._ch==="\\"&&this._input.hasNext()&&(this._ch+=this._input.next()),v=this._ch,this._ch;)if(this._ch==="/"&&this._input.peek()==="*"){this._output.add_new_line(),this._input.back();var P=this._input.read(E),Q=u.get_directives(P);Q&&Q.ignore==="start"&&(P+=u.readIgnored(this._input)),this.print_string(P),this.eatWhitespace(!0),this._output.add_new_line()}else if(this._ch==="/"&&this._input.peek()==="/")this._output.space_before_token=!0,this._input.back(),this.print_string(this._input.read(R)),this.eatWhitespace(!0);else if(this._ch==="$"){this.preserveSingleSpace(A),this.print_string(this._ch);var J=this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);J.match(/[ :]$/)&&(J=this.eatString(": ").replace(/\s+$/,""),this.print_string(J),this._output.space_before_token=!0),L===0&&J.indexOf(":")!==-1&&(z=!0,this.indent())}else if(this._ch==="@")if(this.preserveSingleSpace(A),this._input.peek()==="{")this.print_string(this._ch+this.eatString("}"));else{this.print_string(this._ch);var Y=this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);Y.match(/[ :]$/)&&(Y=this.eatString(": ").replace(/\s+$/,""),this.print_string(Y),this._output.space_before_token=!0),L===0&&Y.indexOf(":")!==-1?(z=!0,this.indent()):Y in this.NESTED_AT_RULE?(this._nestedLevel+=1,Y in this.CONDITIONAL_GROUP_RULE&&(q=!0)):L===0&&!z&&(K=!0)}else if(this._ch==="#"&&this._input.peek()==="{")this.preserveSingleSpace(A),this.print_string(this._ch+this.eatString("}"));else if(this._ch==="{")z&&(z=!1,this.outdent()),K=!1,q?(q=!1,O=this._indentLevel>=this._nestedLevel):O=this._indentLevel>=this._nestedLevel-1,this._options.newline_between_rules&&O&&this._output.previous_line&&this._output.previous_line.item(-1)!=="{"&&this._output.ensure_empty_line_above("/",","),this._output.space_before_token=!0,this._options.brace_style==="expand"?(this._output.add_new_line(),this.print_string(this._ch),this.indent(),this._output.set_indent(this._indentLevel)):(M==="("?this._output.space_before_token=!1:M!==","&&this.indent(),this.print_string(this._ch)),this.eatWhitespace(!0),this._output.add_new_line();else if(this._ch==="}")this.outdent(),this._output.add_new_line(),M==="{"&&this._output.trim(!0),z&&(this.outdent(),z=!1),this.print_string(this._ch),O=!1,this._nestedLevel&&this._nestedLevel--,this.eatWhitespace(!0),this._output.add_new_line(),this._options.newline_between_rules&&!this._output.just_added_blankline()&&this._input.peek()!=="}"&&this._output.add_new_line(!0),this._input.peek()===")"&&(this._output.trim(!0),this._options.brace_style==="expand"&&this._output.add_new_line(!0));else if(this._ch===":"){for(var Ee=0;Ee<this.NON_SEMICOLON_NEWLINE_PROPERTY.length;Ee++)if(this._input.lookBack(this.NON_SEMICOLON_NEWLINE_PROPERTY[Ee])){k=!0;break}(O||q)&&!(this._input.lookBack("&")||this.foundNestedPseudoClass())&&!this._input.lookBack("(")&&!K&&L===0?(this.print_string(":"),z||(z=!0,this._output.space_before_token=!0,this.eatWhitespace(!0),this.indent())):(this._input.lookBack(" ")&&(this._output.space_before_token=!0),this._input.peek()===":"?(this._ch=this._input.next(),this.print_string("::")):this.print_string(":"))}else if(this._ch==='"'||this._ch==="'"){var rt=M==='"'||M==="'";this.preserveSingleSpace(rt||A),this.print_string(this._ch+this.eatString(this._ch)),this.eatWhitespace(!0)}else if(this._ch===";")k=!1,L===0?(z&&(this.outdent(),z=!1),K=!1,this.print_string(this._ch),this.eatWhitespace(!0),this._input.peek()!=="/"&&this._output.add_new_line()):(this.print_string(this._ch),this.eatWhitespace(!0),this._output.space_before_token=!0);else if(this._ch==="(")if(this._input.lookBack("url"))this.print_string(this._ch),this.eatWhitespace(),L++,this.indent(),this._ch=this._input.next(),this._ch===")"||this._ch==='"'||this._ch==="'"?this._input.back():this._ch&&(this.print_string(this._ch+this.eatString(")")),L&&(L--,thi
`&&k&&this._output.add_new_line()}var os=this._output.get_code(I);return os},i.exports.Beautifier=N},function(i,s,a){var l=a(6).Options;function o(c){l.call(this,c,"css"),this.selector_separator_newline=this._get_boolean("selector_separator_newline",!0),this.newline_between_rules=this._get_boolean("newline_between_rules",!0);var d=this._get_boolean("space_around_selector_separator");this.space_around_combinator=this._get_boolean("space_around_combinator")||d;var u=this._get_selection_list("brace_style",["collapse","expand","end-expand","none","preserve-inline"]);this.brace_style="collapse";for(var f=0;f<u.length;f++)u[f]!=="expand"?this.brace_style="collapse":this.brace_style=u[f]}o.prototype=new l,i.exports.Options=o}],t={};function n(i){var s=t[i];if(s!==void 0)return s.exports;var a=t[i]={exports:{}};return e[i](a,a.exports,n),a.exports}var r=n(15);Cc=r})();var wm=Cc;function ym(e,t,n){let r=e.getText(),i=!0,s=0,a=!1;const l=n.tabSize||4;if(t){let d=e.offsetAt(t.start),u=d;for(;u>0&&Ec(r,u-1);)u--;u===0||kc(r,u-1)?d=u:u<d&&(d=u+1);let f=e.offsetAt(t.end),m=f;for(;m<r.length&&Ec(r,m);)m++;if((m===r.length||kc(r,m))&&(f=m),t=G.create(e.positionAt(d),e.positionAt(f)),a=Cm(r,d),i=f===r.length,r=r.substring(d,f),d!==0){const w=e.offsetAt(ve.create(t.start.line,0));s=_m(e.getText(),w,n)}a&&(r=`{${_c(r)}`)}else t=G.create(ve.create(0,0),e.positionAt(r.length));const o={indent_size:l,indent_char:n.insertSpaces?" ":" ",end_with_newline:i&&nt(n,"insertFinalNewline",!1),selector_separator_newline:nt(n,"newlineBetweenSelectors",!0),newline_between_rules:nt(n,"newlineBetweenRules",!0),space_around_selector_separator:nt(n,"spaceAroundSelectorSeparator",!1),brace_style:nt(n,"braceStyle","collapse"),indent_empty_lines:nt(n,"indentEmptyLines",!1),max_preserve_newlines:nt(n,"maxPreserveNewLines",void 0),preserve_newlines:nt(n,"preserveNewLines",!0),wrap_line_length:nt(n,"wrapLineLength",void 0),eol:``};let c=wm(r,o);if(a&&(c=_c(c.substring(2))),s>0){const d=n.insertSpaces?Do(" ",l*s):Do(" ",s);c=c.split(``).join(``+d),t.start.character===0&&(c=d+c)}return[{range:t,newText:c}]}function _c(e){return e.replace(/^\s+/,"")}var xm=123,Sm=125;function Cm(e,t){for(;t>=0;){const n=e.charCodeAt(t);if(n===xm)return!0;if(n===Sm)return!1;t--}return!1}function nt(e,t,n){if(e&&e.hasOwnProperty(t)){const r=e[t];if(r!==null)return r}return n}function _m(e,t,n){let r=t,i=0;const s=n.tabSize||4;for(;r<e.length;){const a=e.charAt(r);if(a===" ")i++;else if(a===" ")i+=s;else break;r++}return Math.floor(i/s)}function kc(e,t){return`\r`.indexOf(e.charAt(t))!==-1}function Ec(e,t){return" ".indexOf(e.charAt(t))!==-1}var km={version:1.1,properties:[{name:"additive-symbols",browsers:["FF33"],atRule:"@counter-style",syntax:"[ <integer> && <symbol> ]#",relevance:50,description:"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor. Needs to be specified if the counter system is 'additive'.",restrictions:["integer","string","image","identifier"]},{name:"align-content",browsers:["E12","FF28","S9","C29","IE11","O16"],values:[{name:"center",description:"Lines are packed toward the center of the flex container."},{name:"flex-end",description:"Lines are packed toward the end of the flex container."},{name:"flex-start",description:"Lines are packed toward the start of the flex container."},{name:"space-around",description:"Lines are evenly distributed in the flex container, with half-size spaces on either end."},{name:"space-between",description:"Lines are evenly distributed in the flex container."},{name:"stretch",description:"Lines stretch to take up the remaining space."},{name:"start"},{name:"end"},{name:"normal"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"space-around"},{name:"space-between"},{name:"space-evenly"},{name:"stretch"},{name:"safe"},{name:"unsafe"}],syntax:"normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>",relevance:66,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/align-content"}],description:"Aligns a flex container's lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.",restrictions:["enum"]},{name:"align-items",browsers:["E12","FF20","S9","C29","IE11","O16"],values:[{name:"baseline",description:"If the flex item's inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item's margin box is centered in the cross axis within the line."},{name:"flex-end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"flex-start",description:"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"normal"},{name:"start"},{name:"end"},{name:"self-start"},{name:"self-end"},{name:"first baseline"},{name:"last baseline"},{name:"stretch"},{name:"safe"},{name:"unsafe"}],syntax:"normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]",relevance:87,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/align-items"}],description:"Aligns flex items along the cross axis of the current line of the flex container.",restrictions:["enum"]},{name:"justify-items",browsers:["E12","FF20","S9","C52","IE11","O12.1"],values:[{name:"auto"},{name:"normal"},{name:"end"},{name:"start"},{name:"flex-end",description:'"Flex items are packed toward the end of the line."'},{name:"flex-start",description:'"Flex items are packed toward the start of the line."'},{name:"self-end",description:"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis."},{name:"self-start",description:"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.."},{name:"center",description:"The items are packed flush to each other toward the center of the of the alignment container."},{name:"left"},{name:"right"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"safe"},{name
This feature is available since Firefox 55, but is only currently supported with SVG images loaded via chrome:// or resource:// URLs. To experiment with the feature in SVG on the Web it is necessary to set the svg.context-properties.content.enabled pref to true.`},{name:"-moz-float-edge",status:"obsolete",syntax:"border-box | content-box | margin-box | padding-box",values:[{name:"border-box"},{name:"content-box"},{name:"margin-box"},{name:"padding-box"}],relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-float-edge"}],description:"The non-standard -moz-float-edge CSS property specifies whether the height and width properties of the element include the margin, border, or padding thickness."},{name:"-moz-force-broken-image-icon",status:"obsolete",syntax:"0 | 1",values:[{name:"0"},{name:"1"}],relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-force-broken-image-icon"}],description:"The -moz-force-broken-image-icon extended CSS property can be used to force the broken image icon to be shown even when a broken image has an alt attribute."},{name:"-moz-image-region",status:"nonstandard",syntax:"<shape> | auto",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-image-region"}],description:"For certain XUL elements and pseudo-elements that use an image from the list-style-image property, this property specifies a region of the image that is used in place of the whole image. This allows elements to use different pieces of the same image to improve performance."},{name:"-moz-orient",status:"nonstandard",syntax:"inline | block | horizontal | vertical",values:[{name:"inline"},{name:"block"},{name:"horizontal"},{name:"vertical"}],relevance:0,browsers:["FF6"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-orient"}],description:"The -moz-orient CSS property specifies the orientation of the element to which it's applied."},{name:"-moz-outline-radius",status:"nonstandard",syntax:"<outline-radius>{1,4} [ / <outline-radius>{1,4} ]?",relevance:0,description:"In Mozilla applications like Firefox, the -moz-outline-radius CSS property can be used to give an element's outline rounded corners."},{name:"-moz-outline-radius-bottomleft",status:"nonstandard",syntax:"<outline-radius>",relevance:0,description:"In Mozilla applications, the -moz-outline-radius-bottomleft CSS property can be used to round the bottom-left corner of an element's outline."},{name:"-moz-outline-radius-bottomright",status:"nonstandard",syntax:"<outline-radius>",relevance:0,description:"In Mozilla applications, the -moz-outline-radius-bottomright CSS property can be used to round the bottom-right corner of an element's outline."},{name:"-moz-outline-radius-topleft",status:"nonstandard",syntax:"<outline-radius>",relevance:0,description:"In Mozilla applications, the -moz-outline-radius-topleft CSS property can be used to round the top-left corner of an element's outline."},{name:"-moz-outline-radius-topright",status:"nonstandard",syntax:"<outline-radius>",relevance:0,description:"In Mozilla applications, the -moz-outline-radius-topright CSS property can be used to round the top-right corner of an element's outline."},{name:"-moz-stack-sizing",status:"nonstandard",syntax:"ignore | stretch-to-fit",values:[{name:"ignore"},{name:"stretch-to-fit"}],relevance:0,description:"-moz-stack-sizing is an extended CSS property. Normally, a stack will change its size so that all of its child elements are completely visible. For example, moving a child of the stack far to the right will widen the stack so the child remains visible."},{name:"-moz-text-blink",status:"nonstandard",syntax:"none | blink",values:[{name:"none"},{name:"blink"}],relevance:0,description:"The -moz-text-blink non-standard Mozilla CSS extension specifies the blink mode."},{name:"-moz-user-input",status:"obsolete",syntax:"auto | none | enabled | disabled",values:[{name:"auto"},{name:"none"},{n
This property is a shorthand for mask-border-source, mask-border-slice, mask-border-width, mask-border-outset, mask-border-repeat, and mask-border-mode. As with all shorthand properties, any omitted sub-values will be set to their initial value.`},{name:"mask-border-mode",syntax:"luminance | alpha",values:[{name:"luminance"},{name:"alpha"}],relevance:50,description:"The mask-border-mode CSS property specifies the blending mode used in a mask border."},{name:"mask-border-outset",syntax:"[ <length> | <number> ]{1,4}",relevance:50,browsers:["E79","S17.2","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-outset"}],description:"The mask-border-outset CSS property specifies the distance by which an element's mask border is set out from its border box."},{name:"mask-border-repeat",syntax:"[ stretch | repeat | round | space ]{1,2}",relevance:50,browsers:["E79","S17.2","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-repeat"}],description:"The mask-border-repeat CSS property defines how the edge regions of a source image are adjusted to fit the dimensions of an element's mask border."},{name:"mask-border-slice",syntax:"<number-percentage>{1,4} fill?",relevance:50,browsers:["E79","S17.2","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-slice"}],description:"The mask-border-slice CSS property divides the image specified by mask-border-source into regions. These regions are used to form the components of an element's mask border."},{name:"mask-border-source",syntax:"none | <image>",relevance:50,browsers:["E79","S17.2","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-source"}],description:`The mask-border-source CSS property specifies the source image used to create an element's mask border.
The mask-border-slice property is used to divide the source image into regions, which are then dynamically applied to the final mask border.`},{name:"mask-border-width",syntax:"[ <length-percentage> | <number> | auto ]{1,4}",relevance:50,browsers:["E79","S17.2","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-width"}],description:"The mask-border-width CSS property specifies the width of an element's mask border."},{name:"mask-clip",syntax:"[ <geometry-box> | no-clip ]#",relevance:50,browsers:["E120","FF53","S15.4","C120","O106"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-clip"}],description:"The mask-clip CSS property determines the area, which is affected by a mask. The painted content of an element must be restricted to this area."},{name:"mask-composite",syntax:"<compositing-operator>#",relevance:50,browsers:["E18","FF53","S15.4","C120","O106"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-composite"}],description:"The mask-composite CSS property represents a compositing operation used on the current mask layer with the mask layers below it."},{name:"masonry-auto-flow",status:"experimental",syntax:"[ pack | next ] || [ definite-first | ordered ]",relevance:50,browsers:["Spreview"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/masonry-auto-flow"}],description:"The masonry-auto-flow CSS property modifies how items are placed when using masonry in CSS Grid Layout."},{name:"math-depth",syntax:"auto-add | add(<integer>) | <integer>",relevance:50,browsers:["E109","FF117","C109","O95"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/math-depth"}],description:'Describe a notion of "depth" for each element of a mathematical formula, with respect to the top-level container of that formula.'},{name:"math-shift",syntax:"normal | compact",values:[{name:"normal"},{name:"compact"}],relevance:50,browsers:["E109","C109","O95"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/math-shift"}],description:"Used for positioning superscript during the layout of MathML scripted elements."},{name:"math-style",syntax:"normal | compact",values:[{name:"normal"},{name:"compact"}],relevance:50,browsers:["E109","FF117","S14.1","C109","O95"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/math-style"}],description:"The math-style property indicates whether MathML equations should render with normal or compact height."},{name:"max-lines",status:"experimental",syntax:"none | <integer>",relevance:50,description:"The max-lines property forces a break after a set number of lines"},{name:"offset",syntax:"[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?",relevance:50,browsers:["E79","FF72","S16","C55","O42"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset"}],description:"The offset CSS property is a shorthand property for animating an element along a defined path."},{name:"offset-anchor",syntax:"auto | <position>",relevance:50,browsers:["E116","FF72","S16","C116","O102"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset-anchor"}],description:"Defines an anchor point of the box positioned along the path. The anchor point specifies the point of the box which is to be considered as the point that is moved along the path."},{name:"offset-distance",syntax:"<length-percentage>",relevance:50,browsers:["E79","FF72","S16","C55","O42"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset-distance"}],description:"The offset-distance CSS property specifies a position along an offset-path."},{name:"offset-path",syntax:"none | <offset-path> || <coord-box>",relevance:50,browsers:["E79","FF72","S15.4","C55","O45"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset-path"}],descri
In this specification, a direction (or rotation) of 0 degrees is equivalent to the direction of the positive x-axis in the object’s local coordinate system. In other words, a rotation of 0 degree points to the right side of the UA if the object and its ancestors have no transformation applied.`},{name:"offset-position",syntax:"normal | auto | <position>",relevance:50,browsers:["E116","FF122","S16","C116","O102"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset-position"}],description:"Specifies the initial position of the offset path. If position is specified with static, offset-position would be ignored."},{name:"offset-rotate",syntax:"[ auto | reverse ] || <angle>",relevance:50,browsers:["E79","FF72","S16","C56","O43"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset-rotate"}],description:"The offset-rotate CSS property defines the direction of the element while positioning along the offset path."},{name:"overflow-anchor",syntax:"auto | none",values:[{name:"auto"},{name:"none"}],relevance:52,browsers:["E79","FF66","Spreview","C56","O43"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overflow-anchor"}],description:"The overflow-anchor CSS property provides a way to opt out browser scroll anchoring behavior which adjusts scroll position to minimize content shifts."},{name:"overflow-block",syntax:"visible | hidden | clip | scroll | auto",values:[{name:"visible"},{name:"hidden"},{name:"clip"},{name:"scroll"},{name:"auto"}],relevance:50,browsers:["FF69"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overflow-block"}],description:"The overflow-block CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the block axis."},{name:"overflow-clip-box",status:"nonstandard",syntax:"padding-box | content-box",values:[{name:"padding-box"},{name:"content-box"}],relevance:0,description:"The overflow-clip-box CSS property specifies relative to which box the clipping happens when there is an overflow. It is short hand for the overflow-clip-box-inline and overflow-clip-box-block properties."},{name:"overflow-clip-margin",syntax:"<visual-box> || <length [0,∞]>",relevance:50,browsers:["E90","FF102","C90","O76"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overflow-clip-margin"}],description:"The overflow-clip-margin CSS property determines how far outside its bounds an element with overflow: clip may be painted before being clipped."},{name:"overflow-inline",syntax:"visible | hidden | clip | scroll | auto",values:[{name:"visible"},{name:"hidden"},{name:"clip"},{name:"scroll"},{name:"auto"}],relevance:50,browsers:["FF69"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overflow-inline"}],description:"The overflow-inline CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the inline axis."},{name:"overlay",status:"experimental",syntax:"none | auto",values:[{name:"none"},{name:"auto"}],relevance:50,browsers:["E117","C117","O103"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overlay"}],description:'The overlay CSS property specifies whether an element appearing in the top layer (for example, a shown popover or modal {{htmlelement("dialog")}} element) is actually rendered in the top layer. This property is only relevant within a list of transition-property values, and only if allow-discrete is set as the transition-behavior.'},{name:"overscroll-behavior",syntax:"[ contain | none | auto ]{1,2}",relevance:50,browsers:["E18","FF59","S16","C63","O50"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior"}],description:"The overscroll-behavior CSS property is shorthand for the overscroll-behavior-x and overscroll-behavior-y properties, which allow you to control the browser's scroll overflow behavior
Specifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent.`},{name:"scroll-snap-type-y",status:"obsolete",syntax:"none | mandatory | proximity",values:[{name:"none"},{name:"mandatory"},{name:"proximity"}],relevance:0,description:`The scroll-snap-type-y CSS property defines how strictly snap points are enforced on the vertical axis of the scroll container in case there is one.
Specifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent.`},{name:"scroll-timeline",status:"experimental",syntax:"[ <'scroll-timeline-name'> <'scroll-timeline-axis'>? ]#",relevance:50,browsers:["E115","FF111","C115","O101"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-timeline"}],description:"Defines a name that can be used to identify the source element of a scroll timeline, along with the scrollbar axis that should provide the timeline."},{name:"scroll-timeline-axis",status:"experimental",syntax:"[ block | inline | x | y ]#",relevance:50,browsers:["E115","FF111","C115","O101"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-timeline-axis"}],description:"Specifies the scrollbar that will be used to provide the timeline for a scroll-timeline animation"},{name:"scroll-timeline-name",status:"experimental",syntax:"none | <dashed-ident>#",relevance:50,browsers:["E115","FF111","C115","O101"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-timeline-name"}],description:"Defines a name that can be used to identify an element as the source of a scroll-timeline."},{name:"text-combine-upright",syntax:"none | all | [ digits <integer>? ]",relevance:50,browsers:["E79","FF48","S15.4","C48","IE11","O35"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-combine-upright"}],description:`The text-combine-upright CSS property specifies the combination of multiple characters into the space of a single character. If the combined text is wider than 1em, the user agent must fit the contents within 1em. The resulting composition is treated as a single upright glyph for layout and decoration. This property only has an effect in vertical writing modes.
This is used to produce an effect that is known as tate-chū-yoko (縦中横) in Japanese, or as 直書橫向 in Chinese.`},{name:"text-decoration-skip",status:"experimental",syntax:"none | [ objects || [ spaces | [ leading-spaces || trailing-spaces ] ] || edges || box-decoration ]",relevance:52,browsers:["S12.1","C57","O44"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip"}],description:"The text-decoration-skip CSS property specifies what parts of the element’s content any text decoration affecting the element must skip over. It controls all text decoration lines drawn by the element and also any text decoration lines drawn by its ancestors."},{name:"text-decoration-skip-ink",syntax:"auto | all | none",values:[{name:"auto"},{name:"all"},{name:"none"}],relevance:51,browsers:["E79","FF70","S15.4","C64","O50"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink"}],description:"The text-decoration-skip-ink CSS property specifies how overlines and underlines are drawn when they pass over glyph ascenders and descenders."},{name:"text-decoration-thickness",syntax:"auto | from-font | <length> | <percentage> ",relevance:50,browsers:["E89","FF70","S12.1","C89","O75"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness"}],description:"The text-decoration-thickness CSS property sets the thickness, or width, of the decoration line that is used on text in an element, such as a line-through, underline, or overline."},{name:"text-emphasis",syntax:"<'text-emphasis-style'> || <'text-emphasis-color'>",relevance:50,browsers:["E99","FF46","S7","C99","O85"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis"}],description:"The text-emphasis CSS property is a shorthand property for setting text-emphasis-style and text-emphasis-color in one declaration. This property will apply the specified emphasis mark to each character of the element's text, except separator characters, like spaces, and control characters."},{name:"text-emphasis-color",syntax:"<color>",relevance:50,browsers:["E99","FF46","S7","C99","O85"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color"}],description:"The text-emphasis-color CSS property defines the color used to draw emphasis marks on text being rendered in the HTML document. This value can also be set and reset using the text-emphasis shorthand."},{name:"text-emphasis-position",syntax:"[ over | under ] && [ right | left ]",relevance:50,browsers:["E99","FF46","S7","C99","O85"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position"}],description:"The text-emphasis-position CSS property describes where emphasis marks are drawn at. The effect of emphasis marks on the line height is the same as for ruby text: if there isn't enough place, the line height is increased."},{name:"text-emphasis-style",syntax:"none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>",relevance:50,browsers:["E99","FF46","S7","C99","O85"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style"}],description:"The text-emphasis-style CSS property defines the type of emphasis used. It can also be set, and reset, using the text-emphasis shorthand."},{name:"text-size-adjust",status:"experimental",syntax:"none | auto | <percentage>",relevance:57,browsers:["E79","C54","O41"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-size-adjust"}],description:"The text-size-adjust CSS property controls the text inflation algorithm used on some smartphones and tablets. Other browsers will ignore this property."},{name:"text-underline-offset",syntax:"auto | <length> | <percentage> ",relevance:51,browsers:["E87","FF70","S12.1","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-underlin
In order to let ::-webkit-progress-value take effect, -webkit-appearance needs to be set to none on the <progress> element.`},{name:"::grammar-error",status:"experimental",browsers:["E121","Spreview","C121"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::grammar-error"}],description:"The ::grammar-error CSS pseudo-element represents a text segment which the user agent has flagged as grammatically incorrect."},{name:"::marker",browsers:["E86","FF68","S11.1","C86","O72"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::marker"}],description:"The ::marker CSS pseudo-element selects the marker box of a list item, which typically contains a bullet or number. It works on any element or pseudo-element set to display: list-item, such as the <li> and <summary> elements."},{name:"::part",status:"experimental",browsers:["E79","FF72","S13.1","C73","O60"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::part"}],description:"The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute."},{name:"::placeholder",browsers:["E79","FF51","S10.1","C57","O44"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::placeholder"}],description:"The ::placeholder CSS pseudo-element represents the placeholder text of a form element."},{name:"::slotted",browsers:["E79","FF63","S10","C50","O37"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::slotted"}],description:"The :slotted() CSS pseudo-element represents any element that has been placed into a slot inside an HTML template."},{name:"::spelling-error",status:"experimental",browsers:["E121","Spreview","C121"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::spelling-error"}],description:"The ::spelling-error CSS pseudo-element represents a text segment which the user agent has flagged as incorrectly spelled."},{name:"::view-transition",status:"experimental",browsers:["E109","C109","O95"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::view-transition"}],description:"The ::view-transition CSS pseudo-element represents the root of the view transitions overlay, which contains all view transitions and sits over the top of all other page content."},{name:"::view-transition-group",status:"experimental",browsers:["E109","C109","O95"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::view-transition-group"}],description:"The ::view-transition-group CSS pseudo-element represents a single view transition group."},{name:"::view-transition-image-pair",status:"experimental",browsers:["E109","C109","O95"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::view-transition-image-pair"}],description:`The ::view-transition-image-pair CSS pseudo-element represents a container for a view transition's "old" and "new" view states — before and after the transition.`},{name:"::view-transition-new",status:"experimental",browsers:["E109","C109","O95"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::view-transition-new"}],description:'The ::view-transition-new CSS pseudo-element represents the "new" view state of a view transition — a live representation of the new view, after the transition.'},{name:"::view-transition-old",status:"experimental",browsers:["E109","C109","O95"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::view-transition-old"}],description:'The ::view-transition-old CSS pseudo-element represents the "old" view state of a view transition — a static screenshot of the old view, before the transition.'}]},Fc=class{constructor(e){this._properties=[],this._atDirectives=[],this._pseudoClasses=[],this._pseudoElements=[],this.addData(e)}provideProperties(){return this._properties}provideAtDirectives(){return this._atDirectives}providePseudoClasses(){return this._pseudoClasses}providePs
|