var marketplace=(()=>{var T,_=Object.create,j=Object.defineProperty,M=Object.defineProperties,D=Object.getOwnPropertyDescriptor,$=Object.getOwnPropertyDescriptors,F=Object.getOwnPropertyNames,B=Object.getOwnPropertySymbols,U=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,K=(e,t,r)=>t in e?j(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,l=(e,t)=>{for(var r in t=t||{})G.call(t,r)&&K(e,r,t[r]);if(B)for(var r of B(t))z.call(t,r)&&K(e,r,t[r]);return e},J=(e,t)=>M(e,$(t)),e=(e,t)=>function(){return t||(0,e[F(e)[0]])((t={exports:{}}).exports,t),t.exports},W=(t,r,n,a)=>{if(r&&"object"==typeof r||"function"==typeof r)for(let e of F(r))G.call(t,e)||e===n||j(t,e,{get:()=>r[e],enumerable:!(a=D(r,e))||a.enumerable});return t},t=(e,t,r)=>(r=null!=e?_(U(e)):{},W(!t&&e&&e.__esModule?r:j(r,"default",{value:e,enumerable:!0}),e)),b=e({"external-global-plugin:react"(e,t){t.exports=Spicetify.React}}),X=e({"node_modules/void-elements/index.js"(e,t){t.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}}}),Y=e({"node_modules/semver/internal/constants.js"(e,t){var r=Number.MAX_SAFE_INTEGER||9007199254740991;t.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_INTEGER:r,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}}}),Q=e({"node_modules/semver/internal/debug.js"(e,t){var r="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};t.exports=r}}),Z=e({"node_modules/semver/internal/re.js"(e,t){var r=Y()["MAX_SAFE_COMPONENT_LENGTH"],a=Q(),o=(e=t.exports={}).re=[],i=e.src=[],s=e.t={},l=0,t=(e,t,r)=>{var n=l++;a(e,n,t),s[e]=n,i[n]=t,o[n]=new RegExp(t,r?"g":void 0)};t("NUMERICIDENTIFIER","0|[1-9]\\d*"),t("NUMERICIDENTIFIERLOOSE","[0-9]+"),t("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),t("MAINVERSION",`(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})`),t("MAINVERSIONLOOSE",`(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})`),t("PRERELEASEIDENTIFIER",`(?:${i[s.NUMERICIDENTIFIER]}|${i[s.NONNUMERICIDENTIFIER]})`),t("PRERELEASEIDENTIFIERLOOSE",`(?:${i[s.NUMERICIDENTIFIERLOOSE]}|${i[s.NONNUMERICIDENTIFIER]})`),t("PRERELEASE",`(?:-(${i[s.PRERELEASEIDENTIFIER]}(?:\\.${i[s.PRERELEASEIDENTIFIER]})*))`),t("PRERELEASELOOSE",`(?:-?(${i[s.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${i[s.PRERELEASEIDENTIFIERLOOSE]})*))`),t("BUILDIDENTIFIER","[0-9A-Za-z-]+"),t("BUILD",`(?:\\+(${i[s.BUILDIDENTIFIER]}(?:\\.${i[s.BUILDIDENTIFIER]})*))`),t("FULLPLAIN",`v?${i[s.MAINVERSION]}${i[s.PRERELEASE]}?${i[s.BUILD]}?`),t("FULL",`^${i[s.FULLPLAIN]}$`),t("LOOSEPLAIN",`[v=\\s]*${i[s.MAINVERSIONLOOSE]}${i[s.PRERELEASELOOSE]}?${i[s.BUILD]}?`),t("LOOSE",`^${i[s.LOOSEPLAIN]}$`),t("GTLT","((?:<|>)?=?)"),t("XRANGEIDENTIFIERLOOSE",i[s.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*"),t("XRANGEIDENTIFIER",i[s.NUMERICIDENTIFIER]+"|x|X|\\*"),t("XRANGEPLAIN",`[v=\\s]*(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:${i[s.PRERELEASE]})?${i[s.BUILD]}?)?)?`),t("XRANGEPLAINLOOSE",`[v=\\s]*(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:${i[s.PRERELEASELOOSE]})?${i[s.BUILD]}?)?)?`),t("XRANGE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAIN]}$`),t("XRANGELOOSE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAINLOOSE]}$`),t("COERCE",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?(?:$|[^\\d])`),t("COERCERTL",i[s.COERCE],!0),t("LONETILDE","(?:~>?)"),t("TILDETRIM",`(\\s*)${i[s.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",t("TILDE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAIN]}$`),t("TILDELOOSE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAINLOOSE]}$`),t("LONECARET","(?:\\^)"),t("CARETTRIM",`(\\s*)${i[s.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",t("CARET",`^${i[s.LONECARET]}${i[s.XRANGEPLAIN]}$`),t("CARETLOOSE",`^${i[s.LONECARET]}${i[s.XRANGEPLAINLOOSE]}$`),t("COMPARATORLOOSE",`^${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]})$|^$`),t("COMPARATOR",`^${i[s.GTLT]}\\s*(${i[s.FULLPLAIN]})$|^$`),t("COMPARATORTRIM",`(\\s*)${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]}|${i[s.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",t("HYPHENRANGE",`^\\s*(${i[s.XRANGEPLAIN]})\\s+-\\s+(${i[s.XRANGEPLAIN]})\\s*$`),t("HYPHENRANGELOOSE",`^\\s*(${i[s.XRANGEPLAINLOOSE]})\\s+-\\s+(${i[s.XRANGEPLAINLOOSE]})\\s*$`),t("STAR","(<|>)?=?\\s*\\*"),t("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),t("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}}),ee=e({"node_modules/semver/internal/parse-options.js"(e,t){var r=Object.freeze({loose:!0}),n=Object.freeze({});t.exports=e=>e?"object"!=typeof e?r:e:n}}),te=e({"node_modules/semver/internal/identifiers.js"(e,t){var a=/^[0-9]+$/,r=(e,t)=>{var r=a.test(e),n=a.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n||(!n||r)&&er(t,e)}}}),H=e({"node_modules/semver/classes/semver.js"(e,t){var a=Q(),{MAX_LENGTH:r,MAX_SAFE_INTEGER:n}=Y(),{re:o,t:i}=Z(),s=ee(),l=te()["compareIdentifiers"],c=class{constructor(e,t){if(t=s(t),e instanceof c){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>r)throw new TypeError(`version is longer than ${r} characters`);a("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;t=e.trim().match(t.loose?o[i.LOOSE]:o[i.FULL]);if(!t)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+t[1],this.minor=+t[2],this.patch=+t[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");t[4]?this.prerelease=t[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){var t=+e;if(0<=t&&t{if(e instanceof n)return e;try{return new n(e,t)}catch(e){if(r)throw e;return null}}}}),ne=e({"node_modules/semver/functions/valid.js"(e,t){var r=re();t.exports=(e,t)=>{e=r(e,t);return e?e.version:null}}}),ae=e({"node_modules/semver/functions/clean.js"(e,t){var r=re();t.exports=(e,t)=>{e=r(e.trim().replace(/^[=v]+/,""),t);return e?e.version:null}}}),oe=e({"node_modules/semver/functions/inc.js"(e,t){var o=H();t.exports=(e,t,r,n,a)=>{"string"==typeof r&&(a=n,n=r,r=void 0);try{return new o(e instanceof o?e.version:e,r).inc(t,n,a).version}catch(e){return null}}}}),ie=e({"node_modules/semver/functions/diff.js"(e,t){var o=re();t.exports=(e,t)=>{var r,n,e=o(e,null,!0),t=o(t,null,!0),a=e.compare(t);return 0===a?null:(r=(a=0new r(e,t).major}}),le=e({"node_modules/semver/functions/minor.js"(e,t){var r=H();t.exports=(e,t)=>new r(e,t).minor}}),ce=e({"node_modules/semver/functions/patch.js"(e,t){var r=H();t.exports=(e,t)=>new r(e,t).patch}}),ue=e({"node_modules/semver/functions/prerelease.js"(e,t){var r=re();t.exports=(e,t)=>{e=r(e,t);return e&&e.prerelease.length?e.prerelease:null}}}),V=e({"node_modules/semver/functions/compare.js"(e,t){var n=H();t.exports=(e,t,r)=>new n(e,r).compare(new n(t,r))}}),pe=e({"node_modules/semver/functions/rcompare.js"(e,t){var n=V();t.exports=(e,t,r)=>n(t,e,r)}}),de=e({"node_modules/semver/functions/compare-loose.js"(e,t){var r=V();t.exports=(e,t)=>r(e,t,!0)}}),he=e({"node_modules/semver/functions/compare-build.js"(e,t){var n=H();t.exports=(e,t,r)=>{e=new n(e,r),t=new n(t,r);return e.compare(t)||e.compareBuild(t)}}}),fe=e({"node_modules/semver/functions/sort.js"(e,t){var n=he();t.exports=(e,r)=>e.sort((e,t)=>n(e,t,r))}}),me=e({"node_modules/semver/functions/rsort.js"(e,t){var n=he();t.exports=(e,r)=>e.sort((e,t)=>n(t,e,r))}}),ge=e({"node_modules/semver/functions/gt.js"(e,t){var n=V();t.exports=(e,t,r)=>0n(e,t,r)<0}}),be=e({"node_modules/semver/functions/eq.js"(e,t){var n=V();t.exports=(e,t,r)=>0===n(e,t,r)}}),ye=e({"node_modules/semver/functions/neq.js"(e,t){var n=V();t.exports=(e,t,r)=>0!==n(e,t,r)}}),Ee=e({"node_modules/semver/functions/gte.js"(e,t){var n=V();t.exports=(e,t,r)=>0<=n(e,t,r)}}),we=e({"node_modules/semver/functions/lte.js"(e,t){var n=V();t.exports=(e,t,r)=>n(e,t,r)<=0}}),Se=e({"node_modules/semver/functions/cmp.js"(e,t){var a=be(),o=ye(),i=ge(),s=Ee(),l=ve(),c=we();t.exports=(e,t,r,n)=>{switch(t){case"===":return(e="object"==typeof e?e.version:e)===(r="object"==typeof r?r.version:r);case"!==":return(e="object"==typeof e?e.version:e)!==(r="object"==typeof r?r.version:r);case"":case"=":case"==":return a(e,r,n);case"!=":return o(e,r,n);case">":return i(e,r,n);case">=":return s(e,r,n);case"<":return l(e,r,n);case"<=":return c(e,r,n);default:throw new TypeError("Invalid operator: "+t)}}}}),ke=e({"node_modules/semver/functions/coerce.js"(e,t){var a=H(),o=re(),{re:i,t:s}=Z();t.exports=(e,t)=>{if(e instanceof a)return e;if("string"!=typeof(e="number"==typeof e?String(e):e))return null;let r=null;if((t=t||{}).rtl){for(var n;(n=i[s.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)r&&n.index+n[0].length===r.index+r[0].length||(r=n),i[s.COERCERTL].lastIndex=n.index+n[1].length+n[2].length;i[s.COERCERTL].lastIndex=-1}else r=e.match(i[s.COERCE]);return null===r?null:o(`${r[2]}.${r[3]||"0"}.`+(r[4]||"0"),t)}}}),Oe=e({"node_modules/yallist/iterator.js"(e,t){"use strict";t.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}}}),Ce=e({"node_modules/yallist/yallist.js"(e,t){"use strict";function o(e){var t=this;if((t=t instanceof o?t:new o).tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach(function(e){t.push(e)});else if(0this.length&&(t=this.length);for(var n=0,a=this.head;null!==a&&nthis.length&&(t=this.length);for(var n=this.length,a=this.tail;null!==a&&tthis.length?this.length-1:e)<0&&(e=this.length+e);for(var n=0,a=this.head;null!==a&&n1,f=(e,t,r)=>{t=e[h].get(t);if(t){var n=t.value;if(m(e,n)){if(v(e,t),!e[o])return}else r&&(e[a]&&(t.value.now=Date.now()),e[d].unshiftNode(t));return n.value}},m=(e,t)=>{var r;return!(!t||!t.maxAge&&!e[c])&&(r=Date.now()-t.now,t.maxAge?r>t.maxAge:e[c]&&r>e[c])},g=t=>{if(t[s]>t[i])for(let e=t[d].tail;t[s]>t[i]&&null!==e;){var r=e.prev;v(t,e),e=r}},v=(e,t)=>{var r;t&&(r=t.value,e[u]&&e[u](r.key,r.value),e[s]-=r.length,e[h].delete(r.key),e[d].removeNode(t))},b=class{constructor(e,t,r,n,a){this.key=e,this.value=t,this.length=r,this.now=n,this.maxAge=a||0}},y=(e,t,r,n)=>{let a=r.value;m(e,a)&&(v(e,r),e[o]||(a=void 0)),a&&t.call(n,a.value,a.key,e)};t.exports=class{constructor(e){if((e=(e="number"==typeof e?{max:e}:e)||{}).max&&("number"!=typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[i]=e.max||1/0;var t=e.length||n;if(this[l]="function"!=typeof t?n:t,this[o]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw new TypeError("maxAge must be a number");this[c]=e.maxAge||0,this[u]=e.dispose,this[p]=e.noDisposeOnSet||!1,this[a]=e.updateAgeOnGet||!1,this.reset()}set max(e){if("number"!=typeof e||e<0)throw new TypeError("max must be a non-negative number");this[i]=e||1/0,g(this)}get max(){return this[i]}set allowStale(e){this[o]=!!e}get allowStale(){return this[o]}set maxAge(e){if("number"!=typeof e)throw new TypeError("maxAge must be a non-negative number");this[c]=e,g(this)}get maxAge(){return this[c]}set lengthCalculator(e){(e="function"!=typeof e?n:e)!==this[l]&&(this[l]=e,this[s]=0,this[d].forEach(e=>{e.length=this[l](e.value,e.key),this[s]+=e.length})),g(this)}get lengthCalculator(){return this[l]}get length(){return this[s]}get itemCount(){return this[d].length}rforEach(t,r){r=r||this;for(let e=this[d].tail;null!==e;){var n=e.prev;y(this,t,e,r),e=n}}forEach(t,r){r=r||this;for(let e=this[d].head;null!==e;){var n=e.next;y(this,t,e,r),e=n}}keys(){return this[d].toArray().map(e=>e.key)}values(){return this[d].toArray().map(e=>e.value)}reset(){this[u]&&this[d]&&this[d].length&&this[d].forEach(e=>this[u](e.key,e.value)),this[h]=new Map,this[d]=new r,this[s]=0}dump(){return this[d].map(e=>!m(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[d]}set(e,t,r){if((r=r||this[c])&&"number"!=typeof r)throw new TypeError("maxAge must be a number");var n,a=r?Date.now():0,o=this[l](t,e);return this[h].has(e)?o>this[i]?(v(this,this[h].get(e)),!1):(n=this[h].get(e).value,this[u]&&!this[p]&&this[u](e,n.value),n.now=a,n.maxAge=r,n.value=t,this[s]+=o-n.length,n.length=o,this.get(e),g(this),!0):(n=new b(e,t,o,a,r)).length>this[i]?(this[u]&&this[u](e,t),!1):(this[s]+=n.length,this[d].unshift(n),this[h].set(e,this[d].head),g(this),!0)}has(e){return!!this[h].has(e)&&(e=this[h].get(e).value,!m(this,e))}get(e){return f(this,e,!0)}peek(e){return f(this,e,!1)}pop(){var e=this[d].tail;return e?(v(this,e),e.value):null}del(e){v(this,this[h].get(e))}load(t){this.reset();var r=Date.now();for(let e=t.length-1;0<=e;e--){var n=t[e],a=n.e||0;0===a?this.set(n.k,n.v):0<(a=a-r)&&this.set(n.k,n.v,a)}}prune(){this[h].forEach((e,t)=>f(this,t,!1))}}}}),q=e({"node_modules/semver/classes/range.js"(e,t){var n=class{constructor(e,t){if(t=a(t),e instanceof n)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new n(e.raw,t);if(e instanceof l)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split("||").map(e=>this.parseRange(e.trim())).filter(e=>e.length),!this.set.length)throw new TypeError("Invalid SemVer Range: "+e);if(1!v(e[0])),0===this.set.length)this.set=[t];else if(1e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();var t=((this.options.includePrerelease&&m)|(this.options.loose&&g))+":"+e,r=s.get(t);if(r)return r;var r=this.options.loose,n=r?d[h.HYPHENRANGELOOSE]:d[h.HYPHENRANGE];e=e.replace(n,I(this.options.includePrerelease)),p("hyphen replace",e),e=e.replace(d[h.COMPARATORTRIM],c),p("comparator trim",e);let a=(e=(e=(e=e.replace(d[h.TILDETRIM],u)).replace(d[h.CARETTRIM],f)).split(/\s+/).join(" ")).split(" ").map(e=>b(e,this.options)).join(" ").split(/\s+/).map(e=>x(e,this.options));r&&(a=a.filter(e=>(p("loose invalid filter",e,this.options),!!e.match(d[h.COMPARATORLOOSE])))),p("range list",a);var o=new Map;for(const i of a.map(e=>new l(e,this.options))){if(v(i))return[i];o.set(i.value,i)}1i(t,r)&&e.set.some(e=>i(e,r)&&t.every(t=>e.every(e=>t.intersects(e,r)))));throw new TypeError("a Range is required")}test(t){if(t){if("string"==typeof t)try{t=new r(t,this.options)}catch(e){return!1}for(let e=0;e"<0.0.0-0"===e.value,o=e=>""===e.value,i=(e,t)=>{let r=!0;var n=e.slice();let a=n.pop();for(;r&&n.length;)r=n.every(e=>a.intersects(e,t)),a=n.pop();return r},b=(e,t)=>(p("comp",e,t),e=S(e,t),p("caret",e),e=E(e,t),p("tildes",e),e=O(e,t),p("xrange",e),e=N(e,t),p("stars",e),e),y=e=>!e||"x"===e.toLowerCase()||"*"===e,E=(e,t)=>e.trim().split(/\s+/).map(e=>w(e,t)).join(" "),w=(i,e)=>{e=e.loose?d[h.TILDELOOSE]:d[h.TILDE];return i.replace(e,(e,t,r,n,a)=>{p("tilde",i,e,t,r,n,a);let o;return o=y(t)?"":y(r)?`>=${t}.0.0 <${+t+1}.0.0-0`:y(n)?`>=${t}.${r}.0 <${t}.${+r+1}.0-0`:a?(p("replaceTilde pr",a),`>=${t}.${r}.${n}-${a} <${t}.${+r+1}.0-0`):`>=${t}.${r}.${n} <${t}.${+r+1}.0-0`,p("tilde return",o),o})},S=(e,t)=>e.trim().split(/\s+/).map(e=>k(e,t)).join(" "),k=(i,e)=>{p("caret",i,e);var t=e.loose?d[h.CARETLOOSE]:d[h.CARET];const s=e.includePrerelease?"-0":"";return i.replace(t,(e,t,r,n,a)=>{p("caret",i,e,t,r,n,a);let o;return o=y(t)?"":y(r)?`>=${t}.0.0${s} <${+t+1}.0.0-0`:y(n)?"0"===t?`>=${t}.${r}.0${s} <${t}.${+r+1}.0-0`:`>=${t}.${r}.0${s} <${+t+1}.0.0-0`:a?(p("replaceCaret pr",a),"0"===t?"0"===r?`>=${t}.${r}.${n}-${a} <${t}.${r}.${+n+1}-0`:`>=${t}.${r}.${n}-${a} <${t}.${+r+1}.0-0`:`>=${t}.${r}.${n}-${a} <${+t+1}.0.0-0`):(p("no pr"),"0"===t?"0"===r?`>=${t}.${r}.${n}${s} <${t}.${r}.${+n+1}-0`:`>=${t}.${r}.${n}${s} <${t}.${+r+1}.0-0`:`>=${t}.${r}.${n} <${+t+1}.0.0-0`),p("caret return",o),o})},O=(e,t)=>(p("replaceXRanges",e,t),e.split(/\s+/).map(e=>C(e,t)).join(" ")),C=(c,u)=>{c=c.trim();var e=u.loose?d[h.XRANGELOOSE]:d[h.XRANGE];return c.replace(e,(e,t,r,n,a,o)=>{p("xRange",c,e,t,r,n,a,o);var i=y(r),s=i||y(n),l=s||y(a);return"="===t&&l&&(t=""),o=u.includePrerelease?"-0":"",i?e=">"===t||"<"===t?"<0.0.0-0":"*":t&&l?(s&&(n=0),a=0,">"===t?(t=">=",a=s?(r=+r+1,n=0):(n=+n+1,0)):"<="===t&&(t="<",s?r=+r+1:n=+n+1),e=t+r+`.${n}.`+a+(o="<"===t?"-0":o)):s?e=`>=${r}.0.0${o} <${+r+1}.0.0-0`:l&&(e=`>=${r}.${n}.0${o} <${r}.${+n+1}.0-0`),p("xRange return",e),e})},N=(e,t)=>(p("replaceStars",e,t),e.trim().replace(d[h.STAR],"")),x=(e,t)=>(p("replaceGTE0",e,t),e.trim().replace(d[t.includePrerelease?h.GTE0PRE:h.GTE0],"")),I=h=>(e,t,r,n,a,o,i,s,l,c,u,p,d)=>((t=y(r)?"":y(n)?`>=${r}.0.0`+(h?"-0":""):y(a)?`>=${r}.${n}.0`+(h?"-0":""):o?">="+t:">="+t+(h?"-0":""))+" "+(s=y(l)?"":y(c)?`<${+l+1}.0.0-0`:y(u)?`<${l}.${+c+1}.0-0`:p?`<=${l}.${c}.${u}-`+p:h?`<${l}.${c}.${+u+1}-0`:"<="+s)).trim(),L=(t,r,e)=>{for(let e=0;e")||!e.operator.startsWith(">"))&&!(this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||s(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||s(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")));throw new TypeError("a Comparator is required")}},a=(t.exports=n,ee()),{re:o,t:i}=Z(),s=Se(),l=Q(),c=H(),u=q()}}),Ie=e({"node_modules/semver/functions/satisfies.js"(e,t){var n=q();t.exports=(e,t,r)=>{try{t=new n(t,r)}catch(e){return!1}return t.test(e)}}}),Le=e({"node_modules/semver/ranges/to-comparators.js"(e,t){var r=q();t.exports=(e,t)=>new r(e,t).set.map(e=>e.map(e=>e.value).join(" ").trim().split(" "))}}),Re=e({"node_modules/semver/ranges/max-satisfying.js"(e,t){var i=H(),s=q();t.exports=(e,t,r)=>{let n=null,a=null,o=null;try{o=new s(t,r)}catch(e){return null}return e.forEach(e=>{!o.test(e)||n&&-1!==a.compare(e)||(n=e,a=new i(n,r))}),n}}}),Pe=e({"node_modules/semver/ranges/min-satisfying.js"(e,t){var i=H(),s=q();t.exports=(e,t,r)=>{let n=null,a=null,o=null;try{o=new s(t,r)}catch(e){return null}return e.forEach(e=>{!o.test(e)||n&&1!==a.compare(e)||(n=e,a=new i(n,r))}),n}}}),Ae=e({"node_modules/semver/ranges/min-version.js"(e,t){var o=H(),r=q(),i=ge();t.exports=(t,e)=>{t=new r(t,e);let n=new o("0.0.0");if(t.test(n))return n;if(n=new o("0.0.0-0"),t.test(n))return n;n=null;for(let e=0;e{var t=new o(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":r&&!i(t,r)||(r=t);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+e.operator)}}),!r||n&&!i(n,r)||(n=r)}return n&&t.test(n)?n:null}}}),Te=e({"node_modules/semver/ranges/valid.js"(e,t){var r=q();t.exports=(e,t)=>{try{return new r(e,t).range||"*"}catch(e){return null}}}}),_e=e({"node_modules/semver/ranges/outside.js"(e,t){var r=H(),d=xe(),h=d["ANY"],f=q(),m=Ie(),g=ge(),v=ve(),b=we(),y=Ee();t.exports=(n,a,e,o)=>{n=new r(n,o),a=new f(a,o);let i,s,l,c,u;switch(e){case">":i=g,s=b,l=v,c=">",u=">=";break;case"<":i=v,s=y,l=g,c="<",u="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(m(n,a,o))return!1;for(let e=0;e{e.semver===h&&(e=new d(">=0.0.0")),t=t||e,r=r||e,i(e.semver,t.semver,o)?t=e:l(e.semver,r.semver,o)&&(r=e)}),t.operator===c||t.operator===u)return!1;if((!r.operator||r.operator===c)&&s(n,r.semver))return!1;if(r.operator===u&&l(n,r.semver))return!1}return!0}}}),je=e({"node_modules/semver/ranges/gtr.js"(e,t){var n=_e();t.exports=(e,t,r)=>n(e,t,">",r)}}),Me=e({"node_modules/semver/ranges/ltr.js"(e,t){var n=_e();t.exports=(e,t,r)=>n(e,t,"<",r)}}),De=e({"node_modules/semver/ranges/intersects.js"(e,t){var n=q();t.exports=(e,t,r)=>(e=new n(e,r),t=new n(t,r),e.intersects(t,r))}}),$e=e({"node_modules/semver/ranges/simplify.js"(e,t){var h=Ie(),f=V();t.exports=(e,t,r)=>{var n=[];let a=null,o=null;var i=e.sort((e,t)=>f(e,t,r));for(const d of i){var s=h(d,t,r);a=s?(o=d,a||d):(o&&n.push([a,o]),o=null)}a&&n.push([a,null]);var l,c,u=[];for([l,c]of n)l===c?u.push(l):c||l!==i[0]?c?l===i[0]?u.push("<="+c):u.push(l+" - "+c):u.push(">="+l):u.push("*");var e=u.join(" || "),p="string"==typeof t.raw?t.raw:String(t);return e.length=0.0.0-0")],w=[new r(">=0.0.0")],S=(e,t,r)=>{return!e||!(0<(r=y(e.semver,t.semver,r)))&&(r<0||">"===t.operator&&">="===e.operator)?t:e},k=(e,t,r)=>{return!e||!((r=y(e.semver,t.semver,r))<0)&&(0{if(t!==r){t=new s(t,n),r=new s(r,n);let e=!1;e:for(const o of t.set){for(const i of r.set){var a=((s,l,c)=>{if(s!==l){if(1===s.length&&s[0].semver===v){if(1===l.length&&l[0].semver===v)return!0;s=c.includePrerelease?E:w}if(1===l.length&&l[0].semver===v){if(c.includePrerelease)return!0;l=w}var u=new Set,p,d;let e,t;for(const h of s)">"===h.operator||">="===h.operator?e=S(e,h,c):"<"===h.operator||"<="===h.operator?t=k(t,h,c):u.add(h.semver);if(1="!==e.operator||"<="!==t.operator))return null}for(const f of u){if(e&&!b(f,String(e),c))return null;if(t&&!b(f,String(t),c))return null;for(const m of l)if(!b(f,String(m),c))return!1;return!0}let n,a,o=!(!t||c.includePrerelease||!t.semver.prerelease.length)&&t.semver,i=!(!e||c.includePrerelease||!e.semver.prerelease.length)&&e.semver;o&&1===o.prerelease.length&&"<"===t.operator&&0===o.prerelease[0]&&(o=!1);for(const g of l){if(a=a||">"===g.operator||">="===g.operator,n=n||"<"===g.operator||"<="===g.operator,e)if(i&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===i.major&&g.semver.minor===i.minor&&g.semver.patch===i.patch&&(i=!1),">"===g.operator||">="===g.operator){if((p=S(e,g,c))===g&&p!==e)return!1}else if(">="===e.operator&&!b(e.semver,String(g),c))return!1;if(t)if(o&&g.semver.prerelease&&g.semver.prerelease.length&&g.semver.major===o.major&&g.semver.minor===o.minor&&g.semver.patch===o.patch&&(o=!1),"<"===g.operator||"<="===g.operator){if((d=k(t,g,c))===g&&d!==t)return!1}else if("<="===t.operator&&!b(t.semver,String(g),c))return!1;if(!g.operator&&(t||e)&&0!==r)return!1}if(e&&n&&!t&&0!==r)return!1;if(t&&a&&!e&&0!==r)return!1;if(i||o)return!1}return true})(o,i,n);if(e=e||null!==a,a)continue e}if(e)return!1}}return!0}}}),Be=e({"node_modules/semver/index.js"(M,e){var t=Z(),r=Y(),n=H(),a=te(),o=re(),i=ne(),s=ae(),l=oe(),c=ie(),u=se(),p=le(),d=ce(),h=ue(),f=V(),m=pe(),g=de(),v=he(),b=fe(),y=me(),E=ge(),w=ve(),S=be(),k=ye(),O=Ee(),C=we(),N=Se(),x=ke(),I=xe(),L=q(),R=Ie(),P=Le(),A=Re(),T=Pe(),_=Ae(),j=Te(),D=_e(),$=je(),F=Me(),B=De(),U=$e(),G=Fe();e.exports={parse:o,valid:i,clean:s,inc:l,diff:c,major:u,minor:p,patch:d,prerelease:h,compare:f,rcompare:m,compareLoose:g,compareBuild:v,sort:b,rsort:y,gt:E,lt:w,eq:S,neq:k,gte:O,lte:C,cmp:N,coerce:x,Comparator:I,Range:L,satisfies:R,toComparators:P,maxSatisfying:A,minSatisfying:T,minVersion:_,validRange:j,outside:D,gtr:$,ltr:F,intersects:B,simplifyRange:U,subset:G,SemVer:n,re:t.re,src:t.src,tokens:t.t,SEMVER_SPEC_VERSION:r.SEMVER_SPEC_VERSION,RELEASE_TYPES:r.RELEASE_TYPES,compareIdentifiers:a.compareIdentifiers,rcompareIdentifiers:a.rcompareIdentifiers}}}),r=e({"node_modules/chroma-js/chroma.js"(e,t){var r;r=function(){"use strict";for(var e=function(e,t,r){return void 0===r&&(r=1),e<(t=void 0===t?0:t)?t:r>16,t>>8&255,255&t,1];if(e.match(tt))return 4===(e=5!==e.length&&9!==e.length?e:e.substr(1)).length&&(e=(e=e.split(""))[0]+e[0]+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]),[(t=parseInt(e,16))>>24&255,t>>16&255,t>>8&255,Math.round((255&t)/255*100)/100];throw new Error("unknown hex color: "+e)}function Ne(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var r,n,a,o=(e=ut(e,"hsi"))[0],i=e[1],s=e[2];return isNaN(o)&&(o=0),isNaN(i)&&(i=0),360m.t1?e*e*e:m.t2*(e-m.t0)}function Pe(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var r=(e=_t(e,"lab"))[0],n=e[1],a=e[2],r=(r+16)/116,n=isNaN(n)?r:r+n/500,a=isNaN(a)?r:r-a/200;return r=m.Yn*Re(r),n=m.Xn*Re(n),a=m.Zn*Re(a),[Le(3.2404542*n-1.5371385*r-.4985314*a),Le(-.969266*n+1.8760108*r+.041556*a),Le(.0556434*n-.2040259*r+1.0572252*a),3>16,e>>8&255,255&e,1];throw new Error("unknown num color: "+e)}function De(e){var t,r,n=(e=e/100)<66?(t=255,r=e<6?0:-155.25485562709179-.44596950469579133*(r=e-2)+104.49216199393888*E(r),e<20?0:.8274096064007395*(n=e-10)-254.76935184120902+115.67994401066147*E(n)):(t=351.97690566805693+.114206453784165*(t=e-55)-40.25366309332127*E(t),r=325.4494125711974+.07943456536662342*(r=e-50)-28.0852963507957*E(r),255);return[t,r,n,1]}function $e(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var r=(a=kr(e,"rgb"))[0],n=a[1],a=a[2],r=[xr(r/255),xr(n/255),xr(a/255)],o=Or(.4122214708*(n=r[0])+.5363325363*(a=r[1])+.0514459929*(r=r[2])),i=Or(.2119034982*n+.6806995451*a+.1073969566*r),n=Or(.0883024619*n+.2817188376*a+.6299787005*r);return[.2104542553*o+.793617785*i-.0040720468*n,1.9779984951*o-2.428592205*i+.4505937099*n,.0259040371*o+.7827717662*i-.808675766*n]}var c=l,Fe=i,u=o,Be=e.type,Ue=H,Ge=q,He=(Fe.prototype.css=function(e){return Ue(this._rgb,e)},c.css=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(Fe,[null].concat(e,["css"])))},u.format.css=Ge,u.autodetect.push({p:5,test:function(e){for(var t=[],r=arguments.length-1;0f.t3?Pt(e,1/3):e/f.t2+f.t0},m=u,_t=e.unpack,jt=Math.pow,Mt=e.unpack,Dt=e.type,c=l,$t=i,g=o,Ft=Ie,Bt=($t.prototype.lab=function(){return Ft(this._rgb)},c.lab=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply($t,[null].concat(e,["lab"])))},g.format.lab=Pe,g.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=Mt(e,"lab"),"array"===Dt(e)&&3===e.length)return"lab"}}),e.unpack),Ut=e.RAD2DEG,Gt=Math.sqrt,Ht=Math.atan2,Vt=Math.round,qt=e.unpack,zt=Ie,Kt=Ae,Jt=e.unpack,Wt=e.DEG2RAD,Xt=Math.sin,Yt=Math.cos,Qt=e.unpack,Zt=Te,er=Pe,tr=e.unpack,rr=_e,nr=e.unpack,ar=e.type,c=l,v=i,or=o,ir=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var r=qt(e,"rgb"),n=r[0],a=r[1],r=r[2],n=zt(n,a,r),a=n[0],r=n[1],n=n[2];return Kt(a,r,n)},g=(v.prototype.lch=function(){return ir(this._rgb)},v.prototype.hcl=function(){return ir(this._rgb).reverse()},c.lch=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(v,[null].concat(e,["lch"])))},c.hcl=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(v,[null].concat(e,["hcl"])))},or.format.lch=_e,or.format.hcl=je,["lch","hcl"].forEach(function(r){return or.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=nr(e,r),"array"===ar(e)&&3===e.length)return r}})}),{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}),c=i,b=o,sr=e.type,y=g,lr=Ce,cr=Oe,ur=(c.prototype.name=function(){for(var e=cr(this._rgb,"rgb"),t=0,r=Object.keys(y);t=a/n?i=s:o=s}return wr(s)},kr=(w.prototype.temp=w.prototype.kelvin=w.prototype.temperature=function(){return Sr(this._rgb)},c.temp=c.kelvin=c.temperature=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(w,[null].concat(e,["temp"])))},b.format.temp=b.format.kelvin=b.format.temperature=De,e.unpack),Or=Math.cbrt,Cr=Math.pow,Nr=Math.sign;function xr(e){var t=Math.abs(e);return t<.04045?e/12.92:(Nr(e)||1)*Cr((t+.055)/1.055,2.4)}function Ir(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var r=(e=Lr(e,"lab"))[0],n=e[1],a=e[2],o=S(r+.3963377774*n+.2158037573*a,3),i=S(r-.1055613458*n-.0638541728*a,3),r=S(r-.0894841775*n-1.291485548*a,3);return[255*Pr(4.0767416621*o-3.3077115913*i+.2309699292*r),255*Pr(-1.2684380046*o+2.6097574011*i-.3413193965*r),255*Pr(-.0041960863*o-.7034186147*i+1.707614701*r),3=f[r];)r++;return r-1},S=function(e){return e},k=function(e){return e};return r(c),p.classes=function(e){var t;return null!=e?("array"===L(e)?d=[(f=e)[0],e[e.length-1]]:(t=I.analyze(d),f=0===e?[t.min,t.max]:I.limits(t,"e",e)),p):f},p.domain=function(r){if(!arguments.length)return d;g=r[0],v=r[r.length-1],l=[];var e=m.length;if(r.length===e&&g!==v)for(var t=0,n=Array.from(r);t=i[t+1];)t++;var r=(e-i[t])/(i[t+1]-i[t]);return o[t]+r*(o[t+1]-o[t])}))}return d=[g,v],p},p.mode=function(e){return arguments.length?(i=e,n(),p):i},p.range=function(e,t){return r(e),p},p.out=function(e){return a=e,p},p.spread=function(e){return arguments.length?(t=e,p):t},p.correctLightness=function(e){return n(),S=(e=null==e?!0:e)?function(e){for(var t=u(0,!0).lab()[0],r=u(1,!0).lab()[0],n=r 0");var l=Math.LOG10E*Jn(n),M=Math.LOG10E*Jn(a);i.push(n);for(var c=1;c.9999999)l[3]=1;return new Cn(Nn(l))}for(var d,h=e.shift(),f=h.get(o),m=[],g=0,v=0,b=0;b"}}:{children:o})),O.createElement("textarea",{ref:function(e){return t._input=e},style:S(S(S({},x.editor),x.textarea),a),className:C+(s?" ".concat(s):""),id:i,value:r,onChange:this._handleChange,onKeyDown:this._handleKeyDown,onClick:v,onKeyUp:E,onFocus:b,onBlur:y,disabled:c,form:u,maxLength:p,minLength:d,name:h,placeholder:f,readOnly:m,required:g,autoFocus:l,autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"data-gramm":!1}),O.createElement("style",{dangerouslySetInnerHTML:{__html:N}}))},s.defaultProps={tabSize:2,insertSpaces:!0,ignoreTabKey:!1,padding:0},s);function s(){var m=null!==t&&t.apply(this,arguments)||this;return m.state={capture:!0},m._recordCurrentState=function(){var e,t,r=m._input;r&&(e=r.value,t=r.selectionStart,r=r.selectionEnd,m._recordChange({value:e,selectionStart:t,selectionEnd:r}))},m._getLines=function(e,t){return e.substring(0,t).split("\n")},m._recordChange=function(e,t){void 0===t&&(t=!1);var r=m._history,n=r.stack,r=r.offset,r=(n.length&&-1=i.reach);b+=v.value.length,v=v.next){var y=v.value;if(r.length>t.length)return;if(!(y instanceof P)){var E,w=1;if(f){if(!(E=A(g,b,t,h))||E.index>=t.length)break;var S=E.index,k=E.index+E[0].length,O=b;for(O+=v.value.length;O<=S;)v=v.next,O+=v.value.length;if(O-=v.value.length,b=O,v.value instanceof P)continue;for(var C=v;C!==r.tail&&(Oi.reach&&(i.reach=y),v.prev),x=(x&&(L=T(r,L,x),b+=x.length),_(r,L,w),new P(s,d?R.tokenize(N,d):N,m,N));v=T(r,L,x),I&&T(r,v,I),1i.reach&&(i.reach=N.reach)}}}}}(e,a,t,a.head,0),a),i=[],s=o.head.next;s!==o.tail;)i.push(s.value),s=s.next;return i},hooks:{all:{},add:function(e,t){var r=R.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){var r=R.hooks.all[e];if(r&&r.length)for(var n,a=0;n=r[a++];)n(t)}},Token:P},l.Prism=R,P.stringify=function t(e,r){if("string"==typeof e)return e;var n;if(Array.isArray(e))return n="",e.forEach(function(e){n+=t(e,r)}),n;var a,o={type:e.type,content:t(e.content,r),tag:"span",classes:["token",e.type],attributes:{},language:r},e=e.alias,i=(e&&(Array.isArray(e)?Array.prototype.push.apply(o.classes,e):o.classes.push(e)),R.hooks.run("wrap",o),"");for(a in o.attributes)i+=" "+a+'="'+(o.attributes[a]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+i+">"+o.content+""},l.document?((a=R.util.currentScript())&&(R.filename=a.src,a.hasAttribute("data-manual"))&&(R.manual=!0),R.manual||("loading"===(o=document.readyState)||"interactive"===o&&a&&a.defer?document.addEventListener("DOMContentLoaded",i):window.requestAnimationFrame?window.requestAnimationFrame(i):window.setTimeout(i,16))):l.addEventListener&&!R.disableWorkerMessageHandler&&l.addEventListener("message",function(e){var e=JSON.parse(e.data),t=e.language,r=e.code,e=e.immediateClose;l.postMessage(R.highlight(r,R.languages[t],t)),e&&l.close()},!1),R);function P(e,t,r,n){this.type=e,this.content=t,this.alias=r,this.length=0|(n||"").length}function A(e,t,r,n){e.lastIndex=t;t=e.exec(r);return t&&n&&t[1]&&(e=t[1].length,t.index+=e,t[0]=t[0].slice(e)),t}function c(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function T(e,t,r){var n=t.next,r={value:r,prev:t,next:n};return t.next=r,n.prev=r,e.length++,r}function _(e,t,r){for(var n=t.next,a=0;aconsole.error("SEMVER",...e):()=>{};t.exports=r}}),ze=e({"node_modules/spcr-whats-new/node_modules/semver/internal/constants.js"(e,t){var r=Number.MAX_SAFE_INTEGER||9007199254740991;t.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:r,MAX_SAFE_COMPONENT_LENGTH:16}}}),Ke=e({"node_modules/spcr-whats-new/node_modules/semver/internal/re.js"(e,t){var r=ze()["MAX_SAFE_COMPONENT_LENGTH"],a=qe(),o=(e=t.exports={}).re=[],i=e.src=[],s=e.t={},l=0,t=(e,t,r)=>{var n=l++;a(e,n,t),s[e]=n,i[n]=t,o[n]=new RegExp(t,r?"g":void 0)};t("NUMERICIDENTIFIER","0|[1-9]\\d*"),t("NUMERICIDENTIFIERLOOSE","[0-9]+"),t("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),t("MAINVERSION",`(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})`),t("MAINVERSIONLOOSE",`(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})`),t("PRERELEASEIDENTIFIER",`(?:${i[s.NUMERICIDENTIFIER]}|${i[s.NONNUMERICIDENTIFIER]})`),t("PRERELEASEIDENTIFIERLOOSE",`(?:${i[s.NUMERICIDENTIFIERLOOSE]}|${i[s.NONNUMERICIDENTIFIER]})`),t("PRERELEASE",`(?:-(${i[s.PRERELEASEIDENTIFIER]}(?:\\.${i[s.PRERELEASEIDENTIFIER]})*))`),t("PRERELEASELOOSE",`(?:-?(${i[s.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${i[s.PRERELEASEIDENTIFIERLOOSE]})*))`),t("BUILDIDENTIFIER","[0-9A-Za-z-]+"),t("BUILD",`(?:\\+(${i[s.BUILDIDENTIFIER]}(?:\\.${i[s.BUILDIDENTIFIER]})*))`),t("FULLPLAIN",`v?${i[s.MAINVERSION]}${i[s.PRERELEASE]}?${i[s.BUILD]}?`),t("FULL",`^${i[s.FULLPLAIN]}$`),t("LOOSEPLAIN",`[v=\\s]*${i[s.MAINVERSIONLOOSE]}${i[s.PRERELEASELOOSE]}?${i[s.BUILD]}?`),t("LOOSE",`^${i[s.LOOSEPLAIN]}$`),t("GTLT","((?:<|>)?=?)"),t("XRANGEIDENTIFIERLOOSE",i[s.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*"),t("XRANGEIDENTIFIER",i[s.NUMERICIDENTIFIER]+"|x|X|\\*"),t("XRANGEPLAIN",`[v=\\s]*(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:${i[s.PRERELEASE]})?${i[s.BUILD]}?)?)?`),t("XRANGEPLAINLOOSE",`[v=\\s]*(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:${i[s.PRERELEASELOOSE]})?${i[s.BUILD]}?)?)?`),t("XRANGE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAIN]}$`),t("XRANGELOOSE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAINLOOSE]}$`),t("COERCE",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?(?:$|[^\\d])`),t("COERCERTL",i[s.COERCE],!0),t("LONETILDE","(?:~>?)"),t("TILDETRIM",`(\\s*)${i[s.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",t("TILDE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAIN]}$`),t("TILDELOOSE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAINLOOSE]}$`),t("LONECARET","(?:\\^)"),t("CARETTRIM",`(\\s*)${i[s.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",t("CARET",`^${i[s.LONECARET]}${i[s.XRANGEPLAIN]}$`),t("CARETLOOSE",`^${i[s.LONECARET]}${i[s.XRANGEPLAINLOOSE]}$`),t("COMPARATORLOOSE",`^${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]})$|^$`),t("COMPARATOR",`^${i[s.GTLT]}\\s*(${i[s.FULLPLAIN]})$|^$`),t("COMPARATORTRIM",`(\\s*)${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]}|${i[s.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",t("HYPHENRANGE",`^\\s*(${i[s.XRANGEPLAIN]})\\s+-\\s+(${i[s.XRANGEPLAIN]})\\s*$`),t("HYPHENRANGELOOSE",`^\\s*(${i[s.XRANGEPLAINLOOSE]})\\s+-\\s+(${i[s.XRANGEPLAINLOOSE]})\\s*$`),t("STAR","(<|>)?=?\\s*\\*"),t("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),t("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}}),Je=e({"node_modules/spcr-whats-new/node_modules/semver/internal/parse-options.js"(e,t){var r=["includePrerelease","loose","rtl"];t.exports=t=>t?"object"!=typeof t?{loose:!0}:r.filter(e=>t[e]).reduce((e,t)=>(e[t]=!0,e),{}):{}}}),We=e({"node_modules/spcr-whats-new/node_modules/semver/internal/identifiers.js"(e,t){var a=/^[0-9]+$/,r=(e,t)=>{var r=a.test(e),n=a.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n||(!n||r)&&er(t,e)}}}),Xe=e({"node_modules/spcr-whats-new/node_modules/semver/classes/semver.js"(e,t){var a=qe(),{MAX_LENGTH:r,MAX_SAFE_INTEGER:n}=ze(),{re:o,t:i}=Ke(),s=Je(),l=We()["compareIdentifiers"],c=class{constructor(e,t){if(t=s(t),e instanceof c){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>r)throw new TypeError(`version is longer than ${r} characters`);a("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;t=e.trim().match(t.loose?o[i.LOOSE]:o[i.FULL]);if(!t)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+t[1],this.minor=+t[2],this.patch=+t[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");t[4]?this.prerelease=t[4].split(".").map(e=>{if(/^[0-9]+$/.test(e)){var t=+e;if(0<=t&&tnew n(e,r).compare(new n(t,r))}}),Qe=e({"node_modules/spcr-whats-new/node_modules/semver/functions/gt.js"(e,t){var n=Ye();t.exports=(e,t,r)=>0function(){return Xa.default.createElement(Wa,null)}};for(T in tt)j(et,T,{get:tt[T],enumerable:!0});var rt=t(b());function R(e){return(R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function nt(e){e=function(e,t){if("object"!==R(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);if("object"!==R(r=r.call(e,t||"default")))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}(e,"string");return"symbol"===R(e)?e:String(e)}function at(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r":">",'"':""","'":"'","/":"/"};function Ct(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,function(e){return Ot[e]}):e}var Nt="undefined"!=typeof window&&window.navigator&&void 0===window.navigator.userAgentData&&window.navigator.userAgent&&-1i+s;)s++,c=o[l=a.slice(i,i+s).join(n)];if(void 0===c)return;if(null===c)return null;if(t.endsWith(l)){if("string"==typeof c)return c;if(l&&"string"==typeof c[l])return c[l]}var u=a.slice(i+s).join(n);return u?It(c,u,n):void 0}o=o[a[i]]}return o}}function Lt(t,e){var r,n=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)),n}function Rt(t){for(var e=1;e=p.maxReplaces)break}var r,n}),a}},{key:"nest",value:function(e,t){var r,n=this,a=2=this.maxParallelReads)this.waitingReads.push({lng:n,ns:a,fcName:o,tried:s,wait:l,callback:c});else{this.readingCalls++;function t(e,t){var r;i.readingCalls--,0",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"};function xr(t,e){var r,n=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)),n}function Ir(t){for(var e=1;e{t=localStorage.getItem(t);if(!t)return e;try{return JSON.parse(t)}catch(e){return t}},mn=e=>{const r={section:/^\s*\[\s*([^\]]*)\s*\]\s*$/,param:/^\s*([^=]+?)\s*=\s*(.*?)\s*$/,comment:/^\s*;.*$/},n={};e=e.split(/[\r\n]+/);let a=null;return e.forEach(function(e){var t;r.comment.test(e)||(r.param.test(e)?(t=e.match(r.param),a?n[a][null==t?void 0:t[1]]=null==t?void 0:t[2].split(";")[0].trim():t&&(n[t[1]]=t[2].split(";")[0].trim())):r.section.test(e)?(t=e.match(r.section))&&(n[t[1]]={},a=t[1]):0==e.length&&(a=a&&null))}),n},gn=e=>{var t=document.querySelector("style.marketplaceSnippets"),t=(t&&t.remove(),document.createElement("style")),e=e.reduce((e,t)=>e=(e+=`/* ${t.title} - ${t.description} */ `)+t.code+` `,"");t.innerHTML=e,t.classList.add("marketplaceSnippets"),document.body.appendChild(t)},vn=(e,t)=>{let r=[];return e&&0({name:e.name,url:Cn(e.url)})):r.push({name:t,url:"https://github.com/"+t}),r},bn=e=>e?Object.keys(e).map(e=>({key:e,value:e})):[],yn=(...e)=>{console.debug("Resetting Marketplace");const t=[];0===e.length&&Object.keys(localStorage).forEach(e=>{e.startsWith("marketplace:")&&t.push(e)}),e.forEach(e=>{"extensions"===e?(t.push(...E(v.installedExtensions,[])),t.push(v.installedExtensions)):"snippets"===e?(t.push(...E(v.installedSnippets,[])),t.push(v.installedSnippets)):"theme"===e&&(t.push(...E(v.installedThemes,[])),t.push(v.installedThemes),t.push(v.themeInstalled))}),t.forEach(e=>{localStorage.removeItem(e),console.debug("Removed "+e)}),console.debug("Marketplace has been reset"),location.reload()},En=r=>{var e=document.querySelector("style.marketplaceCSS.marketplaceScheme");if(e&&e.remove(),r){e=document.createElement("style");e.classList.add("marketplaceCSS"),e.classList.add("marketplaceScheme");let t=":root {";Object.keys(r).forEach(e=>{t=(t+=`--spice-${e}: #${r[e]};`)+`--spice-rgb-${e}: ${(e=>{if(3===e.length)e=e.split("").map(e=>e+e).join("");else{if(6!=e.length)throw"Only 3- or 6-digit hex colours are allowed.";if(e.match(/[^0-9a-f]/i))throw"Only hex colours are allowed."}e=e.match(/.{1,2}/g);if(e&&3===e.length)return[parseInt(e[0],16),parseInt(e[1],16),parseInt(e[2],16)];throw"Could not parse hex colour."})(r[e])};`}),t+="}",e.innerHTML=t,document.body.appendChild(e)}},wn=e=>{try{var t,r,n=document.querySelector("link[href='user.css']"),a=(n&&n.remove(),document.querySelector("style.marketplaceCSS.marketplaceUserCSS"));a&&a.remove(),e?((t=document.createElement("style")).classList.add("marketplaceCSS"),t.classList.add("marketplaceUserCSS"),t.innerHTML=e,document.body.appendChild(t)):((r=document.createElement("link")).setAttribute("rel","stylesheet"),r.setAttribute("href","user.css"),r.classList.add("userCSS"),document.body.appendChild(r))}catch(e){console.warn(e)}},Sn=async e=>{if(!e.cssURL)throw new Error("No CSS URL provided");var e=(e=>{const t=new URL(e);return t.host,t.host==="raw.githubusercontent.com"})(e.cssURL)?`https://cdn.jsdelivr.net/gh/${e.user}/${e.repo}@${e.branch}/`+e.manifest.usercss:e.cssURL,t=e.replace("/user.css","/assets/");console.debug("Parsing CSS: ",e);let r=await fetch(e+"?time="+Date.now()).then(e=>e.text());for(const o of r.matchAll(new RegExp(`url\\(['|"](?.+?)['|"]\\)`,"gm"))||[]){var n,a=null==(a=null==o?void 0:o.groups)?void 0:a.path;!a||a.startsWith("http")||a.startsWith("data")||(n=t+a.replace(/\.\//g,""),r=r.replace(a,n))}return r};async function kn(e,t,r){try{var n={text:e,context:t+"/"+r,mode:"gfm"},a=await fetch("https://api.github.com/markdown",{method:"POST",body:JSON.stringify(n)});if(a.ok)return await a.text();throw Spicetify.showNotification(`Error parsing markdown (HTTP ${a.status})`,!0)}catch(e){return null}}function On(e){var t,r="snippet"===e.type?"snippet:":`${e.item.user}/${e.item.repo}/`;let n;switch(e.type){case"snippet":n=e.item.title.replaceAll(" ","-");break;case"theme":n=(null==(t=e.item.manifest)?void 0:t.usercss)||"";break;case"extension":n=(null==(t=e.item.manifest)?void 0:t.main)||"";break;case"app":n=(null==(t=null==(t=e.item.manifest)?void 0:t.name)?void 0:t.replaceAll(" ","-"))||""}return"marketplace:installed:"+r+n}var Cn=e=>{var t=decodeURI(e).trim().toLowerCase();return t.startsWith("javascript:")||t.startsWith("data:")||t.startsWith("vbscript:")?"about:blank":e},Nn=t(b()),w=t(b()),xn=t(Ue()),In=t(Ge()),Ln=(Be=Prism,r=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/,Be.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+r.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+r.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+r.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+r.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:r,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},Be.languages.css.atrule.inside.rest=Be.languages.css,(r=Be.languages.markup)&&(r.tag.addInlined("style","css"),r.tag.addAttribute("style","css")),t(b())),Rn="button-module__button___hf2qg_marketplace",Pn="button-module__circle___EZ88P_marketplace",S=e=>{var t=e.type||"round",r=[Rn];return"circle"===t&&r.push(Pn),e.classes&&r.push(...e.classes),Ln.default.createElement("button",{className:r.join(" "),onClick:e.onClick,"aria-label":e.label||"",disabled:e.disabled},e.children)},An=n=>{var e,t="marketplace-customCSS-preview";const[a,r]=w.default.useState("ADD_SNIPPET"!==n.type&&(null==(e=n.content)?void 0:e.item.code)||""),[o,i]=w.default.useState("ADD_SNIPPET"!==n.type&&(null==(e=n.content)?void 0:e.item.title)||""),[s,l]=w.default.useState("ADD_SNIPPET"!==n.type&&(null==(e=n.content)?void 0:e.item.description)||""),[c,u]=w.default.useState("ADD_SNIPPET"!==n.type&&(null==(e=n.content)?void 0:e.item.imageURL)||""),p=()=>o.replace(/\n/g,"").replaceAll(" ","-");const d="marketplace:installed:snippet:"+p(),[h,f]=w.default.useState(!!E(d));let m;return w.default.createElement("div",{id:"marketplace-add-snippet-container"},w.default.createElement("div",{className:"marketplace-customCSS-input-container"},w.default.createElement("label",{htmlFor:"marketplace-custom-css"},g("snippets.customCSS")),w.default.createElement("div",{className:"marketplace-code-editor-wrapper marketplace-code-editor"},w.default.createElement(xn.default,{value:a,onValueChange:e=>r(e),highlight:e=>(0,In.highlight)(e,In.languages.css),textareaId:"marketplace-custom-css",textareaClassName:"snippet-code-editor",readOnly:"VIEW_SNIPPET"===n.type,placeholder:g("snippets.customCSSPlaceholder"),style:{}}))),w.default.createElement("div",{className:"marketplace-customCSS-input-container"},w.default.createElement("label",{htmlFor:"marketplace-customCSS-name-submit"},g("snippets.snippetName")),w.default.createElement("input",{id:"marketplace-customCSS-name-submit",className:"marketplace-code-editor",value:o,onChange:e=>{"VIEW_SNIPPET"!==n.type&&i(e.target.value)},placeholder:g("snippets.snippetNamePlaceholder")})),w.default.createElement("div",{className:"marketplace-customCSS-input-container"},w.default.createElement("label",{htmlFor:"marketplace-customCSS-description-submit"},g("snippets.snippetDesc")),w.default.createElement("input",{id:"marketplace-customCSS-description-submit",className:"marketplace-code-editor",value:s,onChange:e=>{"VIEW_SNIPPET"!==n.type&&l(e.target.value)},placeholder:g("snippets.snippetDescPlaceholder")})),w.default.createElement("div",{className:"marketplace-customCSS-input-container"},w.default.createElement("label",{htmlFor:t},g("snippets.snippetPreview")," ","VIEW_SNIPPET"!==n.type&&`(${g("snippets.optional")})`),c&&w.default.createElement("label",{htmlFor:t,style:{textAlign:"center"}},w.default.createElement("img",{className:"marketplace-customCSS-image-preview",src:c,alt:"Preview"}))),"VIEW_SNIPPET"!==n.type&&w.default.createElement(w.default.Fragment,null,w.default.createElement(S,{onClick:()=>{m.click()}},c.length?g("snippets.changeImage"):g("snippets.addImage"),w.default.createElement("input",{id:t,type:"file",style:{display:"none"},ref:e=>m=e,onChange:async e=>{var t,r,n;if(null!=(t=e.target.files)&&t[0])try{n=null==(r=e.target.files)?void 0:r[0];var a=await new Promise((e,t)=>{const r=new FileReader;r.readAsDataURL(n),r.onload=()=>{e(r.result)},r.onerror=e=>{t(e)}});a&&u(a)}catch(e){console.error(e)}}})),w.default.createElement(S,{onClick:()=>{var e,t=p(),r=s.trim();h&&"EDIT_SNIPPET"!==n.type?Spicetify.showNotification("That name is already taken!",!0):(console.debug("Installing snippet: "+t),n.content&&n.content.item.title!==t&&(console.debug("Deleting outdated snippet: "+n.content.item.title),localStorage.removeItem("marketplace:installed:snippet:"+n.content.item.title),e=E(v.installedSnippets,[]).filter(e=>{return e!=="marketplace:installed:snippet:"+(null==(e=n.content)?void 0:e.item.title)}),localStorage.setItem(v.installedSnippets,JSON.stringify(e))),localStorage.setItem(d,JSON.stringify({title:t,code:a,description:r,imageURL:c,custom:!0})),-1===(e=E(v.installedSnippets,[])).indexOf(d)&&(e.push(d),localStorage.setItem(v.installedSnippets,JSON.stringify(e))),t=e.map(e=>E(e)),gn(t),Spicetify.PopupModal.hide(),"EDIT_SNIPPET"===n.type&&location.reload())},disabled:!p()||!a.replace(/\n/g,"\\n")},g("snippets.saveCSS"))),"VIEW_SNIPPET"===n.type&&w.default.createElement(S,{onClick:()=>{n.callback&&n.callback(),f(!h)}},h?g("remove"):g("install")))},Tn=t(b()),_n=()=>Tn.default.createElement("div",{id:"marketplace-reload-container"},Tn.default.createElement("p",null,g("reloadModal.description")),Tn.default.createElement("div",{className:"marketplace-reload-modal__button-container"},Tn.default.createElement(S,{onClick:()=>{Spicetify.PopupModal.hide(),location.reload()}},g("reloadModal.reloadNow")),Tn.default.createElement(S,{onClick:()=>{Spicetify.PopupModal.hide()}},g("reloadModal.reloadLater")))),k=t(b()),O=t(b()),jn=t(b()),Mn="toggle-module__toggle-wrapper___ocE5z_marketplace",Dn="toggle-module__disabled___OYAYf_marketplace",$n="toggle-module__toggle-input___ceLM4_marketplace",Fn="toggle-module__toggle-indicator-wrapper___6Lcp0_marketplace",Bn="toggle-module__toggle-indicator___nCxwE_marketplace",Un=e=>{var t="toggle:"+e.storageKey,r=[Mn];return!1===e.clickable&&r.push(Dn),jn.default.createElement("label",{className:r.join(" ")},jn.default.createElement("input",{className:$n,type:"checkbox",checked:e.enabled,"data-storage-key":e.storageKey,id:t,title:"Toggle for "+e.storageKey,onChange:e.onChange}),jn.default.createElement("span",{className:Fn},jn.default.createElement("span",{className:Bn})))},Gn=t(b()),Hn=t(Ve()),Vn=t=>{var e=t.sortBoxOptions.map(e=>({value:e.key,label:e.value})),r=t.sortBoxOptions.find(t.sortBySelectedFn);return Gn.default.createElement("div",{className:"marketplace-sortBox"},Gn.default.createElement("div",{className:"marketplace-sortBox-header"},Gn.default.createElement("div",{className:"marketplace-sortBox-header-title"}),Gn.default.createElement(Hn.default,{placeholder:"Select an option",options:e,value:null==r?void 0:r.key,onChange:e=>{t.onChange(e.value)}})))},qn=t(b()),zn=()=>qn.default.createElement("svg",{role:"img",height:"16",width:"16",className:"Svg-sc-ytk21e-0 uPxdw nW1RKQOkzcJcX6aDCZB4",viewBox:"0 0 16 16"},qn.default.createElement("path",{d:"M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8z"}),qn.default.createElement("path",{d:"M7.25 12.026v-1.5h1.5v1.5h-1.5zm.884-7.096A1.125 1.125 0 007.06 6.39l-1.431.448a2.625 2.625 0 115.13-.784c0 .54-.156 1.015-.503 1.488-.3.408-.7.652-.973.818l-.112.068c-.185.116-.26.203-.302.283-.046.087-.097.245-.097.57h-1.5c0-.47.072-.898.274-1.277.206-.385.507-.645.827-.846l.147-.092c.285-.177.413-.257.526-.41.169-.23.213-.397.213-.602 0-.622-.503-1.125-1.125-1.125z"})),Kn=window.Spicetify,Jn=r=>{var e=r.type,t="dropdown"===e?"dropdown:"+r.storageKey:"toggle:"+r.storageKey,n=!!r.modalConfig.visual[r.storageKey];return void 0!==r.description&&null!==r.description||(r.description=""),"dropdown"===e&&r.options?O.default.createElement("div",{className:"setting-row"},O.default.createElement("label",{htmlFor:t,className:"col description"},r.name),O.default.createElement("div",{className:"col action"},O.default.createElement(Vn,{sortBoxOptions:r.options.map(e=>({key:e,value:e})),onChange:e=>{return e=e,t=r.storageKey,r.modalConfig.visual[t]=e,localStorage.setItem("marketplace:"+t,String(e)),void r.updateConfig(r.modalConfig);var t},sortBySelectedFn:e=>e.key==r.modalConfig.visual[r.storageKey]}),O.default.createElement(Kn.ReactComponent.TooltipWrapper,{label:O.default.createElement(O.default.Fragment,null,r.description.split("\n").map(e=>O.default.createElement(O.default.Fragment,null,e,O.default.createElement("br",null)))),renderInline:!0,showDelay:10,placement:"top",labelClassName:"marketplace-settings-tooltip",disabled:!1},O.default.createElement("div",{className:"marketplace-tooltip-icon"},O.default.createElement(zn,null))))):O.default.createElement("div",{className:"setting-row"},O.default.createElement("label",{htmlFor:t,className:"col description"},r.name),O.default.createElement("div",{className:"col action"},O.default.createElement(Un,{name:r.name,storageKey:r.storageKey,enabled:n,onChange:e=>{var t=e.target.checked,e=e.target.dataset.storageKey;r.modalConfig.visual[e]=t,console.debug(`toggling ${e} to `+t),localStorage.setItem("marketplace:"+e,String(t)),r.updateConfig(r.modalConfig)}})))},Wn=t(b()),Xn=n=>{var e="toggle:"+n.name;const t=n.modalConfig.tabs.reduce((e,t,r)=>t.name===n.name?r:e,-1);var r=n.modalConfig.tabs[t]["enabled"];function a(e,t){var t=e+t,r=n.modalConfig.tabs[t];n.modalConfig.tabs[t]=n.modalConfig.tabs[e],n.modalConfig.tabs[e]=r,localStorage.setItem(v.tabs,JSON.stringify(n.modalConfig.tabs)),n.updateConfig(n.modalConfig)}return Wn.default.createElement("div",{className:"setting-row"},Wn.default.createElement("label",{htmlFor:e,className:"col description"},g("tabs."+n.name)),Wn.default.createElement("div",{className:"col action"},Wn.default.createElement("button",{title:"Move up",className:"arrow-btn",disabled:0===t,onClick:()=>a(t,-1)},Wn.default.createElement("svg",{height:"16",width:"16",viewBox:"0 0 16 16",fill:"currentColor",dangerouslySetInnerHTML:{__html:String(Spicetify.SVGIcons["chart-up"])}})),Wn.default.createElement("button",{title:"Move down",className:"arrow-btn",disabled:t===n.modalConfig.tabs.length-1,onClick:()=>a(t,1)},Wn.default.createElement("svg",{height:"16",width:"16",viewBox:"0 0 16 16",fill:"currentColor",dangerouslySetInnerHTML:{__html:String(Spicetify.SVGIcons["chart-down"])}})),Wn.default.createElement(Un,{name:n.name,storageKey:"tab:"+n.name,clickable:"Extensions"!==n.name,enabled:r,onChange:e=>{n.modalConfig.tabs[t].enabled=e.target.checked,localStorage.setItem(v.tabs,JSON.stringify(n.modalConfig.tabs)),n.updateConfig(n.modalConfig)}})))},Yn=async()=>{const e=new MutationObserver(async()=>{var t;document.querySelector(".GenericModal[aria-label='Settings']")||(t=100,await new Promise(e=>setTimeout(e,t)),sa("BACKUP"),e.disconnect())});e.observe(document.body,{childList:!0,subtree:!0}),Spicetify.PopupModal.hide()},Qn=({CONFIG:e,updateAppConfig:t})=>{const[r,n]=k.default.useState(l({},e)),[a,o]=k.default.useState(g("settings.versionBtn")),i=e=>{t(l({},e)),n(l({},e))};e=document.querySelector("body > generic-modal button.main-trackCreditsModal-closeBtn");const s=document.querySelector("body > generic-modal > div");e&&s&&(e.onclick=()=>location.reload(),e.setAttribute("style","cursor: pointer;"),s.onclick=e=>{e.target===s&&location.reload()});e=E(v.albumArtBasedColor)?k.default.createElement(k.default.Fragment,null,k.default.createElement(Jn,{name:g("settings.albumArtBasedColorsMode"),storageKey:"albumArtBasedColorsMode",modalConfig:r,updateConfig:i,type:"dropdown",options:["monochromeDark","monochromeLight","analogicComplement","analogic","triad","quad"],description:g("settings.almbumArtColorsModeToolTip")}),k.default.createElement(Jn,{name:g("settings.albumArtBasedColorsVibrancy"),storageKey:"albumArtBasedColorsVibrancy",modalConfig:r,updateConfig:i,type:"dropdown",options:["desaturated","lightVibrant","prominent","vibrant"],description:g("settings.albumArtBasedColorsVibrancyToolTip")})):null;return k.default.createElement("div",{id:"marketplace-config-container"},k.default.createElement("h2",null,g("settings.optionsHeading")),k.default.createElement(Jn,{name:g("settings.starCountLabel"),storageKey:"stars",modalConfig:r,updateConfig:i}),k.default.createElement(Jn,{name:g("settings.tagsLabel"),storageKey:"tags",modalConfig:r,updateConfig:i}),k.default.createElement(Jn,{name:g("settings.devToolsLabel"),storageKey:"themeDevTools",modalConfig:r,updateConfig:i}),k.default.createElement(Jn,{name:g("settings.hideInstalledLabel"),storageKey:"hideInstalled",modalConfig:r,updateConfig:i}),k.default.createElement(Jn,{name:g("settings.colourShiftLabel"),storageKey:"colorShift",modalConfig:r,updateConfig:i}),k.default.createElement(Jn,{name:g("settings.albumArtBasedColors"),storageKey:"albumArtBasedColors",modalConfig:r,updateConfig:i}),e,k.default.createElement("h2",null,g("settings.tabsHeading")),k.default.createElement("div",{className:"tabs-container"},r.tabs.map(({name:e},t)=>k.default.createElement(Xn,{key:t,name:e,modalConfig:r,updateConfig:i}))),k.default.createElement("h2",null,g("settings.resetHeading")),k.default.createElement("div",{className:"setting-row"},k.default.createElement("label",{className:"col description"},g("settings.resetDescription")),k.default.createElement("div",{className:"col action"},k.default.createElement(S,{onClick:yn},g("settings.resetBtn")))),k.default.createElement("h2",null,g("settings.backupHeading")),k.default.createElement("div",{className:"setting-row"},k.default.createElement("label",{className:"col description"},g("settings.backupLabel")),k.default.createElement("div",{className:"col action"},k.default.createElement(S,{onClick:Yn},g("settings.backupBtn")))),k.default.createElement("h2",null,g("settings.versionHeading")),k.default.createElement("div",{className:"setting-row"},k.default.createElement("label",{className:"col description"},g("grid.spicetifyMarketplace")," ",un),k.default.createElement("div",{className:"col action"},k.default.createElement(S,{onClick:()=>{Spicetify.Platform.ClipboardAPI.copy(un),o(g("settings.versionCopied")),setTimeout(()=>o(g("settings.versionBtn")),3e3)}},a))))},C=t(b()),Zn=t(Ue()),ea=t(Ge()),ta=(Prism.languages.ini={comment:{pattern:/(^[ \f\t\v]*)[#;][^\n\r]*/m,lookbehind:!0},section:{pattern:/(^[ \f\t\v]*)\[[^\n\r\]]*\]?/m,lookbehind:!0,inside:{"section-name":{pattern:/(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/,lookbehind:!0,alias:"selector"},punctuation:/\[|\]/}},key:{pattern:/(^[ \f\t\v]*)[^ \f\n\r\t\v=]+(?:[ \f\t\v]+[^ \f\n\r\t\v=]+)*(?=[ \f\t\v]*=)/m,lookbehind:!0,alias:"attr-name"},value:{pattern:/(=[ \f\t\v]*)[^ \f\n\r\t\v]+(?:[ \f\t\v]+[^ \f\n\r\t\v]+)*/,lookbehind:!0,alias:"attr-value",inside:{"inner-value":{pattern:/^("|').+(?=\1$)/,lookbehind:!0}}},punctuation:/=/},localStorage.getItem(v.themeInstalled)),ra=ta?E(ta):null,na=()=>{const[r,t]=C.default.useState(ra?(e=>{let t="";for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r))if("object"==typeof e[r]){t+=`[${r}] `;for(const n in e[r])Object.prototype.hasOwnProperty.call(e[r],n)&&(t+=`${n}=${e[r][n]} `)}else t+=`${r}=${e[r]} `;return t})(ra.schemes):g("devTools.noThemeInstalled"));return C.default.createElement("div",{id:"marketplace-theme-dev-tools-container",className:"marketplace-theme-dev-tools-container"},C.default.createElement("div",{className:"devtools-column"},C.default.createElement("label",{htmlFor:"color-ini-editor"},C.default.createElement("h2",{className:"devtools-heading"},g("devTools.colorIniEditor"))),C.default.createElement("div",{className:"marketplace-code-editor-wrapper marketplace-code-editor"},C.default.createElement(Zn.default,{value:r,onValueChange:e=>t(e),highlight:e=>(0,ea.highlight)(e,ea.languages.ini),textareaId:"color-ini-editor",textareaClassName:"color-ini-editor",readOnly:!ra,placeholder:g("devTools.colorIniEditorPlaceholder"),style:{fontFamily:"monospace",resize:"none"}})),C.default.createElement(S,{onClick:()=>{var e=r;{var t;ta?(t=mn(e),ra.schemes=t,localStorage.setItem(ta,JSON.stringify(ra))):Spicetify.showNotification(g("devTools.noThemeManifest"),!0)}}},g("save"))),C.default.createElement("div",{className:"devtools-column"},C.default.createElement("h2",{className:"devtools-heading"},g("devTools.invalidCSS")),C.default.createElement("div",{className:"marketplace-code-editor-wrapper marketplace-code-editor"},function(){var e=null==(e=document.querySelector("body > style.marketplaceCSS.marketplaceUserCSS"))?void 0:e.innerHTML,t=new RegExp(".-?[_a-zA-Z]+[_a-zA-Z0-9-]*\\s*{","g");if(!e)return["Error: Class name list not found; please create an issue"];var r=[];for(const o of e.matchAll(t)){var n=o[0].replace(/{/g,"").trim(),a=n.split(" ");let t;for(let e=0;eC.default.createElement("div",{key:t,className:"invalid-css-text"},e)))))},N=t(b()),aa=t(Ue()),oa=t(Ge()),ia=(Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json,()=>{const[e,t]=N.default.useState("");const r=t=>{if(t){let e;try{e=JSON.parse(t)}catch(e){return void Spicetify.showNotification(g("backupModal.invalidJSON"))}var r;r=e,console.debug("Importing Marketplace"),yn(),Object.keys(r).forEach(e=>{localStorage.setItem(e,r[e]),console.debug("Imported "+e)}),location.reload()}else Spicetify.showNotification(g("backupModal.noDataPasted"))};return N.default.createElement("div",{id:"marketplace-backup-container"},N.default.createElement("div",{className:"marketplace-backup-input-container"},N.default.createElement("label",{htmlFor:"marketplace-backup"},g("backupModal.inputLabel")),N.default.createElement("div",{className:"marketplace-code-editor-wrapper marketplace-code-editor"},N.default.createElement(aa.default,{value:e,onValueChange:e=>t(e),highlight:e=>(0,oa.highlight)(e,oa.languages.css),textareaId:"marketplace-import-text",textareaClassName:"import-textarea",readOnly:!1,className:"marketplace-code-editor-textarea",placeholder:g("backupModal.inputPlaceholder"),style:{}}))),N.default.createElement(N.default.Fragment,null,N.default.createElement(S,{classes:["marketplace-backup-button"],onClick:()=>{var e=(()=>{const t={};return Object.keys(localStorage).forEach(e=>{e.startsWith("marketplace:")&&(t[e]=localStorage.getItem(e))}),t})();Spicetify.Platform.ClipboardAPI.copy(JSON.stringify(e)),Spicetify.showNotification(g("backupModal.settingsCopied")),Spicetify.PopupModal.hide()}},g("backupModal.exportBtn")),N.default.createElement(S,{classes:["marketplace-backup-button"],onClick:()=>{r(e)}},g("backupModal.importBtn")),N.default.createElement(S,{classes:["marketplace-backup-button"],onClick:async()=>{var e=await(await(await window.showOpenFilePicker())[0].getFile()).text();r(e)}},g("backupModal.fileImportBtn"))))}),sa=(e,t,r,n,a)=>{e=((e,t,r,n,a)=>{switch(e){case"ADD_SNIPPET":return{title:g("snippets.addTitle"),content:Nn.default.createElement(An,{type:e}),isLarge:!0};case"EDIT_SNIPPET":return{title:g("snippets.editTitle"),content:Nn.default.createElement(An,{type:e,content:n}),isLarge:!0};case"VIEW_SNIPPET":return{title:g("snippets.viewTitle"),content:Nn.default.createElement(An,{type:e,content:n,callback:a}),isLarge:!0};case"RELOAD":return{title:g("reloadModal.title"),content:Nn.default.createElement(_n,null),isLarge:!1};case"SETTINGS":return{title:g("settings.title"),content:Nn.default.createElement(Qn,{CONFIG:t,updateAppConfig:r}),isLarge:!0};case"THEME_DEV_TOOLS":return{title:g("devTools.title"),content:Nn.default.createElement(na,null),isLarge:!0};case"BACKUP":return{title:g("backupModal.title"),content:Nn.default.createElement(ia,null),isLarge:!0};default:return{title:"",content:Nn.default.createElement("div",null),isLarge:!1}}})(e,t,r,n,a),Spicetify.PopupModal.display(e)},la=[{title:"Rounded 'Now Playing' Bar",description:"Adds rounded corners to the 'Now Playing' bar so it matches the rest of the User Interface.",code:":root{ --border-radius-1: 8px; } .Root__now-playing-bar, .Root__now-playing-bar footer { border-radius: var(--border-radius-1) !important; }",preview:"resources/assets/snippets/rounded-now-playing.png"},{title:"Rounded Images",description:"Adds rounded corners to the cover art, playlist covers, cards and other images",code:"/* Expanded Cover Art Image (+ position fix) */\n .main-navBar-navBar > :nth-child(3) {\n margin: 0 0 0 1px;\n border-radius: 6px;\n }\n \n /* Collapsed Cover Art Image */\n .cover-art-image,\n .artist-artistOverview-sideBlock > div > section > div:nth-child(3) > section:nth-child(2) > div > img,\n .view-homeShortcutsGrid-image {\n border-radius: 4px;\n }\n \n /*\n Playlist Header\n Search Category Card Image\n List Cards\n Local Files Card\n Placeholder Profile Card\n Artist Overview Side Block\n */\n .main-entityHeader-shadow,\n .x-categoryCard-image,\n .main-cardImage-image,\n .main-cardImage-imageWrapper,\n .main-entityHeader-imagePlaceholder > div,\n .artist-artistOverview-sideBlock > div > section {\n border-radius: 6px;\n }\n \n /* Circled Artist + Profile Cards (force) */\n .main-cardImage-circular,\n .main-entityHeader-imagePlaceholder,\n .main-entityHeader-circle {\n border-radius: 50% !important;\n }\n \n /* Track List Image */\n .main-trackList-rowImage {\n border-radius: 3px;\n }",preview:"resources/assets/snippets/rounded-images.png"},{title:"Fix 'Episodes' Icon",description:"Makes the 'Your Episodes' button icon monochromatic like the rest of the icons.",code:".main-yourEpisodesButton-yourEpisodesIcon { background: var(--spice-text); color: var(--spice-sidebar); }",preview:"resources/assets/snippets/fixed-episodes-icon.png"},{title:"Fix 'Liked' Icon",description:"Fix the colours of the Liked icon in sidebar",code:".main-likedSongsButton-likedSongsIcon {\n color: var(--spice-sidebar);\n background: var(--spice-text);\n}",preview:"resources/assets/snippets/fix-liked-icon.png"},{title:"Fix 'DJ' Icon",description:"Makes the DJ icon match themes better",code:".main-collectionLinkButton-icon > div { background: var(--spice-text); color: var(--spice-sidebar); }",preview:"resources/assets/snippets/fix-DJ-icon.png"},{title:"Hide Upgrade Button",description:"Makes the upgrade button hidden",code:".main-topBar-UpgradeButton {\n display: none !important;\n}",preview:"resources/assets/snippets/hide-upgrade-button.png"},{title:"Auto-hide Friends",description:"Collapse the friends activity sidebar on small screens",code:"[aria-label='Friend Activity'] {\n transition: width 0.3s;\n}\n@media screen and (max-width: 1200px) {\n [aria-label='Friend Activity'] {\n width: 0;\n }\n [aria-label='Friend Activity'] .LayoutResizer__resize-bar {\n display: none;\n }\n}",preview:"resources/assets/snippets/auto-hide-friends.png"},{title:"Smooth Reveal Playlist Gradient",description:"Reveals the playlist gradient header gradient with a fade in effect",code:".main-entityHeader-overlay,\n.main-actionBarBackground-background,\n.main-entityHeader-overlay,\n.main-entityHeader-backgroundColor {\n -webkit-transition: 3s;\n}",preview:"resources/assets/snippets/smooth-playlist-reveal-gradient.png"},{title:"Remove connect bar",description:"Remove connect bar that causes progress bar displacement when listening on different devices",code:".main-connectBar-connectBar {\n display: none !important;}",preview:"resources/assets/snippets/remove-connect-bar.png"},{title:"Fix main view width",description:"Makes main view fill up all available space",code:".contentSpacing {\n max-width: 100% !important;\n}",preview:"resources/assets/snippets/fix-main-view-width.png"},{title:"Left aligned heart icons",description:"Moves the heart icon to the left side of the track title in track views",code:".main-trackList-rowSectionStart {\n margin-left: 38px !important;\n}\n.main-addButton-button.main-trackList-rowHeartButton,\n.main-addButton-button.main-trackList-rowHeartButton {\n position: absolute !important;\n left: 48px !important;\n}",preview:"resources/assets/snippets/left-aligned-heart-icons.png"},{title:"Hover Panels",description:"Have your playlist, right sidebar, and controls bar be hoverable.",code:".Root__nav-bar {\n position: absolute;\n width: 40px;\n opacity: 0;\n bottom: 0;\n left: 0;\n top: 0;\n z-index: 1;\n}\nnav.Root__nav-bar:hover {\n position: inherit;\n width: 225px;\n opacity: 1;\n transition: visibility 5s, opacity 0.5s linear;\n}\n.LayoutResizer__resize-bar {\n cursor: none;\n}\n.Root__top-bar {\n opacity: 0;\n transition: visibility 5s, opacity 1s linear;\n}\n.Root__top-bar:hover {\n transition-delay: 0.5s;\n opacity: 1;\n transition: visibility 5s, opacity 0.5s linear;\n}\n.main-topBar-container {\n -webkit-padding-end: 32px;\n padding: 16px 85px;\n padding-inline-end: 32px;\n max-width: none;\n}\naside.Root__right-sidebar:hover {\n position: inherit;\n width: var(--panel-width);\n opacity: 1;\n transition: visibility 5s, opacity 0.5s linear;\n left: 0;\n}\naside.Root__right-sidebar {\n position: absolute;\n width: 65px;\n opacity: 0;\n bottom: 0;\n left: -30px;\n top: 0;\n z-index: 1;\n}",preview:"resources/assets/snippets/hover-panels.png"},{title:"Fix progress bar displacement",description:"Fixes the progress bar displacement for a few themes. Better version of @CharlieS1103 Snippet",code:".main-connectBar-connectBar {\n overflow: visible !important;\n position: absolute !important;\n display: flex !important;\n align-items: unset !important;\n left: 80% !important;\n height: 20px !important;\n bottom: 1% !important;\n padding: 2px !important;\n background-color: transparent !important;\n color: var(--spice-text) !important;\n}\n.control-button::after {\n display: none !important;\n}",preview:"resources/assets/snippets/fix-progress-bar.png"},{title:"Fix playlist hover effect",description:"Fixes the hover effect on the playlist titles in some themes",code:".main-rootlist-rootlistItemOverlay {\n display: none;\n}",preview:"resources/assets/snippets/fix-playlist-hover.png"},{title:"Disable Homepage Recommendation",description:"Disable Homepage Recommendation charts",code:"section[data-testid='home-page'] .main-shelf-shelf:not([aria-label='Recently played'], [aria-label='Your playlists']) {\n\tdisplay: none !important;\n}",preview:"resources/assets/snippets/disable-recommendation.png"},{title:"Circular Album Art",description:"Makes the now playing album art be circular (like a vinyl)",code:".cover-art .cover-art-image {\n border-radius: 100% !important;\n}",preview:"resources/assets/snippets/circular-album-art.png"},{title:"Always show forward button",description:"The navigate forward button hides itself when the window width is smaller. This snipppet makes it so that it is always shown.",code:".main-topBar-historyButtons .main-topBar-forward {\n display: inline-flex !important;\n}",preview:"resources/assets/snippets/always-show-forward.png"},{title:"Right Side Cover Art",description:"Cover art on right side with animation",code:".main-nowPlayingWidget-nowPlaying > .ellipsis-one-line,\n.main-trackInfo-container {\n margin-left: 74px;\n}\n.main-coverSlotExpanded-container {\n position: fixed;\n top: calc(100% - 305px);\n left: calc(100% - 220px);\n width: 200px;\n height: 200px;\n visibility: hidden;\n transform-origin: center;\n animation: 1s coverExpandedIn;\n animation-fill-mode: forwards;\n}\n.Q4cc5RktWgz2H8_vDrIS {\n display: none;\n}\n.main-coverSlotCollapsed-container {\n position: fixed;\n top: -12px;\n left: 0px;\n width: 56px;\n height: 56px;\n visibility: visible;\n z-index: 1;\n}\n.cover-art .cover-art-image,\n.main-coverSlotCollapsed-container {\n transform-origin: center;\n transition-timing-function: ease-in;\n transition: width 0.5s 0.2s, height 0.5s 0.2s, top 0.3s, left 0.5s,\n box-shadow 0.5s;\n}\n.main-coverSlotCollapsed-container[aria-hidden='true'] {\n left: calc(100vw - 164px);\n top: -240px;\n width: 200px;\n height: 200px;\n visibility: hidden;\n animation: 1s coverExpandedOut;\n}\n.main-coverSlotCollapsed-container[aria-hidden='false'] {\n transition-timing-function: ease-out !important;\n transition: width 0.5s 0.2s, height 0.5s 0.2s, top 0.5s 0.1s, left 0.3s,\n box-shadow 0.5s !important;\n}\n.main-coverSlotCollapsed-container[aria-hidden='true']\n .cover-art\n .cover-art-image,\n.main-nowPlayingWidget-coverExpanded\n .main-coverSlotCollapsed-container\n .cover-art\n .cover-art-image {\n width: 200px;\n height: 200px;\n}\n.main-nowPlayingBar-left {\n z-index: 2;\n}\n.main-nowPlayingBar-center {\n z-index: 1;\n}\n.cover-art.shadow {\n box-shadow: 0 0 10px rgba(var(--spice-rgb-shadow), 1) !important;\n}\n@keyframes coverExpandedIn {\n 99% {\n visibility: hidden;\n }\n 100% {\n visibility: visible;\n }\n}\n@keyframes coverExpandedOut {\n 99% {\n visibility: visible;\n }\n 100% {\n visibility: hidden;\n }\n}",preview:"resources/assets/snippets/right-cover-art.png"},{title:"Better lyrics style",description:"Spotify lyrics are focused and beautified",code:".lyrics-lyrics-contentContainer .lyrics-lyricsContent-lyric.lyrics-lyricsContent-highlight { filter: blur(1.5px); padding: 15px; font-size: 110%; } .lyrics-lyrics-contentContainer .lyrics-lyricsContent-lyric.lyrics-lyricsContent-active { filter: none; padding: 20px; font-size: 130%; } .lyrics-lyrics-contentContainer .lyrics-lyricsContent-lyric { filter: blur(1.5px); padding: 15px; font-size: 110%; } .lyrics-lyrics-contentContainer .lyrics-lyricsContent-lyric.lyrics-lyricsContent-unsynced { filter: none; padding: 10px; font-size: 100%; }",preview:"resources/assets/snippets/better-lyrics-style.png"},{title:"Fix now playing icon color",description:"Fixes the now playing icon color",code:`.main-trackList-playingIcon { -webkit-mask-image: url("data:image/svg+xml,%3Csvg id='playing-icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 24'%3E%3Cdefs%3E%3Cstyle%3E %23playing-icon %7B fill: %2320BC54; %7D @keyframes play %7B 0%25 %7Btransform: scaleY(1);%7D 3.3%25 %7Btransform: scaleY(0.9583);%7D 6.6%25 %7Btransform: scaleY(0.9166);%7D 9.9%25 %7Btransform: scaleY(0.8333);%7D 13.3%25 %7Btransform: scaleY(0.7083);%7D 16.6%25 %7Btransform: scaleY(0.5416);%7D 19.9%25 %7Btransform: scaleY(0.4166);%7D 23.3%25 %7Btransform: scaleY(0.25);%7D 26.6%25 %7Btransform: scaleY(0.1666);%7D 29.9%25 %7Btransform: scaleY(0.125);%7D 33.3%25 %7Btransform: scaleY(0.125);%7D 36.6%25 %7Btransform: scaleY(0.1666);%7D 39.9%25 %7Btransform: scaleY(0.1666);%7D 43.3%25 %7Btransform: scaleY(0.2083);%7D 46.6%25 %7Btransform: scaleY(0.2916);%7D 49.9%25 %7Btransform: scaleY(0.375);%7D 53.3%25 %7Btransform: scaleY(0.5);%7D 56.6%25 %7Btransform: scaleY(0.5833);%7D 59.9%25 %7Btransform: scaleY(0.625);%7D 63.3%25 %7Btransform: scaleY(0.6666);%7D 66.6%25 %7Btransform: scaleY(0.6666);%7D 69.9%25 %7Btransform: scaleY(0.6666);%7D 73.3%25 %7Btransform: scaleY(0.6666);%7D 76.6%25 %7Btransform: scaleY(0.7083);%7D 79.9%25 %7Btransform: scaleY(0.75);%7D 83.3%25 %7Btransform: scaleY(0.8333);%7D 86.6%25 %7Btransform: scaleY(0.875);%7D 89.9%25 %7Btransform: scaleY(0.9166);%7D 93.3%25 %7Btransform: scaleY(0.9583);%7D 96.6%25 %7Btransform: scaleY(1);%7D %7D %23bar1 %7B transform-origin: bottom; animation: play 0.9s -0.51s infinite; %7D %23bar2 %7B transform-origin: bottom; animation: play 0.9s infinite; %7D %23bar3 %7B transform-origin: bottom; animation: play 0.9s -0.15s infinite; %7D %23bar4 %7B transform-origin: bottom; animation: play 0.9s -0.75s infinite; %7D %3C/style%3E%3C/defs%3E%3Ctitle%3Eplaying-icon%3C/title%3E%3Crect id='bar1' class='cls-1' width='4' height='24'/%3E%3Crect id='bar2' class='cls-1' x='6' width='4' height='24'/%3E%3Crect id='bar3' class='cls-1' x='12' width='4' height='24'/%3E%3Crect id='bar4' class='cls-1' x='18' width='4' height='24'/%3E%3C/svg%3E"); background: var(--spice-button); content-visibility: hidden; -webkit-mask-repeat: no-repeat; }`,preview:"resources/assets/snippets/fix-now-playing-icon.png"},{title:"Hide playing gif",description:"Hides the gif that shows the music playing",code:".main-trackList-playingIcon{display: none}",preview:"resources/assets/snippets/hide-playing-gif.png"},{title:"Pointers",description:"Clickable elements are now a pointer",code:"button, .show-followButton-button, .main-dropDown-dropDown, .x-toggle-wrapper, .main-playlistEditDetailsModal-closeBtn, .main-trackList-rowPlayPauseButton, .main-rootlist-rootlistItemLink:link, .main-rootlist-rootlistItemLink:visited, .x-sortBox-sortDropdown, .main-contextMenu-menuItemButton, .main-trackList-column, .main-moreButton-button, .x-downloadButton-button, .main-playButton-PlayButton, .main-coverSlotExpandedCollapseButton-chevron, .main-coverSlotCollapsed-chevron, .control-button:focus, .control-button:hover, .main-repeatButton-button, .main-skipForwardButton-button, .main-playPauseButton-button, .main-skipBackButton-button, .main-shuffleButton-button, .main-addButton-button, .progress-bar__slider, .playback-bar, .main-editImageButton-image, .X1lXSiVj0pzhQCUo_72A { cursor: pointer !important; }",preview:"resources/assets/snippets/pointer.png"},{title:"Remove Top gradient",description:"Removes gradient from home page and playlist page",code:".main-entityHeader-backgroundColor { display: none !important; } .main-actionBarBackground-background { display: none !important; } .main-home-homeHeader { display: none !important; }",preview:"resources/assets/snippets/remove-gradient.png"},{title:"Fix Liked Button",description:"Fixes Liked Button colors",code:'#_R_G *:not([fill="none"]) { fill: var(--spice-button) !important; } #_R_G *:not([stroke="none"]) { stroke: var(--spice-button); } .main-addButton-button[aria-checked="false"] { color: rgba(var(--spice-rgb-selected-row), 0.7); } .control-button-heart[aria-checked="true"], .main-addButton-button, .main-addButton-active:focus, .main-addButton-active:hover { color: var(--spice-button); }',preview:"resources/assets/snippets/fix-liked-button.png"},{title:"Hide Sidebar ScrollBar",description:"Hides Sidebar ScrollBar near playlist section",code:".os-scrollbar:nth-child(6) .os-scrollbar-handle { visibility: hidden; }",preview:"resources/assets/snippets/hide-sidebar-scrollbar.png"},{title:"Modern ScrollBar",description:"Thin rounded modern scrollbar",code:".os-theme-spotify.os-host-transition > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle { border-radius: 4px; width: 6px; background-color: var(--spice-button-disabled); } .os-theme-spotify.os-host-transition > .os-scrollbar-vertical > .os-scrollbar-track { width: 6px; }",preview:"resources/assets/snippets/modern-scrollbar.png"},{title:"Remove liked and Episodes icon",description:"Removes the liked and episodes icon from the sidebar",code:'.main-collectionLinkButton-collectionLinkButton[href="/collection/tracks"], .main-collectionLinkButton-collectionLinkButton[href="/collection/episodes"] {display: none;}',preview:"resources/assets/snippets/remove-ep-likes.png"},{title:"Rotating Cover Art",description:"Adds circular mask to cover art and rotation",code:"@keyframes rotating { from { transform: rotate(0deg); } to { transform: rotate(360deg); }} .cover-art { animation: rotating 10s linear infinite; clip-path: circle(50% at 50% 50%);}",preview:"resources/assets/snippets/rotating-coverart.png"},{title:"Hide liked songs card",description:"Hides the sometimes unfitting liked Songs card in the Your Libary tab",code:".collection-collectionEntityHeroCard-likedSongs{ display: none; }",preview:"resources/assets/snippets/hide-likedSongs-card.png"},{title:"Fix playlist and folder position",description:"Replaces the playlists section in the left side bar to align with all the other category icons for the new UI. Screenshot includes 'Playlist icons' snippet",code:"div.playlist-item__img.folder, img.playlist-item__img { margin-right: 16px; } div.main-rootlist-rootlist { --left-sidebar-item-height: 32px; --left-sidebar-item-indentation-width: 10px; } div.GlueDropTarget.personal-library > * { height: 32px !important; }",preview:"resources/assets/snippets/fix-playlist-and-folder-position.png"},{title:"Remove recently played from homepage",description:"Removes the recently played shelf from the home page",code:"section.main-shelf-shelf[aria-label='Recently played'] { visibility: hidden; position: absolute; }",preview:"resources/assets/snippets/remove-recently-played.png"},{title:"Make custom app icons thicker",description:"Gives icons from the sticky list a thicker border",code:"#spicetify-sticky-list>li:nth-child(1n+1)>a>div.icon.collection-icon>svg:not(.lucide-crown) { stroke: currentcolor; stroke-width: 11px; } .collection-icon { color: unset; }",preview:"resources/assets/snippets/thicker-sticky-list-icons.png"},{title:"Pretty Lyrics",description:"Gets rid of the ugly background colour on the lyrics page and makes it consistent with themes. Works best with dark themes.",code:".lyrics-lyrics-background { display: none; } .lyrics-lyrics-contentWrapper>*:not(.lyrics-lyricsContent-active, .lyrics-lyricsContent-highlight, .lyrics-lyricsContent-provider, .lyrics-lyricsContent-description, .lyrics-lyricsContent-unsynced) { color: #FFFFFF4D !important; } .lyrics-lyrics-contentWrapper>*:not(.lyrics-lyricsContent-active, .lyrics-lyricsContent-highlight, .lyrics-lyricsContent-provider, .lyrics-lyricsContent-description, .lyrics-lyricsContent-unsynced):hover { color: #FFFFFF !important; } .lyrics-lyricsContent-highlight { color: #FFFFFF66; } .lyrics-lyricsContent-unsynced { color: #FFFFFF !important; } .lyrics-lyricsContent-unsynced:hover { color: #FFFFFF !important; } .lyrics-lyricsContent-provider, .lyrics-lyricsContent-description { color: #FFFFFFB6 !important; }",preview:"resources/assets/snippets/pretty-lyrics.png"},{title:"Oneko",description:"Adds Oneko onto your playback bar!",code:"[class^='playback-']:not(.volume-bar__slider-container > .playback-progressbar):before { content: ''; width: 32px; height: 32px; bottom: calc(100% - 7px); right: 10px; position: absolute; image-rendering: pixelated; background-image: url('https://raw.githubusercontent.com/adryd325/oneko.js/14bab15a755d0e35cd4ae19c931d96d306f99f42/oneko.gif'); animation: oneko 1s infinite; } @keyframes oneko { 0%, 50% { background-position: -64px 0; } 50.0001%, 100% { background-position: -64px -32px; } }",preview:"resources/assets/snippets/oneko.png"},{title:"Remove Popular sections from homepage",description:"Thanks Spotify, but I have a music taste",code:".main-shelf-shelf.Shelf:has(> div > div > .main-shelf-seeAll[href='/section/0JQ5DAuChZYPe9iDhh2mJz'], [href='/section/0JQ5DAnM3wGh0gz1MXnu4h'], [href='/section/0JQ5DAnM3wGh0gz1MXnu3B'],[href='/section/0JQ5DAnM3wGh0gz1MXnu3D']) { display: none !important; }",preview:"resources/assets/snippets/remove-popular.png"},{title:"Dark Lyrics",description:"Replaces the highly saturated lyrics backgrounds with a very subtle dark gradient",code:".lyrics-lyrics-background { background-image: linear-gradient(315deg,var(--lyrics-color-background),black); background-size: 500%; } .lyrics-lyricsContent-lyric.lyrics-lyricsContent-highlight { color: white; } .lyrics-lyricsContent-lyric { color: #424242; }",preview:"resources/assets/snippets/dark-lyrics.png"},{title:"Thicker Bars",description:"Makes the song progress and volume bar thicker",code:".x-progressBar-progressBarBg { height: 100% !important; } .x-progressBar-sliderArea { height: 100% !important; } .x-progressBar-fillColor { height: 100% !important; }",preview:"resources/assets/snippets/thicker-bars.png"}];async function ca(e,t=1,r=[]){let n=`https://api.github.com/search/repositories?q=${encodeURIComponent("topic:"+e)}&per_page=100`;t&&(n+="&page="+t);e=await fetch(n).then(e=>e.json()).catch(()=>[]);if(e.items)return J(l({},e),{page_count:e.items.length,items:e.items.filter(e=>!r.includes(e.html_url))});Spicetify.showNotification("Too Many Requests, Cool Down.",!0)}async function ua(e,t,r){var n=window.sessionStorage.getItem(e+"-"+t),a=window.sessionStorage.getItem("noManifests");if(n)return JSON.parse(n);const o=`https://raw.githubusercontent.com/${e}/${t}/${r}/manifest.json`;return null!=a&&a.includes(o)?null:((n=await fetch(o).then(e=>e.json()).catch(()=>{var r,n;r=[o],n="noManifests",r&&r.forEach(e=>{n=n||r.user+"-"+r.repo;var t=window.sessionStorage.getItem(n),t=t?JSON.parse(t):[];t.push(e),window.sessionStorage.setItem(n,JSON.stringify(t))})}))&&window.sessionStorage.setItem(e+"-"+t,JSON.stringify(n)),n)}async function pa(t,n,a,o=!1){try{let e;var r=t.match(new RegExp("https:\\/\\/api\\.github\\.com\\/repos\\/(?.+)\\/(?.+)\\/contents"));if(!r||!r.groups)return null;const{user:i,repo:s}=r.groups;return e=await ua(i,s,n),(e=Array.isArray(e)?e:[e]).reduce((e,t)=>{var r=t.branch||n,r={manifest:t,title:t.name,subtitle:t.description,authors:vn(t.authors,i),user:i,repo:s,branch:r,imageURL:t.preview&&t.preview.startsWith("http")?t.preview:`https://raw.githubusercontent.com/${i}/${s}/${r}/`+t.preview,extensionURL:t.main.startsWith("http")?t.main:`https://raw.githubusercontent.com/${i}/${s}/${r}/`+t.main,readmeURL:t.readme&&t.readme.startsWith("http")?t.readme:`https://raw.githubusercontent.com/${i}/${s}/${r}/`+t.readme,stars:a,tags:t.tags};return t&&t.name&&t.description&&t.main&&(o&&localStorage.getItem(`marketplace:installed:${i}/${s}/`+t.main)||e.push(r)),e},[])}catch(e){return null}}async function da(t,n,a){try{let e;var r=t.match(new RegExp("https:\\/\\/api\\.github\\.com\\/repos\\/(?.+)\\/(?.+)\\/contents"));if(!r||!r.groups)return null;const{user:o,repo:i}=r.groups;return e=await ua(o,i,n),(e=Array.isArray(e)?e:[e]).reduce((e,t)=>{var r=t.branch||n,r={manifest:t,title:t.name,subtitle:t.description,authors:vn(t.authors,o),user:o,repo:i,branch:r,imageURL:t.preview&&t.preview.startsWith("http")?t.preview:`https://raw.githubusercontent.com/${o}/${i}/${r}/`+t.preview,readmeURL:t.readme&&t.readme.startsWith("http")?t.readme:`https://raw.githubusercontent.com/${o}/${i}/${r}/`+t.readme,stars:a,tags:t.tags,cssURL:t.usercss.startsWith("http")?t.usercss:`https://raw.githubusercontent.com/${o}/${i}/${r}/`+t.usercss,schemesURL:t.schemes?t.schemes.startsWith("http")?t.schemes:`https://raw.githubusercontent.com/${o}/${i}/${r}/`+t.schemes:null,include:t.include};return null!=t&&t.name&&null!=t&&t.usercss&&null!=t&&t.description&&e.push(r),e},[])}catch(e){return null}}async function ha(t,n,a){try{let e;var r=t.match(new RegExp("https:\\/\\/api\\.github\\.com\\/repos\\/(?.+)\\/(?.+)\\/contents"));if(!r||!r.groups)return null;const{user:o,repo:i}=r.groups;return e=await ua(o,i,n),(e=Array.isArray(e)?e:[e]).reduce((e,t)=>{var r=t.branch||n,r={manifest:t,title:t.name,subtitle:t.description,authors:vn(t.authors,o),user:o,repo:i,branch:r,imageURL:t.preview&&t.preview.startsWith("http")?t.preview:`https://raw.githubusercontent.com/${o}/${i}/${r}/`+t.preview,readmeURL:t.readme&&t.readme.startsWith("http")?t.readme:`https://raw.githubusercontent.com/${o}/${i}/${r}/`+t.readme,stars:a,tags:t.tags};return t&&t.name&&t.description&&e.push(r),e},[])}catch(e){return null}}var fa=async()=>{return(await fetch("https://raw.githubusercontent.com/spicetify/spicetify-marketplace/main/resources/blacklist.json").then(e=>e.json()).catch(()=>({}))).repos},ma=async()=>{return la.reduce((e,t)=>{t=l({},t);return t.preview&&(t.imageURL=t.preview.startsWith("http")?t.preview:"https://raw.githubusercontent.com/spicetify/spicetify-marketplace/main/"+t.preview,delete t.preview),e.push(t),e},[])},ga=t(b()),va=class extends ga.default.Component{render(){return ga.default.createElement("div",{onClick:this.props.onClick},ga.default.createElement("p",{style:{fontSize:100,lineHeight:"65px"}},"»"),ga.default.createElement("span",{style:{fontSize:20}},"Load more"))}},ba=t(b()),ya=()=>ba.default.createElement("svg",{width:"100px",height:"100px",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid"},ba.default.createElement("circle",{cx:"50",cy:"50",r:"0",fill:"none",stroke:"currentColor",strokeWidth:"2"},ba.default.createElement("animate",{attributeName:"r",repeatCount:"indefinite",dur:"1s",values:"0;40",keyTimes:"0;1",keySplines:"0 0.2 0.8 1",calcMode:"spline",begin:"0s"}),ba.default.createElement("animate",{attributeName:"opacity",repeatCount:"indefinite",dur:"1s",values:"1;0",keyTimes:"0;1",keySplines:"0.2 0 0.8 1",calcMode:"spline",begin:"0s"})),ba.default.createElement("circle",{cx:"50",cy:"50",r:"0",fill:"none",stroke:"currentColor",strokeWidth:"2"},ba.default.createElement("animate",{attributeName:"r",repeatCount:"indefinite",dur:"1s",values:"0;40",keyTimes:"0;1",keySplines:"0 0.2 0.8 1",calcMode:"spline",begin:"-0.5s"}),ba.default.createElement("animate",{attributeName:"opacity",repeatCount:"indefinite",dur:"1s",values:"1;0",keyTimes:"0;1",keySplines:"0.2 0 0.8 1",calcMode:"spline",begin:"-0.5s"}))),Ea=t(b()),wa=()=>Ea.default.createElement("svg",{role:"img",width:"16",height:"16",viewBox:"0 0 24 24","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg"},Ea.default.createElement("path",{d:"M24 13.616v-3.232c-1.651-.587-2.694-.752-3.219-2.019v-.001c-.527-1.271.1-2.134.847-3.707l-2.285-2.285c-1.561.742-2.433 1.375-3.707.847h-.001c-1.269-.526-1.435-1.576-2.019-3.219h-3.232c-.582 1.635-.749 2.692-2.019 3.219h-.001c-1.271.528-2.132-.098-3.707-.847l-2.285 2.285c.745 1.568 1.375 2.434.847 3.707-.527 1.271-1.584 1.438-3.219 2.02v3.232c1.632.58 2.692.749 3.219 2.019.53 1.282-.114 2.166-.847 3.707l2.285 2.286c1.562-.743 2.434-1.375 3.707-.847h.001c1.27.526 1.436 1.579 2.019 3.219h3.232c.582-1.636.75-2.69 2.027-3.222h.001c1.262-.524 2.12.101 3.698.851l2.285-2.286c-.744-1.563-1.375-2.433-.848-3.706.527-1.271 1.588-1.44 3.221-2.021zm-12 2.384c-2.209 0-4-1.791-4-4s1.791-4 4-4 4 1.791 4 4-1.791 4-4 4z",fill:"currentColor"})),Sa=t(b()),ka=()=>Sa.default.createElement("svg",{className:"devtools-icon",version:"1.1",viewBox:"1 1 22 22",xmlSpace:"preserve",xmlns:"http://www.w3.org/2000/svg"},Sa.default.createElement("g",{className:"devtools-icon-internal",id:"grid_system"}),Sa.default.createElement("g",{id:"_icons"},Sa.default.createElement("path",{d:"M18,12v-0.9l0.7-5.7C18.8,4.5,18.6,3.7,18,3c-0.6-0.6-1.4-1-2.2-1H8.3C7.4,2,6.6,2.4,6,3C5.4,3.7,5.2,4.5,5.3,5.4L6,11.1 V12c0,1.6,1.3,2.9,2.8,3l-0.4,2.9c-0.1,1,0.2,2.1,0.8,2.9S11,22,12,22s2-0.5,2.7-1.2s1-1.8,0.8-2.9L15.2,15 C16.7,14.9,18,13.6,18,12z M7.5,4.3C7.7,4.1,8,4,8.3,4H13v2c0,0.6,0.4,1,1,1s1-0.4,1-1V4h0.7c0.3,0,0.6,0.1,0.8,0.3 c0.2,0.2,0.3,0.5,0.2,0.8L16.1,10H7.9L7.3,5.1C7.2,4.8,7.3,4.6,7.5,4.3z M13.2,19.4c-0.6,0.7-1.8,0.7-2.4,0 c-0.3-0.4-0.4-0.8-0.4-1.3l0.5-3.2h2.3l0.5,3.2C13.7,18.6,13.5,19.1,13.2,19.4z M15,13h-1h-4H9c-0.6,0-1-0.4-1-1h8 C16,12.6,15.6,13,15,13z"}))),x=t(b()),Oa=t(Ve()),Be=class extends x.default.Component{constructor(e){super(e)}render(){var e=this.props["t"];return this.props.item.enabled?x.default.createElement("li",{className:"marketplace-tabBar-headerItem","data-tab":this.props.item.value,onClick:e=>{e.preventDefault(),this.props.switchTo(this.props.item)}},x.default.createElement("a",{"aria-current":"page",className:"marketplace-tabBar-headerItemLink "+(this.props.item.active?"marketplace-tabBar-active":""),draggable:"false",href:""},x.default.createElement("span",{className:"main-type-mestoBold"},e("tabs."+this.props.item.value)))):null}},Ca=Hr()(Be),Na=x.default.memo(function({items:e,switchTo:t}){return x.default.createElement("li",{className:"marketplace-tabBar-headerItem"},x.default.createElement(Oa.default,{className:"main-type-mestoBold",options:e,value:"More",placeholder:"More",onChange:t}))}),xa=e=>{const t=document.querySelector(".Root__main-view .os-resize-observer-host");if(!t)return null;const[r,n]=(0,x.useState)(t.clientWidth),a=()=>n(t.clientWidth);return(0,x.useEffect)(()=>{const e=new ResizeObserver(a);return e.observe(t),()=>{e.disconnect()}}),(0,x.useEffect)(()=>{var e,t;e=document.querySelector(".marketplace-tabBar"),t=document.querySelector(".main-topBar-topbarContentWrapper"),e&&t&&"/marketplace"==Spicetify.Platform.History.location.pathname&&t.appendChild(e),Spicetify.Platform.History.listen(({pathname:e})=>{"/marketplace"!=e&&null!=(e=document.querySelector(".marketplace-tabBar"))&&e.remove()})}),x.default.createElement(Ia,{windowSize:r,links:e.links,activeLink:e.activeLink,switchCallback:e.switchCallback})},Ia=x.default.memo(function({links:e,activeLink:r,switchCallback:t,windowSize:n=1/0}){const a=x.default.useRef(null),[o,i]=(0,x.useState)([]),[s,l]=(0,x.useState)(0),[c,u]=(0,x.useState)([]),p=e.map(({name:e,enabled:t})=>{return{label:e,value:e,active:e===r,enabled:t}});return(0,x.useEffect)(()=>{a.current&&l(a.current.clientWidth)},[n,null==(n=a.current)?void 0:n.clientWidth]),(0,x.useEffect)(()=>{var e;a.current&&(e=Array.from(a.current.children).map(e=>e.clientWidth),i(e))},[e]),(0,x.useEffect)(()=>{if(a.current)if(o.reduce((e,t)=>e+t,0)<=s)u([]);else{var e=Math.max(...o);const n=[];let r=e;o.forEach((e,t)=>{s>=r+e?r+=e:n.push(t)}),u(n)}},[s,o]),x.default.createElement("nav",{className:"marketplace-tabBar marketplace-tabBar-nav"},x.default.createElement("ul",{className:"marketplace-tabBar-header",ref:a},p.filter((e,t)=>!c.includes(t)).map(e=>x.default.createElement(Ca,{key:e.value,item:e,switchTo:t})),c.length||0===o.length?x.default.createElement(Na,{items:c.map(e=>p[e]).filter(e=>e),switchTo:t}):null))}),I=t(b()),La=t(b()),Ra=()=>La.default.createElement("svg",{role:"img",width:"16",height:"16",viewBox:"0 0 448 512","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg"},La.default.createElement("path",{d:"M53.21 467c1.562 24.84 23.02 45 47.9 45h245.8c24.88 0 46.33-20.16 47.9-45L416 128H32L53.21 467zM432 32H320l-11.58-23.16c-2.709-5.42-8.25-8.844-14.31-8.844H153.9c-6.061 0-11.6 3.424-14.31 8.844L128 32H16c-8.836 0-16 7.162-16 16V80c0 8.836 7.164 16 16 16h416c8.838 0 16-7.164 16-16V48C448 39.16 440.8 32 432 32z",fill:"currentColor"})),Pa=t(b()),Aa=()=>Pa.default.createElement("svg",{role:"img",width:"16",height:"16",viewBox:"0 0 512 512","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg"},Pa.default.createElement("path",{d:"M480 352h-133.5l-45.25 45.25C289.2 409.3 273.1 416 256 416s-33.16-6.656-45.25-18.75L165.5 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96C512 366.3 497.7 352 480 352zM432 456c-13.2 0-24-10.8-24-24c0-13.2 10.8-24 24-24s24 10.8 24 24C456 445.2 445.2 456 432 456zM233.4 374.6C239.6 380.9 247.8 384 256 384s16.38-3.125 22.62-9.375l128-128c12.49-12.5 12.49-32.75 0-45.25c-12.5-12.5-32.76-12.5-45.25 0L288 274.8V32c0-17.67-14.33-32-32-32C238.3 0 224 14.33 224 32v242.8L150.6 201.4c-12.49-12.5-32.75-12.5-45.25 0c-12.49 12.5-12.49 32.75 0 45.25L233.4 374.6z",fill:"currentColor"})),Ta=t(b()),_a=()=>Ta.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24"},Ta.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z",fill:"currentColor"})),ja=t(b()),Ma=e=>{return ja.default.createElement("div",{className:"marketplace-card__authors"},e.authors.map((e,t)=>ja.default.createElement("a",{title:e.name,className:"marketplace-card__author",href:e.url,draggable:"false",dir:"auto",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),key:t},e.name)))},Da=t(b()),$a=n=>{const[e,t]=Da.default.useState(!1),a={[g("grid.externalJS")]:"external JS",[g("grid.dark")]:"dark",[g("grid.light")]:"light"};var r=e=>{return e.filter((e,t,r)=>r.indexOf(e)===t).reduce((e,t)=>{var r=a[t]||t;return!n.showTags&&t!==g("grid.externalJS")||e.push(Da.default.createElement("li",{className:"marketplace-card__tag",draggable:!1,"data-tag":r},t)),e},[])},o=n.tags.slice(0,4),i=n.tags.slice(4);return Da.default.createElement("div",{className:"marketplace-card__tags-container"},Da.default.createElement("ul",{className:"marketplace-card__tags"},r(o),i.length&&e?r(i):null),i.length&&!e?Da.default.createElement("button",{className:"marketplace-card__tags-more-btn",onClick:e=>{e.stopPropagation(),t(!0)}},"..."):null)},L=window.Spicetify,Fa=class extends I.default.Component{constructor(e){super(e),this.key=null,this.type=Fa,this.menuType=L.ReactComponent.Menu,this.localStorageKey=On(e),Object.assign(this,e),this.tags=e.item.tags||[],e.item.include&&this.tags.push(g("grid.externalJS")),this.state={installed:null!==localStorage.getItem(this.localStorageKey),stars:this.props.item.stars||0,tagsExpanded:!1,externalUrl:this.props.item.user&&this.props.item.repo?`https://github.com/${this.props.item.user}/`+this.props.item.repo:"",lastUpdated:this.props.item.user&&this.props.item.repo?this.props.item.lastUpdated:void 0}}isInstalled(){return null!==localStorage.getItem(this.localStorageKey)}async componentDidMount(){var e,t;"Installed"===this.props.CONFIG.activeTab&&"snippet"!==this.props.type&&(e=`https://api.github.com/repos/${this.props.item.user}/`+this.props.item.repo,{stargazers_count:e,pushed_at:t}=await fetch(e).then(e=>e.json()),this.state.stars!==e&&this.props.CONFIG.visual.stars&&console.debug("Stars updated to: "+e),this.state.lastUpdated!==t)&&console.debug("New update pushed at: "+t)}buttonClicked(){var e,t;"extension"===this.props.type?(this.isInstalled()?(console.debug("Extension already installed, removing"),this.removeExtension()):this.installExtension(),sa("RELOAD")):"theme"===this.props.type?(t=(t=localStorage.getItem(v.themeInstalled))?E(t,{}):{},this.isInstalled()?(console.debug("Theme already installed, removing"),this.removeTheme(this.localStorageKey)):(this.removeTheme(),this.installTheme()),(null!=(e=this.props.item.manifest)&&e.include||t.include)&&sa("RELOAD")):"app"===this.props.type?window.open(this.state.externalUrl,"_blank"):"snippet"===this.props.type?this.isInstalled()?(console.debug("Snippet already installed, removing"),this.removeSnippet()):this.installSnippet():console.error("Unknown card type")}installExtension(){var e,t,r,n,a,o,i,s,l,c,u;console.debug("Installing extension "+this.localStorageKey),this.props.item?({manifest:u,title:e,subtitle:t,authors:r,user:n,repo:a,branch:o,imageURL:i,extensionURL:s,readmeURL:l,lastUpdated:c}=this.props.item,localStorage.setItem(this.localStorageKey,JSON.stringify({manifest:u,type:this.props.type,title:e,subtitle:t,authors:r,user:n,repo:a,branch:o,imageURL:i,extensionURL:s,readmeURL:l,stars:this.state.stars,lastUpdated:c})),-1===(u=E(v.installedExtensions,[])).indexOf(this.localStorageKey)&&(u.push(this.localStorageKey),localStorage.setItem(v.installedExtensions,JSON.stringify(u))),console.debug("Installed"),this.setState({installed:!0})):L.showNotification("There was an error installing extension",!0)}removeExtension(){var e;localStorage.getItem(this.localStorageKey)&&(console.debug("Removing extension "+this.localStorageKey),localStorage.removeItem(this.localStorageKey),e=E(v.installedExtensions,[]).filter(e=>e!==this.localStorageKey),localStorage.setItem(v.installedExtensions,JSON.stringify(e)),console.debug("Removed"),this.setState({installed:!1}))}async installTheme(){var t=this.props["item"];if(t){console.debug("Installing theme "+this.localStorageKey);let e={};t.schemesURL&&(r=await(await fetch(t.schemesURL)).text(),e=mn(r));var r=Object.keys(e)[0],r=(console.debug(e,r),r||null),{manifest:n,title:a,subtitle:o,authors:i,user:s,repo:l,branch:c,imageURL:u,extensionURL:p,readmeURL:d,cssURL:h,schemesURL:f,include:m,lastUpdated:g}=t,n=(localStorage.setItem(this.localStorageKey,JSON.stringify({manifest:n,type:this.props.type,title:a,subtitle:o,authors:i,user:s,repo:l,branch:c,imageURL:u,extensionURL:p,readmeURL:d,stars:this.state.stars,tags:this.tags,cssURL:h,schemesURL:f,include:m,schemes:e,activeScheme:r,lastUpdated:g})),E(v.installedThemes,[]));-1===n.indexOf(this.localStorageKey)&&(n.push(this.localStorageKey),localStorage.setItem(v.installedThemes,JSON.stringify(n)),localStorage.setItem(v.themeInstalled,this.localStorageKey)),console.debug("Installed"),t.include||(this.fetchAndInjectUserCSS(this.localStorageKey),this.props.updateActiveTheme(this.localStorageKey),this.props.updateColourSchemes(e,r),(o=null==(a=this.props.item.manifest)?void 0:a.name)&&(L.Config.current_theme=o),r&&(L.Config.color_scheme=r)),this.setState({installed:!0})}else L.showNotification("There was an error installing theme",!0)}removeTheme(t){var e=(t=t||localStorage.getItem(v.themeInstalled))&&localStorage.getItem(t);t&&e&&(console.debug("Removing theme "+t),localStorage.removeItem(t),localStorage.removeItem(v.themeInstalled),e=E(v.installedThemes,[]).filter(e=>e!==t),localStorage.setItem(v.installedThemes,JSON.stringify(e)),console.debug("Removed"),this.fetchAndInjectUserCSS(null),this.props.updateActiveTheme(null),this.props.updateColourSchemes(null,null),L.Config.current_theme=L.Config.local_theme,L.Config.color_scheme=L.Config.local_color_scheme,this.setState({installed:!1}))}installSnippet(){console.debug("Installing snippet "+this.localStorageKey),localStorage.setItem(this.localStorageKey,JSON.stringify({code:this.props.item.code,title:this.props.item.title,description:this.props.item.description,imageURL:this.props.item.imageURL}));var e=E(v.installedSnippets,[]),e=(-1===e.indexOf(this.localStorageKey)&&(e.push(this.localStorageKey),localStorage.setItem(v.installedSnippets,JSON.stringify(e))),e.map(e=>E(e)));gn(e),this.setState({installed:!0})}removeSnippet(){localStorage.removeItem(this.localStorageKey);var e=E(v.installedSnippets,[]).filter(e=>e!==this.localStorageKey),e=(localStorage.setItem(v.installedSnippets,JSON.stringify(e)),e.map(e=>E(e)));gn(e),this.setState({installed:!1})}async fetchAndInjectUserCSS(e){try{var t=e?await Sn(this.props.item):void 0;wn(t)}catch(e){console.warn(e)}}openReadme(){var e;null!=(e=this.props.item)&&e.manifest&&null!=(e=null==(e=this.props.item)?void 0:e.manifest)&&e.readme?L.Platform.History.push({pathname:hn+"/readme",state:{data:{title:this.props.item.title,user:this.props.item.user,repo:this.props.item.repo,branch:this.props.item.branch,readmeURL:this.props.item.readmeURL,type:this.props.type,install:this.buttonClicked.bind(this),isInstalled:this.isInstalled.bind(this)}}}):L.showNotification("No page was found",!0)}render(){var e,t,r=this.isInstalled();return"Installed"!==this.props.CONFIG.activeTab||r?(e=["main-card-card","marketplace-card--"+this.props.type],r&&e.push("marketplace-card--installed"),t=[],"snippet"!==this.props.type&&this.props.visual.stars&&t.push("★ "+this.state.stars),I.default.createElement("div",{className:e.join(" "),onClick:()=>{if("snippet"===this.props.type){var e=this.props.item.title.replace(/\n/g,"");if(null!=(e=E("marketplace:installed:snippet:"+e))&&e.custom)return sa("EDIT_SNIPPET",void 0,void 0,this.props);sa("VIEW_SNIPPET",void 0,void 0,this.props,this.buttonClicked.bind(this))}else this.openReadme()}},I.default.createElement("div",{className:"main-card-draggable",draggable:"true"},I.default.createElement("div",{className:"main-card-imageContainer"},I.default.createElement("div",{className:"main-cardImage-imageWrapper"},I.default.createElement("div",null,I.default.createElement("img",{alt:"","aria-hidden":"false",draggable:"false",loading:"lazy",src:this.props.item.imageURL,className:"main-image-image main-cardImage-image",onError:e=>{e.currentTarget.setAttribute("src","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII"),null!=(e=e.currentTarget.closest(".main-cardImage-imageWrapper"))&&e.classList.add("main-cardImage-imageWrapper--error")}})))),I.default.createElement("div",{className:"main-card-cardMetadata"},I.default.createElement("a",{draggable:"false",title:"snippet"===this.props.type?this.props.item.title:null==(e=this.props.item.manifest)?void 0:e.name,className:"main-cardHeader-link",dir:"auto",href:"snippet"!==this.props.type?this.state.externalUrl:"https://github.com/spicetify/spicetify-marketplace/blob/main/src/resources/snippets.ts",target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation()},I.default.createElement("div",{className:"main-cardHeader-text main-type-balladBold"},this.props.item.title)),I.default.createElement("div",{className:"main-cardSubHeader-root main-type-mestoBold marketplace-cardSubHeader"},this.props.item.authors&&I.default.createElement(Ma,{authors:this.props.item.authors}),I.default.createElement("span",null,t.join(" ‒ "))),I.default.createElement("p",{className:"marketplace-card-desc"},"snippet"===this.props.type?this.props.item.description:null==(e=this.props.item.manifest)?void 0:e.description),this.props.item.lastUpdated&&I.default.createElement("p",{className:"marketplace-card-desc"},g("grid.lastUpdated",{val:new Date(this.props.item.lastUpdated),formatParams:{val:{year:"numeric",month:"long",day:"numeric"}}})),this.tags.length?I.default.createElement("div",{className:"marketplace-card__bottom-meta main-type-mestoBold"},I.default.createElement($a,{tags:this.tags,showTags:this.props.CONFIG.visual.tags})):null,r&&I.default.createElement("div",{className:"marketplace-card__bottom-meta main-type-mestoBold"},"✓ ",g("grid.installed")),I.default.createElement(L.ReactComponent.TooltipWrapper,{label:"app"===this.props.type?g("github"):g(r?"remove":"install"),renderInline:!0},I.default.createElement("div",{className:"main-card-PlayButtonContainer"},I.default.createElement(S,{classes:["marketplace-installButton"],type:"circle",label:"app"===this.props.type?g("github"):g(r?"remove":"install"),onClick:e=>{e.stopPropagation(),this.buttonClicked()}},"app"===this.props.type?I.default.createElement(_a,null):r?I.default.createElement(Ra,null):I.default.createElement(Aa,null)))))))):(console.debug("Card item not installed"),null)}},Ba=Hr()(Fa),Ua=t(b()),Ga=t(Qe()),Ha=t(e());var Va=async function(t,r,e){for(;!Spicetify?.PopupModal||!Spicetify?.LocalStorage;)await new Promise(e=>setTimeout(e,100));var n,t=`spcr-whats-new_${t}-version`,a=Spicetify.LocalStorage.get(t)??"";try{(0,Ga.default)(r,a)&&(Spicetify.LocalStorage.set(t,r),n={...e,content:function(e){var t=document.createElement("div"),r=(t.setAttribute("id","whats-new-content-wrapper"),document.createElement("style"));return r.textContent=` #whats-new-content-wrapper ul, #whats-new-content-wrapper ol { list-style: inherit; margin-left: 1em; } `,Ha.default.render(e,t),t.appendChild(r),t}(e.content)},Spicetify.PopupModal.display(n))}catch(e){Spicetify.LocalStorage.set(t,r)}},qa=async()=>{var e=await fetch(fn).then(e=>e.json()).then(e=>{e=e.message?null:e.body;return e&&kn(e,"spicetify","spicetify-marketplace")}).catch(e=>(console.error(e),null));e&&Va("marketplace",un,{title:"✨ Marketplace v0.8.6",content:Ua.default.createElement("div",{dangerouslySetInnerHTML:{__html:e}}),isLarge:!0})},za=window.Spicetify,r=class extends f.default.Component{constructor(e){super(e),this.endOfList=!1,this.lastScroll=0,this.requestQueue=[],this.requestPage=0,this.cardList=[],Object.assign(this,e),this.updateAppConfig=e.updateAppConfig.bind(this),this.sortConfig={by:E(v.sortBy,"top")},this.state={version:un,newUpdate:!1,searchValue:"",cards:[],tabs:e.CONFIG.tabs,rest:!0,endOfList:!1,schemes:e.CONFIG.theme.schemes,activeScheme:e.CONFIG.theme.activeScheme,activeThemeKey:e.CONFIG.theme.activeThemeKey}}getInstalledTheme(){var e=localStorage.getItem(v.themeInstalled);return(e=e&&localStorage.getItem(e))?JSON.parse(e):null}newRequest(e){this.cardList=[];var t=[];this.requestQueue.unshift(t),this.loadAmount(t,e)}appendCard(e,t){e=f.default.createElement(Ba,{item:e,key:this.props.CONFIG.activeTab+":"+e.title,CONFIG:this.CONFIG,visual:this.props.CONFIG.visual,type:t,activeThemeKey:this.state.activeThemeKey,updateColourSchemes:this.updateColourSchemes.bind(this),updateActiveTheme:this.setActiveTheme.bind(this)});this.cardList.push(e),this.setState({cards:this.cardList})}updateSort(e){e&&(this.sortConfig.by=e,localStorage.setItem(v.sortBy,e)),this.requestPage=0,this.cardList=[],this.setState({cards:[],rest:!1,endOfList:!1}),this.endOfList=!1,this.newRequest(dn)}updateTabs(){this.setState({tabs:[...this.props.CONFIG.tabs]})}updatePostsVisual(){this.cardList=this.cardList.map((e,t)=>f.default.createElement(Ba,J(l({},e.props),{key:t.toString(),CONFIG:this.CONFIG}))),this.setState({cards:[...this.cardList]})}switchTo(e){this.CONFIG.activeTab=e.value,localStorage.setItem(v.activeTab,e.value),this.cardList=[],this.requestPage=0,this.setState({cards:[],rest:!1,endOfList:!1}),this.endOfList=!1,this.newRequest(dn)}async loadPage(t){switch(this.CONFIG.activeTab){case"Extensions":var e=await ca("spicetify-extensions",this.requestPage,this.BLACKLIST);for(const c of e.items){var r=await pa(c.contents_url,c.default_branch,c.stargazers_count,this.CONFIG.visual.hideInstalled);if(1{Object.assign(e,{lastUpdated:c.pushed_at}),this.appendCard(e,"extension")})}var n=-1{e=E(e);if(1{Object.assign(e,{lastUpdated:p.pushed_at}),this.appendCard(e,"theme")})}e=-1{Object.assign(e,{lastUpdated:d.pushed_at}),this.appendCard(e,"app")})}a=-1this.appendCard(e,"snippet"))}return this.setState({rest:!0,endOfList:!0}),this.endOfList=!0,0}async loadAmount(t,e=dn){for(this.setState({rest:!1}),e+=this.cardList.length,this.requestPage=await this.loadPage(t);this.requestPage&&-1!==this.requestPage&&this.cardList.lengthe!==t):(this.requestQueue.shift(),this.setState({rest:!0}))}loadMore(){this.state.rest&&!this.endOfList&&this.loadAmount(this.requestQueue[0],dn)}updateColourSchemes(e,t){console.debug("updateColourSchemes",e,t),this.CONFIG.theme.schemes=e,(this.CONFIG.theme.activeScheme=t)&&(za.Config.color_scheme=t),e&&t&&e[t]?En(this.CONFIG.theme.schemes[t]):En(null);var r=E(v.themeInstalled),n=E(r);n?(n.activeScheme=t,console.debug(n),localStorage.setItem(r,JSON.stringify(n))):console.debug("No installed theme data"),this.setState({schemes:e,activeScheme:t})}async componentDidMount(){fetch("https://api.github.com/repos/spicetify/spicetify-marketplace/releases").then(e=>e.json()).then(e=>{this.setState({version:e[0].name});try{this.setState({newUpdate:cn.default.gt(this.state.version,un)})}catch(e){console.error(e)}},e=>{console.error("Failed to check for updates",e)}),qa(),this.gridUpdateTabs=this.updateTabs.bind(this),this.gridUpdatePostsVisual=this.updatePostsVisual.bind(this);var e=document.querySelector(".os-viewport");this.checkScroll=this.isScrolledBottom.bind(this),e&&(e.addEventListener("scroll",this.checkScroll),this.cardList.length)?0=e.scrollHeight&&this.loadMore()}setActiveTheme(e){this.CONFIG.theme.activeThemeKey=e,this.setState({activeThemeKey:e})}getActiveScheme(){return this.state.activeScheme}render(){const r=this.props["t"];return f.default.createElement("section",{className:"contentSpacing"},f.default.createElement("div",{className:"marketplace-header"},f.default.createElement("div",{className:"marketplace-header__left"},f.default.createElement("h1",null,this.props.title),this.state.newUpdate?f.default.createElement("button",{type:"button",title:r("grid.newUpdate"),className:"marketplace-header-icon-button",id:"marketplace-update",onClick:()=>window.location.href="https://github.com/spicetify/spicetify-marketplace"},f.default.createElement(Aa,null)," ",this.state.version):null),f.default.createElement("div",{className:"marketplace-header__right"},this.CONFIG.visual.themeDevTools?f.default.createElement(za.ReactComponent.TooltipWrapper,{label:r("devTools.title"),renderInline:!0,placement:"bottom"},f.default.createElement("button",{type:"button","aria-label":r("devTools.title"),className:"marketplace-header-icon-button",onClick:()=>sa("THEME_DEV_TOOLS")},f.default.createElement(ka,null))):null,this.state.activeScheme?f.default.createElement(Vn,{onChange:e=>this.updateColourSchemes(this.state.schemes,e),sortBoxOptions:bn(this.state.schemes),sortBySelectedFn:e=>e.key===this.getActiveScheme()}):null,f.default.createElement("div",{className:"searchbar--bar__wrapper"},f.default.createElement("input",{className:"searchbar-bar",type:"text",placeholder:`${r("grid.search")} ${r("tabs."+this.CONFIG.activeTab)}...`,value:this.state.searchValue,onChange:e=>{this.setState({searchValue:e.target.value})}})),f.default.createElement(za.ReactComponent.TooltipWrapper,{label:r("settings.title"),renderInline:!0,placement:"bottom"},f.default.createElement("button",{type:"button","aria-label":r("settings.title"),className:"marketplace-header-icon-button",id:"marketplace-settings-button",onClick:()=>sa("SETTINGS",this.CONFIG,this.updateAppConfig)},f.default.createElement(wa,null))))),[{handle:"extension",name:"Extensions"},{handle:"theme",name:"Themes"},{handle:"snippet",name:"Snippets"},{handle:"app",name:"Apps"}].map(t=>{var e=this.cardList.filter(e=>e.props.type===t.handle).filter(e=>{const t=this.state.searchValue.trim().toLowerCase();var{title:e,user:r,authors:n}=e.props.item;return!t||e.toLowerCase().includes(t)||(null==r?void 0:r.toLowerCase().includes(t))||(null==n?void 0:n.some(e=>e.name.toLowerCase().includes(t)))}).map(e=>f.default.cloneElement(e,{activeThemeKey:this.state.activeThemeKey,key:On(e.props)}));return e.length?f.default.createElement(f.default.Fragment,null,f.default.createElement("h2",{className:"marketplace-card-type-heading"},r("tabs."+t.name)),f.default.createElement("div",{className:"marketplace-grid main-gridContainer-gridContainer main-gridContainer-fixedWidth","data-tab":this.CONFIG.activeTab,"data-card-type":r("tabs."+t.name)},e)):null}),"Snippets"===this.CONFIG.activeTab?f.default.createElement(S,{classes:["marketplace-add-snippet-btn"],onClick:()=>sa("ADD_SNIPPET")},"+ ",r("grid.addCSS")):null,f.default.createElement("footer",{className:"marketplace-footer"},!this.state.endOfList&&(this.state.rest?f.default.createElement(va,{onClick:this.loadMore.bind(this)}):f.default.createElement(ya,null))),f.default.createElement(xa,{switchCallback:this.switchTo.bind(this),links:this.CONFIG.tabs,activeLink:this.CONFIG.activeTab}))}},Ka=Hr()(r),A=t(b()),Ue=class extends A.default.Component{constructor(){super(...arguments),this.state={isInstalled:this.props.data.isInstalled(),html:`

${this.props.t("readmePage.loading")}

`},this.getReadmeHTML=async()=>fetch(this.props.data.readmeURL).then(e=>{if(e.ok)return e.text();throw Spicetify.showNotification(`${this.props.t("readmePage.errorLoading")} (HTTP ${e.status})`,!0)}).then(e=>kn(e,this.props.data.user,this.props.data.repo)).then(e=>(e||Spicetify.Platform.History.goBack(),e)).catch(e=>(console.error(e),Spicetify.Platform.History.goBack(),null))}componentDidMount(){this.getReadmeHTML().then(e=>{null!=e&&this.setState({html:e})})}componentDidUpdate(){var e;const t=null==(e=document.querySelector("#marketplace-readme"))?void 0:e.closest("main");if(t){const r=setInterval(()=>{t.style.overflowY="visible",t.style.overflowY="auto",document.querySelector(".os-scrollbar-vertical.os-scrollbar-unusable")&&t||clearInterval(r)},1e3)}document.querySelectorAll("#marketplace-readme img").forEach(e=>{e.addEventListener("error",e=>{var e=e.target,t=e.getAttribute("src"),t="/"===(null==t?void 0:t.charAt(0))?`https://raw.githubusercontent.com/${this.props.data.user}/${this.props.data.repo}/${this.props.data.branch}/`+(null==t?void 0:t.slice(1)):this.props.data.readmeURL.substring(0,this.props.data.readmeURL.lastIndexOf("/"))+"/"+t;e.setAttribute("src",t)},{once:!0})})}buttonContent(){return"app"===this.props.data.type?{icon:A.default.createElement(_a,null),text:this.props.t("github")}:this.state.isInstalled?{icon:A.default.createElement(Ra,null),text:this.props.t("remove")}:{icon:A.default.createElement(Aa,null),text:this.props.t("install")}}render(){return A.default.createElement("section",{className:"contentSpacing"},A.default.createElement("div",{className:"marketplace-header"},A.default.createElement("div",{className:"marketplace-header__left"},A.default.createElement("h1",null,this.props.title)),A.default.createElement("div",{className:"marketplace-header__right"},A.default.createElement(S,{classes:["marketplace-header__button"],onClick:e=>{e.preventDefault(),this.props.data.install(),this.setState({isInstalled:!this.state.isInstalled})},label:this.buttonContent().text},this.buttonContent().icon," ",this.buttonContent().text))),"

Loading...

"===this.state.html?A.default.createElement("footer",{className:"marketplace-footer"},A.default.createElement(ya,null)):A.default.createElement("div",{id:"marketplace-readme",className:"marketplace-readme__container",dangerouslySetInnerHTML:{__html:this.state.html}}))}},Ja=Hr()(Ue),Ge=(h.use(X).use(Vr).init({resources:{ca:{translation:{settings:{title:"Configuració",optionsHeading:"Opcions",starCountLabel:"Número d'estrelles",tagsLabel:"Etiquetes",devToolsLabel:"Eines per a desenvolupadors de temes",hideInstalledLabel:"Amagar instal·lats",colourShiftLabel:"Canviar colors cada minut",albumArtBasedColors:"Canviar colors a partir de la portada de l'àlbum",albumArtBasedColorsMode:"Mode esquema de colors (ColorApi)",albumArtBasedColorsVibrancy:"Colors agafats de la portada de l'àlbum",albumArtBasedColorsVibrancyToolTip:"Desaturat:El color més destacat però amb molta menys bror \n Vibrant Clar: El color més villantibrant amb la brillantor augmentada una mica \n Prominent: El color més destacat a la portada de l'Àlbum \n Vibrant: El color més vibrant a la portada de l'Àlbum",almbumArtColorsModeToolTip:"Monochrome Dark: Un esquema de colors basat en el color principal seleccionat, emprant diferentes tonalitats i barrejant tons grisos per crear l'esquema de colors, aquest és l'invers de Monochrome Light. \n Monochrome Light: Un esquema de colors basat en el color principal seleccionat, emprant diferentes tonalitats i barrejant tons grisos per crear l'esquema de colors. El colors del fins de Monochrome light seria el color de primer pla en Monochrome Dark i viceversa. \n Analògic: Un esquema de colors basat en el color principal seleccionat, emprant els colors adjacents en la roda de colors. \n Analògic Complementari: Un esquema de colors basat en el color principal seleccionat, emprant els colors adjacents en la roda de colors i el color complementari. \n Tríada: Un esquema de colors basat en el color principal seleccionat, emprant els colors de la roda de colors que estan separats de manera equidistant del color principal. \n Quad: Un esquema de colors basat en el color principal seleccionat, emprant els colors que es troben separats 90 graus entre si en la roda de colors.",tabsHeading:"Pestanyes",resetHeading:"Restablir",resetBtn:"$t(settings.resetHeading)",resetDescription:"Borrar totes les extensions, temes i preferències",backupHeading:"Fer una còpia/Reestablir des d'una còpia",backupLabel:"Fer una còpia o restablir totes les dades de Marketplace des d'una còpia. Això no inclou la configuració per els elements instal·lats amb Marketplace.",backupBtn:"Obrir",versionHeading:"Versió",versionBtn:"Copiar",versionCopied:"Copiat"},tabs:{Extensions:"Extensions",Themes:"Temes",Snippets:"Fragments",Apps:"Aplicacions",Installed:"Instal·lats"},snippets:{addTitle:"Afegir fragment",editTitle:"Editar fragment",viewTitle:"Veure fragment",customCSS:"CSS personalitzat",customCSSPlaceholder:"Crea el teu propi CSS aqui! Pots trobar-los a la pestanya d'instal·lats per administrar-los.",snippetName:"Nom del fragment de codi",snippetNamePlaceholder:"Afegeix un nom al teu codi personalitzat",snippetDesc:"Descripció del codi",snippetDescPlaceholder:"Crea una descripció per al teu codi personalitzat",snippetPreview:"Vista prèvia del fragment",optional:"Opcional",addImage:"Afegir imatge",changeImage:"Canviar imatge",saveCSS:"Guardar CSS"},reloadModal:{title:"Recarregar",description:"És necessari recarregar la finestra per completar aquesta operació.",reloadNow:"Fes-ho ara",reloadLater:"Després"},backupModal:{title:"$t(settings.backupHeading)",settingsCopied:"Configuració copiada al portapapers",noDataPasted:"No s'han enganxat dades",invalidJSON:"JSON invàlid",inputLabel:"Configuració de Marketplace",inputPlaceholder:"Còpia/enganxa la teva configuració aquí",exportBtn:"Exportar",importBtn:"Importar",fileImportBtn:"Importar des d'un arxiu"},devTools:{title:"Eines de desenvolupador de temes",noThemeInstalled:"Error: No hi ha cap tema de Marketplace instal·lat",noThemeManifest:"Error: No s'ha trobat el manifest",colorIniEditor:"Editor de Color.ini",colorIniEditorPlaceholder:"[nom-de-esquema-de-color]",invalidCSS:"CSS invàlid"},grid:{spicetifyMarketplace:"Marketplace de Spicetify",newUpdate:"Nova Actualització",addCSS:"Afegir CSS",search:"Buscar",installed:"Instal·lat",lastUpdated:"Última actualizació {{val, datetime}}",externalJS:"JS extern",dark:"fosc",light:"clar"},readmePage:{title:"$t(grid.spicetifyMarketplace) - Readme",loading:"Carregant...",errorLoading:"Error carregant el README"},github:"GitHub",install:"Instal·lar",remove:"Borrar",save:"Guardar",colour_one:"color",colour_other:"colors",favourite:"preferit"}},en:{translation:{settings:{title:"Settings",optionsHeading:"Options",starCountLabel:"Stars count",tagsLabel:"Tags",devToolsLabel:"Theme developer tools",hideInstalledLabel:"Hide installed when browsing",colourShiftLabel:"Shift colours every minute",albumArtBasedColors:"Change colours based on album art",albumArtBasedColorsMode:"Colour scheme (ColorApi) mode",albumArtBasedColorsVibrancy:"Colour grabbed from album art",albumArtBasedColorsVibrancyToolTip:"Desaturated: The colour that is the most prominent but with much less brightness \n Light Vibrant: The most Vibrant colour but with the brightness amped up a tad \n Prominent: The colour that pops the most in the album art \n Vibrant: The most vibrant colour in the album art",almbumArtColorsModeToolTip:"Monochrome Dark: A colour scheme based directly on the main colour selected, using different shades of the main colour and mixing in greys to create a colour scheme, this is the inverse of Monochrome Light. \n Monochrome Light: A colour scheme based directly on the main colour selected, using different shades of the main colour and mixing in greys to create a colour scheme. The background of monochrome light would be the foreground or text colour on Monochrome Dark and vice versa. \n Analogic: A colour scheme based on the main colour selected, using the colours adjacent to the main colour on the colour wheel. \n Analogic Complementary: A colour scheme based on the main colour selected, using the colours adjacent to the main colour on the colour wheel and the complementary colour. \n Triad: A colour scheme based on the main colour selected, using the colours on the colour wheel that are equidistant from the main colour. \n Quad: A colour scheme based on the main colour selected, using the colours on the colour wheel that are 90 degrees from the main colour.",tabsHeading:"Tabs",resetHeading:"Reset",resetBtn:"$t(settings.resetHeading)",resetDescription:"Uninstall all extensions and themes, and reset preferences",backupHeading:"Back up/Restore",backupLabel:"Back up or restore all Marketplace data. This does not include settings for anything installed via Marketplace.",backupBtn:"Open",versionHeading:"Version",versionBtn:"Copy",versionCopied:"Copied"},tabs:{Extensions:"Extensions",Themes:"Themes",Snippets:"Snippets",Apps:"Apps",Installed:"Installed"},snippets:{addTitle:"Add Snippet",editTitle:"Edit Snippet",viewTitle:"View Snippet",customCSS:"Custom CSS",customCSSPlaceholder:"Input your own custom CSS here! You can find them in the installed tab for management.",snippetName:"Snippet Name",snippetNamePlaceholder:"Enter a name for your custom snippet",snippetDesc:"Snippet Description",snippetDescPlaceholder:"Enter a description for your custom snippet",snippetPreview:"Snippet Preview",optional:"Optional",addImage:"Add image",changeImage:"Change image",saveCSS:"Save CSS"},reloadModal:{title:"Reload",description:"A page reload is required to complete this operation.",reloadNow:"Reload now",reloadLater:"Reload later"},backupModal:{title:"$t(settings.backupHeading)",settingsCopied:"Settings copied to clipboard",noDataPasted:"No data pasted",invalidJSON:"Invalid JSON",inputLabel:"Marketplace Settings",inputPlaceholder:"Copy/paste your settings here",exportBtn:"Export",importBtn:"Import",fileImportBtn:"Import from file"},devTools:{title:"Theme Dev Tools",noThemeInstalled:"Error: No marketplace theme installed",noThemeManifest:"Error: No theme manifest found",colorIniEditor:"Color.ini Editor",colorIniEditorPlaceholder:"[your-colour-scheme-name]",invalidCSS:"Invalid CSS"},grid:{spicetifyMarketplace:"Spicetify Marketplace",newUpdate:"New update",addCSS:"Add CSS",search:"Search",installed:"Installed",lastUpdated:"Last updated {{val, datetime}}",externalJS:"external JS",dark:"dark",light:"light"},readmePage:{title:"$t(grid.spicetifyMarketplace) - Readme",loading:"Loading...",errorLoading:"Error loading README"},github:"GitHub",install:"Install",remove:"Remove",save:"Save",colour_one:"colour",colour_other:"colours",favourite:"favourite"}},"en-US":{translation:{settings:{colourShiftLabel:"Shift colors every minute",albumArtBasedColors:"Change colors based on album art",albumArtBasedColorsMode:"Color scheme (ColorApi) mode",albumArtBasedColorsVibrancy:"Color grabbed from album art",albumArtBasedColorsVibrancyToolTip:"Desaturated: The color that is the most prominent but with much less brightness \n Light Vibrant: The most Vibrant color but with the brightness amped up a tad \n Prominent: The color that pops the most in the album art \n Vibrant: The most vibrant color in the album art",almbumArtColorsModeToolTip:"Monochrome Dark: A color scheme based directly on the main color selected, using different shades of the main color and mixing in greys to create a color scheme, this is the inverse of Monochrome Light. \n Monochrome Light: A color scheme based directly on the main color selected, using different shades of the main color and mixing in greys to create a color scheme. The background of monochrome light would be the foreground or text color on Monochrome Dark and vice versa. \n Analogic: A color scheme based on the main color selected, using the colors adjacent to the main color on the color wheel. \n Analogic Complementary: A color scheme based on the main color selected, using the colors adjacent to the main color on the color wheel and the complementary color. \n Triad: A color scheme based on the main color selected, using the colors on the color wheel that are equidistant from the main color. \n Quad: A color scheme based on the main color selected, using the colors on the color wheel that are 90 degrees from the main color."},devTools:{colorIniEditorPlaceholder:"[your-color-scheme-name]"},colour_one:"color",colour_other:"colors",favourite:"favorite"}},es:{translation:{settings:{title:"Ajustes",optionsHeading:"Opciones",starCountLabel:"Numero de estrellas",tagsLabel:"Etiquetas",devToolsLabel:"Herramientas para desarrolladores de temas",hideInstalledLabel:"Esconder instalado cuando buscando",colourShiftLabel:"Cambiar colores cada minuto",tabsHeading:"Pestañas",resetHeading:"Reestablecer",resetBtn:"$t(settings.resetHeading)",resetDescription:"Borrar todas estensiones and temas, y borrar preferencias",backupHeading:"Haz una copia/Reestablecer desde una copia",backupLabel:"Haz una copia o reestablece todos los datos de Marketplace desde una copia. Esto no incluye ajustes para las cosas instaladas con Marketplace.",backupBtn:"Abrir"},tabs:{Extensions:"Extensiónes",Themes:"Temas",Snippets:"Codigos",Apps:"Aplicaciones",Installed:"Instalados"},snippets:{addTitle:"Añadir Codigo",editTitle:"Editar Codigo",viewTitle:"Ver Codigo",customCSS:"Custom CSS",customCSSPlaceholder:"¡Crea tu propio CSS aqui! Puedes encontrarlos en la pestaña de instalados para administrarlos.",snippetName:"Nombre del codigo",snippetNamePlaceholder:"Asignale un nombre para tu codigo personalizado",snippetDesc:"Descripcion del codigo",snippetDescPlaceholder:"Crea una description para tu codigo personalizado",snippetPreview:"Codigo",optional:"Opcional",addImage:"Añadir imagen",changeImage:"Cambiar imagen",saveCSS:"Guardar CSS"},reloadModal:{title:"Recargar",description:"Una recarga de ventada es necesaria para completar esta operación.",reloadNow:"Recargar ahora",reloadLater:"Recargar después"},backupModal:{title:"$t(settings.backupHeading)",settingsCopied:"Ajustes copiados al portapapeles",noDataPasted:"No data pegado",invalidJSON:"JSON invalido",inputLabel:"Ajustes de Marketplace",inputPlaceholder:"Copia/pega tus ajustes aqui",exportBtn:"Exportar",importBtn:"Importar",fileImportBtn:"Importar desde un archivo"},devTools:{title:"Herramientas de desarrollador de temas",noThemeInstalled:"Error: No tema de marketplace instalado",noThemeManifest:"Error: No manifiesto de tema encontrado",colorIniEditor:"Editor de Color.ini",colorIniEditorPlaceholder:"[nombre-de-esquema-de-color]",invalidCSS:"CSS invalido"},grid:{spicetifyMarketplace:"Marketplace de Spicetify",newUpdate:"Nueva actualización",addCSS:"Añadir CSS",search:"Buscar",installed:"Instalado",lastUpdated:"Ultima actualización {{val, datetime}}",externalJS:"JS external",dark:"oscuro",light:"claro"},readmePage:{title:"$t(grid.spicetifyMarketplace) - Readme",loading:"Cargando...",errorLoading:"Error cargando README"},github:"GitHub",install:"Instalar",remove:"Borrar",save:"Guardar",colour_one:"color",colour_other:"colores",favourite:"favorito"}},fr:{translation:{settings:{title:"Réglages",optionsHeading:"Options",starCountLabel:"Nombres d’étoiles",tagsLabel:"Tags",devToolsLabel:"Outils pour les développeurs de thèmes",hideInstalledLabel:"Masquer ceux étant installés lors de la navigation",colourShiftLabel:"Changer de couleure chaque minutes",tabsHeading:"Onglets",resetHeading:"Réinitialiser",resetBtn:"$t(settings.resetHeading)",resetDescription:"Désinstaller toutes les extensions et tous les thèmes, ainsi que l’ensemble des réglages",backupHeading:"Sauvegarde/Restauration",backupLabel:"Sauvegarder ou restaurer toutes les données du Marché. Celà n'inclue pas les réglages pour quoi que ce soit installé depuis le Marché.",backupBtn:"Ouvrir"},tabs:{Extensions:"Extensions",Themes:"Thèmes",Snippets:"Bribes",Apps:"Applications",Installed:"Installé(s)"},snippets:{addTitle:"Ajouter Bribe",editTitle:"Éditer Bribe",viewTitle:"Voir Bribe",customCSS:"CSS personnalisé",customCSSPlaceholder:"Insérez votre propre CSS personnalisé ici! Vous pouvez les retrouver dans l’onglet Installé pour les gérrer.",snippetName:"Nom de la bribe",snippetNamePlaceholder:"Entrer un nom pour votre bribe personnalisée",snippetDesc:"Description de la bribe",snippetDescPlaceholder:"Entrez une description pour votre bribe personnalisée",snippetPreview:"Prévisualiser la bribe",optional:"Optionnel",addImage:"Ajouter une image",changeImage:"Changer l’image",saveCSS:"Enregistrer le CSS"},reloadModal:{title:"Recharger",description:"Un rechargement de la page est requis pour finaliser cette opération.",reloadNow:"Recharger maintenant",reloadLater:"Recharger plus tard"},backupModal:{title:"Sauvegarder/Restaurer",settingsCopied:"Réglages copiés dans le presse-papier",noDataPasted:"Aucune donnée collée",invalidJSON:"JSON invalide",inputLabel:"Réglages du Marché",inputPlaceholder:"Copier/coller vos réglages ici",exportBtn:"Exporter",importBtn:"Importer",fileImportBtn:"Importer depuis un fichier"},devTools:{title:"Outils de développeurs de thèmes",noThemeInstalled:"Erreur: Aucun thème du marché n’est installé",noThemeManifest:"Erreur: Aucun manifeste de thème trouvé",colorIniEditor:"Éditeur Color.ini",colorIniEditorPlaceholder:"[nom-de-votre-schéma-de-couleur]",invalidCSS:"CSS invalide"},grid:{spicetifyMarketplace:"Marché Spicetify",newUpdate:"Nouvelle mise à jour",addCSS:"Ajouter CSS",search:"Rechercher",installed:"Installé",lastUpdated:"Dernière mise à jour {{val, datetime}}",externalJS:"JS externe",dark:"sombre",light:"clair"},readmePage:{title:"$t(grid.spicetifyMarketplace) - Readme",loading:"Chargement…",errorLoading:"Erreur lors du chargement du README"},github:"GitHub",install:"Installer",remove:"Supprimer",save:"Enregistrer",colour_one:"couleure",colour_other:"couleures",favourite:"favoris"}},"zh-TW":{translation:{settings:{title:"設定",optionsHeading:"選項",starCountLabel:"收藏數",tagsLabel:"標籤",devToolsLabel:"主題開發者工具",hideInstalledLabel:"瀏覽時隱藏已安裝項目",colourShiftLabel:"每分鐘進行色調偏移",tabsHeading:"分頁",resetHeading:"重設",resetBtn:"$t(settings.resetHeading)",resetDescription:"解除安裝所有擴充套件和主題, 並重設偏好設定",backupHeading:"備份與還原",backupLabel:"備份或還原所有 Marketplace 中的資料(不包含從 Marketplace 安裝的擴充元件的設定)。",backupBtn:"開啟"},tabs:{Extensions:"擴充套件",Themes:"主題",Snippets:"微調片段",Apps:"功能模組",Installed:"已安裝項目"},snippets:{addTitle:"加入微調片段",editTitle:"編輯微調片段",viewTitle:"檢視微調片段",customCSS:"自訂 CSS",customCSSPlaceholder:"這裡可以輸入您的自訂 CSS!您可以在「已安裝項目」分頁中看到這些片段,進而進行管理。",snippetName:"微調片段名稱",snippetNamePlaceholder:"輸入自訂微調片段的名稱",snippetDesc:"微調片段描述",snippetDescPlaceholder:"輸入自訂微調片段的描述",snippetPreview:"微調片段預覽圖",optional:"非必須",addImage:"加入影像",changeImage:"更改影像",saveCSS:"儲存 CSS"},reloadModal:{title:"重新載入",description:"需要重新載入頁面,才能完成這個操作。",reloadNow:"立即重新載入",reloadLater:"稍後重新載入"},backupModal:{title:"$t(settings.backupHeading)",settingsCopied:"已將設定複製至剪貼簿",noDataPasted:"沒有貼上資料",invalidJSON:"JSON 無效",inputLabel:"Marketplace 設定",inputPlaceholder:"在此複製或貼上設定",exportBtn:"匯出",importBtn:"匯入",fileImportBtn:"從檔案匯入"},devTools:{title:"主題開發者工具",noThemeInstalled:"錯誤:沒有安裝 Marketplace 主題",noThemeManifest:"錯誤:找不到主題資訊清單",colorIniEditor:"Color.ini 編輯器",colorIniEditorPlaceholder:"[您的色彩配置名稱]",invalidCSS:"CSS 無效"},grid:{spicetifyMarketplace:"Spicetify Marketplace",newUpdate:"有更新",addCSS:"加入 CSS",search:"搜尋",installed:"已經安裝",lastUpdated:"上次更新於 {{val, datetime}}",externalJS:"有外部 JS",dark:"暗色",light:"亮色"},readmePage:{title:"$t(grid.spicetifyMarketplace) – 說明",loading:"正在載入……",errorLoading:"載入 README 時發生錯誤"},github:"GitHub",install:"安裝",remove:"移除",save:"儲存",colour_one:"色彩",colour_other:"色彩",favourite:"收藏"}},"zh-CN":{translation:{settings:{title:"设置",optionsHeading:"选项",starCountLabel:"收藏数",tagsLabel:"标签",devToolsLabel:"主題开发者工具",hideInstalledLabel:"浏览时隐藏已安装项目",colourShiftLabel:"每分钟进行色调偏移",tabsHeading:"分页",resetHeading:"重置",resetBtn:"$t(settings.resetHeading)",resetDescription:"卸载所有扩展插件和主题,并重置设置"},tabs:{Extensions:"扩展插件",Themes:"主题",Snippets:"微调片段",Apps:"功能模组",Installed:"已安裝项目"},snippets:{addTitle:"加入微调片段",editTitle:"编辑微调片段",viewTitle:"检视微调片段",customCSS:"自定义 CSS",customCSSPlaceholder:"这里可以输入您的自定义 CSS!您可以在「已安裝项目」标签页中看到这些片段,进而进行管理。",snippetName:"微调片段名称",snippetNamePlaceholder:"输入自定义微调片段的名称",snippetDesc:"微调片段描述",snippetDescPlaceholder:"输入自定义微调片段的描述",snippetPreview:"微调片段预览图",optional:"非必要",addImage:"加入影像",changeImage:"更改影像",saveCSS:"保存 CSS"},reloadModal:{title:"重新加载",description:"需要重新加载页面,才能完成这个操作。",reloadNow:"立即重新加载",reloadLater:"稍后重新加载"},devTools:{title:"主題开发者工具",noThemeInstalled:"错误:未安装商场主题",noThemeManifest:"错误:找不到主题内容清单",colorIniEditor:"Color.ini 编辑器",colorIniEditorPlaceholder:"[您的色彩配置名称]",invalidCSS:"CSS 无效"},grid:{spicetifyMarketplace:"Spicetify 商场",newUpdate:"有更新",addCSS:"加入 CSS",search:"搜索",installed:"已安装",lastUpdated:"上次更新于 {{val, datetime}}",externalJS:"有外部 JS",dark:"暗色模式",light:"亮色模式"},readmePage:{title:"$t(grid.spicetifyMarketplace) – 说明",loading:"正在加载……",errorLoading:"加载 README 时发生错误"},github:"GitHub",install:"安裝",remove:"移除",save:"保存",colour_one:"色彩",colour_other:"色彩",favourite:"收藏"}}},detection:{order:["navigator","htmlTag"]},fallbackLng:"en",interpolation:{escapeValue:!1}}),class extends rt.default.Component{constructor(e){super(e),this.state={count:0,CONFIG:{}},this.updateConfig=e=>{this.CONFIG=l({},e),console.debug("updated config",this.CONFIG),this.setState({CONFIG:l({},e)})};e=E(v.tabs,null);let t=[];try{if(t=JSON.parse(e),!Array.isArray(t))throw new Error("Could not parse marketplace tabs key");if(0===t.length)throw new Error("Empty marketplace tabs key");if(0!e).length)throw new Error("Falsey marketplace tabs key")}catch(e){t=pn,localStorage.setItem(v.tabs,JSON.stringify(t))}let r={},n=null;try{var a=E(v.themeInstalled,null);if(a){var o=E(a,null);if(!o)throw new Error("No installed theme data");r=o.schemes,n=o.activeScheme}else console.debug("No theme set as installed")}catch(e){console.error(e)}this.CONFIG={visual:{stars:JSON.parse(E("marketplace:stars",!0)),tags:JSON.parse(E("marketplace:tags",!0)),hideInstalled:JSON.parse(E("marketplace:hideInstalled",!1)),colorShift:JSON.parse(E("marketplace:colorShift",!1)),themeDevTools:JSON.parse(E("marketplace:themeDevTools",!1)),albumArtBasedColors:JSON.parse(E("marketplace:albumArtBasedColors",!1)),albumArtBasedColorsMode:E("marketplace:albumArtBasedColorsMode")||"monochrome-light",albumArtBasedColorsVibrancy:E("marketplace:albumArtBasedColorsVibrancy")||"PROMINENT",type:JSON.parse(E("marketplace:type",!1)),followers:JSON.parse(E("marketplace:followers",!1))},tabs:t,activeTab:E(v.activeTab,t[0]),theme:{activeThemeKey:E(v.themeInstalled,null),schemes:r,activeScheme:n}},this.CONFIG.activeTab&&this.CONFIG.tabs.filter(e=>e.name===this.CONFIG.activeTab).length||(this.CONFIG.activeTab=this.CONFIG.tabs[0].name)}render(){var e=Spicetify.Platform.History["location"];return e.pathname===hn+"/readme"&&e.state.data?rt.default.createElement(Ja,{title:g("readmePage.title"),data:e.state.data}):rt.default.createElement(Ka,{title:g("grid.spicetifyMarketplace"),CONFIG:this.CONFIG,updateAppConfig:this.updateConfig})}}),Wa=Hr()(Ge),Xa=t(b());return Ve=Ze,W(j({},"__esModule",{value:!0}),Ve)})();const render=()=>marketplace.default();