@codingame/monaco-vscode-css-language-features-default-extension 30.0.1 → 31.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var cw=Object.create;var As=Object.defineProperty;var dw=Object.getOwnPropertyDescriptor;var hw=Object.getOwnPropertyNames;var uw=Object.getPrototypeOf,pw=Object.prototype.hasOwnProperty;var Z=(t,e)=>()=>(t&&(e=t(t=0)),e);var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),fw=(t,e)=>{for(var n in e)As(t,n,{get:e[n],enumerable:!0})},Ju=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of hw(e))!pw.call(t,r)&&r!==n&&As(t,r,{get:()=>e[r],enumerable:!(i=dw(e,r))||i.enumerable});return t};var kr=(t,e,n)=>(n=t!=null?cw(uw(t)):{},Ju(e||!t||!t.__esModule?As(n,"default",{value:t,enumerable:!0}):n,t)),ll=t=>Ju(As({},"__esModule",{value:!0}),t);var f=Z(()=>{});async function mw(t){if(t.protocol==="http:"||t.protocol==="https:")return await(await fetch(t)).text();throw new Error("Unsupported protocol")}function bw(t){throw new Error("Unsupported in browser")}function Yu(t){if("contents"in t){typeof t.contents=="string"?Mr=JSON.parse(t.contents):Mr=t.contents;return}if("fsPath"in t){let e=bw(t.fsPath),n=JSON.parse(e);Mr=Xu(n)?n.contents.bundle:n;return}if(t.uri){let e=t.uri;return typeof t.uri=="string"&&(e=new URL(t.uri)),new Promise((n,i)=>{mw(e).then(r=>{try{let s=JSON.parse(r);Mr=Xu(s)?s.contents.bundle:s,n()}catch(s){i(s)}}).catch(r=>{i(r)})})}}function p(...t){let e=t[0],n,i,r;if(typeof e=="string")n=e,i=e,t.splice(0,1),r=!t||typeof t[0]!="object"?t:t[0];else if(e instanceof Array){let a=t.slice(1);if(e.length!==a.length+1)throw new Error("expected a string as the first argument to l10n.t");let o=e[0];for(let l=1;l<e.length;l++)o+=`{${l-1}}`+e[l];return p(o,...a)}else i=e.message,n=i,e.comment&&e.comment.length>0&&(n+=`/${Array.isArray(e.comment)?e.comment.join(""):e.comment}`),r=e.args??{};let s=Mr?.[n];return s?typeof s=="string"?Es(s,r):s.comment?Es(s.message,r):Es(i,r):Es(i,r)}function Es(t,e){return Object.keys(e).length===0?t:t.replace(gw,(n,i)=>e[i]??n)}function Xu(t){return typeof t?.contents?.bundle=="object"&&typeof t?.version=="string"}var Mr,gw,ut=Z(()=>{"use strict";f();gw=/{([^}]+)}/g});var wi=H(tn=>{"use strict";f();Object.defineProperty(tn,"__esModule",{value:!0});tn.boolean=ww;tn.string=Qu;tn.number=_w;tn.error=Sw;tn.func=yw;tn.array=Zu;tn.stringArray=vw;function ww(t){return t===!0||t===!1}function Qu(t){return typeof t=="string"||t instanceof String}function _w(t){return typeof t=="number"||t instanceof Number}function Sw(t){return t instanceof Error}function yw(t){return typeof t=="function"}function Zu(t){return Array.isArray(t)}function vw(t){return Zu(t)&&t.every(e=>Qu(e))}});var Pl=H(J=>{"use strict";f();var Fw=J&&J.__createBinding||(Object.create?(function(t,e,n,i){i===void 0&&(i=n);var r=Object.getOwnPropertyDescriptor(e,n);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,r)}):(function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]})),Cw=J&&J.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),xw=J&&J.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(n){var i=[];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(i[i.length]=r);return i},t(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var i=t(e),r=0;r<i.length;r++)i[r]!=="default"&&Fw(n,e,i[r]);return Cw(n,e),n}})();Object.defineProperty(J,"__esModule",{value:!0});J.Message=J.NotificationType9=J.NotificationType8=J.NotificationType7=J.NotificationType6=J.NotificationType5=J.NotificationType4=J.NotificationType3=J.NotificationType2=J.NotificationType1=J.NotificationType0=J.NotificationType=J.RequestType9=J.RequestType8=J.RequestType7=J.RequestType6=J.RequestType5=J.RequestType4=J.RequestType3=J.RequestType2=J.RequestType1=J.RequestType=J.RequestType0=J.AbstractMessageSignature=J.ParameterStructures=J.ResponseError=J.ErrorCodes=void 0;var Xn=xw(wi()),cl;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(cl||(J.ErrorCodes=cl={}));var dl=class t extends Error{code;data;constructor(e,n,i){super(n),this.code=Xn.number(e)?e:cl.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,t.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};J.ResponseError=dl;var vn=class t{kind;static auto=new t("auto");static byPosition=new t("byPosition");static byName=new t("byName");constructor(e){this.kind=e}static is(e){return e===t.auto||e===t.byName||e===t.byPosition}toString(){return this.kind}};J.ParameterStructures=vn;var ye=class{method;numberOfParams;constructor(e,n){this.method=e,this.numberOfParams=n}get parameterStructures(){return vn.auto}};J.AbstractMessageSignature=ye;var hl=class extends ye{_;constructor(e){super(e,0)}};J.RequestType0=hl;var ul=class extends ye{_parameterStructures;_;constructor(e,n=vn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};J.RequestType=ul;var pl=class extends ye{_parameterStructures;_;constructor(e,n=vn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};J.RequestType1=pl;var fl=class extends ye{_;constructor(e){super(e,2)}};J.RequestType2=fl;var ml=class extends ye{_;constructor(e){super(e,3)}};J.RequestType3=ml;var bl=class extends ye{_;constructor(e){super(e,4)}};J.RequestType4=bl;var gl=class extends ye{_;constructor(e){super(e,5)}};J.RequestType5=gl;var wl=class extends ye{_;constructor(e){super(e,6)}};J.RequestType6=wl;var _l=class extends ye{_;constructor(e){super(e,7)}};J.RequestType7=_l;var Sl=class extends ye{_;constructor(e){super(e,8)}};J.RequestType8=Sl;var yl=class extends ye{_;constructor(e){super(e,9)}};J.RequestType9=yl;var vl=class extends ye{_parameterStructures;_;constructor(e,n=vn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};J.NotificationType=vl;var Fl=class extends ye{_;constructor(e){super(e,0)}};J.NotificationType0=Fl;var Cl=class extends ye{_parameterStructures;_;constructor(e,n=vn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};J.NotificationType1=Cl;var xl=class extends ye{_;constructor(e){super(e,2)}};J.NotificationType2=xl;var Al=class extends ye{_;constructor(e){super(e,3)}};J.NotificationType3=Al;var El=class extends ye{_;constructor(e){super(e,4)}};J.NotificationType4=El;var kl=class extends ye{_;constructor(e){super(e,5)}};J.NotificationType5=kl;var Ml=class extends ye{_;constructor(e){super(e,6)}};J.NotificationType6=Ml;var Rl=class extends ye{_;constructor(e){super(e,7)}};J.NotificationType7=Rl;var Dl=class extends ye{_;constructor(e){super(e,8)}};J.NotificationType8=Dl;var Ol=class extends ye{_;constructor(e){super(e,9)}};J.NotificationType9=Ol;var ep;(function(t){function e(r){let s=r;return s&&Xn.string(s.method)&&(Xn.string(s.id)||Xn.number(s.id))}t.isRequest=e;function n(r){let s=r;return s&&Xn.string(s.method)&&r.id===void 0}t.isNotification=n;function i(r){let s=r;return s&&(s.result!==void 0||!!s.error)&&(Xn.string(s.id)||Xn.number(s.id)||s.id===null)}t.isResponse=i})(ep||(J.Message=ep={}))});var Tl=H(Fn=>{"use strict";f();Object.defineProperty(Fn,"__esModule",{value:!0});Fn.LRUCache=Fn.LinkedMap=Fn.Touch=void 0;var Ye;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(Ye||(Fn.Touch=Ye={}));var ks=class{[Symbol.toStringTag]="LinkedMap";_map;_head;_tail;_size;_state;constructor(){this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}before(e){let n=this._map.get(e);return n?n.previous?.value:void 0}after(e){let n=this._map.get(e);return n?n.next?.value:void 0}has(e){return this._map.has(e)}get(e,n=Ye.None){let i=this._map.get(e);if(i)return n!==Ye.None&&this.touch(i,n),i.value}set(e,n,i=Ye.None){let r=this._map.get(e);if(r)r.value=n,i!==Ye.None&&this.touch(r,i);else{switch(r={key:e,value:n,next:void 0,previous:void 0},i){case Ye.None:this.addItemLast(r);break;case Ye.First:this.addItemFirst(r);break;case Ye.Last:this.addItemLast(r);break;default:this.addItemLast(r);break}this._map.set(e,r),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let n=this._map.get(e);if(n)return this._map.delete(e),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,n){let i=this._state,r=this._head;for(;r;){if(n?e.bind(n)(r.value,r.key,this):e(r.value,r.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");r=r.next}}keys(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let r={value:n.key,done:!1};return n=n.next,r}else return{value:void 0,done:!0}}};return i}values(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let r={value:n.value,done:!1};return n=n.next,r}else return{value:void 0,done:!0}}};return i}entries(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let r={value:[n.key,n.value],done:!1};return n=n.next,r}else return{value:void 0,done:!0}}};return i}[Symbol.iterator](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>e;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let n=e.next,i=e.previous;if(!n||!i)throw new Error("Invalid list");n.previous=i,i.next=n}e.next=void 0,e.previous=void 0,this._state++}touch(e,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==Ye.First&&n!==Ye.Last)){if(n===Ye.First){if(e===this._head)return;let i=e.next,r=e.previous;e===this._tail?(r.next=void 0,this._tail=r):(i.previous=r,r.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(n===Ye.Last){if(e===this._tail)return;let i=e.next,r=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=r,r.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((n,i)=>{e.push([i,n])}),e}fromJSON(e){this.clear();for(let[n,i]of e)this.set(n,i)}};Fn.LinkedMap=ks;var Il=class extends ks{_limit;_ratio;constructor(e,n=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,n=Ye.AsNew){return super.get(e,n)}peek(e){return super.get(e,Ye.None)}set(e,n){return super.set(e,n,Ye.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};Fn.LRUCache=Il});var np=H(Ms=>{"use strict";f();Object.defineProperty(Ms,"__esModule",{value:!0});Ms.Disposable=void 0;var tp;(function(t){function e(n){return{dispose:n}}t.create=e})(tp||(Ms.Disposable=tp={}))});var Cn=H(Wl=>{"use strict";f();Object.defineProperty(Wl,"__esModule",{value:!0});var zl;function Nl(){if(zl===void 0)throw new Error("No runtime abstraction layer installed");return zl}(function(t){function e(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");zl=n}t.install=e})(Nl||(Nl={}));Wl.default=Nl});var _i=H(xn=>{"use strict";f();var Aw=xn&&xn.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xn,"__esModule",{value:!0});xn.Emitter=xn.Event=void 0;var Ew=Aw(Cn()),ip;(function(t){let e={dispose(){}};t.None=function(){return e}})(ip||(xn.Event=ip={}));var Ll=class{_callbacks;_contexts;add(e,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,n)})}remove(e,n=null){if(!this._callbacks)return;let i=!1;for(let r=0,s=this._callbacks.length;r<s;r++)if(this._callbacks[r]===e)if(this._contexts[r]===n){this._callbacks.splice(r,1),this._contexts.splice(r,1);return}else i=!0;if(i)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];let n=[],i=this._callbacks.slice(0),r=this._contexts.slice(0);for(let s=0,a=i.length;s<a;s++)try{n.push(i[s].apply(r[s],e))}catch(o){(0,Ew.default)().console.error(o)}return n}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}},ql=class t{_options;static _noop=function(){};_event;_callbacks;constructor(e){this._options=e}get event(){return this._event||(this._event=(e,n,i)=>{this._callbacks||(this._callbacks=new Ll),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,n);let r={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,n),r.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(r),r}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};xn.Emitter=ql});var Os=H(at=>{"use strict";f();var kw=at&&at.__createBinding||(Object.create?(function(t,e,n,i){i===void 0&&(i=n);var r=Object.getOwnPropertyDescriptor(e,n);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,r)}):(function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]})),Mw=at&&at.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),Rw=at&&at.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(n){var i=[];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(i[i.length]=r);return i},t(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var i=t(e),r=0;r<i.length;r++)i[r]!=="default"&&kw(n,e,i[r]);return Mw(n,e),n}})(),Dw=at&&at.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(at,"__esModule",{value:!0});at.CancellationTokenSource=at.CancellationToken=void 0;var Ow=Dw(Cn()),Pw=Rw(wi()),jl=_i(),Rs;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:jl.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:jl.Event.None});function e(n){let i=n;return i&&(i===t.None||i===t.Cancelled||Pw.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}t.is=e})(Rs||(at.CancellationToken=Rs={}));var Iw=Object.freeze(function(t,e){let n=(0,Ow.default)().timer.setTimeout(t.bind(e),0);return{dispose(){n.dispose()}}}),Ds=class{_isCancelled=!1;_emitter;cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?Iw:(this._emitter||(this._emitter=new jl.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},$l=class{_token;get token(){return this._token||(this._token=new Ds),this._token}cancel(){this._token?this._token.cancel():this._token=Rs.Cancelled}dispose(){this._token?this._token instanceof Ds&&this._token.dispose():this._token=Rs.None}};at.CancellationTokenSource=$l});var rp=H(Si=>{"use strict";f();Object.defineProperty(Si,"__esModule",{value:!0});Si.SharedArrayReceiverStrategy=Si.SharedArraySenderStrategy=void 0;var Tw=Os(),Rr;(function(t){t.Continue=0,t.Cancelled=1})(Rr||(Rr={}));var Ul=class{buffers;constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let n=new SharedArrayBuffer(4),i=new Int32Array(n,0,1);i[0]=Rr.Continue,this.buffers.set(e.id,n),e.$cancellationData=n}async sendCancellation(e,n){let i=this.buffers.get(n);if(i===void 0)return;let r=new Int32Array(i,0,1);Atomics.store(r,0,Rr.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};Si.SharedArraySenderStrategy=Ul;var Bl=class{data;constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===Rr.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},Vl=class{token;constructor(e){this.token=new Bl(e)}cancel(){}dispose(){}},Hl=class{kind="request";createCancellationTokenSource(e){let n=e.$cancellationData;return n===void 0?new Tw.CancellationTokenSource:new Vl(n)}};Si.SharedArrayReceiverStrategy=Hl});var Kl=H(yi=>{"use strict";f();var zw=yi&&yi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(yi,"__esModule",{value:!0});yi.Semaphore=void 0;var Nw=zw(Cn()),Gl=class{_capacity;_active;_waiting;constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((n,i)=>{this._waiting.push({thunk:e,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,Nw.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("Too many thunks active");try{let n=e.thunk();n instanceof Promise?n.then(i=>{this._active--,e.resolve(i),this.runNext()},i=>{this._active--,e.reject(i),this.runNext()}):(this._active--,e.resolve(n),this.runNext())}catch(n){this._active--,e.reject(n),this.runNext()}}};yi.Semaphore=Gl});var ap=H(Qe=>{"use strict";f();var Ww=Qe&&Qe.__createBinding||(Object.create?(function(t,e,n,i){i===void 0&&(i=n);var r=Object.getOwnPropertyDescriptor(e,n);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,r)}):(function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]})),Lw=Qe&&Qe.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),qw=Qe&&Qe.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(n){var i=[];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(i[i.length]=r);return i},t(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var i=t(e),r=0;r<i.length;r++)i[r]!=="default"&&Ww(n,e,i[r]);return Lw(n,e),n}})(),jw=Qe&&Qe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Qe,"__esModule",{value:!0});Qe.ReadableStreamMessageReader=Qe.AbstractMessageReader=Qe.MessageReader=void 0;var Xl=jw(Cn()),vi=qw(wi()),Jl=_i(),$w=Kl(),sp;(function(t){function e(n){let i=n;return i&&vi.func(i.listen)&&vi.func(i.dispose)&&vi.func(i.onError)&&vi.func(i.onClose)&&vi.func(i.onPartialMessage)}t.is=e})(sp||(Qe.MessageReader=sp={}));var Ps=class{errorEmitter;closeEmitter;partialMessageEmitter;constructor(){this.errorEmitter=new Jl.Emitter,this.closeEmitter=new Jl.Emitter,this.partialMessageEmitter=new Jl.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose(),this.partialMessageEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${vi.string(e.message)?e.message:"unknown"}`)}};Qe.AbstractMessageReader=Ps;var Yl;(function(t){function e(n){let i,r,s,a=new Map,o,l=new Map;if(n===void 0||typeof n=="string")i=n??"utf-8";else{if(i=n.charset??"utf-8",n.contentDecoder!==void 0&&(s=n.contentDecoder,a.set(s.name,s)),n.contentDecoders!==void 0)for(let c of n.contentDecoders)a.set(c.name,c);if(n.contentTypeDecoder!==void 0&&(o=n.contentTypeDecoder,l.set(o.name,o)),n.contentTypeDecoders!==void 0)for(let c of n.contentTypeDecoders)l.set(c.name,c)}return o===void 0&&(o=(0,Xl.default)().applicationJson.decoder,l.set(o.name,o)),{charset:i,contentDecoder:s,contentDecoders:a,contentTypeDecoder:o,contentTypeDecoders:l}}t.fromOptions=e})(Yl||(Yl={}));var Ql=class extends Ps{readable;options;callback;nextMessageLength;messageToken;buffer;partialMessageTimer;_partialMessageTimeout;readSemaphore;constructor(e,n){super(),this.readable=e,this.options=Yl.fromOptions(n),this.buffer=(0,Xl.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new $w.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let n=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),n}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let r=i.get("content-length");if(!r){this.fireError(new Error(`Header must provide a Content-Length property.
|
|
1
|
+
var cw=Object.create;var As=Object.defineProperty;var dw=Object.getOwnPropertyDescriptor;var hw=Object.getOwnPropertyNames;var uw=Object.getPrototypeOf,pw=Object.prototype.hasOwnProperty;var Z=(t,e)=>()=>(t&&(e=t(t=0)),e);var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),fw=(t,e)=>{for(var n in e)As(t,n,{get:e[n],enumerable:!0})},Ju=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of hw(e))!pw.call(t,r)&&r!==n&&As(t,r,{get:()=>e[r],enumerable:!(i=dw(e,r))||i.enumerable});return t};var kr=(t,e,n)=>(n=t!=null?cw(uw(t)):{},Ju(e||!t||!t.__esModule?As(n,"default",{value:t,enumerable:!0}):n,t)),ll=t=>Ju(As({},"__esModule",{value:!0}),t);var f=Z(()=>{});async function mw(t){if(t.protocol==="http:"||t.protocol==="https:")return await(await fetch(t)).text();throw new Error("Unsupported protocol")}function bw(t){throw new Error("Unsupported in browser")}function Yu(t){if("contents"in t){typeof t.contents=="string"?Mr=JSON.parse(t.contents):Mr=t.contents;return}if("fsPath"in t){let e=bw(t.fsPath),n=JSON.parse(e);Mr=Xu(n)?n.contents.bundle:n;return}if(t.uri){let e=t.uri;return typeof t.uri=="string"&&(e=new URL(t.uri)),new Promise((n,i)=>{mw(e).then(r=>{try{let s=JSON.parse(r);Mr=Xu(s)?s.contents.bundle:s,n()}catch(s){i(s)}}).catch(r=>{i(r)})})}}function p(...t){let e=t[0],n,i,r;if(typeof e=="string")n=e,i=e,t.splice(0,1),r=!t||typeof t[0]!="object"?t:t[0];else if(e instanceof Array){let a=t.slice(1);if(e.length!==a.length+1)throw new Error("expected a string as the first argument to l10n.t");let o=e[0];for(let l=1;l<e.length;l++)o+=`{${l-1}}`+e[l];return p(o,...a)}else i=e.message,n=i,e.comment&&e.comment.length>0&&(n+=`/${Array.isArray(e.comment)?e.comment.join(""):e.comment}`),r=e.args??{};let s=Mr?.[n];return s?typeof s=="string"?Es(s,r):s.comment?Es(s.message,r):Es(i,r):Es(i,r)}function Es(t,e){return Object.keys(e).length===0?t:t.replace(gw,(n,i)=>e[i]??n)}function Xu(t){return typeof t?.contents?.bundle=="object"&&typeof t?.version=="string"}var Mr,gw,ut=Z(()=>{"use strict";f();gw=/{([^}]+)}/g});var wi=H(tn=>{"use strict";f();Object.defineProperty(tn,"__esModule",{value:!0});tn.boolean=ww;tn.string=Qu;tn.number=_w;tn.error=Sw;tn.func=yw;tn.array=Zu;tn.stringArray=vw;function ww(t){return t===!0||t===!1}function Qu(t){return typeof t=="string"||t instanceof String}function _w(t){return typeof t=="number"||t instanceof Number}function Sw(t){return t instanceof Error}function yw(t){return typeof t=="function"}function Zu(t){return Array.isArray(t)}function vw(t){return Zu(t)&&t.every(e=>Qu(e))}});var Pl=H(J=>{"use strict";f();var Fw=J&&J.__createBinding||(Object.create?(function(t,e,n,i){i===void 0&&(i=n);var r=Object.getOwnPropertyDescriptor(e,n);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,r)}):(function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]})),Cw=J&&J.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),xw=J&&J.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(n){var i=[];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(i[i.length]=r);return i},t(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var i=t(e),r=0;r<i.length;r++)i[r]!=="default"&&Fw(n,e,i[r]);return Cw(n,e),n}})();Object.defineProperty(J,"__esModule",{value:!0});J.Message=J.NotificationType9=J.NotificationType8=J.NotificationType7=J.NotificationType6=J.NotificationType5=J.NotificationType4=J.NotificationType3=J.NotificationType2=J.NotificationType1=J.NotificationType0=J.NotificationType=J.RequestType9=J.RequestType8=J.RequestType7=J.RequestType6=J.RequestType5=J.RequestType4=J.RequestType3=J.RequestType2=J.RequestType1=J.RequestType=J.RequestType0=J.AbstractMessageSignature=J.ParameterStructures=J.ResponseError=J.ErrorCodes=void 0;var Xn=xw(wi()),cl;(function(t){t.ParseError=-32700,t.InvalidRequest=-32600,t.MethodNotFound=-32601,t.InvalidParams=-32602,t.InternalError=-32603,t.jsonrpcReservedErrorRangeStart=-32099,t.serverErrorStart=-32099,t.MessageWriteError=-32099,t.MessageReadError=-32098,t.PendingResponseRejected=-32097,t.ConnectionInactive=-32096,t.ServerNotInitialized=-32002,t.UnknownErrorCode=-32001,t.jsonrpcReservedErrorRangeEnd=-32e3,t.serverErrorEnd=-32e3})(cl||(J.ErrorCodes=cl={}));var dl=class t extends Error{code;data;constructor(e,n,i){super(n),this.code=Xn.number(e)?e:cl.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,t.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};J.ResponseError=dl;var vn=class t{kind;static auto=new t("auto");static byPosition=new t("byPosition");static byName=new t("byName");constructor(e){this.kind=e}static is(e){return e===t.auto||e===t.byName||e===t.byPosition}toString(){return this.kind}};J.ParameterStructures=vn;var ye=class{method;numberOfParams;constructor(e,n){this.method=e,this.numberOfParams=n}get parameterStructures(){return vn.auto}};J.AbstractMessageSignature=ye;var hl=class extends ye{_;constructor(e){super(e,0)}};J.RequestType0=hl;var ul=class extends ye{_parameterStructures;_;constructor(e,n=vn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};J.RequestType=ul;var pl=class extends ye{_parameterStructures;_;constructor(e,n=vn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};J.RequestType1=pl;var fl=class extends ye{_;constructor(e){super(e,2)}};J.RequestType2=fl;var ml=class extends ye{_;constructor(e){super(e,3)}};J.RequestType3=ml;var bl=class extends ye{_;constructor(e){super(e,4)}};J.RequestType4=bl;var gl=class extends ye{_;constructor(e){super(e,5)}};J.RequestType5=gl;var wl=class extends ye{_;constructor(e){super(e,6)}};J.RequestType6=wl;var _l=class extends ye{_;constructor(e){super(e,7)}};J.RequestType7=_l;var Sl=class extends ye{_;constructor(e){super(e,8)}};J.RequestType8=Sl;var yl=class extends ye{_;constructor(e){super(e,9)}};J.RequestType9=yl;var vl=class extends ye{_parameterStructures;_;constructor(e,n=vn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};J.NotificationType=vl;var Fl=class extends ye{_;constructor(e){super(e,0)}};J.NotificationType0=Fl;var Cl=class extends ye{_parameterStructures;_;constructor(e,n=vn.auto){super(e,1),this._parameterStructures=n}get parameterStructures(){return this._parameterStructures}};J.NotificationType1=Cl;var xl=class extends ye{_;constructor(e){super(e,2)}};J.NotificationType2=xl;var Al=class extends ye{_;constructor(e){super(e,3)}};J.NotificationType3=Al;var El=class extends ye{_;constructor(e){super(e,4)}};J.NotificationType4=El;var kl=class extends ye{_;constructor(e){super(e,5)}};J.NotificationType5=kl;var Ml=class extends ye{_;constructor(e){super(e,6)}};J.NotificationType6=Ml;var Rl=class extends ye{_;constructor(e){super(e,7)}};J.NotificationType7=Rl;var Dl=class extends ye{_;constructor(e){super(e,8)}};J.NotificationType8=Dl;var Ol=class extends ye{_;constructor(e){super(e,9)}};J.NotificationType9=Ol;var ep;(function(t){function e(r){let s=r;return s&&Xn.string(s.method)&&(Xn.string(s.id)||Xn.number(s.id))}t.isRequest=e;function n(r){let s=r;return s&&Xn.string(s.method)&&r.id===void 0}t.isNotification=n;function i(r){let s=r;return s&&(s.result!==void 0||!!s.error)&&(Xn.string(s.id)||Xn.number(s.id)||s.id===null)}t.isResponse=i})(ep||(J.Message=ep={}))});var Tl=H(Fn=>{"use strict";f();Object.defineProperty(Fn,"__esModule",{value:!0});Fn.LRUCache=Fn.LinkedMap=Fn.Touch=void 0;var Ye;(function(t){t.None=0,t.First=1,t.AsOld=t.First,t.Last=2,t.AsNew=t.Last})(Ye||(Fn.Touch=Ye={}));var ks=class{[Symbol.toStringTag]="LinkedMap";_map;_head;_tail;_size;_state;constructor(){this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}before(e){let n=this._map.get(e);return n?n.previous?.value:void 0}after(e){let n=this._map.get(e);return n?n.next?.value:void 0}has(e){return this._map.has(e)}get(e,n=Ye.None){let i=this._map.get(e);if(i)return n!==Ye.None&&this.touch(i,n),i.value}set(e,n,i=Ye.None){let r=this._map.get(e);if(r)r.value=n,i!==Ye.None&&this.touch(r,i);else{switch(r={key:e,value:n,next:void 0,previous:void 0},i){case Ye.None:this.addItemLast(r);break;case Ye.First:this.addItemFirst(r);break;case Ye.Last:this.addItemLast(r);break;default:this.addItemLast(r);break}this._map.set(e,r),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let n=this._map.get(e);if(n)return this._map.delete(e),this.removeItem(n),this._size--,n.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,n){let i=this._state,r=this._head;for(;r;){if(n?e.bind(n)(r.value,r.key,this):e(r.value,r.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");r=r.next}}keys(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let r={value:n.key,done:!1};return n=n.next,r}else return{value:void 0,done:!0}}};return i}values(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let r={value:n.value,done:!1};return n=n.next,r}else return{value:void 0,done:!0}}};return i}entries(){let e=this._state,n=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(n){let r={value:[n.key,n.value],done:!1};return n=n.next,r}else return{value:void 0,done:!0}}};return i}[Symbol.iterator](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let n=this._head,i=this.size;for(;n&&i>e;)this._map.delete(n.key),n=n.next,i--;this._head=n,this._size=i,n&&(n.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let n=e.next,i=e.previous;if(!n||!i)throw new Error("Invalid list");n.previous=i,i.next=n}e.next=void 0,e.previous=void 0,this._state++}touch(e,n){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(n!==Ye.First&&n!==Ye.Last)){if(n===Ye.First){if(e===this._head)return;let i=e.next,r=e.previous;e===this._tail?(r.next=void 0,this._tail=r):(i.previous=r,r.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(n===Ye.Last){if(e===this._tail)return;let i=e.next,r=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=r,r.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((n,i)=>{e.push([i,n])}),e}fromJSON(e){this.clear();for(let[n,i]of e)this.set(n,i)}};Fn.LinkedMap=ks;var Il=class extends ks{_limit;_ratio;constructor(e,n=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,n),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,n=Ye.AsNew){return super.get(e,n)}peek(e){return super.get(e,Ye.None)}set(e,n){return super.set(e,n,Ye.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};Fn.LRUCache=Il});var np=H(Ms=>{"use strict";f();Object.defineProperty(Ms,"__esModule",{value:!0});Ms.Disposable=void 0;var tp;(function(t){function e(n){return{dispose:n}}t.create=e})(tp||(Ms.Disposable=tp={}))});var Cn=H(Wl=>{"use strict";f();Object.defineProperty(Wl,"__esModule",{value:!0});var zl;function Nl(){if(zl===void 0)throw new Error("No runtime abstraction layer installed");return zl}(function(t){function e(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");zl=n}t.install=e})(Nl||(Nl={}));Wl.default=Nl});var _i=H(xn=>{"use strict";f();var Aw=xn&&xn.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xn,"__esModule",{value:!0});xn.Emitter=xn.Event=void 0;var Ew=Aw(Cn()),ip;(function(t){let e={dispose(){}};t.None=function(){return e}})(ip||(xn.Event=ip={}));var Ll=class{_callbacks;_contexts;add(e,n=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(n),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,n)})}remove(e,n=null){if(!this._callbacks)return;let i=!1;for(let r=0,s=this._callbacks.length;r<s;r++)if(this._callbacks[r]===e)if(this._contexts[r]===n){this._callbacks.splice(r,1),this._contexts.splice(r,1);return}else i=!0;if(i)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];let n=[],i=this._callbacks.slice(0),r=this._contexts.slice(0);for(let s=0,a=i.length;s<a;s++)try{n.push(i[s].apply(r[s],e))}catch(o){(0,Ew.default)().console.error(o)}return n}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}},ql=class t{_options;static _noop=function(){};_event;_callbacks;constructor(e){this._options=e}get event(){return this._event||(this._event=(e,n,i)=>{this._callbacks||(this._callbacks=new Ll),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,n);let r={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,n),r.dispose=t._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(r),r}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};xn.Emitter=ql});var Os=H(at=>{"use strict";f();var kw=at&&at.__createBinding||(Object.create?(function(t,e,n,i){i===void 0&&(i=n);var r=Object.getOwnPropertyDescriptor(e,n);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,r)}):(function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]})),Mw=at&&at.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),Rw=at&&at.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(n){var i=[];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(i[i.length]=r);return i},t(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var i=t(e),r=0;r<i.length;r++)i[r]!=="default"&&kw(n,e,i[r]);return Mw(n,e),n}})(),Dw=at&&at.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(at,"__esModule",{value:!0});at.CancellationTokenSource=at.CancellationToken=void 0;var Ow=Dw(Cn()),Pw=Rw(wi()),jl=_i(),Rs;(function(t){t.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:jl.Event.None}),t.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:jl.Event.None});function e(n){let i=n;return i&&(i===t.None||i===t.Cancelled||Pw.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}t.is=e})(Rs||(at.CancellationToken=Rs={}));var Iw=Object.freeze(function(t,e){let n=(0,Ow.default)().timer.setTimeout(t.bind(e),0);return{dispose(){n.dispose()}}}),Ds=class{_isCancelled=!1;_emitter;cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?Iw:(this._emitter||(this._emitter=new jl.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},$l=class{_token;get token(){return this._token||(this._token=new Ds),this._token}cancel(){this._token?this._token.cancel():this._token=Rs.Cancelled}dispose(){this._token?this._token instanceof Ds&&this._token.dispose():this._token=Rs.None}};at.CancellationTokenSource=$l});var rp=H(Si=>{"use strict";f();Object.defineProperty(Si,"__esModule",{value:!0});Si.SharedArrayReceiverStrategy=Si.SharedArraySenderStrategy=void 0;var Tw=Os(),Rr;(function(t){t.Continue=0,t.Cancelled=1})(Rr||(Rr={}));var Ul=class{buffers;constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let n=new SharedArrayBuffer(4),i=new Int32Array(n,0,1);i[0]=Rr.Continue,this.buffers.set(e.id,n),e.$cancellationData=n}async sendCancellation(e,n){let i=this.buffers.get(n);if(i===void 0)return;let r=new Int32Array(i,0,1);Atomics.store(r,0,Rr.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};Si.SharedArraySenderStrategy=Ul;var Bl=class{data;constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===Rr.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},Vl=class{token;constructor(e){this.token=new Bl(e)}cancel(){}dispose(){}},Hl=class{kind="request";createCancellationTokenSource(e){let n=e.$cancellationData;return n===void 0?new Tw.CancellationTokenSource:new Vl(n)}};Si.SharedArrayReceiverStrategy=Hl});var Kl=H(yi=>{"use strict";f();var zw=yi&&yi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(yi,"__esModule",{value:!0});yi.Semaphore=void 0;var Nw=zw(Cn()),Gl=class{_capacity;_active;_waiting;constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((n,i)=>{this._waiting.push({thunk:e,resolve:n,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,Nw.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("Too many thunks active");try{let n=e.thunk();n instanceof Promise?n.then(i=>{this._active--,e.resolve(i),this.runNext()},i=>{this._active--,e.reject(i),this.runNext()}):(this._active--,e.resolve(n),this.runNext())}catch(n){this._active--,e.reject(n),this.runNext()}}};yi.Semaphore=Gl});var ap=H(Qe=>{"use strict";f();var Ww=Qe&&Qe.__createBinding||(Object.create?(function(t,e,n,i){i===void 0&&(i=n);var r=Object.getOwnPropertyDescriptor(e,n);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,r)}):(function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]})),Lw=Qe&&Qe.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),qw=Qe&&Qe.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(n){var i=[];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(i[i.length]=r);return i},t(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var i=t(e),r=0;r<i.length;r++)i[r]!=="default"&&Ww(n,e,i[r]);return Lw(n,e),n}})(),jw=Qe&&Qe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Qe,"__esModule",{value:!0});Qe.ReadableStreamMessageReader=Qe.AbstractMessageReader=Qe.MessageReader=void 0;var Xl=jw(Cn()),vi=qw(wi()),Jl=_i(),$w=Kl(),sp;(function(t){function e(n){let i=n;return i&&vi.func(i.listen)&&vi.func(i.dispose)&&vi.func(i.onError)&&vi.func(i.onClose)&&vi.func(i.onPartialMessage)}t.is=e})(sp||(Qe.MessageReader=sp={}));var Ps=class{errorEmitter;closeEmitter;partialMessageEmitter;constructor(){this.errorEmitter=new Jl.Emitter,this.closeEmitter=new Jl.Emitter,this.partialMessageEmitter=new Jl.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose(),this.partialMessageEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${vi.string(e.message)?e.message:"unknown"}`)}};Qe.AbstractMessageReader=Ps;var Yl;(function(t){function e(n){let i,r,s,a=new Map,o,l=new Map;if(n===void 0||typeof n=="string")i=n??"utf-8";else{if(i=n.charset??"utf-8",n.contentDecoder!==void 0&&(s=n.contentDecoder,a.set(s.name,s)),n.contentDecoders!==void 0)for(let c of n.contentDecoders)a.set(c.name,c);if(n.contentTypeDecoder!==void 0&&(o=n.contentTypeDecoder,l.set(o.name,o)),n.contentTypeDecoders!==void 0)for(let c of n.contentTypeDecoders)l.set(c.name,c)}return o===void 0&&(o=(0,Xl.default)().applicationJson.decoder,l.set(o.name,o)),{charset:i,contentDecoder:s,contentDecoders:a,contentTypeDecoder:o,contentTypeDecoders:l}}t.fromOptions=e})(Yl||(Yl={}));var Ql=class extends Ps{readable;options;callback;nextMessageLength;messageToken;buffer;partialMessageTimer;_partialMessageTimeout;readSemaphore;constructor(e,n){super(),this.readable=e,this.options=Yl.fromOptions(n),this.buffer=(0,Xl.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new $w.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let n=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),n}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let r=i.get("content-length");if(!r){this.fireError(new Error(`Header must provide a Content-Length property.
|
|
2
2
|
${JSON.stringify(Object.fromEntries(i))}`));return}let s=parseInt(r);if(isNaN(s)){this.fireError(new Error(`Content-Length value must be a number. Got ${r}`));return}this.nextMessageLength=s}let n=this.buffer.tryReadBody(this.nextMessageLength);if(n===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let i=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(n):n,r=await this.options.contentTypeDecoder.decode(i,this.options);this.callback(r)}).catch(i=>{this.fireError(i)})}}catch(n){this.fireError(n)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,Xl.default)().timer.setTimeout((e,n)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:n}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};Qe.ReadableStreamMessageReader=Ql});var hp=H(Ze=>{"use strict";f();var Uw=Ze&&Ze.__createBinding||(Object.create?(function(t,e,n,i){i===void 0&&(i=n);var r=Object.getOwnPropertyDescriptor(e,n);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,r)}):(function(t,e,n,i){i===void 0&&(i=n),t[i]=e[n]})),Bw=Ze&&Ze.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),Vw=Ze&&Ze.__importStar||(function(){var t=function(e){return t=Object.getOwnPropertyNames||function(n){var i=[];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(i[i.length]=r);return i},t(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var i=t(e),r=0;r<i.length;r++)i[r]!=="default"&&Uw(n,e,i[r]);return Bw(n,e),n}})(),Hw=Ze&&Ze.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ze,"__esModule",{value:!0});Ze.WriteableStreamMessageWriter=Ze.AbstractMessageWriter=Ze.MessageWriter=void 0;var op=Hw(Cn()),Dr=Vw(wi()),Gw=Kl(),lp=_i(),Kw="Content-Length: ",cp=`\r
|
|
3
3
|
`,dp;(function(t){function e(n){let i=n;return i&&Dr.func(i.dispose)&&Dr.func(i.onClose)&&Dr.func(i.onError)&&Dr.func(i.write)}t.is=e})(dp||(Ze.MessageWriter=dp={}));var Is=class{errorEmitter;closeEmitter;constructor(){this.errorEmitter=new lp.Emitter,this.closeEmitter=new lp.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,n,i){this.errorEmitter.fire([this.asError(e),n,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${Dr.string(e.message)?e.message:"unknown"}`)}};Ze.AbstractMessageWriter=Is;var Zl;(function(t){function e(n){return n===void 0||typeof n=="string"?{charset:n??"utf-8",contentTypeEncoder:(0,op.default)().applicationJson.encoder}:{charset:n.charset??"utf-8",contentEncoder:n.contentEncoder,contentTypeEncoder:n.contentTypeEncoder??(0,op.default)().applicationJson.encoder}}t.fromOptions=e})(Zl||(Zl={}));var ec=class extends Is{writable;options;errorCount;writeSemaphore;constructor(e,n){super(),this.writable=e,this.options=Zl.fromOptions(n),this.errorCount=0,this.writeSemaphore=new Gw.Semaphore(1),this.writable.onError(i=>this.fireError(i)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(i=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(i):i).then(i=>{let r=[];return r.push(Kw,i.byteLength.toString(),cp),r.push(cp),this.doWrite(e,r,i)},i=>{throw this.fireError(i),i}))}async doWrite(e,n,i){try{return await this.writable.write(n.join(""),"ascii"),this.writable.write(i)}catch(r){return this.handleError(r,e),Promise.reject(r)}}handleError(e,n){this.errorCount++,this.fireError(e,n,this.errorCount)}end(){this.writable.end()}};Ze.WriteableStreamMessageWriter=ec});var up=H(Ts=>{"use strict";f();Object.defineProperty(Ts,"__esModule",{value:!0});Ts.AbstractMessageBuffer=void 0;var Jw=13,Xw=10,Yw=`\r
|
|
4
4
|
`,tc=class{_encoding;_chunks;_totalLength;constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let n=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(n),this._totalLength+=n.byteLength}tryReadHeaders(e=!1){if(this._chunks.length===0)return;let n=0,i=0,r=0,s=0;e:for(;i<this._chunks.length;){let c=this._chunks[i];for(r=0;r<c.length;){switch(c[r]){case Jw:switch(n){case 0:n=1;break;case 2:n=3;break;default:n=0}break;case Xw:switch(n){case 1:n=2;break;case 3:n=4,r++;break e;default:n=0}break;default:n=0}r++}s+=c.byteLength,i++}if(n!==4)return;let a=this._read(s+r),o=new Map,l=this.toString(a,"ascii").split(Yw);if(l.length<2)return o;for(let c=0;c<l.length-2;c++){let h=l[c],m=h.indexOf(":");if(m===-1)throw new Error(`Message header must separate key and value using ':'
|
|
@@ -74,5 +74,5 @@ Specifying any precise animations or physics used to enforce those snap points i
|
|
|
74
74
|
This is used to produce an effect that is known as tate-ch\u016B-yoko (\u7E26\u4E2D\u6A2A) in Japanese, or as \u76F4\u66F8\u6A6B\u5411 in Chinese.`},{name:"text-decoration-inset",syntax:"<length>{1,2} | auto",relevance:50,browsers:["FF146","FFA146"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-inset"}],baseline:{status:"false"},description:""},{name:"text-decoration-skip",status:"experimental",syntax:"none | [ objects || [ spaces | [ leading-spaces || trailing-spaces ] ] || edges || box-decoration ]",relevance:50,browsers:["S12.1","SM12.2","O44"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-skip"}],baseline:{status:"false"},description:"The text-decoration-skip CSS property specifies what parts of the element\u2019s 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",browsers:["E79","FF70","FFA79","S15.4","SM15.4","C64","CA64","O51"],baseline:{status:"high",baseline_low_date:"2022-03-14",baseline_high_date:"2024-09-14"}},{name:"all",browsers:["FF75","FFA79","S15.4","SM15.4"],baseline:{status:"false"}},{name:"none",browsers:["E79","FF70","FFA79","S15.4","SM15.4","C64","CA64","O51"],baseline:{status:"high",baseline_low_date:"2022-03-14",baseline_high_date:"2024-09-14"}}],relevance:53,browsers:["E79","FF70","FFA79","S15.4","SM15.4","C64","CA64","O50"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-skip-ink"}],baseline:{status:"high",baseline_low_date:"2022-03-14",baseline_high_date:"2024-09-14"},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:56,browsers:["E89","FF70","FFA79","S12.1","SM12.2","C89","CA89","O75"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-decoration-thickness"}],baseline:{status:"high",baseline_low_date:"2021-03-04",baseline_high_date:"2023-09-04"},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","FFA46","S7","SM7","C99","CA99","O85"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis"}],baseline:{status:"high",baseline_low_date:"2022-03-03",baseline_high_date:"2024-09-03"},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","FFA46","S7","SM7","C99","CA99","O85"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis-color"}],baseline:{status:"high",baseline_low_date:"2022-03-03",baseline_high_date:"2024-09-03"},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:"auto | [ over | under ] && [ right | left ]?",relevance:50,browsers:["E99","FF46","FFA46","S7","SM7","C99","CA99","O85"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis-position"}],baseline:{status:"high",baseline_low_date:"2022-03-03",baseline_high_date:"2024-09-03"},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","FFA46","S7","SM7","C99","CA99","O85"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-emphasis-style"}],baseline:{status:"high",baseline_low_date:"2022-03-03",baseline_high_date:"2024-09-03"},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:61,browsers:["E79","C54","CA54","O41"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-size-adjust"}],baseline:{status:"false"},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-spacing-trim",status:"experimental",syntax:"space-all | normal | space-first | trim-start",values:[{name:"space-all",browsers:["E123","C123","CA123","O109"],baseline:{status:"false"}},{name:"normal",browsers:["E123","C123","CA123","O109"],baseline:{status:"false"}},{name:"space-first",browsers:["E123","C123","CA123","O109"],baseline:{status:"false"}},{name:"trim-start",browsers:["E123","C123","CA123","O109"],baseline:{status:"false"}}],relevance:50,browsers:["E123","C123","CA123","O109"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-spacing-trim"}],baseline:{status:"false"},description:"The text-spacing-trim CSS property controls the internal spacing set on Chinese/Japanese/Korean (CJK) punctuation characters between adjacent characters (kerning) and at the start or end of text lines."},{name:"text-underline-offset",syntax:"auto | <length> | <percentage>",relevance:58,browsers:["E87","FF70","FFA79","S12.1","SM12.2","C87","CA87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-underline-offset"}],baseline:{status:"high",baseline_low_date:"2020-11-19",baseline_high_date:"2023-05-19"},description:"The text-underline-offset CSS property sets the offset distance of an underline text decoration line (applied using text-decoration) from its original position."},{name:"text-wrap",syntax:"<'text-wrap-mode'> || <'text-wrap-style'>",relevance:60,browsers:["E114","FF121","FFA121","S17.4","SM17.4","C114","CA114","O100"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-wrap"}],baseline:{status:"low",baseline_low_date:"2024-03-05"},description:"The text-wrap CSS property controls how text inside an element is wrapped."},{name:"text-wrap-mode",syntax:"wrap | nowrap",values:[{name:"wrap",browsers:["E130","FF124","FFA124","S17.4","SM17.4","C130","CA130","O115"],baseline:{status:"low",baseline_low_date:"2024-10-17"}},{name:"nowrap",browsers:["E130","FF124","FFA124","S17.4","SM17.4","C130","CA130","O115"],baseline:{status:"low",baseline_low_date:"2024-10-17"}}],relevance:51,browsers:["E130","FF124","FFA124","S17.4","SM17.4","C130","CA130","O115"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-wrap-mode"}],baseline:{status:"low",baseline_low_date:"2024-10-17"},description:'The text-wrap-mode CSS property controls whether the text inside an element is wrapped. The different values provide alternate ways of wrapping the content of a block element. It can also be set, and reset, using the {{CSSXRef("text-wrap")}} shorthand.'},{name:"text-wrap-style",syntax:"auto | balance | stable | pretty",values:[{name:"auto",browsers:["E130","FF124","FFA124","S17.5","SM17.5","C130","CA130","O115"],baseline:{status:"low",baseline_low_date:"2024-10-17"}},{name:"balance",browsers:["E130","FF124","FFA124","S17.5","SM17.5","C130","CA130","O115"],baseline:{status:"low",baseline_low_date:"2024-10-17"}},{name:"stable",browsers:["E130","FF124","FFA124","S17.5","SM17.5","C130","CA130","O115"],baseline:{status:"low",baseline_low_date:"2024-10-17"}},{name:"pretty",browsers:["E130","S26","SM26","C130","CA130","O115"],baseline:{status:"false"}}],relevance:50,browsers:["E130","FF124","FFA124","S17.5","SM17.5","C130","CA130","O115"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/text-wrap-style"}],baseline:{status:"low",baseline_low_date:"2024-10-17"},description:'The text-wrap-style CSS property controls how text inside an element is wrapped. The different values provide alternate ways of wrapping the content of a block element. It can also be set, and reset, using the {{CSSXRef("text-wrap")}} shorthand.'},{name:"timeline-scope",syntax:"none | <dashed-ident>#",relevance:51,browsers:["E116","S26","SM26","C116","CA116","O102"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/timeline-scope"}],baseline:{status:"false"},description:"The timeline-scope CSS property modifies the scope of a named animation timeline."},{name:"timeline-trigger",syntax:"none | [ <'timeline-trigger-name'> <'timeline-trigger-source'> <'timeline-trigger-range'> [ '/' <'timeline-trigger-exit-range'> ]? ]#",relevance:50,baseline:{status:"false"},description:""},{name:"timeline-trigger-name",syntax:"none | <dashed-ident>#",relevance:50,baseline:{status:"false"},description:""},{name:"timeline-trigger-exit-range",syntax:"[ <'timeline-trigger-exit-range-start'> <'timeline-trigger-exit-range-end'>? ]#",relevance:50,description:""},{name:"timeline-trigger-exit-range-end",syntax:"[ auto | normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#",relevance:50,description:""},{name:"timeline-trigger-exit-range-start",syntax:"[ auto | normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#",relevance:50,description:""},{name:"timeline-trigger-range",syntax:"[ <'timeline-trigger-range-start'> <'timeline-trigger-range-end'>? ]#",relevance:50,description:""},{name:"timeline-trigger-range-end",syntax:"[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#",relevance:50,description:""},{name:"timeline-trigger-range-start",syntax:"[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#",relevance:50,description:""},{name:"timeline-trigger-source",syntax:"<single-animation-timeline>#",relevance:50,baseline:{status:"false"},description:""},{name:"transform-box",syntax:"content-box | border-box | fill-box | stroke-box | view-box",values:[{name:"content-box",browsers:["E118","FF125","FFA125","S13.1","SM13.4","C118","CA118","O104"],baseline:{status:"low",baseline_low_date:"2024-04-16"}},{name:"border-box",browsers:["E118","FF55","FFA55","S11","SM11","C118","CA118","O104"],baseline:{status:"low",baseline_low_date:"2023-10-13"}},{name:"fill-box",browsers:["E79","FF55","FFA55","S11","SM11","C64","CA64","O51"],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"}},{name:"stroke-box",browsers:["E118","FF125","FFA125","S13.1","SM13.4","C118","CA118","O104"],baseline:{status:"low",baseline_low_date:"2024-04-16"}},{name:"view-box",browsers:["E79","FF55","FFA55","S11","SM11","C64","CA64","O51"],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"}}],relevance:51,browsers:["E79","FF55","FFA55","S11","SM11","C64","CA64","O51"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transform-box"}],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"},description:"The transform-box CSS property defines the layout box to which the transform and transform-origin properties relate."},{name:"transition-behavior",syntax:"<transition-behavior-value>#",relevance:50,browsers:["E117","FF129","FFA129","S17.4","SM17.4","C117","CA117","O103"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/transition-behavior"}],baseline:{status:"low",baseline_low_date:"2024-08-06"},description:"The transition-behavior CSS property specifies whether transitions will be started for properties whose animation behavior is discrete."},{name:"translate",syntax:"none | <length-percentage> [ <length-percentage> <length>? ]?",relevance:54,browsers:["E104","FF72","FFA79","S14.1","SM14.5","C104","CA104","O90"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/translate"}],baseline:{status:"high",baseline_low_date:"2022-08-05",baseline_high_date:"2025-02-05"},description:"The translate CSS property allows you to specify translation transforms individually and independently of the transform property. This maps better to typical user interface usage, and saves having to remember the exact order of transform functions to specify in the transform value."},{name:"trigger-scope",syntax:"none | all | <dashed-ident>#",relevance:50,baseline:{status:"false"},description:""},{name:"vector-effect",syntax:"none | non-scaling-stroke | non-scaling-size | non-rotation | fixed-position",values:[{name:"none",browsers:["E79","FF15","FFA15","S5.1","SM5","C6","CA18","O15"],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"}},{name:"non-scaling-stroke",browsers:["E79","FF15","FFA15","S5.1","SM5","C6","CA18","O15"],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"}},{name:"non-scaling-size"},{name:"non-rotation"},{name:"fixed-position"}],relevance:50,browsers:["E79","FF15","FFA15","S5.1","SM5","C6","CA18","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/vector-effect"}],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"},description:"The vector-effect CSS property suppresses specific transformation effects in SVG, thus permitting effects like a road on a map staying the same width no matter how the map is zoomed, or allowing a diagram key to retain its position and size regardless of other transforms. It can only be used with SVG elements that accept the vector-effect attribute. When used, the CSS value overrides any values of the element's vector-effect attribute."},{name:"view-timeline",syntax:"[ <'view-timeline-name'> [ <'view-timeline-axis'> || <'view-timeline-inset'> ]? ]#",relevance:51,browsers:["E115","S26","SM26","C115","CA115","O101"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-timeline"}],baseline:{status:"false"},description:"The view-timeline CSS shorthand property is used to define a named view progress timeline, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline is set on the subject."},{name:"view-timeline-axis",syntax:"[ block | inline | x | y ]#",relevance:50,browsers:["E115","S26","SM26","C115","CA115","O101"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-timeline-axis"}],baseline:{status:"false"},description:"The view-timeline-axis CSS property is used to specify the scrollbar direction that will be used to provide the timeline for a named view progress timeline animation, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline-axis is set on the subject. See CSS scroll-driven animations for more details."},{name:"view-timeline-inset",syntax:"[ [ auto | <length-percentage> ]{1,2} ]#",relevance:50,browsers:["E115","S26","SM26","C115","CA115","O101"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-timeline-inset"}],baseline:{status:"false"},description:"The view-timeline-inset CSS property is used to specify one or two values representing an adjustment to the position of the scrollport (see Scroll container for more details) in which the subject element of a named view progress timeline animation is deemed to be visible. Put another way, this allows you to specify start and/or end inset (or outset) values that offset the position of the timeline."},{name:"view-timeline-name",syntax:"[ none | <dashed-ident> ]#",relevance:50,browsers:["E115","S26","SM26","C115","CA115","O101"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-timeline-name"}],baseline:{status:"false"},description:"The view-timeline-name CSS property is used to define the name of a named view progress timeline, which is progressed through based on the change in visibility of an element (known as the subject) inside a scrollable element (scroller). view-timeline is set on the subject."},{name:"view-transition-class",syntax:"none | <custom-ident>+",relevance:50,browsers:["E125","FF144","FFA144","S18.2","SM18.2","C125","CA125","O111"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-transition-class"}],baseline:{status:"low",baseline_low_date:"2025-10-14"},description:"The view-transition-class CSS property provides the selected elements with an identifying class (a custom-ident), providing an additional method of styling the view transitions for those elements."},{name:"view-transition-name",syntax:"none | <custom-ident> | match-element",relevance:56,browsers:["E111","FF144","FFA144","S18","SM18","C111","CA111","O97"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/view-transition-name"}],baseline:{status:"low",baseline_low_date:"2025-10-14"},description:"The view-transition-name CSS property provides the selected element with a distinct identifying name (a custom-ident) and causes it to participate in a separate view transition from the root view transition \u2014 or no view transition if the none value is specified."},{name:"white-space",syntax:"normal | pre | pre-wrap | pre-line | <'white-space-collapse'> || <'text-wrap-mode'>",relevance:90,browsers:["E12","FF1","FFA4","S1","SM1","C1","CA18","IE5.5","O4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/white-space"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Specifies how whitespace is handled in an element."},{name:"white-space-collapse",syntax:"collapse | preserve | preserve-breaks | preserve-spaces | break-spaces",values:[{name:"collapse",browsers:["E114","FF124","FFA124","S17.4","SM17.4","C114","CA114","O100"],baseline:{status:"low",baseline_low_date:"2024-03-19"}},{name:"preserve",browsers:["E114","FF124","FFA124","S17.4","SM17.4","C114","CA114","O100"],baseline:{status:"low",baseline_low_date:"2024-03-19"}},{name:"preserve-breaks",browsers:["E114","FF124","FFA124","S17.4","SM17.4","C114","CA114","O100"],baseline:{status:"low",baseline_low_date:"2024-03-19"}},{name:"preserve-spaces",browsers:["FF124","FFA124"],baseline:{status:"false"}},{name:"break-spaces",browsers:["E114","FF124","FFA124","S17.4","SM17.4","C114","CA114","O100"],baseline:{status:"low",baseline_low_date:"2024-03-19"}}],relevance:50,browsers:["E114","FF124","FFA124","S17.4","SM17.4","C114","CA114","O100"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/white-space-collapse"}],baseline:{status:"low",baseline_low_date:"2024-03-19"},description:"The white-space-collapse CSS property controls how white space inside an element is collapsed."},{name:"x",syntax:"<length> | <percentage>",relevance:50,browsers:["E79","FF69","FFA79","S9","SM9","C42","CA42","O29"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/x"}],baseline:{status:"high",baseline_low_date:"2020-07-28",baseline_high_date:"2023-01-28"},description:"The x CSS property defines the x-axis coordinate of the top left corner of the SVG rect shape, image image, foreignObject viewport or nested svg viewport relative to the nearest <svg> ancestor's user coordinate system. If present, it overrides the element's x attribute."},{name:"y",syntax:"<length> | <percentage>",relevance:50,browsers:["E79","FF69","FFA79","S9","SM9","C42","CA42","O29"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/y"}],baseline:{status:"high",baseline_low_date:"2020-07-28",baseline_high_date:"2023-01-28"},description:"The y CSS property defines the y-axis coordinate of the top left corner of the SVG rect shape, image image, foreignObject viewport and nested svg viewport relative to the nearest <svg> ancestor's user coordinate system. If present, it overrides the element's y attribute."},{name:"ascent-override",atRule:"@font-face",syntax:"normal | <percentage>",relevance:51,description:"Describes the ascent metric of a font."},{name:"descent-override",atRule:"@font-face",syntax:"normal | <percentage>",relevance:51,description:"Describes the descent metric of a font."},{name:"font-display",atRule:"@font-face",syntax:"auto | block | swap | fallback | optional",values:[{name:"auto"},{name:"block"},{name:"swap"},{name:"fallback"},{name:"optional"}],relevance:77,description:"The font-display descriptor determines how a font face is displayed based on whether and when it is downloaded and ready to use."},{name:"line-gap-override",atRule:"@font-face",syntax:"normal | <percentage>",relevance:51,description:"Describes the line-gap metric of a font."},{name:"size-adjust",atRule:"@font-face",syntax:"<percentage>",relevance:51,description:"A multiplier for glyph outlines and metrics of a font."},{name:"base-palette",atRule:"@font-palette-values",syntax:"light | dark | <integer [0,\u221E]>",relevance:50,description:"The base-palette CSS descriptor is used to specify the name or index of a pre-defined palette to be used for creating a new palette. If the specified base-palette does not exist, then the palette defined at index 0 will be used."},{name:"override-colors",atRule:"@font-palette-values",syntax:"[ <integer [0,\u221E]> <color> ]#",relevance:50,description:"The override-colors CSS descriptor is used to override colors in the chosen base-palette for a color font."},{name:"bleed",atRule:"@page",syntax:"auto | <length>",relevance:50,description:"The bleed CSS at-rule descriptor, used with the @page at-rule, specifies the extent of the page bleed area outside the page box. This property only has effect if crop marks are enabled using the marks property."},{name:"marks",atRule:"@page",syntax:"none | [ crop || cross ]",relevance:50,description:"The marks CSS at-rule descriptor, used with the @page at-rule, adds crop and/or cross marks to the presentation of the document. Crop marks indicate where the page should be cut. Cross marks are used to align sheets."},{name:"page-orientation",atRule:"@page",syntax:"upright | rotate-left | rotate-right",values:[{name:"upright"},{name:"rotate-left"},{name:"rotate-right"}],relevance:50,description:"The page-orientation CSS descriptor for the @page at-rule controls the rotation of a printed page. It handles the flow of content across pages when the orientation of a page is changed. This behavior differs from the size descriptor in that a user can define the direction in which to rotate the page."},{name:"inherits",atRule:"@property",syntax:"true | false",values:[{name:"true"},{name:"false"}],relevance:53,description:"Specifies the inherit flag of the custom property registration represented by the @property rule, controlling whether or not the property inherits by default."},{name:"initial-value",atRule:"@property",syntax:"<declaration-value>?",relevance:53,description:"Specifies the initial value of the custom property registration represented by the @property rule, controlling the property\u2019s initial value."},{name:"syntax",atRule:"@property",syntax:"<string>",relevance:53,description:"Specifies the syntax of the custom property registration represented by the @property rule, controlling how the property\u2019s value is parsed at computed value time."},{name:"navigation",atRule:"@view-transition",syntax:"auto | none",values:[{name:"auto"},{name:"none"}],relevance:55,description:""},{name:"types",atRule:"@view-transition",syntax:"none | <custom-ident>+",relevance:50,description:""}],atDirectives:[{name:"@charset",browsers:["E12","FF1.5","FFA4","S4","SM4","C2","CA18","IE5.5","O9"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@charset"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Defines character set of the document."},{name:"@counter-style",browsers:["E91","FF33","FFA33","S17","SM17","C91","CA91","O77"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@counter-style"}],baseline:{status:"low",baseline_low_date:"2023-09-18"},description:"Defines a custom counter style."},{name:"@font-face",browsers:["E12","FF3.5","FFA4","S3.1","SM2","C1","CA18","IE4","O10"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@font-face"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Allows for linking to fonts that are automatically activated when needed. This permits authors to work around the limitation of 'web-safe' fonts, allowing for consistent rendering independent of the fonts available in a given user's environment."},{name:"@font-feature-values",browsers:["E111","FF34","FFA34","S9.1","SM9.3","C111","CA111","O97"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@font-feature-values"}],baseline:{status:"high",baseline_low_date:"2023-03-13",baseline_high_date:"2025-09-13"},description:"Defines named values for the indices used to select alternate glyphs for a given font family."},{name:"@import",browsers:["E12","FF1","FFA4","S1","SM1","C1","CA18","IE5.5","O3.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@import"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Includes content of another file."},{name:"@keyframes",browsers:["E12","FF16","FFA16","S9","SM9","C43","CA43","IE10","O30"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@keyframes"}],baseline:{status:"high",baseline_low_date:"2015-09-30",baseline_high_date:"2018-03-30"},description:"Defines set of animation key frames."},{name:"@layer",browsers:["E99","FF97","FFA97","S15.4","SM15.4","C99","CA99","O85"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@layer"}],baseline:{status:"high",baseline_low_date:"2022-03-14",baseline_high_date:"2024-09-14"},description:"Declare a cascade layer and the order of precedence in case of multiple cascade layers."},{name:"@media",browsers:["E12","FF1","FFA4","S3","SM1","C1","CA18","IE6","O9.2"],descriptors:[{name:"-webkit-device-pixel-ratio",references:[{name:"W3C Reference",url:"https://compat.spec.whatwg.org/#descdef-media--webkit-device-pixel-ratio"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/-webkit-device-pixel-ratio"}],type:"range",syntax:"<number>",description:"The -webkit-device-pixel-ratio is a non-standard Boolean CSS media feature which is an alternative to the standard resolution media feature.",browsers:["E12","FF63","FFA63","S3","SM1","C1","CA18","O15"],baseline:{status:"high",baseline_low_date:"2018-10-23",baseline_high_date:"2021-04-23"}},{name:"-webkit-transform-3d",references:[{name:"W3C Reference",url:"https://compat.spec.whatwg.org/#descdef-media--webkit-transform-3d"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/-webkit-transform-3d"}],type:"discrete",syntax:"<mq-boolean>",description:"The -webkit-transform-3d Boolean CSS media feature is a WebKit extension whose value is true if vendor-prefixed CSS 3D transforms are supported.",browsers:["E12","FF49","FFA49","S4","SM3.2","C2","CA18","O15"],baseline:{status:"high",baseline_low_date:"2016-09-20",baseline_high_date:"2019-03-20"}},{name:"any-hover",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-any-hover"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/any-hover"}],type:"discrete",syntax:"none | hover",values:[{name:"none"},{name:"hover"}],description:"The any-hover CSS media feature can be used to test whether any available input mechanism can hover over elements.",browsers:["E16","FF64","FFA64","S9","SM9","C41","CA41","O28"],baseline:{status:"high",baseline_low_date:"2018-12-11",baseline_high_date:"2021-06-11"}},{name:"any-pointer",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-any-pointer"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/any-pointer"}],type:"discrete",syntax:"none | coarse | fine",values:[{name:"none"},{name:"coarse"},{name:"fine"}],description:"The any-pointer CSS media feature tests whether the user has any pointing device (such as a mouse), and if so, how accurate it is.",browsers:["E12","FF64","FFA64","S9","SM9","C41","CA41","O28"],baseline:{status:"high",baseline_low_date:"2018-12-11",baseline_high_date:"2021-06-11"}},{name:"aspect-ratio",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-aspect-ratio"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/aspect-ratio"}],type:"range",syntax:"<ratio>",description:"The aspect-ratio CSS media feature can be used to test the aspect ratio of the viewport.",browsers:["E12","FF3.5","FFA4","S5","SM4.2","C3","CA18","IE9","O10"],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"}},{name:"color",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-color"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/color"}],type:"range",syntax:"<integer>",description:"The color CSS media feature can be used to test the number of bits per color component (red, green, blue) of the output device.",browsers:["E12","FF2","FFA4","S3","SM1","C1","CA18","IE9","O10"],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"}},{name:"color-gamut",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-color-gamut"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/color-gamut"}],type:"discrete",syntax:"srgb | p3 | rec2020",values:[{name:"srgb"},{name:"p3"},{name:"rec2020"}],description:"The color-gamut CSS media feature is used to apply CSS styles based on the approximate range of color gamut supported by the user agent and the output device.",browsers:["E79","FF110","FFA110","S10","SM10","C58","CA58","O45"],baseline:{status:"high",baseline_low_date:"2023-02-14",baseline_high_date:"2025-08-14"}},{name:"color-index",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-color-index"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/color-index"}],type:"range",syntax:"<integer>",description:"The color-index CSS media feature can be used to test the number of entries in the output device's color lookup table.",browsers:["E79","S8","SM8","C29","CA29","O16"],baseline:{status:"false"}},{name:"device-aspect-ratio",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-device-aspect-ratio"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/device-aspect-ratio"}],type:"range",syntax:"<ratio>",description:"The device-aspect-ratio CSS media feature can be used to test the width-to-height aspect ratio of an output device.",status:"obsolete",browsers:["E12","FF2","FFA4","S3","SM1","C1","CA18","IE9","O10"],baseline:{status:"false"}},{name:"device-height",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-device-height"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/device-height"}],type:"range",syntax:"<length>",description:"The device-height CSS media feature can be used to test the height of an output device's rendering surface.",status:"obsolete",browsers:["E12","FF2","FFA4","S3","SM1","C1","CA18","IE9","O10"],baseline:{status:"false"}},{name:"device-width",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-device-width"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/device-width"}],type:"range",syntax:"<length>",description:"The device-width CSS media feature can be used to test the width of an output device's rendering surface.",status:"obsolete",browsers:["E12","FF2","FFA4","S3","SM1","C1","CA18","IE9","O10"],baseline:{status:"false"}},{name:"display-mode",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-display-mode"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/display-mode"}],type:"discrete",syntax:"fullscreen | standalone | minimal-ui | browser | picture-in-picture",values:[{name:"fullscreen"},{name:"standalone"},{name:"minimal-ui"},{name:"browser"},{name:"picture-in-picture"}],description:"The display-mode CSS media feature can be used to test whether a web app is being displayed in a normal browser tab or in some alternative way, such as a standalone app or fullscreen mode.",browsers:["E79","FF47","FFA47","S13","SM12.2","C42","CA42","O29"],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"}},{name:"dynamic-range",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-dynamic-range"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/dynamic-range"}],type:"discrete",syntax:"standard | high",values:[{name:"standard"},{name:"high"}],description:"The dynamic-range CSS media feature can be used to test the combination of brightness, contrast ratio, and color depth that are supported by the user agent and the output device.",browsers:["E98","FF100","FFA100","S13.1","SM13.4","C98","CA98","O84"],baseline:{status:"high",baseline_low_date:"2022-05-03",baseline_high_date:"2024-11-03"}},{name:"environment-blending",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-environment-blending"}],type:"discrete",syntax:"opaque | additive | subtractive",values:[{name:"opaque"},{name:"additive"},{name:"subtractive"}],description:""},{name:"forced-colors",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-forced-colors"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/forced-colors"}],type:"discrete",syntax:"none | active",values:[{name:"none"},{name:"active"}],description:"The forced-colors CSS media feature is used to detect if the user agent has enabled a forced colors mode where it enforces a user-chosen limited color palette on the page. An example of a forced colors mode is Windows High Contrast mode.",browsers:["E79","FF89","FFA89","S16","SM16","C89","CA89","O75"],baseline:{status:"high",baseline_low_date:"2022-09-12",baseline_high_date:"2025-03-12"}},{name:"grid",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-grid"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/grid"}],type:"discrete",syntax:"<mq-boolean>",description:"The grid CSS media feature can be used to test whether the output device uses a grid-based screen.",browsers:["E12","FF2","FFA4","S3","SM1","C1","CA18","IE10","O10"],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"}},{name:"height",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-height"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/height"}],type:"range",syntax:"<length>",description:"The height CSS media feature can be used to apply styles based on the height of the viewport (or the page box, for paged media).",browsers:["E12","FF2","FFA4","S3","SM1","C1","CA18","IE9","O10"],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"}},{name:"horizontal-viewport-segments",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-horizontal-viewport-segments"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/horizontal-viewport-segments"}],type:"range",syntax:"<integer>",description:"Detects whether the device has a specified number of viewport segments laid out horizontally (side by side).",status:"experimental",browsers:["E138","C138","CA138","O122"],baseline:{status:"false"}},{name:"hover",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-hover"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/hover"}],type:"discrete",syntax:"none | hover",values:[{name:"none"},{name:"hover"}],description:"The hover CSS media feature can be used to test whether the user's primary input mechanism can hover over elements.",browsers:["E12","FF64","FFA64","S9","SM9","C38","CA50","O25"],baseline:{status:"high",baseline_low_date:"2018-12-11",baseline_high_date:"2021-06-11"}},{name:"inverted-colors",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-inverted-colors"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/inverted-colors"}],type:"discrete",syntax:"none | inverted",values:[{name:"none"},{name:"inverted"}],description:"The inverted-colors CSS media feature is used to test if the user agent or the underlying operating system has inverted all colors.",browsers:["S9.1","SM10"],baseline:{status:"false"}},{name:"monochrome",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-monochrome"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/monochrome"}],type:"range",syntax:"<integer>",description:"The monochrome CSS media feature can be used to test the number of bits per pixel in the monochrome frame buffer of the output device.",browsers:["E79","FF2","FFA4","S3","SM1","C1","CA18","O10"],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"}},{name:"nav-controls",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-nav-controls"}],type:"discrete",syntax:"none | back",values:[{name:"none"},{name:"back"}],description:""},{name:"orientation",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-orientation"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/orientation"}],type:"discrete",syntax:"portrait | landscape",values:[{name:"portrait"},{name:"landscape"}],description:"The orientation CSS media feature can be used to test the orientation of the viewport (or the page box, for paged media).",browsers:["E12","FF2","FFA4","S5","SM4.2","C3","CA18","IE9","O10.6"],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"}},{name:"overflow-block",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-overflow-block"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/overflow-block"}],type:"discrete",syntax:"none | scroll | paged",values:[{name:"none"},{name:"scroll"},{name:"paged"}],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.",browsers:["E113","FF66","FFA66","S17","SM17","C113","CA113","O99"],baseline:{status:"low",baseline_low_date:"2023-09-18"}},{name:"overflow-inline",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-overflow-inline"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/overflow-inline"}],type:"discrete",syntax:"none | scroll",values:[{name:"none"},{name:"scroll"}],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.",browsers:["E113","FF66","FFA66","S17","SM17","C113","CA113","O99"],baseline:{status:"low",baseline_low_date:"2023-09-18"}},{name:"pointer",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-pointer"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/pointer"}],type:"discrete",syntax:"none | coarse | fine",values:[{name:"none"},{name:"coarse"},{name:"fine"}],description:"The pointer CSS media feature tests whether the user has a pointing device (such as a mouse), and if so, how accurate the primary pointing device is.",browsers:["E12","FF64","FFA64","S9","SM9","C41","CA50","O28"],baseline:{status:"high",baseline_low_date:"2018-12-11",baseline_high_date:"2021-06-11"}},{name:"prefers-color-scheme",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-prefers-color-scheme"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/prefers-color-scheme"}],type:"discrete",syntax:"light | dark",values:[{name:"light"},{name:"dark"}],description:"The prefers-color-scheme CSS media feature is used to detect if a user has requested light or dark color themes.",browsers:["E79","FF67","FFA67","S12.1","SM13","C76","CA76","O62"],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"}},{name:"prefers-contrast",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-prefers-contrast"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/prefers-contrast"}],type:"discrete",syntax:"no-preference | less | more | custom",values:[{name:"no-preference"},{name:"less"},{name:"more"},{name:"custom"}],description:"The prefers-contrast CSS media feature is used to detect whether the user has requested the web content to be presented with a lower or higher contrast.",browsers:["E96","FF101","FFA101","S14.1","SM14.5","C96","CA96","O82"],baseline:{status:"high",baseline_low_date:"2022-05-31",baseline_high_date:"2024-11-30"}},{name:"prefers-reduced-data",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-prefers-reduced-data"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/prefers-reduced-data"}],type:"discrete",syntax:"no-preference | reduce",values:[{name:"no-preference"},{name:"reduce"}],description:"The prefers-reduced-data CSS media feature is used to detect if the user has requested the web content that consumes less internet traffic.",status:"experimental",browsers:["O71"],baseline:{status:"false"}},{name:"prefers-reduced-motion",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-prefers-reduced-motion"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/prefers-reduced-motion"}],type:"discrete",syntax:"no-preference | reduce",values:[{name:"no-preference"},{name:"reduce"}],description:"The prefers-reduced-motion CSS media feature is used to detect if a user has enabled a setting on their device to minimize the amount of non-essential motion. The setting is used to convey to the browser on the device that the user prefers an interface that removes, reduces, or replaces motion-based animations.",browsers:["E79","FF63","FFA64","S10.1","SM10.3","C74","CA74","O62"],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"}},{name:"prefers-reduced-transparency",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-prefers-reduced-transparency"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/prefers-reduced-transparency"}],type:"discrete",syntax:"no-preference | reduce",values:[{name:"no-preference"},{name:"reduce"}],description:"The prefers-reduced-transparency CSS media feature is used to detect if a user has enabled a setting on their device to reduce the transparent or translucent layer effects used on the device. Switching on such a setting can help improve contrast and readability for some users.",status:"experimental",browsers:["E118","C118","CA118","O104"],baseline:{status:"false"}},{name:"resolution",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-resolution"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/resolution"}],type:"range",syntax:"<resolution> | infinite",description:"The resolution CSS media feature can be used to test the pixel density of the output device.",browsers:["E12","FF8","FFA8","S16","SM16","C29","CA29","IE9","O16"],baseline:{status:"high",baseline_low_date:"2022-09-12",baseline_high_date:"2025-03-12"}},{name:"scan",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-scan"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/scan"}],type:"discrete",syntax:"interlace | progressive",values:[{name:"interlace"},{name:"progressive"}],description:"The scan CSS media feature is used to apply CSS styles based on the scanning process of the output device.",browsers:["E104","FF63","FFA63","S16.4","SM16.4","C104","CA104","O90"],baseline:{status:"high",baseline_low_date:"2023-03-27",baseline_high_date:"2025-09-27"}},{name:"scripting",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-scripting"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/scripting"}],type:"discrete",syntax:"none | initial-only | enabled",values:[{name:"none"},{name:"initial-only"},{name:"enabled"}],description:"The scripting CSS media feature can be used to test whether scripting (such as JavaScript) is available.",browsers:["E120","FF113","FFA113","S17","SM17","C120","CA120","O106"],baseline:{status:"low",baseline_low_date:"2023-12-07"}},{name:"shape",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/css-round-display-1/#descdef-media-shape"}],type:"discrete",syntax:"rect | round",values:[{name:"rect"},{name:"round"}],description:"The shape CSS media feature can be used to test the shape of the device to distinguish rectangular and round displays."},{name:"update",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-update"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/update"}],type:"discrete",syntax:"none | slow | fast",values:[{name:"none"},{name:"slow"},{name:"fast"}],description:"The update CSS media feature can be used to test how frequently (if at all) the output device is able to modify the appearance of content once rendered.",browsers:["E113","FF102","FFA102","S17","SM17","C113","CA113","O99"],baseline:{status:"low",baseline_low_date:"2023-09-18"}},{name:"vertical-viewport-segments",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-vertical-viewport-segments"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/vertical-viewport-segments"}],type:"range",syntax:"<integer>",description:"Detects whether the device has a specified number of viewport segments laid out vertically (top to bottom)",status:"experimental",browsers:["E138","C138","CA138","O122"],baseline:{status:"false"}},{name:"video-color-gamut",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-video-color-gamut"}],type:"discrete",syntax:"srgb | p3 | rec2020",values:[{name:"srgb"},{name:"p3"},{name:"rec2020"}],description:""},{name:"video-dynamic-range",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-video-dynamic-range"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/video-dynamic-range"}],type:"discrete",syntax:"standard | high",values:[{name:"standard"},{name:"high"}],description:"The video-dynamic-range CSS media feature can be used to test the combination of brightness, contrast ratio, and color depth that are supported by the video plane of the user agent and the output device.",browsers:["FF100","FFA100","O84"],baseline:{status:"false"}},{name:"width",references:[{name:"W3C Reference",url:"https://drafts.csswg.org/mediaqueries-5/#descdef-media-width"},{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media/width"}],type:"range",syntax:"<length>",description:"The width CSS media feature can be used to test the width of the viewport (or the page box, for paged media).",browsers:["E12","FF2","FFA4","S3","SM1","C1","CA18","IE9","O10"],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"}}],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@media"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Defines a stylesheet for a particular media type."},{name:"@-moz-document",browsers:["FF1.8"],description:"Gecko-specific at-rule that restricts the style rules contained within it based on the URL of the document."},{name:"@-moz-keyframes",browsers:["FF5"],description:"Defines set of animation key frames."},{name:"@-ms-viewport",browsers:["E","IE10"],description:"Specifies the size, zoom factor, and orientation of the viewport."},{name:"@namespace",browsers:["E12","FF1","FFA4","S1","SM1","C1","CA18","IE9","O8"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@namespace"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Declares a prefix and associates it with a namespace name."},{name:"@-o-keyframes",browsers:["O12"],description:"Defines set of animation key frames."},{name:"@-o-viewport",browsers:["O11"],description:"Specifies the size, zoom factor, and orientation of the viewport."},{name:"@page",browsers:["E12","FF19","FFA19","S18.2","SM18.2","C2","CA18","IE8","O6"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@page"}],baseline:{status:"low",baseline_low_date:"2024-12-11"},description:"Directive defines various page parameters."},{name:"@property",browsers:["E85","FF128","FFA128","S16.4","SM16.4","C85","CA85","O71"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@property"}],baseline:{status:"low",baseline_low_date:"2024-07-09"},description:"Describes the aspect of custom properties and variables."},{name:"@supports",browsers:["E12","FF22","FFA22","S9","SM9","C28","CA28","O12.1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@supports"}],baseline:{status:"high",baseline_low_date:"2015-09-30",baseline_high_date:"2018-03-30"},description:"A conditional group rule whose condition tests whether the user agent supports CSS property:value pairs."},{name:"@-webkit-keyframes",browsers:["C","S4"],description:"Defines set of animation key frames."},{name:"@container",description:"The @container CSS at-rule is a conditional group rule that applies styles to a containment context.",browsers:["E105","FF110","FFA110","S16","SM16","C105","CA105","O91"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@container"}],baseline:{status:"high",baseline_low_date:"2023-02-14",baseline_high_date:"2025-08-14"}},{name:"@document",description:"The @document CSS at-rule restricts the style rules contained within it based on the URL of the document. It is designed primarily for user-defined style sheets (see userchrome.org for more information), though it can be used on author-defined style sheets, too.",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@document"}],baseline:{status:"false"}},{name:"@font-palette-values",description:"The @font-palette-values CSS at-rule allows you to customize the default values of font-palette created by the font-maker.",browsers:["E101","FF107","FFA107","S15.4","SM15.4","C101","CA101","O87"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@font-palette-values"}],baseline:{status:"high",baseline_low_date:"2022-11-15",baseline_high_date:"2025-05-15"}},{name:"@position-try",description:"The @position-try CSS at-rule is used to define a custom position try fallback option, which can be used to define positioning and alignment for anchor-positioned elements. One or more sets of position try fallback options can be applied to the anchored element via the position-try-fallbacks property or position-try shorthand. When the positioned element is moved to a position where it starts to overflow its containing block or the viewport, the browser will select the first position try fallback option it finds that places the positioned element fully back on-screen.",browsers:["E125","FF147","FFA147","S26","SM26","C125","CA125","O111"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@position-try"}],baseline:{status:"low",baseline_low_date:"2026-01-13"}},{name:"@scope",description:"The @scope CSS at-rule enables you to select elements in specific DOM subtrees, targeting elements precisely without writing overly-specific selectors that are hard to override, and without coupling your selectors too tightly to the DOM structure.",browsers:["E118","FF146","FFA146","S17.4","SM17.4","C118","CA118","O104"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@scope"}],baseline:{status:"low",baseline_low_date:"2025-12-09"}},{name:"@starting-style",description:"The @starting-style CSS at-rule is used to define starting values for properties set on an element that you want to transition from when the element receives its first style update, i.e., when an element is first displayed on a previously loaded page.",browsers:["E117","FF129","FFA129","S17.5","SM17.5","C117","CA117","O103"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@starting-style"}],baseline:{status:"low",baseline_low_date:"2024-08-06"}},{name:"@view-transition",description:"The @view-transition CSS at-rule is used to opt in the current and destination documents to undergo a view transition, in the case of a cross-document navigation.",browsers:["E126","S18.2","SM18.2","C126","CA126","O112"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/At-rules/@view-transition"}],baseline:{status:"false"}}],pseudoClasses:[{name:":active",browsers:["E12","FF1","FFA4","S1","SM1","C1","CA18","IE4","O5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:active"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Applies while an element is being activated by the user. For example, between the times the user presses the mouse button and releases it."},{name:":any-link",browsers:["E79","FF50","FFA50","S9","SM9","C65","CA65","O52"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:any-link"}],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"},description:"Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links."},{name:":checked",browsers:["E12","FF1","FFA4","S3.1","SM2","C1","CA18","IE9","O9"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:checked"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Radio and checkbox elements can be toggled by the user. Some menu items are 'checked' when the user selects them. When such elements are toggled 'on' the :checked pseudo-class applies."},{name:":corner-present",browsers:["C","S5"],description:"Non-standard. Indicates whether or not a scrollbar corner is present."},{name:":decrement",browsers:["C","S5"],description:"Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will decrement the view's position when used."},{name:":default",browsers:["E79","FF4","FFA4","S5","SM5","C10","CA18","O10"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:default"}],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"},description:"Applies to the one or more UI elements that are the default among a set of similar elements. Typically applies to context menu items, buttons, and select lists/menus."},{name:":disabled",browsers:["E12","FF1","FFA4","S3.1","SM2","C1","CA18","IE9","O9"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:disabled"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Represents user interface elements that are in a disabled state; such elements have a corresponding enabled state."},{name:":double-button",browsers:["C","S5"],description:"Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed together at the same end of the scrollbar."},{name:":empty",browsers:["E12","FF1","FFA4","S3.1","SM2","C1","CA18","IE9","O9.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:empty"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Represents an element that has no children at all."},{name:":enabled",browsers:["E12","FF1","FFA4","S3.1","SM2","C1","CA18","IE9","O9"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:enabled"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Represents user interface elements that are in an enabled state; such elements have a corresponding disabled state."},{name:":end",browsers:["C","S5"],description:"Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed after the thumb."},{name:":first",browsers:["E12","FF116","FFA116","S6","SM6","C18","CA18","IE8","O9.2"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:first"}],baseline:{status:"high",baseline_low_date:"2023-08-01",baseline_high_date:"2026-02-01"},description:"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the page context."},{name:":first-child",browsers:["E12","FF3","FFA4","S3.1","SM4","C4","CA18","IE7","O9.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:first-child"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Same as :nth-child(1). Represents an element that is the first child of some other element."},{name:":first-of-type",browsers:["E12","FF3.5","FFA4","S3.1","SM2","C1","CA18","IE9","O9.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:first-of-type"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Same as :nth-of-type(1). Represents an element that is the first sibling of its type in the list of children of its parent element."},{name:":focus",browsers:["E12","FF1","FFA4","S1","SM1","C1","CA18","IE8","O7"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:focus"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Applies while an element has the focus (accepts keyboard or mouse events, or other forms of input)."},{name:":fullscreen",browsers:["E12","FF64","FFA64","S16.4","C71","CA71","IE11","O58"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:fullscreen"}],baseline:{status:"false"},description:"Matches any element that has its fullscreen flag set."},{name:":future",browsers:["E79","S7","SM7","C23","CA25","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:future"}],baseline:{status:"false"},description:"Represents any element that is defined to occur entirely after a :current element."},{name:":horizontal",browsers:["C","S5"],description:"Non-standard. Applies to any scrollbar pieces that have a horizontal orientation."},{name:":host",browsers:["E79","FF63","FFA63","S10","SM10","C54","CA54","O41"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:host"}],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"},description:"When evaluated in the context of a shadow tree, matches the shadow tree's host element."},{name:":host",browsers:["E79","FF63","FFA63","S10","SM10","C54","CA54","O41"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:host"}],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"},description:"When evaluated in the context of a shadow tree, it matches the shadow tree's host element if the host element, in its normal context, matches the selector argument."},{name:":host-context",browsers:["E79","C54","CA54","O41"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:host-context"}],baseline:{status:"false"},description:"Tests whether there is an ancestor, outside the shadow tree, which matches a particular selector."},{name:":hover",browsers:["E12","FF1","FFA4","S2","SM1","C1","CA18","IE4","O4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:hover"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Applies while the user designates an element with a pointing device, but does not necessarily activate it. For example, a visual user agent could apply this pseudo-class when the cursor (mouse pointer) hovers over a box generated by the element."},{name:":increment",browsers:["C","S5"],description:"Non-standard. Applies to buttons and track pieces. Indicates whether or not the button or track piece will increment the view's position when used."},{name:":indeterminate",browsers:["E12","FF2","FFA4","S3","SM1","C1","CA18","IE10","O9"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:indeterminate"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Applies to UI elements whose value is in an indeterminate state."},{name:":in-range",browsers:["E13","FF29","FFA16","S5.1","SM5","C10","CA18","O11"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:in-range"}],baseline:{status:"high",baseline_low_date:"2015-11-12",baseline_high_date:"2018-05-12"},description:"Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes."},{name:":invalid",browsers:["E12","FF4","FFA4","S5","SM5","C10","CA18","IE10","O10"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:invalid"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification."},{name:":lang",browsers:["E12","FF1","FFA4","S3.1","SM2","C1","CA18","IE8","O8"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:lang"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Represents an element that is in language specified."},{name:":last-child",browsers:["E12","FF1","FFA4","S3.1","SM2","C1","CA18","IE9","O9.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:last-child"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Same as :nth-last-child(1). Represents an element that is the last child of some other element."},{name:":last-of-type",browsers:["E12","FF3.5","FFA4","S3.1","SM2","C1","CA18","IE9","O9.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:last-of-type"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Same as :nth-last-of-type(1). Represents an element that is the last sibling of its type in the list of children of its parent element."},{name:":left",browsers:["E12","S5","SM4.2","C6","CA18","IE8","O9.2"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:left"}],baseline:{status:"false"},description:"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the page context."},{name:":link",browsers:["E12","FF1","FFA4","S1","SM3.2","C1","CA18","IE3","O3.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:link"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Applies to links that have not yet been visited."},{name:":matches",browsers:["S9"],description:"Takes a selector list as its argument. It represents an element that is represented by its argument."},{name:":-moz-any",browsers:["FF4"],description:"Represents an element that is represented by the selector list passed as its argument. Standardized as :matches()."},{name:":-moz-any-link",browsers:["FF1"],description:"Represents an element that acts as the source anchor of a hyperlink. Applies to both visited and unvisited links."},{name:":-moz-broken",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:-moz-broken"}],baseline:{status:"false"},description:"Non-standard. Matches elements representing broken images."},{name:":-moz-drag-over",browsers:["FF1"],description:"Non-standard. Matches elements when a drag-over event applies to it."},{name:":-moz-first-node",browsers:["FF55","FFA55"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:-moz-first-node"}],baseline:{status:"false"},description:"Non-standard. Represents an element that is the first child node of some other element."},{name:":-moz-focusring",browsers:["FF4"],description:"Non-standard. Matches an element that has focus and focus ring drawing is enabled in the browser."},{name:":-moz-full-screen",browsers:["FF9"],description:"Matches any element that has its fullscreen flag set. Standardized as :fullscreen."},{name:":-moz-last-node",browsers:["FF55","FFA55"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:-moz-last-node"}],baseline:{status:"false"},description:"Non-standard. Represents an element that is the last child node of some other element."},{name:":-moz-loading",browsers:["FF3"],description:"Non-standard. Matches elements, such as images, that haven't started loading yet."},{name:":-moz-only-whitespace",browsers:["FF1","FFA4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:-moz-only-whitespace"}],baseline:{status:"false"},description:"The same as :empty, except that it additionally matches elements that only contain code points affected by whitespace processing. Standardized as :blank."},{name:":-moz-placeholder",browsers:["FF4"],description:"Deprecated. Represents placeholder text in an input field. Use ::-moz-placeholder for Firefox 19+."},{name:":-moz-submit-invalid",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:-moz-submit-invalid"}],baseline:{status:"false"},description:"Non-standard. Represents any submit button when the contents of the associated form are not valid."},{name:":-moz-suppressed",browsers:["FF3"],description:"Non-standard. Matches elements representing images that have been blocked from loading."},{name:":-moz-ui-invalid",browsers:["FF4"],description:"Non-standard. Represents any validated form element whose value isn't valid "},{name:":-moz-ui-valid",browsers:["FF4"],description:"Non-standard. Represents any validated form element whose value is valid "},{name:":-moz-user-disabled",browsers:["FF3"],description:"Non-standard. Matches elements representing images that have been disabled due to the user's preferences."},{name:":-moz-window-inactive",browsers:["FF4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:-moz-window-inactive"}],baseline:{status:"false"},description:"Non-standard. Matches elements in an inactive window."},{name:":-ms-fullscreen",browsers:["IE11"],description:"Matches any element that has its fullscreen flag set."},{name:":-ms-input-placeholder",browsers:["IE10"],description:"Represents placeholder text in an input field. Note: for Edge use the pseudo-element ::-ms-input-placeholder. Standardized as ::placeholder."},{name:":-ms-keyboard-active",browsers:["IE10"],description:"Windows Store apps only. Applies one or more styles to an element when it has focus and the user presses the space bar."},{name:":-ms-lang",browsers:["E","IE10"],description:"Represents an element that is in the language specified. Accepts a comma separated list of language tokens."},{name:":no-button",browsers:["C","S5"],description:"Non-standard. Applies to track pieces. Applies when there is no button at that end of the track."},{name:":not",browsers:["E12","FF1","FFA4","S3.1","SM2","C1","CA18","IE9","O9.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:not"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"The negation pseudo-class, :not(X), is a functional notation taking a simple selector (excluding the negation pseudo-class itself) as an argument. It represents an element that is not represented by its argument."},{name:":nth-child",browsers:["E12","FF3.5","FFA4","S3.1","SM2","C1","CA18","IE9","O9.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:nth-child"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Represents an element that has an+b-1 siblings before it in the document tree, for any positive integer or zero value of n, and has a parent element."},{name:":nth-last-child",browsers:["E12","FF3.5","FFA4","S3.1","SM2","C4","CA18","IE9","O9"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:nth-last-child"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Represents an element that has an+b-1 siblings after it in the document tree, for any positive integer or zero value of n, and has a parent element."},{name:":nth-last-of-type",browsers:["E12","FF3.5","FFA4","S3.1","SM2","C4","CA18","IE9","O9.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:nth-last-of-type"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Represents an element that has an+b-1 siblings with the same expanded element name after it in the document tree, for any zero or positive integer value of n, and has a parent element."},{name:":nth-of-type",browsers:["E12","FF3.5","FFA4","S3.1","SM2","C1","CA18","IE9","O9.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:nth-of-type"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Represents an element that has an+b-1 siblings with the same expanded element name before it in the document tree, for any zero or positive integer value of n, and has a parent element."},{name:":only-child",browsers:["E12","FF1.5","FFA4","S3.1","SM2","C2","CA18","IE9","O9.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:only-child"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Represents an element that has a parent element and whose parent element has no other element children. Same as :first-child:last-child or :nth-child(1):nth-last-child(1), but with a lower specificity."},{name:":only-of-type",browsers:["E12","FF3.5","FFA4","S3.1","SM2","C1","CA18","IE9","O9.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:only-of-type"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Matches every element that is the only child of its type, of its parent. Same as :first-of-type:last-of-type or :nth-of-type(1):nth-last-of-type(1), but with a lower specificity."},{name:":optional",browsers:["E12","FF4","FFA4","S5","SM5","C10","CA18","IE10","O10"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:optional"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional."},{name:":out-of-range",browsers:["E13","FF29","FFA16","S5.1","SM5","C10","CA18","O11"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:out-of-range"}],baseline:{status:"high",baseline_low_date:"2015-11-12",baseline_high_date:"2018-05-12"},description:"Used in conjunction with the min and max attributes, whether on a range input, a number field, or any other types that accept those attributes."},{name:":past",browsers:["E79","S7","SM7","C23","CA25","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:past"}],baseline:{status:"false"},description:"Represents any element that is defined to occur entirely prior to a :current element."},{name:":read-only",browsers:["E13","FF78","FFA79","S4","SM3.2","C1","CA18","O9"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:read-only"}],baseline:{status:"high",baseline_low_date:"2020-07-28",baseline_high_date:"2023-01-28"},description:"An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only."},{name:":read-write",browsers:["E13","FF78","FFA79","S4","SM3.2","C1","CA18","O9"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:read-write"}],baseline:{status:"high",baseline_low_date:"2020-07-28",baseline_high_date:"2023-01-28"},description:"An element whose contents are not user-alterable is :read-only. However, elements whose contents are user-alterable (such as text input fields) are considered to be in a :read-write state. In typical documents, most elements are :read-only."},{name:":required",browsers:["E12","FF4","FFA4","S5","SM5","C10","CA18","IE10","O10"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:required"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"A form element is :required or :optional if a value for it is, respectively, required or optional before the form it belongs to is submitted. Elements that are not form elements are neither required nor optional."},{name:":right",browsers:["E12","S5","SM4.2","C6","CA18","IE8","O9.2"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:right"}],baseline:{status:"false"},description:"When printing double-sided documents, the page boxes on left and right pages may be different. This can be expressed through CSS pseudo-classes defined in the page context."},{name:":root",browsers:["E12","FF1","FFA4","S1","SM1","C1","CA18","IE9","O9.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:root"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Represents an element that is the root of the document. In HTML 4, this is always the HTML element."},{name:":scope",browsers:["E79","FF32","FFA32","S7","SM7","C27","CA27","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:scope"}],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"},description:"Represents any element that is in the contextual reference element set."},{name:":single-button",browsers:["C","S5"],description:"Non-standard. Applies to buttons and track pieces. Applies when both buttons are displayed separately at either end of the scrollbar."},{name:":start",browsers:["C","S5"],description:"Non-standard. Applies to buttons and track pieces. Indicates whether the object is placed before the thumb."},{name:":target",browsers:["E12","FF1","FFA4","S1.3","SM2","C1","CA18","IE9","O9.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:target"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Some URIs refer to a location within a resource. This kind of URI ends with a 'number sign' (#) followed by an anchor identifier (called the fragment identifier)."},{name:":valid",browsers:["E12","FF4","FFA4","S5","SM5","C10","CA18","IE10","O10"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:valid"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"An element is :valid or :invalid when it is, respectively, valid or invalid with respect to data validity semantics defined by a different specification."},{name:":vertical",browsers:["C","S5"],description:"Non-standard. Applies to any scrollbar pieces that have a vertical orientation."},{name:":visited",browsers:["E12","FF1","FFA4","S1","SM1","C1","CA18","IE4","O3.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:visited"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Applies once the link has been visited by the user."},{name:":-webkit-any",browsers:["C","S5"],description:"Represents an element that is represented by the selector list passed as its argument. Standardized as :matches()."},{name:":-webkit-full-screen",browsers:["C","S6"],description:"Matches any element that has its fullscreen flag set. Standardized as :fullscreen."},{name:":window-inactive",browsers:["C","S3"],description:"Non-standard. Applies to all scrollbar pieces. Indicates whether or not the window containing the scrollbar is currently active."},{name:":active-view-transition",description:"Matches the root element of a document when a view transition is in progress (active) and stops matching once the transition has completed.",browsers:["E125","FF144","FFA144","S18","SM18","C125","CA125","O111"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:active-view-transition"}],baseline:{status:"low",baseline_low_date:"2025-10-14"}},{name:":active-view-transition-type",description:"",browsers:["E125","FF147","FFA147","S18.2","SM18.2","C125","CA125","O111"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:active-view-transition-type"}],baseline:{status:"low",baseline_low_date:"2026-01-13"}},{name:":autofill",description:"The :autofill CSS pseudo-class matches when an input element has its value autofilled by the browser. The class stops matching if the user edits the field.",browsers:["E110","S15","SM15","C110","CA110","O96"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:autofill"}],baseline:{status:"false"}},{name:":blank",description:"The :blank CSS pseudo-class selects empty user input elements (eg. <input> or <textarea>).",status:"experimental"},{name:":buffering",description:"The :buffering CSS pseudo-class selector represents an element that is playable, such as audio or video, when the playable element is buffering a media resource.",browsers:["S15.4","SM15.4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:buffering"}],baseline:{status:"false"}},{name:":current",description:"The :current CSS pseudo-class selector is a time-dimensional pseudo-class that represents the element, or an ancestor of the element, that is currently being displayed",status:"experimental"},{name:":defined",description:"The :defined CSS pseudo-class represents any element that has been defined. This includes any standard element built in to the browser, and custom elements that have been successfully defined (i.e. with the CustomElementRegistry.define() method).",browsers:["E79","FF63","FFA63","S10","SM10","C54","CA54","O41"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:defined"}],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"}},{name:":dir",description:"The :dir() CSS pseudo-class matches elements based on the directionality of the text contained in them.",browsers:["E120","FF49","FFA49","S16.4","SM16.4","C120","CA120","O106"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:dir"}],baseline:{status:"low",baseline_low_date:"2023-12-07"}},{name:":focus-visible",description:"The :focus-visible pseudo-class applies while an element matches the :focus pseudo-class and the UA determines via heuristics that the focus should be made evident on the element.",browsers:["E86","FF85","FFA85","S15.4","SM15.4","C86","CA86","O72"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:focus-visible"}],baseline:{status:"high",baseline_low_date:"2022-03-14",baseline_high_date:"2024-09-14"}},{name:":focus-within",description:"The :focus-within pseudo-class applies to any element for which the :focus pseudo class applies as well as to an element whose descendant in the flat tree (including non-element nodes, such as text nodes) matches the conditions for matching :focus.",browsers:["E79","FF52","FFA52","S10.1","SM10.3","C60","CA60","O47"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:focus-within"}],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"}},{name:":has",description:"The functional :has() CSS pseudo-class represents an element if any of the relative selectors that are passed as an argument match at least one element when anchored against this element. ",browsers:["E105","FF121","FFA121","S15.4","SM15.4","C105","CA105","O91"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:has"}],baseline:{status:"low",baseline_low_date:"2023-12-19"}},{name:":has-slotted",description:"The :has-slotted CSS pseudo-class matches when the content of a slot element is not empty or not using the default value (see Using templates and slots for more information).",browsers:["FF136","FFA136"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:has-slotted"}],baseline:{status:"false"}},{name:":is",description:"The :is() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list. This is useful for writing large selectors in a more compact form.",browsers:["E88","FF78","FFA79","S14","SM14","C88","CA88","O74"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:is"}],baseline:{status:"high",baseline_low_date:"2021-01-21",baseline_high_date:"2023-07-21"}},{name:":local-link",description:"The :local-link CSS pseudo-class represents an link to the same document",status:"experimental"},{name:":modal",description:"The :modal CSS pseudo-class matches an element that is in a state in which it excludes all interaction with elements outside it until the interaction has been dismissed. Multiple elements can be selected by the :modal pseudo-class at the same time, but only one of them will be active and able to receive input.",browsers:["E105","FF103","FFA103","S15.6","SM15.6","C105","CA105","O91"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:modal"}],baseline:{status:"high",baseline_low_date:"2022-09-02",baseline_high_date:"2025-03-02"}},{name:":muted",description:"The :muted CSS pseudo-class selector represents an element that is capable of making sound, such as audio or video, but is muted (forced silent).",browsers:["S15.4","SM15.4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:muted"}],baseline:{status:"false"}},{name:":open",description:"The :open CSS pseudo-class represents an element that has open and closed states, only when it is currently in the open state.",browsers:["E133","FF136","FFA136","C133","CA133","O118"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:open"}],baseline:{status:"false"}},{name:":paused",description:"The :paused CSS pseudo-class selector is a resource state pseudo-class that will match an audio, video, or similar resource that is capable of being \u201Cplayed\u201D or \u201Cpaused\u201D, when that element is \u201Cpaused\u201D.",browsers:["S15.4","SM15.4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:paused"}],baseline:{status:"false"}},{name:":picture-in-picture",description:"The :picture-in-picture CSS pseudo-class matches the element which is currently in picture-in-picture mode.",browsers:["E110","S13.1","SM13.4","C110","CA110","O96"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:picture-in-picture"}],baseline:{status:"false"}},{name:":placeholder-shown",description:"The :placeholder-shown CSS pseudo-class represents any <input> or <textarea> element that is currently displaying placeholder text.",browsers:["E79","FF51","FFA51","S9","SM9","C47","CA47","IE10","O34"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:placeholder-shown"}],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"}},{name:":playing",description:"The :playing CSS pseudo-class selector is a resource state pseudo-class that will match an audio, video, or similar resource that is capable of being \u201Cplayed\u201D or \u201Cpaused\u201D, when that element is \u201Cplaying\u201D. ",browsers:["S15.4","SM15.4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:playing"}],baseline:{status:"false"}},{name:":popover-open",description:'The :popover-open CSS pseudo-class represents a {{domxref("Popover API", "popover", "", "nocode")}} element (i.e. one with a popover attribute) that is in the showing state. You can use this to apply style to popover elements only when they are shown.',browsers:["E114","FF125","FFA125","S17","SM17","C114","CA114","O100"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:popover-open"}],baseline:{status:"low",baseline_low_date:"2024-04-16"}},{name:":seeking",description:"The :seeking CSS pseudo-class selector represents an element that is playable, such as audio or video, when the playable element is seeking a playback position in the media resource.",browsers:["S15.4","SM15.4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:seeking"}],baseline:{status:"false"}},{name:":stalled",description:"The :stalled CSS pseudo-class selector represents an element that is playable, such as audio or video, when playback is stalled.",browsers:["S15.4","SM15.4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:stalled"}],baseline:{status:"false"}},{name:":state",description:"The :state() CSS pseudo-class matches custom elements that have the specified custom state.",browsers:["E125","FF126","FFA126","S17.4","SM17.4","C125","CA125","O111"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:state"}],baseline:{status:"low",baseline_low_date:"2024-05-17"}},{name:":target-current",description:"The :target-current CSS pseudo-class selects the active scroll marker \u2014 the ::scroll-marker pseudo-element of a scroll-marker-group that is currently scrolled to. This selector can be used to style the active navigation position within a scroll marker group.",status:"experimental",browsers:["E135","C135","CA135","O120"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:target-current"}],baseline:{status:"false"}},{name:":target-within",description:"The :target-within CSS pseudo-class represents an element that is a target element or contains an element that is a target. A target element is a unique element with an id matching the URL's fragment.",status:"experimental"},{name:":user-invalid",description:"The :user-invalid CSS pseudo-class represents any validated form element whose value isn't valid based on their validation constraints, after the user has interacted with it.",browsers:["E119","FF88","FFA88","S16.5","SM16.5","C119","CA119","O105"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:user-invalid"}],baseline:{status:"low",baseline_low_date:"2023-11-02"}},{name:":user-valid",description:"The :user-valid CSS pseudo-class represents any validated form element whose value validates correctly based on its validation constraints. However, unlike :valid it only matches once the user has interacted with it.",browsers:["E119","FF88","FFA88","S16.5","SM16.5","C119","CA119","O105"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:user-valid"}],baseline:{status:"low",baseline_low_date:"2023-11-02"}},{name:":volume-locked",description:'The :volume-locked CSS pseudo-class selector represents an element that is capable of making sound, such as audio or video, but the audio volume of the media element is currently "locked" by the user.',browsers:["S15.4","SM15.4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:volume-locked"}],baseline:{status:"false"}},{name:":where",description:"The :where() CSS pseudo-class function takes a selector list as its argument, and selects any element that can be selected by one of the selectors in that list.",browsers:["E88","FF78","FFA79","S14","SM14","C88","CA88","O74"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/:where"}],baseline:{status:"high",baseline_low_date:"2021-01-21",baseline_high_date:"2023-07-21"}},{name:":xr-overlay",description:"",status:"experimental",browsers:["E83","C83","CA83","O69"],baseline:{status:"false"}}],pseudoElements:[{name:"::after",browsers:["E12","FF1.5","FFA4","S4","SM3.2","C1","CA18","IE9","O7"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::after"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Represents a styleable child pseudo-element immediately after the originating element's actual content."},{name:"::backdrop",browsers:["E79","FF47","FFA47","S15.4","SM15.4","C37","CA37","IE11","O24"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::backdrop"}],baseline:{status:"high",baseline_low_date:"2022-03-14",baseline_high_date:"2024-09-14"},description:"Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen)."},{name:"::before",browsers:["E12","FF1.5","FFA4","S4","SM3","C1","CA18","IE9","O7"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::before"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Represents a styleable child pseudo-element immediately before the originating element's actual content."},{name:"::content",browsers:["C35","O22"],description:"Deprecated. Matches the distribution list itself, on elements that have one. Use ::slotted for forward compatibility."},{name:"::cue",browsers:["E79","FF55","FFA55","S7","SM7","C26","CA26","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::cue"}],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"}},{name:"::cue",browsers:["E79","FF55","FFA55","S7","SM7","C26","CA26","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::cue"}],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"}},{name:"::cue-region",browsers:["C","O16","S6"]},{name:"::cue-region",browsers:["C","O16","S6"]},{name:"::first-letter",browsers:["E12","FF1","FFA4","S1","SM1","C1","CA18","IE9","O7"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::first-letter"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Represents the first letter of an element, if it is not preceded by any other content (such as images or inline tables) on its line."},{name:"::first-line",browsers:["E12","FF1","FFA4","S1","SM1","C1","CA18","IE9","O7"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::first-line"}],baseline:{status:"high",baseline_low_date:"2015-07-29",baseline_high_date:"2018-01-29"},description:"Describes the contents of the first formatted line of its originating element."},{name:"::-moz-focus-inner",browsers:["FF4"]},{name:"::-moz-focus-outer",browsers:["FF4"]},{name:"::-moz-list-bullet",browsers:["FF1","FFA4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-moz-list-bullet"}],baseline:{status:"false"},description:"Used to style the bullet of a list element. Similar to the standardized ::marker."},{name:"::-moz-list-number",browsers:["FF1","FFA4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-moz-list-number"}],baseline:{status:"false"},description:"Used to style the numbers of a list element. Similar to the standardized ::marker."},{name:"::-moz-placeholder",browsers:["FF19"],description:"Represents placeholder text in an input field"},{name:"::-moz-progress-bar",browsers:["FF6","FFA6"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-moz-progress-bar"}],baseline:{status:"false"},description:"Represents the bar portion of a progress bar."},{name:"::-moz-selection",browsers:["FF1"],description:"Represents the portion of a document that has been highlighted by the user."},{name:"::-ms-backdrop",browsers:["IE11"],description:"Used to create a backdrop that hides the underlying document for an element in a top layer (such as an element that is displayed fullscreen)."},{name:"::-ms-browse",browsers:["E","IE10"],description:"Represents the browse button of an input type=file control."},{name:"::-ms-check",browsers:["E","IE10"],description:"Represents the check of a checkbox or radio button input control."},{name:"::-ms-clear",browsers:["E","IE10"],description:"Represents the clear button of a text input control"},{name:"::-ms-expand",browsers:["E","IE10"],description:"Represents the drop-down button of a select control."},{name:"::-ms-fill",browsers:["E","IE10"],description:"Represents the bar portion of a progress bar."},{name:"::-ms-fill-lower",browsers:["E","IE10"],description:"Represents the portion of the slider track from its smallest value up to the value currently selected by the thumb. In a left-to-right layout, this is the portion of the slider track to the left of the thumb."},{name:"::-ms-fill-upper",browsers:["E","IE10"],description:"Represents the portion of the slider track from the value currently selected by the thumb up to the slider's largest value. In a left-to-right layout, this is the portion of the slider track to the right of the thumb."},{name:"::-ms-reveal",browsers:["E","IE10"],description:"Represents the password reveal button of an input type=password control."},{name:"::-ms-thumb",browsers:["E","IE10"],description:"Represents the portion of range input control (also known as a slider control) that the user drags."},{name:"::-ms-ticks-after",browsers:["E","IE10"],description:"Represents the tick marks of a slider that begin just after the thumb and continue up to the slider's largest value. In a left-to-right layout, these are the ticks to the right of the thumb."},{name:"::-ms-ticks-before",browsers:["E","IE10"],description:"Represents the tick marks of a slider that represent its smallest values up to the value currently selected by the thumb. In a left-to-right layout, these are the ticks to the left of the thumb."},{name:"::-ms-tooltip",browsers:["E","IE10"],description:"Represents the tooltip of a slider (input type=range)."},{name:"::-ms-track",browsers:["E","IE10"],description:"Represents the track of a slider."},{name:"::-ms-value",browsers:["E","IE10"],description:"Represents the content of a text or password input control, or a select control."},{name:"::selection",browsers:["E12","FF62","FFA62","S1.1","C1","CA18","IE9","O9.5"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::selection"}],baseline:{status:"false"},description:"Represents the portion of a document that has been highlighted by the user."},{name:"::shadow",browsers:["C35","O22"],description:"Matches the shadow root if an element has a shadow tree."},{name:"::-webkit-file-upload-button",browsers:["C","O","S6"]},{name:"::-webkit-inner-spin-button",browsers:["E79","S5","SM4.2","C6","CA18","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-inner-spin-button"}],baseline:{status:"false"}},{name:"::-webkit-input-placeholder",browsers:["C","S4"]},{name:"::-webkit-keygen-select",browsers:["C","O","S6"]},{name:"::-webkit-meter-bar",browsers:["E79","S5.1","SM5","C12","CA18","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-meter-bar"}],baseline:{status:"false"}},{name:"::-webkit-meter-even-less-good-value",browsers:["E79","S5.1","SM5","C12","CA18","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-meter-even-less-good-value"}],baseline:{status:"false"}},{name:"::-webkit-meter-optimum-value",browsers:["E79","S5.1","SM5","C12","CA18","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-meter-optimum-value"}],baseline:{status:"false"}},{name:"::-webkit-meter-suboptimum-value",browsers:["E79","S5.1","SM5","C12","CA18","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-meter-suboptimum-value"}],baseline:{status:"false"}},{name:"::-webkit-outer-spin-button",browsers:["C","O","S6"]},{name:"::-webkit-progress-bar",browsers:["E79","S7","SM7","C25","CA25","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-progress-bar"}],baseline:{status:"false"}},{name:"::-webkit-progress-inner-element",browsers:["E79","S7","SM7","C23","CA25","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-progress-inner-element"}],baseline:{status:"false"}},{name:"::-webkit-progress-value",browsers:["E79","S7","SM7","C25","CA25","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-progress-value"}],baseline:{status:"false"}},{name:"::-webkit-resizer",browsers:["E79","S4","SM3.2","C2","CA18","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-scrollbar"}],baseline:{status:"false"}},{name:"::-webkit-scrollbar",browsers:["E79","S4","SM3","C2","CA18","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-scrollbar"}],baseline:{status:"false"}},{name:"::-webkit-scrollbar-button",browsers:["E79","S4","C2","CA18","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-scrollbar"}],baseline:{status:"false"}},{name:"::-webkit-scrollbar-corner",browsers:["E79","S4","C2","CA18","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-scrollbar"}],baseline:{status:"false"}},{name:"::-webkit-scrollbar-thumb",browsers:["E79","S4","C2","CA18","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-scrollbar"}],baseline:{status:"false"}},{name:"::-webkit-scrollbar-track",browsers:["E79","S4","C2","CA18","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-scrollbar"}],baseline:{status:"false"}},{name:"::-webkit-scrollbar-track-piece",browsers:["E79","S4","C2","CA18","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-scrollbar"}],baseline:{status:"false"}},{name:"::-webkit-search-cancel-button",browsers:["E79","S3","SM1","C1","CA18","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-search-cancel-button"}],baseline:{status:"false"}},{name:"::-webkit-search-decoration",browsers:["C","S4"]},{name:"::-webkit-search-results-button",browsers:["E79","S3","SM1","C1","CA18","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-search-results-button"}],baseline:{status:"false"}},{name:"::-webkit-search-results-decoration",browsers:["C","S4"]},{name:"::-webkit-slider-runnable-track",browsers:["E79","S18","SM18","C26","CA26","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-slider-runnable-track"}],baseline:{status:"false"}},{name:"::-webkit-slider-thumb",browsers:["E79","S18","SM18","C32","CA32","O19"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-webkit-slider-thumb"}],baseline:{status:"false"}},{name:"::-webkit-textfield-decoration-container",browsers:["C","O","S6"]},{name:"::-webkit-validation-bubble",browsers:["C","O","S6"]},{name:"::-webkit-validation-bubble-arrow",browsers:["C","O","S6"]},{name:"::-webkit-validation-bubble-arrow-clipper",browsers:["C","O","S6"]},{name:"::-webkit-validation-bubble-heading",browsers:["C","O","S6"]},{name:"::-webkit-validation-bubble-message",browsers:["C","O","S6"]},{name:"::-webkit-validation-bubble-text-block",browsers:["C","O","S6"]},{name:"::-moz-range-progress",description:'The ::-moz-range-progress CSS pseudo-element is a Mozilla extension that represents the lower portion of the track (i.e., groove) in which the indicator slides in an <input> of type="range". This portion corresponds to values lower than the value currently selected by the thumb (i.e., virtual knob).',status:"nonstandard",browsers:["FF22","FFA22"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-moz-range-progress"}],baseline:{status:"false"}},{name:"::-moz-range-thumb",description:`The ::-moz-range-thumb CSS pseudo-element is a Mozilla extension that represents the thumb (i.e., virtual knob) of an <input> of type="range". The user can move the thumb along the input's track to alter its numerical value.`,status:"nonstandard",browsers:["FF21","FFA21"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-moz-range-thumb"}],baseline:{status:"false"}},{name:"::-moz-range-track",description:'The ::-moz-range-track CSS pseudo-element is a Mozilla extension that represents the track (i.e., groove) in which the indicator slides in an <input> of type="range".',status:"nonstandard",browsers:["FF21","FFA21"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::-moz-range-track"}],baseline:{status:"false"}},{name:"::-webkit-progress-inner-value",description:`The ::-webkit-progress-value CSS pseudo-element represents the filled-in portion of the bar of a <progress> element. It is a child of the ::-webkit-progress-bar pseudo-element.
|
|
75
75
|
|
|
76
76
|
In order to let ::-webkit-progress-value take effect, -webkit-appearance needs to be set to none on the <progress> element.`,status:"nonstandard"},{name:"::checkmark",description:"The ::checkmark CSS pseudo-element targets the checkmark placed inside the currently-selected option element of a customizable select element. It can be used to provide a visual indication of which option is selected.",browsers:["E133","C133","CA133","O118"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::checkmark"}],baseline:{status:"false"}},{name:"::details-content",description:"The ::details-content CSS pseudo-element represents the expandable/collapsible contents of a details element.",browsers:["E131","FF143","FFA143","S18.4","SM18.4","C131","CA131","O116"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::details-content"}],baseline:{status:"low",baseline_low_date:"2025-09-16"}},{name:"::file-selector-button",description:'The ::file-selector-button CSS pseudo-element represents the button of an input of type="file".',browsers:["E89","FF82","FFA82","S14.1","SM14.5","C89","CA89","IE10","O75"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::file-selector-button"}],baseline:{status:"high",baseline_low_date:"2021-04-26",baseline_high_date:"2023-10-26"}},{name:"::grammar-error",description:"The ::grammar-error CSS pseudo-element represents a text segment which the user agent has flagged as grammatically incorrect.",browsers:["E121","S17.4","SM17.4","C121","CA121","O107"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::grammar-error"}],baseline:{status:"false"}},{name:"::highlight",description:"The ::highlight() CSS pseudo-element applies styles to a custom highlight.",browsers:["E105","S17.2","SM17.2","C105","CA105","O91"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::highlight"}],baseline:{status:"false"}},{name:"::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.",browsers:["E86","FF68","FFA68","C86","CA86","O72"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::marker"}],baseline:{status:"false"}},{name:"::part",description:"The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute.",browsers:["E79","FF72","FFA79","S13.1","SM13.4","C73","CA73","O60"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::part"}],baseline:{status:"high",baseline_low_date:"2020-07-28",baseline_high_date:"2023-01-28"}},{name:"::picker-icon",description:"The ::picker-icon CSS pseudo-element targets the picker icon inside form controls that have an icon associated with them. In the case of a customizable select element, it selects the arrow icon shown on the <select> element that points down when it is closed.",browsers:["E133","C133","CA133","O118"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::picker-icon"}],baseline:{status:"false"}},{name:"::picker",description:"The ::picker() CSS pseudo-element targets the picker part of an element, for example the drop-down picker of a customizable select element.",browsers:["E135","C135","CA135","O120"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::picker"}],baseline:{status:"false"}},{name:"::placeholder",description:"The ::placeholder CSS pseudo-element represents the placeholder text of a form element.",browsers:["E79","FF51","FFA51","S10.1","SM10.3","C57","CA57","O44"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::placeholder"}],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"}},{name:"::scroll-marker",description:"The ::scroll-marker CSS pseudo-element can be generated inside any element and represents its scroll marker. All elements can have a ::scroll-marker pseudo-element, which is placed into the ::scroll-marker-group of the nearest scroll container ancestor. A scroll marker behaves like an anchor (a element) whose scroll target is the marker's originating element \u2014 and scrolls the scroll container to that element when activated.",status:"experimental",browsers:["E135","C135","CA135","O120"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::scroll-marker"}],baseline:{status:"false"}},{name:"::scroll-marker-group",description:"The ::scroll-marker-group CSS pseudo-element is generated inside a scroll container and contains any ::scroll-marker pseudo-elements generated on descendants of the scroll container.",status:"experimental",browsers:["E135","C135","CA135","O120"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::scroll-marker-group"}],baseline:{status:"false"}},{name:"::slotted",description:"The ::slotted() CSS pseudo-element represents any element that has been placed into a slot inside an HTML template (see Using templates and slots for more information).",browsers:["E79","FF63","FFA63","S10","SM10","C50","CA50","O37"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::slotted"}],baseline:{status:"high",baseline_low_date:"2020-01-15",baseline_high_date:"2022-07-15"}},{name:"::spelling-error",description:"The ::spelling-error CSS pseudo-element represents a text segment which the user agent has flagged as incorrectly spelled.",browsers:["E121","S17.4","SM17.4","C121","CA121","O107"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::spelling-error"}],baseline:{status:"false"}},{name:"::target-text",description:"The ::target-text CSS pseudo-element represents the text that has been scrolled to if the browser supports scroll-to-text fragments. It allows authors to choose how to highlight that section of text.",browsers:["E89","FF131","FFA131","S18.2","SM18.2","C89","CA89","O75"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::target-text"}],baseline:{status:"low",baseline_low_date:"2024-12-11"}},{name:"::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.",browsers:["E109","FF144","FFA144","S18","SM18","C109","CA109","O95"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::view-transition"}],baseline:{status:"low",baseline_low_date:"2025-10-14"}},{name:"::view-transition-group",description:"The ::view-transition-group CSS pseudo-element represents a single view transition snapshot group.",browsers:["E109","FF144","FFA144","S18","SM18","C109","CA109","O95"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::view-transition-group"}],baseline:{status:"low",baseline_low_date:"2025-10-14"}},{name:"::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 \u2014 before and after the transition.`,browsers:["E109","FF144","FFA144","S18","SM18","C109","CA109","O95"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::view-transition-image-pair"}],baseline:{status:"low",baseline_low_date:"2025-10-14"}},{name:"::view-transition-new",description:'The ::view-transition-new CSS pseudo-element represents the "new" view state of a view transition \u2014 a snapshot live representation of the state after the transition.',browsers:["E109","FF144","FFA144","S18","SM18","C109","CA109","O95"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::view-transition-new"}],baseline:{status:"low",baseline_low_date:"2025-10-14"}},{name:"::view-transition-old",description:'The ::view-transition-old CSS pseudo-element represents the "old" view state of a view transition \u2014 a static snapshot of the old view, before the transition.',browsers:["E109","FF144","FFA144","S18","SM18","C109","CA109","O95"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/Reference/Selectors/::view-transition-old"}],baseline:{status:"low",baseline_low_date:"2025-10-14"}}]}});function Ry(t){return typeof t.name=="string"}function Dy(t){return typeof t.name=="string"}function Oy(t){return typeof t.name=="string"}function Py(t){return typeof t.name=="string"}var vr,Tu=Z(()=>{"use strict";f();vr=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}providePseudoElements(){return this._pseudoElements}addData(e){if(Array.isArray(e.properties))for(let n of e.properties)Ry(n)&&this._properties.push(n);if(Array.isArray(e.atDirectives))for(let n of e.atDirectives)Dy(n)&&this._atDirectives.push(n);if(Array.isArray(e.pseudoClasses))for(let n of e.pseudoClasses)Oy(n)&&this._pseudoClasses.push(n);if(Array.isArray(e.pseudoElements))for(let n of e.pseudoElements)Py(n)&&this._pseudoElements.push(n)}}});var Fr,S0=Z(()=>{"use strict";f();us();Iu();Tu();Fr=class{constructor(e){this.dataProviders=[],this._propertySet={},this._atDirectiveSet={},this._pseudoClassSet={},this._pseudoElementSet={},this._properties=[],this._atDirectives=[],this._pseudoClasses=[],this._pseudoElements=[],this.setDataProviders(e?.useDefaultDataProvider!==!1,e?.customDataProviders||[])}setDataProviders(e,n){this.dataProviders=[],e&&this.dataProviders.push(new vr(Pu)),this.dataProviders.push(...n),this.collectData()}collectData(){this._propertySet={},this._atDirectiveSet={},this._pseudoClassSet={},this._pseudoElementSet={},this.dataProviders.forEach(e=>{e.provideProperties().forEach(n=>{this._propertySet[n.name]||(this._propertySet[n.name]=n)}),e.provideAtDirectives().forEach(n=>{this._atDirectiveSet[n.name]||(this._atDirectiveSet[n.name]=n)}),e.providePseudoClasses().forEach(n=>{this._pseudoClassSet[n.name]||(this._pseudoClassSet[n.name]=n)}),e.providePseudoElements().forEach(n=>{this._pseudoElementSet[n.name]||(this._pseudoElementSet[n.name]=n)})}),this._properties=hs(this._propertySet),this._atDirectives=hs(this._atDirectiveSet),this._pseudoClasses=hs(this._pseudoClassSet),this._pseudoElements=hs(this._pseudoElementSet)}getProperty(e){return this._propertySet[e]}getAtDirective(e){return this._atDirectiveSet[e]}getPseudoClass(e){return this._pseudoClassSet[e]}getPseudoElement(e){return this._pseudoElementSet[e]}getProperties(){return this._properties}getAtDirectives(){return this._atDirectives}getPseudoClasses(){return this._pseudoClasses}getPseudoElements(){return this._pseudoElements}isKnownProperty(e){return e.toLowerCase()in this._propertySet}isStandardProperty(e){return this.isKnownProperty(e)&&(!this._propertySet[e.toLowerCase()].status||this._propertySet[e.toLowerCase()].status==="standard")}}});function y0(t,e,n){function i(s){let a=r(s),o;for(let l=a.length-1;l>=0;l--)o=or.create(ie.create(t.positionAt(a[l][0]),t.positionAt(a[l][1])),o);return o||(o=or.create(ie.create(s,s))),o}return e.map(i);function r(s){let a=t.offsetAt(s),o=n.findChildAtOffset(a,!0);if(!o)return[];let l=[];for(;o;){if(o.parent&&o.offset===o.parent.offset&&o.end===o.parent.end){o=o.parent;continue}o.type===b.Declarations&&a>o.offset&&a<o.end&&l.push([o.offset+1,o.end-1]),l.push([o.offset,o.end]),o=o.parent}return l}}var v0=Z(()=>{"use strict";f();_t();Ge()});function Iy(t){if(t.endsWith(".css"))return[t];if(t.endsWith("/"))return[t+"index.scss",t+"_index.scss"];let e=cn.parse(t.replace(/\.scss$/,"")),n=mt.basename(e),i=mt.dirname(e);return n.startsWith("_")?[mt.joinPath(i,n+".scss").toString(!0)]:[mt.joinPath(i,n+".scss").toString(!0),mt.joinPath(i,"_"+n+".scss").toString(!0),t+"/index.scss",t+"/_index.scss",mt.joinPath(i,n+".css").toString(!0)]}var tl,F0=Z(()=>{"use strict";f();yu();Ge();Qr();dn();zo();tl=class extends bi{constructor(e){super(e,!0)}isRawStringDocumentLinkNode(e){return super.isRawStringDocumentLinkNode(e)||e.type===b.Use||e.type===b.Forward}async mapReference(e,n){if(this.fileSystemProvider&&e&&n){let i=Iy(e);for(let r of i)if(await this.fileExists(r))return r}return e}async resolveReference(e,n,i,r=!1){if(!Fe(e,"sass:"))return e.startsWith("pkg:")?this.resolvePkgModulePath(e,n,i):super.resolveReference(e,n,i,r)}async resolvePkgModulePath(e,n,i){let r=e.replace("pkg:",""),s=r.includes("/")?Su(r):r,a=i.resolveReference("/",n),o=hr(n),l=await this.resolvePathToModule(s,o,a);if(!l)return;let c=await this.getContent(ht(l,"package.json"));if(!c)return;let h;try{h=JSON.parse(c)}catch{return}let m=r.substring(s.length+1);if(h.exports)if(m){let y=m.endsWith(".scss")?`./${m.replace(".scss","")}`:`./${m}`,w=m.endsWith(".scss")?`./${m}`:`./${m}.scss`,z=h.exports[w]||h.exports[y];if(z){let K=z.sass||z.styles||z.default;if(K&&K.endsWith(".scss"))return ht(l,K)}else for(let[K,ce]of Object.entries(h.exports)){if(!K.includes("*"))continue;let F=new RegExp(Ag(K.replace(".scss","")).replace(/\.\*/g,"(.*)")).exec(y);if(F){let v=ce.sass||ce.styles||ce.default;if(v&&v.endsWith(".scss")){let _=v.replace("*",F[1]);return ht(l,_)}}}}else{let y=h.exports["."]||h.exports,w=y&&(y.sass||y.style||y.default);if(w&&w.endsWith(".scss"))return ht(l,w)}else if(!m&&(h.sass||h.style)){let y=h.sass||h.style;if(y)return ht(l,y)}}}});function nl(t){return new vr(t)}function zu(t,e,n,i,r,s,a){return{configure:o=>{s.configure(o),e.configure(o?.completion),n.configure(o?.hover),i.configure(o?.importAliases)},setDataProviders:a.setDataProviders.bind(a),doValidation:s.doValidation.bind(s),parseStylesheet:t.parseStylesheet.bind(t),doComplete:e.doComplete.bind(e),doComplete2:e.doComplete2.bind(e),setCompletionParticipants:e.setCompletionParticipants.bind(e),doHover:n.doHover.bind(n),format:w0,findDefinition:i.findDefinition.bind(i),findReferences:i.findReferences.bind(i),findDocumentHighlights:i.findDocumentHighlights.bind(i),findDocumentLinks:i.findDocumentLinks.bind(i),findDocumentLinks2:i.findDocumentLinks2.bind(i),findDocumentSymbols:i.findSymbolInformations.bind(i),findDocumentSymbols2:i.findDocumentSymbols.bind(i),doCodeActions:r.doCodeActions.bind(r),doCodeActions2:r.doCodeActions2.bind(r),findDocumentColors:i.findDocumentColors.bind(i),getColorPresentations:i.getColorPresentations.bind(i),prepareRename:i.prepareRename.bind(i),doRename:i.doRename.bind(i),getFoldingRanges:d0,getSelectionRanges:y0}}function C0(t=Nu){let e=new Fr(t);return zu(new Yt,new Hn(null,t,e),new fr(t&&t.clientCapabilities,e),new bi(t&&t.fileSystemProvider,!1),new br(e),new gr(e),e)}function x0(t=Nu){let e=new Fr(t);return zu(new Qo,new Lt(t,e),new fr(t&&t.clientCapabilities,e),new tl(t&&t.fileSystemProvider),new br(e),new gr(e),e)}function A0(t=Nu){let e=new Fr(t);return zu(new el,new yr(t,e),new fr(t&&t.clientCapabilities,e),new bi(t&&t.fileSystemProvider,!0),new br(e),new gr(e),e)}var Nu,Wu=Z(()=>{"use strict";f();ps();qo();U1();yu();X1();e0();i0();s0();o0();l0();h0();_0();S0();Tu();v0();F0();Iu();_t();Nu={}});function E0(t,e,n){let i={},r=0,s;return e>0&&(s=setInterval(()=>{let a=Date.now()-e*1e3,o=Object.keys(i);for(let l of o)i[l].cTime<a&&(delete i[l],r--)},e*1e3)),{get(a){let o=a.version,l=a.languageId,c=i[a.uri];if(c&&c.version===o&&c.languageId===l)return c.cTime=Date.now(),c.languageModel;let h=n(a);if(i[a.uri]={languageModel:h,version:o,languageId:l,cTime:Date.now()},c||r++,r===t){let m=Number.MAX_VALUE,y=null;for(let w in i){let z=i[w];z.cTime<m&&(y=w,m=z.cTime)}y&&(delete i[y],r--)}return h},onDocumentRemoved(a){let o=a.uri;i[o]&&(delete i[o],r--)},dispose(){typeof s<"u"&&(clearInterval(s),s=void 0,i={},r=0)}}}var k0=Z(()=>{"use strict";f()});function Lu(t,e){if(e instanceof Error){let n=e;return`${t}: ${n.message}
|
|
77
|
-
${n.stack}`}else{if(typeof e=="string")return`${t}: ${e}`;if(e)return`${t}: ${e.toString()}`}return t}function Ve(t,e,n,i,r){return new Promise(s=>{t.timer.setImmediate(()=>{if(r.isCancellationRequested){s(M0());return}return e().then(a=>{if(r.isCancellationRequested){s(M0());return}else s(a)},a=>{console.error(Lu(i,a)),s(n)})})})}function M0(){return new il.ResponseError(il.LSPErrorCodes.RequestCancelled,"Request cancelled")}var il,qu=Z(()=>{"use strict";f();il=kr(ni())});function D0(t,e,n,i){let r={},a=[];t.onDidChangeContent(c=>{l(c.document)},void 0,a),t.onDidClose(c=>{o(c.document),e.sendDiagnostics({uri:c.document.uri,diagnostics:[]})},void 0,a);function o(c){let h=r[c.uri];h&&(h.dispose(),delete r[c.uri])}function l(c){o(c);let h=r[c.uri]=n.timer.setTimeout(async()=>{if(h===r[c.uri])try{let m=await i(c);h===r[c.uri]&&e.sendDiagnostics({uri:c.uri,diagnostics:m}),delete r[c.uri]}catch(m){e.console.error(Lu(`Error while validating ${c.uri}`,m))}},500)}return{requestRefresh:()=>{t.all().forEach(l)},dispose:()=>{a.forEach(h=>h.dispose()),a.length=0;let c=Object.keys(r);for(let h of c)r[h].dispose(),delete r[h]}}}function O0(t,e,n,i){function r(o){return{kind:R0.DocumentDiagnosticReportKind.Full,items:o}}let s=e.languages.diagnostics.on(async(o,l)=>Ve(n,async()=>{let c=t.get(o.textDocument.uri);return r(c?await i(c):[])},r([]),`Error while computing diagnostics for ${o.textDocument.uri}`,l));function a(){e.languages.diagnostics.refresh()}return{requestRefresh:a,dispose:()=>{s.dispose()}}}var R0,P0=Z(()=>{"use strict";f();R0=kr(ni());qu()});function I0(t,e){if(t.length<e.length)return!1;for(let n=0;n<e.length;n++)if(t[n]!==e[n])return!1;return!0}function T0(t,e){let n=t.length-e.length;return n>0?t.lastIndexOf(e)===n:n===0?t===e:!1}var z0=Z(()=>{"use strict";f()});function ju(t,e){function n(){for(let i of e){let r=i.uri;if(T0(r,"/")||(r=r+"/"),I0(t,r))return r}}return{resolveReference:(i,r=t)=>{if(i[0]==="/"){let o=n();if(o)return o+i.substring(1)}let s=cn.parse(r),a=s.path.endsWith("/")?s:mt.dirname(s);return mt.resolvePath(a,i).toString(!0)}}}var N0=Z(()=>{"use strict";f();z0();Qr()});function W0(t,e){let n=t.map(async i=>{try{let r=await e.getContent(i);return Ty(r)}catch{return nl({version:1})}});return Promise.all(n)}function Ty(t){let e;try{e=JSON.parse(t)}catch{return nl({version:1})}return nl({version:e.version||1,properties:e.properties||[],atDirectives:e.atDirectives||[],pseudoClasses:e.pseudoClasses||[],pseudoElements:e.pseudoElements||[]})}var L0=Z(()=>{"use strict";f();Wu()});function U0(t,e,n){let i={};for(let r of t)r==="file"?i[r]=n.file:(r==="http"||r==="https")&&(i[r]=n.http);return{async stat(r){let s=i[$u(r)];return s?s.stat(r):await e.sendRequest(j0.type,r.toString())},readDirectory(r){let s=i[$u(r)];return s?s.readDirectory(r):e.sendRequest($0.type,r.toString())},getContent(r,s){let a=i[$u(r)];return a?a.getContent(r,s):e.sendRequest(q0.type,{uri:r.toString(),encoding:s})}}}function $u(t){return t.substr(0,t.indexOf(":"))}var rl,q0,j0,$0,B0=Z(()=>{"use strict";f();rl=kr(ni());(e=>e.type=new rl.RequestType("fs/content"))(q0||={});(e=>e.type=new rl.RequestType("fs/stat"))(j0||={});(e=>e.type=new rl.RequestType("fs/readDir"))($0||={})});function G0(t,e){let n=new Rt.TextDocuments(lr);n.listen(t);let i=E0(10,60,_=>w(_).parseStylesheet(_));n.onDidClose(_=>{i.onDocumentRemoved(_.document)}),t.onShutdown(()=>{i.dispose()});let r=!1,s=Number.MAX_VALUE,a,o=Number.MAX_VALUE,l=Promise.resolve(),c,h={},m=()=>Promise.reject("Not Ready"),y={getContent:m,stat:m,readDirectory:m};t.onInitialize(_=>{let I=_.initializationOptions||{};Array.isArray(_.workspaceFolders)?a=_.workspaceFolders:(a=[],_.rootPath&&a.push({name:"",uri:cn.file(_.rootPath).toString(!0)})),y=U0(I?.handledSchemas||["file"],t,e);function D(st,N){let E=st.split("."),j=_.capabilities;for(let q=0;j&&q<E.length;q++){if(!j.hasOwnProperty(E[q]))return N;j=j[E[q]]}return j}let V=!!D("textDocument.completion.completionItem.snippetSupport",!1);return r=!!D("workspace.configuration",!1),s=D("textDocument.foldingRange.rangeLimit",Number.MAX_VALUE),o=I?.customCapabilities?.rangeFormatting?.editLimit||Number.MAX_VALUE,h.css=C0({fileSystemProvider:y,clientCapabilities:_.capabilities}),h.scss=x0({fileSystemProvider:y,clientCapabilities:_.capabilities}),h.less=A0({fileSystemProvider:y,clientCapabilities:_.capabilities}),D("textDocument.diagnostic",void 0)===void 0?c=D0(n,t,e,ee):c=O0(n,t,e,ee),{capabilities:{textDocumentSync:Rt.TextDocumentSyncKind.Incremental,completionProvider:V?{resolveProvider:!1,triggerCharacters:["/","-",":"]}:void 0,hoverProvider:!0,documentSymbolProvider:!0,referencesProvider:!0,definitionProvider:!0,documentHighlightProvider:!0,documentLinkProvider:{resolveProvider:!1},codeActionProvider:{codeActionKinds:[hi.QuickFix]},renameProvider:!0,colorProvider:{},foldingRangeProvider:!0,selectionRangeProvider:!0,diagnosticProvider:{documentSelector:null,interFileDependencies:!1,workspaceDiagnostics:!1},documentRangeFormattingProvider:I?.provideFormatter===!0,documentFormattingProvider:I?.provideFormatter===!0}}});function w(_){let I=h[_.languageId];return I||(t.console.log("Document type is "+_.languageId+", using css instead."),I=h.css),I}let z={};n.onDidClose(_=>{delete z[_.document.uri]});function K(_){if(r){let I=z[_.uri];if(!I){let D={items:[{scopeUri:_.uri,section:_.languageId}]};I=t.sendRequest(Rt.ConfigurationRequest.type,D).then(V=>V[0]),z[_.uri]=I}return I}return Promise.resolve(void 0)}t.onDidChangeConfiguration(_=>{ce(_.settings)});function ce(_){for(let I in h)h[I].configure(_[I]);z={},c?.requestRefresh()}async function ee(_){let I=K(_),[D]=await Promise.all([I,l]),V=i.get(_);return w(_).doValidation(_,V,D)}function F(_){l=W0(_,y).then(I=>{for(let D in h)h[D].setDataProviders(!0,I)})}t.onCompletion((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){let[V]=await Promise.all([K(D),l]),oe=i.get(D),Ne=ju(D.uri,a);return w(D).doComplete2(D,_.position,oe,Ne,V?.completion)}return null},null,`Error while computing completions for ${_.textDocument.uri}`,I)),t.onHover((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){let[V]=await Promise.all([K(D),l]),oe=i.get(D);return w(D).doHover(D,_.position,oe,V?.hover)}return null},null,`Error while computing hover for ${_.textDocument.uri}`,I)),t.onDocumentSymbol((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).findDocumentSymbols2(D,V)}return[]},[],`Error while computing document symbols for ${_.textDocument.uri}`,I)),t.onDefinition((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).findDefinition(D,_.position,V)}return null},null,`Error while computing definitions for ${_.textDocument.uri}`,I)),t.onDocumentHighlight((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).findDocumentHighlights(D,_.position,V)}return[]},[],`Error while computing document highlights for ${_.textDocument.uri}`,I)),t.onDocumentLinks(async(_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=ju(D.uri,a),oe=i.get(D);return w(D).findDocumentLinks2(D,oe,V)}return[]},[],`Error while computing document links for ${_.textDocument.uri}`,I)),t.onReferences((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).findReferences(D,_.position,V)}return[]},[],`Error while computing references for ${_.textDocument.uri}`,I)),t.onCodeAction((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).doCodeActions2(D,_.range,_.context,V)}return[]},[],`Error while computing code actions for ${_.textDocument.uri}`,I)),t.onDocumentColor((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).findDocumentColors(D,V)}return[]},[],`Error while computing document colors for ${_.textDocument.uri}`,I)),t.onColorPresentation((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).getColorPresentations(D,V,_.color,_.range)}return[]},[],`Error while computing color presentations for ${_.textDocument.uri}`,I)),t.onRenameRequest((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).doRename(D,_.position,_.newName,V)}return null},null,`Error while computing renames for ${_.textDocument.uri}`,I)),t.onFoldingRanges((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);return D?(await l,w(D).getFoldingRanges(D,{rangeLimit:s})):null},null,`Error while computing folding ranges for ${_.textDocument.uri}`,I)),t.onSelectionRanges((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri),V=_.positions;if(D){await l;let oe=i.get(D);return w(D).getSelectionRanges(D,V,oe)}return[]},[],`Error while computing selection ranges for ${_.textDocument.uri}`,I));async function v(_,I,D){let V=n.get(_.uri);if(V){let oe=w(V).format(V,I??V0(V),D);if(oe.length>o){let Ne=lr.applyEdits(V,oe);return[Rt.TextEdit.replace(V0(V),Ne)]}return oe}return[]}t.onDocumentRangeFormatting((_,I)=>Ve(e,()=>v(_.textDocument,_.range,_.options),[],`Error while formatting range for ${_.textDocument.uri}`,I)),t.onDocumentFormatting((_,I)=>Ve(e,()=>v(_.textDocument,void 0,_.options),[],`Error while formatting ${_.textDocument.uri}`,I)),t.onNotification(H0.type,F),t.listen()}function V0(t){return Rt.Range.create(Re.create(0,0),t.positionAt(t.getText().length))}var Rt,H0,K0=Z(()=>{"use strict";f();Rt=kr(ni());Qr();Wu();k0();qu();P0();N0();L0();B0();(e=>e.type=new Rt.NotificationType("css/customDataChanged"))(H0||={})});var Ly={};var Cr,zy,Ny,xs,Wy,J0=Z(()=>{"use strict";f();Cr=kr(cg());K0();zy=new Cr.BrowserMessageReader(self),Ny=new Cr.BrowserMessageWriter(self),xs=(0,Cr.createConnection)(zy,Ny);console.log=xs.console.log.bind(xs.console);console.error=xs.console.error.bind(xs.console);Wy={timer:{setImmediate(t,...e){let n=setTimeout(t,0,...e);return{dispose:()=>clearTimeout(n)}},setTimeout(t,e,...n){let i=setTimeout(t,e,...n);return{dispose:()=>clearTimeout(i)}}}};G0(xs,Wy)});f();ut();var X0=!1,Uu=[],Y0=async t=>{if(X0)Uu.push(t);else{let e=[];X0=!0;let n=t.data.i10lLocation;if(n)try{await Yu({uri:n}),e.push(`l10n: Configured to ${n.toString()}.`)}catch(i){e.push(`l10n: Problems loading ${n.toString()} : ${i}.`)}else e.push("l10n: No bundle configured.");await Promise.resolve().then(()=>(J0(),Ly)),self.onmessage!==Y0&&(Uu.forEach(i=>self.onmessage?.(i)),Uu.length=0),e.forEach(console.log)}};self.onmessage=Y0;
|
|
77
|
+
${n.stack}`}else{if(typeof e=="string")return`${t}: ${e}`;if(e)return`${t}: ${e.toString()}`}return t}function Ve(t,e,n,i,r){return new Promise(s=>{t.timer.setImmediate(()=>{if(r.isCancellationRequested){s(M0());return}return e().then(a=>{if(r.isCancellationRequested){s(M0());return}else s(a)},a=>{console.error(Lu(i,a)),s(n)})})})}function M0(){return new il.ResponseError(il.LSPErrorCodes.RequestCancelled,"Request cancelled")}var il,qu=Z(()=>{"use strict";f();il=kr(ni(),1)});function D0(t,e,n,i){let r={},a=[];t.onDidChangeContent(c=>{l(c.document)},void 0,a),t.onDidClose(c=>{o(c.document),e.sendDiagnostics({uri:c.document.uri,diagnostics:[]})},void 0,a);function o(c){let h=r[c.uri];h&&(h.dispose(),delete r[c.uri])}function l(c){o(c);let h=r[c.uri]=n.timer.setTimeout(async()=>{if(h===r[c.uri])try{let m=await i(c);h===r[c.uri]&&e.sendDiagnostics({uri:c.uri,diagnostics:m}),delete r[c.uri]}catch(m){e.console.error(Lu(`Error while validating ${c.uri}`,m))}},500)}return{requestRefresh:()=>{t.all().forEach(l)},dispose:()=>{a.forEach(h=>h.dispose()),a.length=0;let c=Object.keys(r);for(let h of c)r[h].dispose(),delete r[h]}}}function O0(t,e,n,i){function r(o){return{kind:R0.DocumentDiagnosticReportKind.Full,items:o}}let s=e.languages.diagnostics.on(async(o,l)=>Ve(n,async()=>{let c=t.get(o.textDocument.uri);return r(c?await i(c):[])},r([]),`Error while computing diagnostics for ${o.textDocument.uri}`,l));function a(){e.languages.diagnostics.refresh()}return{requestRefresh:a,dispose:()=>{s.dispose()}}}var R0,P0=Z(()=>{"use strict";f();R0=kr(ni(),1);qu()});function I0(t,e){if(t.length<e.length)return!1;for(let n=0;n<e.length;n++)if(t[n]!==e[n])return!1;return!0}function T0(t,e){let n=t.length-e.length;return n>0?t.lastIndexOf(e)===n:n===0?t===e:!1}var z0=Z(()=>{"use strict";f()});function ju(t,e){function n(){for(let i of e){let r=i.uri;if(T0(r,"/")||(r=r+"/"),I0(t,r))return r}}return{resolveReference:(i,r=t)=>{if(i[0]==="/"){let o=n();if(o)return o+i.substring(1)}let s=cn.parse(r),a=s.path.endsWith("/")?s:mt.dirname(s);return mt.resolvePath(a,i).toString(!0)}}}var N0=Z(()=>{"use strict";f();z0();Qr()});function W0(t,e){let n=t.map(async i=>{try{let r=await e.getContent(i);return Ty(r)}catch{return nl({version:1})}});return Promise.all(n)}function Ty(t){let e;try{e=JSON.parse(t)}catch{return nl({version:1})}return nl({version:e.version||1,properties:e.properties||[],atDirectives:e.atDirectives||[],pseudoClasses:e.pseudoClasses||[],pseudoElements:e.pseudoElements||[]})}var L0=Z(()=>{"use strict";f();Wu()});function U0(t,e,n){let i={};for(let r of t)r==="file"?i[r]=n.file:(r==="http"||r==="https")&&(i[r]=n.http);return{async stat(r){let s=i[$u(r)];return s?s.stat(r):await e.sendRequest(j0.type,r.toString())},readDirectory(r){let s=i[$u(r)];return s?s.readDirectory(r):e.sendRequest($0.type,r.toString())},getContent(r,s){let a=i[$u(r)];return a?a.getContent(r,s):e.sendRequest(q0.type,{uri:r.toString(),encoding:s})}}}function $u(t){return t.substr(0,t.indexOf(":"))}var rl,q0,j0,$0,B0=Z(()=>{"use strict";f();rl=kr(ni(),1);(e=>e.type=new rl.RequestType("fs/content"))(q0||={});(e=>e.type=new rl.RequestType("fs/stat"))(j0||={});(e=>e.type=new rl.RequestType("fs/readDir"))($0||={})});function G0(t,e){let n=new Rt.TextDocuments(lr);n.listen(t);let i=E0(10,60,_=>w(_).parseStylesheet(_));n.onDidClose(_=>{i.onDocumentRemoved(_.document)}),t.onShutdown(()=>{i.dispose()});let r=!1,s=Number.MAX_VALUE,a,o=Number.MAX_VALUE,l=Promise.resolve(),c,h={},m=()=>Promise.reject("Not Ready"),y={getContent:m,stat:m,readDirectory:m};t.onInitialize(_=>{let I=_.initializationOptions||{};Array.isArray(_.workspaceFolders)?a=_.workspaceFolders:(a=[],_.rootPath&&a.push({name:"",uri:cn.file(_.rootPath).toString(!0)})),y=U0(I?.handledSchemas||["file"],t,e);function D(st,N){let E=st.split("."),j=_.capabilities;for(let q=0;j&&q<E.length;q++){if(!j.hasOwnProperty(E[q]))return N;j=j[E[q]]}return j}let V=!!D("textDocument.completion.completionItem.snippetSupport",!1);return r=!!D("workspace.configuration",!1),s=D("textDocument.foldingRange.rangeLimit",Number.MAX_VALUE),o=I?.customCapabilities?.rangeFormatting?.editLimit||Number.MAX_VALUE,h.css=C0({fileSystemProvider:y,clientCapabilities:_.capabilities}),h.scss=x0({fileSystemProvider:y,clientCapabilities:_.capabilities}),h.less=A0({fileSystemProvider:y,clientCapabilities:_.capabilities}),D("textDocument.diagnostic",void 0)===void 0?c=D0(n,t,e,ee):c=O0(n,t,e,ee),{capabilities:{textDocumentSync:Rt.TextDocumentSyncKind.Incremental,completionProvider:V?{resolveProvider:!1,triggerCharacters:["/","-",":"]}:void 0,hoverProvider:!0,documentSymbolProvider:!0,referencesProvider:!0,definitionProvider:!0,documentHighlightProvider:!0,documentLinkProvider:{resolveProvider:!1},codeActionProvider:{codeActionKinds:[hi.QuickFix]},renameProvider:!0,colorProvider:{},foldingRangeProvider:!0,selectionRangeProvider:!0,diagnosticProvider:{documentSelector:null,interFileDependencies:!1,workspaceDiagnostics:!1},documentRangeFormattingProvider:I?.provideFormatter===!0,documentFormattingProvider:I?.provideFormatter===!0}}});function w(_){let I=h[_.languageId];return I||(t.console.log("Document type is "+_.languageId+", using css instead."),I=h.css),I}let z={};n.onDidClose(_=>{delete z[_.document.uri]});function K(_){if(r){let I=z[_.uri];if(!I){let D={items:[{scopeUri:_.uri,section:_.languageId}]};I=t.sendRequest(Rt.ConfigurationRequest.type,D).then(V=>V[0]),z[_.uri]=I}return I}return Promise.resolve(void 0)}t.onDidChangeConfiguration(_=>{ce(_.settings)});function ce(_){for(let I in h)h[I].configure(_[I]);z={},c?.requestRefresh()}async function ee(_){let I=K(_),[D]=await Promise.all([I,l]),V=i.get(_);return w(_).doValidation(_,V,D)}function F(_){l=W0(_,y).then(I=>{for(let D in h)h[D].setDataProviders(!0,I)})}t.onCompletion((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){let[V]=await Promise.all([K(D),l]),oe=i.get(D),Ne=ju(D.uri,a);return w(D).doComplete2(D,_.position,oe,Ne,V?.completion)}return null},null,`Error while computing completions for ${_.textDocument.uri}`,I)),t.onHover((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){let[V]=await Promise.all([K(D),l]),oe=i.get(D);return w(D).doHover(D,_.position,oe,V?.hover)}return null},null,`Error while computing hover for ${_.textDocument.uri}`,I)),t.onDocumentSymbol((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).findDocumentSymbols2(D,V)}return[]},[],`Error while computing document symbols for ${_.textDocument.uri}`,I)),t.onDefinition((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).findDefinition(D,_.position,V)}return null},null,`Error while computing definitions for ${_.textDocument.uri}`,I)),t.onDocumentHighlight((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).findDocumentHighlights(D,_.position,V)}return[]},[],`Error while computing document highlights for ${_.textDocument.uri}`,I)),t.onDocumentLinks(async(_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=ju(D.uri,a),oe=i.get(D);return w(D).findDocumentLinks2(D,oe,V)}return[]},[],`Error while computing document links for ${_.textDocument.uri}`,I)),t.onReferences((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).findReferences(D,_.position,V)}return[]},[],`Error while computing references for ${_.textDocument.uri}`,I)),t.onCodeAction((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).doCodeActions2(D,_.range,_.context,V)}return[]},[],`Error while computing code actions for ${_.textDocument.uri}`,I)),t.onDocumentColor((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).findDocumentColors(D,V)}return[]},[],`Error while computing document colors for ${_.textDocument.uri}`,I)),t.onColorPresentation((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).getColorPresentations(D,V,_.color,_.range)}return[]},[],`Error while computing color presentations for ${_.textDocument.uri}`,I)),t.onRenameRequest((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);if(D){await l;let V=i.get(D);return w(D).doRename(D,_.position,_.newName,V)}return null},null,`Error while computing renames for ${_.textDocument.uri}`,I)),t.onFoldingRanges((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri);return D?(await l,w(D).getFoldingRanges(D,{rangeLimit:s})):null},null,`Error while computing folding ranges for ${_.textDocument.uri}`,I)),t.onSelectionRanges((_,I)=>Ve(e,async()=>{let D=n.get(_.textDocument.uri),V=_.positions;if(D){await l;let oe=i.get(D);return w(D).getSelectionRanges(D,V,oe)}return[]},[],`Error while computing selection ranges for ${_.textDocument.uri}`,I));async function v(_,I,D){let V=n.get(_.uri);if(V){let oe=w(V).format(V,I??V0(V),D);if(oe.length>o){let Ne=lr.applyEdits(V,oe);return[Rt.TextEdit.replace(V0(V),Ne)]}return oe}return[]}t.onDocumentRangeFormatting((_,I)=>Ve(e,()=>v(_.textDocument,_.range,_.options),[],`Error while formatting range for ${_.textDocument.uri}`,I)),t.onDocumentFormatting((_,I)=>Ve(e,()=>v(_.textDocument,void 0,_.options),[],`Error while formatting ${_.textDocument.uri}`,I)),t.onNotification(H0.type,F),t.listen()}function V0(t){return Rt.Range.create(Re.create(0,0),t.positionAt(t.getText().length))}var Rt,H0,K0=Z(()=>{"use strict";f();Rt=kr(ni(),1);Qr();Wu();k0();qu();P0();N0();L0();B0();(e=>e.type=new Rt.NotificationType("css/customDataChanged"))(H0||={})});var Ly={};var Cr,zy,Ny,xs,Wy,J0=Z(()=>{"use strict";f();Cr=kr(cg(),1);K0();zy=new Cr.BrowserMessageReader(self),Ny=new Cr.BrowserMessageWriter(self),xs=(0,Cr.createConnection)(zy,Ny);console.log=xs.console.log.bind(xs.console);console.error=xs.console.error.bind(xs.console);Wy={timer:{setImmediate(t,...e){let n=setTimeout(t,0,...e);return{dispose:()=>clearTimeout(n)}},setTimeout(t,e,...n){let i=setTimeout(t,e,...n);return{dispose:()=>clearTimeout(i)}}}};G0(xs,Wy)});f();ut();var X0=!1,Uu=[],Y0=async t=>{if(X0)Uu.push(t);else{let e=[];X0=!0;let n=t.data.i10lLocation;if(n)try{await Yu({uri:n}),e.push(`l10n: Configured to ${n.toString()}.`)}catch(i){e.push(`l10n: Problems loading ${n.toString()} : ${i}.`)}else e.push("l10n: No bundle configured.");await Promise.resolve().then(()=>(J0(),Ly)),self.onmessage!==Y0&&(Uu.forEach(i=>self.onmessage?.(i)),Uu.length=0),e.forEach(console.log)}};self.onmessage=Y0;
|
|
78
78
|
//# sourceMappingURL=cssServerMain.js.map
|