diff --git a/.config/spicetify/CustomApps/better-local-files/README.md b/.config/spicetify/CustomApps/better-local-files/README.md deleted file mode 100644 index 672d3dd6..00000000 --- a/.config/spicetify/CustomApps/better-local-files/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# Better local files - -View your local songs, albums and artists. - -![preview](https://raw.githubusercontent.com/Pithaya/spicetify-apps/main/custom-apps/better-local-files/preview.png) - -> **Note** -> There is a specific way to format artists so that the custom app recognizes them correctly: see [limitations](#limitations). -> -> If you have an issue with albums with the same name being merged, see [Albums with the same name from different artists](#albums-with-the-same-name-from-different-artists). - -## Features - -- Tracks, albums, and artists views -- Supports filtering and sorting -- Supports all languages available in Spotify. - -![preview](https://raw.githubusercontent.com/Pithaya/spicetify-apps/main/custom-apps/better-local-files/docs/tracks.png) - -## Installation - -1. Run `spicetify config-dir` to open the spicetify folder. -2. Go to the `CustomApps` folder. -3. Create a `better-local-files` folder. -4. Download the custom app files as a zip from [here](https://github.com/Pithaya/spicetify-apps-dist/archive/refs/heads/dist/better-local-files.zip). -5. Extract the zip and put the files inside the folder you created in step 3. - -Then, run the following commands: - -```sh -spicetify config custom_apps better-local-files -spicetify apply -``` - -## Limitations - -### Song artists - -Spotify doesn't seem to recognize separate artist tags on songs as different artists, and will instead use the concatenation of the artist's names. So a track with artists 'A' and 'B' will be considered as having a single artist: 'A, B'. -The custom app parses these strings with the following delimiters: ', ' and '; '. You should use this format to get artists recognized properly. -**Note**: This means that artists with the same name will be **considered the same artist**. - -### Album artists - -Album artists tags are not recognized, so the custom app will use the list of all artists from the album's tracks as the album's artists. - -### Artist images - -As artist images are not available, the artist's first album's image will be used instead. - -## Albums with the same name from different artists - -To identify an album, Spotify uses the current track's artist(s) name and the album name. This means that albums with tracks from different artists will be considered separate albums. -To fix this, the custom app groups albums by name. -This means that albums with the same name will be **considered the same album**. - -If you find that you have albums with the same name that are being merged when they shouldn't, you can use the **settings menu** to **rebuild the local album cache**. This will try to group tracks that share the same album name correctly by comparing the album covers. - -Note that for performance reasons this behaviour is **not enabled by default**. If you add new albums that have the same issue later on, you will need to **rebuild the cache manually again**. - -![preview](https://raw.githubusercontent.com/Pithaya/spicetify-apps/main/custom-apps/better-local-files/docs/build-cache.PNG) - -The cache can take some time to be built depending on how many tracks you have and how large the cover images are. - -The **clear album cache** menu item allows you to clear the cache and go back to the default behavior. - -## Upcoming features - -- Artist's album list -- Multi track selection -- Keep search, sort, and scroll information on navigation - -## Uninstall - -1. Run `spicetify config-dir` to open the spicetify folder -2. Go to the `CustomApps` folder -3. Delete the `better-local-files` folder - -Then, run the following commands: - -```sh -spicetify config custom_apps better-local-files- -spicetify apply -``` diff --git a/.config/spicetify/CustomApps/better-local-files/extension.js b/.config/spicetify/CustomApps/better-local-files/extension.js deleted file mode 100644 index 26b2b5f6..00000000 --- a/.config/spicetify/CustomApps/better-local-files/extension.js +++ /dev/null @@ -1 +0,0 @@ -!async function(){for(;!Spicetify.React||!Spicetify.ReactDOM;)await new Promise(t=>setTimeout(t,10));var t,e,D,a,F,c,U,R,r,$,o,i,n,H,s,J,u,l,g,L,B,K,V,h,f,Y,p,d,W,m,X,q,G,Q,Z,b,tt,et,rt,it,nt,ot,y,v,w,S,st,at;D=Object.create,a=Object.defineProperty,F=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,U=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty,t={"../../node_modules/pixelmatch/index.js"(t,e){"use strict";var m={threshold:.1,includeAA:!(e.exports=function(r,i,n,o,s,a){if(!b(r)||!b(i)||n&&!b(n))throw new Error("Image data: Uint8Array, Uint8ClampedArray or Buffer expected.");if(r.length!==i.length||n&&n.length!==r.length)throw new Error("Image sizes do not match.");if(r.length!==o*s*4)throw new Error("Image data size does not match width/height.");a=Object.assign({},m,a);var e=o*s,c=new Uint32Array(r.buffer,r.byteOffset,e),u=new Uint32Array(i.buffer,i.byteOffset,e);let l=!0;for(let t=0;th?a.includeAA||!y(r,t,e,o,s,i)&&!y(i,t,e,o,s,r)?(n&&v(n,p,...d<0&&a.diffColorAlt||a.diffColor),f++):n&&!a.diffMask&&v(n,p,...a.aaColor):n&&!a.diffMask&&S(r,p,a.alpha,n)}return f}),alpha:.1,aaColor:[255,255,0],diffColor:[255,0,0],diffColorAlt:null,diffMask:!1};function b(t){return ArrayBuffer.isView(t)&&1===t.constructor.BYTES_PER_ELEMENT}function y(r,i,n,o,t,e){var s=Math.max(i-1,0),a=Math.max(n-1,0),c=Math.min(i+1,o-1),u=Math.min(n+1,t-1),l=4*(n*o+i);let h=i===s||i===c||n===a||n===u?1:0,f=0,p=0,d,m,b,y;for(let e=s;e<=c;e++)for(let t=a;t<=u;t++)if(e!==i||t!==n){var v=w(r,r,l,4*(t*o+e),!0);if(0===v){if(2<++h)return}else vp&&(p=v,b=e,y=t)}return 0!==f&&0!==p&&(g(r,d,m,o,t)&&g(e,d,m,o,t)||g(r,b,y,o,t)&&g(e,b,y,o,t))}function g(r,i,n,o,t){var s=Math.max(i-1,0),a=Math.max(n-1,0),c=Math.min(i+1,o-1),u=Math.min(n+1,t-1),l=4*(n*o+i);let h=i===s||i===c||n===a||n===u?1:0;for(let e=s;e<=c;e++)for(let t=a;t<=u;t++)if(e!==i||t!==n){var f=4*(t*o+e);if(r[l]===r[f]&&r[1+l]===r[1+f]&&r[2+l]===r[2+f]&&r[3+l]===r[3+f]&&h++,2=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,o=t=>{if("string"!=typeof t)throw new TypeError("Invalid argument expected string");var e=t.match($);if(e)return e.shift(),e;throw new Error(`Invalid argument not valid semver ('${t}' received)`)},i=t=>"*"===t||"x"===t||"X"===t,n=t=>{var e=parseInt(t,10);return isNaN(e)?t:e},H=(t,e)=>{return i(t)||i(e)?0:([t,e]=(t=n(t),e=n(e),typeof t!=typeof e?[String(t),String(e)]:[t,e]),e{for(let t=0;t{var i=r;if("string"!=typeof i)throw new TypeError("Invalid operator type, expected string but got "+typeof i);if(-1===l.indexOf(i))throw new Error("Invalid operator, expected one of "+l.join("|"));i=e,e=o(e=t),i=o(i),t=e.pop(),n=i.pop();var n,i=0!==(e=s(e,i))?e:t&&n?s(t.split("."),n.split(".")):t||n?t?-1:1:0;return u[r].includes(i)},u={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]},l=Object.keys(u),g=class{constructor(t,e,r){this.uri=t,this.name=e,this.image=r,this.artists=[],this.discs=new Map}artists;discs;getTracks(){const r=[];return this.discs.forEach((t,e)=>r.push(...t)),r}getDuration(){return this.getTracks().map(t=>t.duration).reduce((t,e)=>t+e)}},L=class{constructor(t,e){this.name=t,this.image=e,this.uri="spotify:local:"+t}uri},B=class{constructor(t,e,r){this.localTrack=t,this.album=e,this.artists=r}get addedAt(){return this.localTrack.addedAt}get uri(){return this.localTrack.uri}get name(){return this.localTrack.name}get duration(){return this.localTrack.duration.milliseconds}get discNumber(){return this.localTrack.discNumber}get trackNumber(){return this.localTrack.trackNumber}},K=((t,e,r)=>{r=null!=t?D(U(t)):{};var i=!e&&t&&t.__esModule?r:a(r,"default",{value:t,enumerable:!0}),n=t,o=void 0,s=void 0;if(n&&"object"==typeof n||"function"==typeof n)for(let t of c(n))R.call(i,t)||t===o||a(i,t,{get:()=>n[t],enumerable:!(s=F(n,t))||s.enumerable});return i})(r()),V=function(t,e){return(V=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(t,e){t.__proto__=e}:function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])}))(t,e)},h=ft(function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map(function(t,e){return e+1+") "+t.toString()}).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}}),I.prototype.unsubscribe=function(){var e,t,r;if(!this.closed){this.closed=!0;var i=this._parentage;if(i)if(this._parentage=null,Array.isArray(i))try{for(var n=ht(i),o=n.next();!o.done;o=n.next())o.value.remove(this)}catch(t){a={error:t}}finally{try{o&&!o.done&&(s=n.return)&&s.call(n)}finally{if(a)throw a.error}}else i.remove(this);var s=this.initialTeardown;if(T(s))try{s()}catch(t){r=t instanceof h?t.errors:[t]}var a=this._finalizers;if(a){this._finalizers=null;try{for(var c=ht(a),u=c.next();!u.done;u=c.next()){var l=u.value;try{mt(l)}catch(t){r=null!=r?r:[],t instanceof h?r=O(O([],k(r)),k(t.errors)):r.push(t)}}}catch(t){e={error:t}}finally{try{u&&!u.done&&(t=c.return)&&t.call(c)}finally{if(e)throw e.error}}}if(r)throw new h(r)}},I.prototype.add=function(t){var e;if(t&&t!==this)if(this.closed)mt(t);else{if(t instanceof I){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!=(e=this._finalizers)?e:[]).push(t)}},I.prototype._hasParent=function(t){var e=this._parentage;return e===t||Array.isArray(e)&&e.includes(t)},I.prototype._addParent=function(t){var e=this._parentage;this._parentage=Array.isArray(e)?(e.push(t),e):e?[e,t]:t},I.prototype._removeParent=function(t){var e=this._parentage;e===t?this._parentage=null:Array.isArray(e)&&pt(e,t)},I.prototype.remove=function(t){var e=this._finalizers;e&&pt(e,t),t instanceof I&&t._removeParent(this)},I.EMPTY=((r=new I).closed=!0,r),Y=(f=I).EMPTY,p={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},d={setTimeout:function(t,e){for(var r=[],i=2;it.artists.some(t=>t.uri===e)).sort((t,e)=>_(t.album.name,e.album.name,"ascending")||_(t.discNumber,e.discNumber,"ascending")||_(t.trackNumber,e.trackNumber,"ascending"))}getDisplayName(t){return""===t?"Untitled":t}albumKeyFromName(t){return"spotify:uri:"+t.toLowerCase().replace(/\s/g,"+")}async clearCache(){this.isInitializedSubject.next(!1),this.storageService.cache=[],this.storageService.hasCache=!0,await this.init()}async reset(){this.isInitializedSubject.next(!1),this.storageService.cache=[],this.storageService.hasCache=!1,await this.init()}async init(){if(!this.isReady&&!this.isInitializing){this.isInitializing=!0,this.tracks=new Map,this.albums=new Map,this.artists=new Map;try{await this.processLocalTracks(),await this.postProcessAlbums()}catch(t){console.error("Error while processing",t);let e="Error while processing local files; clearing the cache";t instanceof Error&&(e+=": "+t.message),Spicetify.showNotification(e,!0,5e3),this.storageService.cache=[],this.storageService.hasCache=!0}this.isInitializedSubject.next(!0),this.isInitializing=!1}}async processLocalTracks(){for(const i of await(await ut("LocalFilesAPI")).getTracks()){let e;var t=this.getDisplayName(i.album.name),r=this.albumKeyFromName(t),t=(this.albums.has(r)?e=this.albums.get(r):(e=new g(r,t,this.getImageUrlFromAlbum(i.album)),this.albums.set(r,e)),i.artists.flatMap(t=>this.getArtistsFromString(t.name,e.image)));for(const n of t)this.artists.has(n.uri)||this.artists.set(n.uri,n),e.artists.some(t=>t.uri===n.uri)||e.artists.push(n);r=new B(i,e,t);this.tracks.set(r.uri,r),e.discs.has(i.discNumber)||e.discs.set(i.discNumber,[]),e.discs.get(i.discNumber)?.push(r)}}async postProcessAlbums(){var t,e,r=this.storageService.hasCache,i=[],n=[],o=[];this.albumCountSubject.next(this.albums.size);let s=0;for([t,e]of this.albums.entries()){this.processedAlbumsSubject.next(s+1),s++;var a=await this.postProcessAlbum(t,e);if(!(a.length<=1)){n.push(t);for(var[c,u]of a.entries())if(0!==u.tracks.length){var l=u.tracks[0],c=this.albumKeyFromName(e.name+" "+c),h=new g(c,e.name,this.getImageUrlFromAlbum(l.localTrack.album));for(const d of l.artists)h.artists.some(t=>t.uri===d.uri)||h.artists.push(d);for(const m of u.tracks)(m.album=h).discs.has(m.localTrack.discNumber)||h.discs.set(m.localTrack.discNumber,[]),h.discs.get(m.localTrack.discNumber)?.push(m);o.push(h)}i.push({uri:t,tracks:a.map(t=>t.tracks.map(t=>t.uri))})}}r||(this.storageService.cache=i,this.storageService.hasCache=!0);for(const b of n)this.albums.delete(b);for(const y of o)this.albums.set(y.uri,y);for(const v of this.albums.values())for(var[f,p]of v.discs.entries())v.discs.set(f,p.toSorted((t,e)=>_(t.trackNumber,e.trackNumber,"ascending")))}async postProcessAlbum(e,t){var r=this.storageService.hasCache,i=this.storageService.cache;let n=[];if(r){r=i.find(t=>t.uri===e);void 0!==r&&(n=r.tracks.map(t=>({cover:null,tracks:t.filter(t=>this.tracks.has(t)).map(t=>this.tracks.get(t))})))}else{if(t.artists.length<=1)return[];i=t.getTracks();if(i.length<=1)return[];var o=new Map;for(const c of i){var s=c.artists.map(t=>t.name).join(", ");o.has(s)?o.get(s)?.push(c):o.set(s,[c])}if(1===o.size)return[];for(const u of o.values()){var a=this.getImageUrlFromAlbum(u[0].localTrack.album);let t;try{t=await this.getImage(a)}catch(t){console.error(`Couldn't load image "${a}"`,t),n.push({tracks:u,cover:null});continue}const l=this.getImageDataFromCanvas(t);a=n.find(t=>0===this.getImageDifferenceWithPixelMatch(t.cover,l));void 0===a?n.push({tracks:u,cover:l}):a.tracks.push(...u)}}return n}getArtistsFromString(t,e){return t.split(/[;,]/).map(t=>new L(this.getDisplayName(t.trim()),e))}async getImage(i){return new Promise((t,e)=>{const r=new Image;r.onload=()=>{t(r)},r.onerror=t=>{e(t)},r.src=i})}getImageDataFromCanvas(t){var e=document.createElement("canvas"),e=(e.width=50,e.height=50,e.style.width="50px",e.style.height="50px",e.getContext("2d"));return e.drawImage(t,0,0,t.width,t.height,0,0,50,50),e.getImageData(0,0,50,50)}getImageDifferenceWithPixelMatch(t,e){return(0,K.default)(t.data,e.data,null,t.width,t.height,{threshold:.1})}getImageUrlFromAlbum(t){return 0===t.images.length?"":t.images[0].url}},(async()=>{for(window.localTracksService=new at;!Spicetify?.Platform;)await new Promise(t=>setTimeout(t,100));await 0;var t=await ut("History");const e=new Spicetify.Menu.Item("Rebuild local album cache",!1,async()=>{await window.localTracksService.reset()}),r=new Spicetify.Menu.Item("Clear local album cache",!1,async()=>{await window.localTracksService.clearCache()}),i=t=>{t.includes("better-local-files")?(e.register(),r.register()):(e.deregister(),r.deregister())};i(t.location.pathname),t.listen(t=>{i(t.pathname)}),async function(t,r){var i=await ut("History");const n=async()=>{await lt(t,r)||Spicetify.showNotification("📢 A new version of the custom app is available.",!1,5e3)};if(i.location.pathname==="/"+r)await n();else{let e=null;e=i.listen(async t=>{t.pathname==="/"+r&&(await n(),e?.())})}}("2.0.2","better-local-files")})();function ct(t){return Spicetify.Platform?.[t]}async function ut(t){return async function(t){let e=t();for(;void 0===e;)await new Promise(t=>setTimeout(t,100)),e=t();return e}(()=>ct(t))}async function lt(t,e){e=await(await(await fetch(`https://raw.githubusercontent.com/Pithaya/spicetify-apps/main/custom-apps/${e}/package.json`)).json()).version;return J(t,e,">=")}function _(t,e,r){r="descending"===r?-1:1;return e=t.length?void 0:t)&&t[i++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function k(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var i,n,o=r.call(t),s=[];try{for(;(void 0===e||0{var z,P=Object.create,H=Object.defineProperty,B=Object.getOwnPropertyDescriptor,$=Object.getOwnPropertyNames,G=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty,e=(e,t)=>function(){return t||(0,e[$(e)[0]])((t={exports:{}}).exports,t),t.exports},j=(t,a,r,n)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let e of $(a))F.call(t,e)||e===r||H(t,e,{get:()=>a[e],enumerable:!(n=B(a,e))||n.enumerable});return t},t=(e,t,a)=>(a=null!=e?P(G(e)):{},j(!t&&e&&e.__esModule?a:H(a,"default",{value:e,enumerable:!0}),e)),r=e({"external-global-plugin:react"(e,t){t.exports=Spicetify.React}}),U=e({"external-global-plugin:react-dom"(e,t){t.exports=Spicetify.ReactDOM}}),X=e({"../../node_modules/spcr-whats-new/node_modules/semver/internal/debug.js"(e,t){var a="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};t.exports=a}}),W=e({"../../node_modules/spcr-whats-new/node_modules/semver/internal/constants.js"(e,t){var a=Number.MAX_SAFE_INTEGER||9007199254740991;t.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:a,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}}}),J=e({"../../node_modules/spcr-whats-new/node_modules/semver/internal/re.js"(e,t){var{MAX_SAFE_COMPONENT_LENGTH:a,MAX_SAFE_BUILD_LENGTH:r,MAX_LENGTH:n}=W(),i=X(),l=(e=t.exports={}).re=[],o=e.safeRe=[],c=e.src=[],s=e.t={},u=0,t="[a-zA-Z0-9-]",d=[["\\s",1],["\\d",n],[t,r]],n=(e,t,a)=>{var r=(e=>{for(var[t,a]of d)e=e.split(t+"*").join(`${t}{0,${a}}`).split(t+"+").join(`${t}{1,${a}}`);return e})(t),n=u++;i(e,n,t),s[e]=n,c[n]=t,l[n]=new RegExp(t,a?"g":void 0),o[n]=new RegExp(r,a?"g":void 0)};n("NUMERICIDENTIFIER","0|[1-9]\\d*"),n("NUMERICIDENTIFIERLOOSE","\\d+"),n("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${t}*`),n("MAINVERSION",`(${c[s.NUMERICIDENTIFIER]})\\.(${c[s.NUMERICIDENTIFIER]})\\.(${c[s.NUMERICIDENTIFIER]})`),n("MAINVERSIONLOOSE",`(${c[s.NUMERICIDENTIFIERLOOSE]})\\.(${c[s.NUMERICIDENTIFIERLOOSE]})\\.(${c[s.NUMERICIDENTIFIERLOOSE]})`),n("PRERELEASEIDENTIFIER",`(?:${c[s.NUMERICIDENTIFIER]}|${c[s.NONNUMERICIDENTIFIER]})`),n("PRERELEASEIDENTIFIERLOOSE",`(?:${c[s.NUMERICIDENTIFIERLOOSE]}|${c[s.NONNUMERICIDENTIFIER]})`),n("PRERELEASE",`(?:-(${c[s.PRERELEASEIDENTIFIER]}(?:\\.${c[s.PRERELEASEIDENTIFIER]})*))`),n("PRERELEASELOOSE",`(?:-?(${c[s.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${c[s.PRERELEASEIDENTIFIERLOOSE]})*))`),n("BUILDIDENTIFIER",t+"+"),n("BUILD",`(?:\\+(${c[s.BUILDIDENTIFIER]}(?:\\.${c[s.BUILDIDENTIFIER]})*))`),n("FULLPLAIN",`v?${c[s.MAINVERSION]}${c[s.PRERELEASE]}?${c[s.BUILD]}?`),n("FULL",`^${c[s.FULLPLAIN]}$`),n("LOOSEPLAIN",`[v=\\s]*${c[s.MAINVERSIONLOOSE]}${c[s.PRERELEASELOOSE]}?${c[s.BUILD]}?`),n("LOOSE",`^${c[s.LOOSEPLAIN]}$`),n("GTLT","((?:<|>)?=?)"),n("XRANGEIDENTIFIERLOOSE",c[s.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*"),n("XRANGEIDENTIFIER",c[s.NUMERICIDENTIFIER]+"|x|X|\\*"),n("XRANGEPLAIN",`[v=\\s]*(${c[s.XRANGEIDENTIFIER]})(?:\\.(${c[s.XRANGEIDENTIFIER]})(?:\\.(${c[s.XRANGEIDENTIFIER]})(?:${c[s.PRERELEASE]})?${c[s.BUILD]}?)?)?`),n("XRANGEPLAINLOOSE",`[v=\\s]*(${c[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${c[s.XRANGEIDENTIFIERLOOSE]})(?:${c[s.PRERELEASELOOSE]})?${c[s.BUILD]}?)?)?`),n("XRANGE",`^${c[s.GTLT]}\\s*${c[s.XRANGEPLAIN]}$`),n("XRANGELOOSE",`^${c[s.GTLT]}\\s*${c[s.XRANGEPLAINLOOSE]}$`),n("COERCE",`(^|[^\\d])(\\d{1,${a}})(?:\\.(\\d{1,${a}}))?(?:\\.(\\d{1,${a}}))?(?:$|[^\\d])`),n("COERCERTL",c[s.COERCE],!0),n("LONETILDE","(?:~>?)"),n("TILDETRIM",`(\\s*)${c[s.LONETILDE]}\\s+`,!0),e.tildeTrimReplace="$1~",n("TILDE",`^${c[s.LONETILDE]}${c[s.XRANGEPLAIN]}$`),n("TILDELOOSE",`^${c[s.LONETILDE]}${c[s.XRANGEPLAINLOOSE]}$`),n("LONECARET","(?:\\^)"),n("CARETTRIM",`(\\s*)${c[s.LONECARET]}\\s+`,!0),e.caretTrimReplace="$1^",n("CARET",`^${c[s.LONECARET]}${c[s.XRANGEPLAIN]}$`),n("CARETLOOSE",`^${c[s.LONECARET]}${c[s.XRANGEPLAINLOOSE]}$`),n("COMPARATORLOOSE",`^${c[s.GTLT]}\\s*(${c[s.LOOSEPLAIN]})$|^$`),n("COMPARATOR",`^${c[s.GTLT]}\\s*(${c[s.FULLPLAIN]})$|^$`),n("COMPARATORTRIM",`(\\s*)${c[s.GTLT]}\\s*(${c[s.LOOSEPLAIN]}|${c[s.XRANGEPLAIN]})`,!0),e.comparatorTrimReplace="$1$2$3",n("HYPHENRANGE",`^\\s*(${c[s.XRANGEPLAIN]})\\s+-\\s+(${c[s.XRANGEPLAIN]})\\s*$`),n("HYPHENRANGELOOSE",`^\\s*(${c[s.XRANGEPLAINLOOSE]})\\s+-\\s+(${c[s.XRANGEPLAINLOOSE]})\\s*$`),n("STAR","(<|>)?=?\\s*\\*"),n("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),n("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")}}),V=e({"../../node_modules/spcr-whats-new/node_modules/semver/internal/parse-options.js"(e,t){var a=Object.freeze({loose:!0}),r=Object.freeze({});t.exports=e=>e?"object"!=typeof e?a:e:r}}),Z=e({"../../node_modules/spcr-whats-new/node_modules/semver/internal/identifiers.js"(e,t){var n=/^[0-9]+$/,a=(e,t)=>{var a=n.test(e),r=n.test(t);return a&&r&&(e=+e,t=+t),e===t?0:a&&!r||(!r||a)&&ea(t,e)}}}),K=e({"../../node_modules/spcr-whats-new/node_modules/semver/classes/semver.js"(e,t){var n=X(),{MAX_LENGTH:a,MAX_SAFE_INTEGER:r}=W(),{safeRe:i,t:l}=J(),o=V(),c=Z()["compareIdentifiers"],s=class{constructor(e,t){if(t=o(t),e instanceof s){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>a)throw new TypeError(`version is longer than ${a} characters`);n("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;t=e.trim().match(t.loose?i[l.LOOSE]:i[l.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>r||this.major<0)throw new TypeError("Invalid major version");if(this.minor>r||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>r||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 r(e,a).compare(new r(t,a))}}),a=e({"../../node_modules/spcr-whats-new/node_modules/semver/functions/gt.js"(e,t){var r=Y();t.exports=(e,t,a)=>0s.current.offsetHeight||s.current.scrollWidth>s.current.offsetWidth),t=bfunction(){return ur.default.createElement(sr,null)}};for(z in te)H(ee,z,{get:te[z],enumerable:!0});function ae(e){return Spicetify.Platform?.[e]}function p(e){var t=ae(e);if(void 0===t)throw new Error(`Platform API "${e}" is not available`);return t}var o=t(r()),re=t(U()),ne=t(a()),ie=t(U());var le=async function(t,a,e){for(;!Spicetify?.PopupModal||!Spicetify?.LocalStorage;)await new Promise(e=>setTimeout(e,100));var r,t=`spcr-whats-new_${t}-version`,n=Spicetify.LocalStorage.get(t)??"";try{(0,ne.default)(a,n)&&(Spicetify.LocalStorage.set(t,a),r={...e,content:function(e){var t=document.createElement("div"),a=(t.setAttribute("id","whats-new-content-wrapper"),document.createElement("style"));return a.textContent=` - #whats-new-content-wrapper ul, #whats-new-content-wrapper ol { - list-style: inherit; - margin-left: 1em; - } - `,ie.default.render(e,t),t.appendChild(a),t}(e.content)},Spicetify.PopupModal.display(r))}catch(e){Spicetify.LocalStorage.set(t,a)}},oe="2.0.2",ce=["Fix the app crashing on load"],n=t(r());function l(e,t=null){var a=p("History");null===t?a.push(e):a.push({pathname:e,state:{uri:t},hash:"",key:"",search:""})}var c=t(r());function se(t,e){0!==e.length&&e.some(e=>e.uri===t)&&Spicetify.Player.origin.play({uri:"spotify:internal:local-files",pages:[{items:e}]},{},{skipTo:{uri:t}})}function ue(e){0!==e.length&&Spicetify.Player.origin.play({uri:"spotify:internal:local-files",pages:[{items:e}]},{},{})}var de=t(r());function f(e,...a){let t=p("Translations");for(const n of e)t=t[n];let r=t;return a.forEach((e,t)=>{r=r.replace(`{${t}}`,a[t])}),r}var me=t(r());function _(e){return e.icon?me.default.createElement(Spicetify.ReactComponent.IconComponent,{iconSize:e.iconSize,semanticColor:e.semanticColor,dangerouslySetInnerHTML:{__html:Spicetify.SVGIcons[e.icon]},viewBox:"0 0 16 16"}):e.iconPath?me.default.createElement(Spicetify.ReactComponent.IconComponent,{iconSize:e.iconSize,semanticColor:e.semanticColor,dangerouslySetInnerHTML:{__html:e.iconPath},viewBox:"0 0 16 16"}):me.default.createElement(me.default.Fragment,null)}function pe(t){return de.default.createElement(Spicetify.ReactComponent.ButtonPrimary,{"aria-label":f(["play"]),buttonSize:t.size,onClick:e=>{e.stopPropagation(),t.onClick()},iconOnly:()=>de.default.createElement(_,{icon:"play"})})}var fe="app-module__display-list___8BLJG_betterDlocalDfiles",_e="app-module__display-list-compact___sbWJt_betterDlocalDfiles",s=t(r()),h=t(r()),he=t(r());function be(t){const[e,a]=(0,he.useState)(!1);return(0,he.useEffect)(()=>{const e=new IntersectionObserver((e,t)=>{a(e.some(e=>e.isIntersecting))},{rootMargin:"0px",threshold:0});return e.observe(t.current),()=>{e.disconnect()}},[t]),e}var i=t(r()),ve=t(r());function ye(e){var t=Spicetify.ReactDOMServer.renderToString(ve.default.createElement(Spicetify.ReactComponent.MenuItem,{leadingIcon:e.leadingIcon,trailingIcon:ve.default.createElement("svg",{height:"16",width:"16","aria-hidden":"true",className:"main-contextMenu-subMenuIcon",viewBox:"0 0 16 16",fill:"currentColor"},ve.default.createElement("path",{d:"M14 10 8 4l-6 6h12z"}))},ve.default.createElement("span",null,e.label)));return ve.default.createElement(Spicetify.ReactComponent.ContextMenu,{trigger:"click",action:"toggle",placement:"right-end",renderInline:!0,menu:e.submenu},ve.default.createElement("div",{onMouseEnter:e=>{e.currentTarget.click()},dangerouslySetInnerHTML:{__html:t}}))}var a="/better-local-files",Ee=a+"/album",ge=a+"/albums",u=a+"/artist",De=a+"/artists",ke=a,we=[{key:"Tracks",href:ke,label:f(["search.title.tracks"])},{key:"Albums",href:ge,label:f(["search.title.albums"])},{key:"Artists",href:De,label:f(["search.title.artists"])}],Se="encore-dark-theme main-contextMenu-menu",Ie=t(r());function xe(e){return Ie.default.createElement(Spicetify.ReactComponent.Menu,{className:Se},e.artists.map(e=>Ie.default.createElement(Spicetify.ReactComponent.MenuItem,{onClick:()=>{l(u,e.uri)},key:e.uri},Ie.default.createElement("span",null,e.name))))}var Ne=t(r());function Ce(a){const r=p("PlaylistAPI"),n=p("RootlistAPI"),i=p("UserAPI"),[e,l]=(0,Ne.useState)([]);return(0,Ne.useEffect)(()=>{!async function(){var e=await n.getContents();const t=await i.getUser();e=e.items.flatMap(e=>"playlist"===e.type?e:e.items).filter(e=>"playlist"===e.type).filter(e=>e.owner.uri===t.uri),l(e)}()},[]),Ne.default.createElement(Spicetify.ReactComponent.Menu,{className:Se},e.map(t=>Ne.default.createElement(Spicetify.ReactComponent.MenuItem,{onClick:async()=>{var e;e=t.uri,await r.add(e,a.tracksUri,{after:"end"})},key:t.uri},Ne.default.createElement("span",null,t.name))))}var Re='',Le=t(r());function Te(e){const t=p("LibraryAPI"),[a,r]=(0,Le.useState)(t.containsSync(e));return(0,Le.useEffect)(()=>{void 0===a&&t.contains(e).then(e=>{r(e[0])}).catch(console.error)},[e]),[a,r]}function Oe(e){var[t]=Te(e.track.uri);let a;switch(t){case!0:a=i.default.createElement(Spicetify.ReactComponent.MenuItem,{onClick:async function(){await p("LibraryAPI").remove({uris:[e.track.uri]})},leadingIcon:i.default.createElement(_,{icon:"check-alt-fill",iconSize:16,semanticColor:"essentialBrightAccent"})},i.default.createElement("span",null,f(["remove_from_your_liked_songs"])));break;case!1:a=i.default.createElement(Spicetify.ReactComponent.MenuItem,{onClick:async function(){await p("LibraryAPI").add({uris:[e.track.uri]})},leadingIcon:i.default.createElement(_,{icon:"plus-alt",iconSize:16})},i.default.createElement("span",null,f(["save_to_your_liked_songs"])));break;default:a=i.default.createElement(Spicetify.ReactComponent.MenuItem,null,i.default.createElement("span",null,"..."))}return i.default.createElement(Spicetify.ReactComponent.Menu,{className:Se},i.default.createElement(ye,{label:f(["contextmenu.add-to-playlist"]),submenu:i.default.createElement(Ce,{tracksUri:[e.track.uri]}),leadingIcon:i.default.createElement(_,{icon:"plus2px",iconSize:16})}),a,i.default.createElement(Spicetify.ReactComponent.MenuItem,{divider:"after",onClick:async function(){await p("PlayerAPI").addToQueue([{uri:e.track.uri}])},leadingIcon:i.default.createElement(_,{iconPath:Re,iconSize:16})},i.default.createElement("span",null,f(["contextmenu.add-to-queue"]))),1===e.track.artists.length?i.default.createElement(Spicetify.ReactComponent.MenuItem,{onClick:()=>{l(u,e.track.artists[0].uri)},leadingIcon:i.default.createElement(_,{icon:"artist",iconSize:16})},i.default.createElement("span",null,f(["contextmenu.go-to-artist"]))):i.default.createElement(ye,{label:f(["contextmenu.go-to-artist"]),submenu:i.default.createElement(xe,{artists:e.track.artists}),leadingIcon:i.default.createElement(_,{icon:"artist",iconSize:16})}),i.default.createElement(Spicetify.ReactComponent.MenuItem,{onClick:()=>{l(Ee,e.track.album.uri)},leadingIcon:i.default.createElement(_,{icon:"album",iconSize:16})},i.default.createElement("span",null,f(["contextmenu.go-to-album"]))))}var Ae=t(r());function b(e){const{elementType:t="span",children:a,...r}=e;let n;switch(t){case"h1":n=Spicetify.ReactComponent.TextComponent.h1;break;case"h2":n=Spicetify.ReactComponent.TextComponent.h2;break;case"h3":n=Spicetify.ReactComponent.TextComponent.h3;break;case"h4":n=Spicetify.ReactComponent.TextComponent.h4;break;case"h5":n=Spicetify.ReactComponent.TextComponent.h5;break;case"h6":n=Spicetify.ReactComponent.TextComponent.h6;break;case"li":n=Spicetify.ReactComponent.TextComponent.li;break;case"p":n=Spicetify.ReactComponent.TextComponent.p;break;case"small":n=Spicetify.ReactComponent.TextComponent.small;break;case"span":n=Spicetify.ReactComponent.TextComponent.span;break;default:n=Spicetify.ReactComponent.TextComponent}return Ae.default.createElement(n,{...r,style:e.style},a)}function Me(t){var e=(0,h.useRef)(null);const a=be(e),[r,n]=(0,h.useState)(!1),[i,l]=Te(t.track.uri),o=p("LibraryAPI");(0,h.useEffect)(()=>{if(a){const e=e=>{e.data.uris.some(e=>e===t.track.uri)&&("add"===e.data.operation?l(!0):"remove"===e.data.operation&&l(!1))};return o.getEvents().addListener("operation_complete",e),()=>{o.getEvents().removeListener("operation_complete",e)}}},[a,t.track.uri]);var c=h.default.createElement("div",{style:{height:"compact"===t.displayType?"32px":"54px"}}),s=h.default.createElement(Spicetify.ReactComponent.TooltipWrapper,{label:f(["save_to_your_liked_songs"]),showDelay:100},h.default.createElement(Spicetify.ReactComponent.ButtonTertiary,{"aria-label":f(["save_to_your_liked_songs"]),iconOnly:()=>h.default.createElement(_,{icon:"plus-alt",iconSize:16}),buttonSize:"sm",style:{padding:0,visibility:r?void 0:"hidden"},onClick:async function(){await o.add({uris:[t.track.uri]})}})),u=h.default.createElement(Spicetify.ReactComponent.TooltipWrapper,{label:f(["remove_from_your_liked_songs"]),showDelay:100},h.default.createElement(Spicetify.ReactComponent.ButtonTertiary,{"aria-label":f(["remove_from_your_liked_songs"]),iconOnly:()=>h.default.createElement(_,{icon:"check-alt-fill",iconSize:16}),buttonSize:"sm",style:{padding:0},onClick:async function(){await o.remove({uris:[t.track.uri]})},semanticColor:"essentialBrightAccent"})),d=h.default.createElement(Spicetify.ReactComponent.ButtonTertiary,{iconOnly:()=>h.default.createElement(h.default.Fragment,null),buttonSize:"sm",style:{padding:0,visibility:r?void 0:"hidden"}});let m;switch(i){case!0:m=u;break;case!1:m=s;break;default:m=d}return h.default.createElement("div",{ref:e,onMouseEnter:()=>{n(!0)},onMouseLeave:()=>{n(!1)}},a?h.default.createElement(Spicetify.ReactComponent.RightClickMenu,{menu:h.default.createElement(Oe,{track:t.track})},h.default.createElement("div",{"aria-selected":t.selected,onClick:t.onClick,onDoubleClick:t.onDoubleClick,draggable:"true",onDragStart:t.dragHandler},h.default.createElement("div",{className:`main-trackList-trackListRow main-trackList-trackListRowGrid ${t.active?"main-trackList-active":""} ${t.selected?"main-trackList-selected":""} `+("compact"===t.displayType?"main-trackList-rowCompactMode":"")},h.default.createElement("div",{className:"main-trackList-rowSectionIndex","aria-colindex":1,tabIndex:-1},h.default.createElement("div",{className:"main-trackList-rowMarker"},t.playing?h.default.createElement(h.default.Fragment,null,h.default.createElement("img",{className:"main-trackList-playingIcon",width:"14",height:"14",alt:"",src:"/images/equaliser-animated-green.gif"}),h.default.createElement(Spicetify.ReactComponent.TooltipWrapper,{label:f(["playback-control.pause"]),showDelay:200},h.default.createElement("button",{className:"main-trackList-rowImagePlayButton","aria-label":f(["playback-control.pause"]),tabIndex:0,"aria-expanded":"false",onClick:()=>{Spicetify.Player.pause()}},h.default.createElement("svg",{height:"24",width:"24","aria-hidden":"true",fill:"currentColor",className:"main-trackList-rowPlayPauseIcon",viewBox:"0 0 24 24"},h.default.createElement("path",{d:"M5.7 3a.7.7 0 0 0-.7.7v16.6a.7.7 0 0 0 .7.7h2.6a.7.7 0 0 0 .7-.7V3.7a.7.7 0 0 0-.7-.7H5.7zm10 0a.7.7 0 0 0-.7.7v16.6a.7.7 0 0 0 .7.7h2.6a.7.7 0 0 0 .7-.7V3.7a.7.7 0 0 0-.7-.7h-2.6z"}))))):h.default.createElement(h.default.Fragment,null,h.default.createElement("span",{className:"main-trackList-number"},t.index),h.default.createElement(Spicetify.ReactComponent.TooltipWrapper,{label:f(["tracklist.a11y.play"],t.track.name,t.track.artists.map(e=>e.name).join(", ")),showDelay:200},h.default.createElement("button",{className:"main-trackList-rowImagePlayButton","aria-label":f(["tracklist.a11y.play"],t.track.name,t.track.artists.map(e=>e.name).join(", ")),onClick:()=>{t.active?Spicetify.Player.play():t.onDoubleClick()},tabIndex:-1},h.default.createElement("svg",{height:"24",width:"24","aria-hidden":"true",className:"main-trackList-rowPlayPauseIcon",viewBox:"0 0 24 24","data-encore-id":"icon",fill:"currentColor"},h.default.createElement("path",{d:"M7.05 3.606l13.49 7.788a.7.7 0 010 1.212L7.05 20.394A.7.7 0 016 19.788V4.212a.7.7 0 011.05-.606z"}))))))),t.children&&h.Children.map(t.children,(e,t)=>h.default.createElement("div",{className:0===t?"main-trackList-rowSectionStart":"main-trackList-rowSectionVariable","aria-colindex":t+2,tabIndex:-1},e)),h.default.createElement("div",{className:"main-trackList-rowSectionEnd","aria-colindex":h.Children.count(t.children)+2,tabIndex:-1},m,h.default.createElement(b,{variant:"mesto",semanticColor:"textSubdued",className:"main-trackList-rowDuration"},Spicetify.Player.formatTime(t.track.duration)),h.default.createElement(Spicetify.ReactComponent.TooltipWrapper,{label:f(["more.label.track"],t.track.name,t.track.artists.map(e=>e.name).join(", ")),showDelay:100},h.default.createElement("div",null,h.default.createElement(Spicetify.ReactComponent.ContextMenu,{trigger:"click",action:"toggle",menu:h.default.createElement(Oe,{track:t.track})},h.default.createElement(Spicetify.ReactComponent.ButtonTertiary,{"aria-label":f(["more.label.track"],t.track.name,t.track.artists.map(e=>e.name).join(", ")),"aria-haspopup":"menu",iconOnly:()=>h.default.createElement(_,{icon:"more",iconSize:16}),buttonSize:"sm",style:{padding:0,visibility:r?void 0:"hidden"}})))))))):c)}var d=t(r()),ze=t(r());function Pe(e){return ze.default.createElement("svg",{height:"16",width:"16",viewBox:"0 0 16 16",fill:"var(--text-bright-accent)",className:e.className},ze.default.createElement("path",{d:"M14 10L8 4l-6 6h12z"}))}var He=t(r());function Be(e){return He.default.createElement("svg",{height:"16",width:"16",viewBox:"0 0 16 16",fill:"var(--text-bright-accent)",className:e.className},He.default.createElement("path",{d:"M14 6l-6 6-6-6h12z"}))}function $e(a){function r(){return void 0===a.sortedHeader?d.default.createElement(d.default.Fragment,null):"ascending"===a.sortedHeader.order?d.default.createElement(Pe,{className:"main-trackList-arrow"}):d.default.createElement(Be,{className:"main-trackList-arrow"})}const n=void 0!==a.sortedHeader?"main-trackList-sortable":"";return d.default.createElement("div",{className:"main-trackList-trackListHeader"},d.default.createElement("div",{className:"main-trackList-trackListHeaderRow main-trackList-trackListRowGrid","aria-rowindex":1},d.default.createElement("div",{className:"main-trackList-rowSectionIndex","aria-colindex":1,"aria-sort":"none",tabIndex:-1},"#"),a.headers.map((e,t)=>d.default.createElement("div",{key:e.key,className:0===t?"main-trackList-rowSectionStart":"main-trackList-rowSectionVariable","aria-colindex":t+2,"aria-sort":a.sortedHeader&&a.sortedHeader.key===e.key?a.sortedHeader.order:"none",tabIndex:-1},d.default.createElement("button",{className:"main-trackList-column "+n,tabIndex:-1,onClick:()=>{a.onHeaderClicked?.(e.key)}},d.default.createElement(b,{variant:"mesto"},e.label),a.sortedHeader&&a.sortedHeader.key===e.key&&r()))),d.default.createElement("div",{className:"main-trackList-rowSectionEnd","aria-colindex":a.headers.length+2,"aria-sort":"none",tabIndex:-1},d.default.createElement("button",{"aria-label":f(["tracklist.header.duration"]),className:"main-trackList-column main-trackList-durationHeader "+n,onClick:()=>{a.onHeaderClicked?.("duration")}},d.default.createElement("svg",{height:"16",width:"16","aria-hidden":"true",viewBox:"0 0 16 16",fill:"currentColor"},d.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"}),d.default.createElement("path",{d:"M8 3.25a.75.75 0 01.75.75v3.25H11a.75.75 0 010 1.5H7.25V4A.75.75 0 018 3.25z"}))),a.sortedHeader&&"duration"===a.sortedHeader.key&&r())))}var Ge=t(r());var Fe=t(r());function je(a){const r=function(){const[e,t]=(0,Ge.useState)(Spicetify.Player?.data?.item?.uri??"");return(0,Ge.useEffect)(()=>{function e(e){t((e?.data).item?.uri??"")}return Spicetify.Player.addEventListener("songchange",e),()=>{Spicetify.Player.removeEventListener("songchange",e)}}),e}(),n=function(){const[e,t]=(0,Fe.useState)(Spicetify.Player?.data?.isPaused?"pause":"play");return(0,Fe.useEffect)(()=>{function e(e){t((e?.data).isPaused?"pause":"play")}return Spicetify.Player.addEventListener("onplaypause",e),()=>{Spicetify.Player.removeEventListener("onplaypause",e)}}),e}(),[i,l]=(0,s.useState)(new Map),o=(0,s.useMemo)(()=>{var e=Array.from(i.entries());return 0===e.length?Spicetify.ReactHook.DragHandler({itemUris:[],dragLabelText:""}):Spicetify.ReactHook.DragHandler({itemUris:e.map(e=>e[0]),dragLabelText:1s.default.createElement(Me,{key:t.uri,track:t,index:a.useTrackNumber?t.trackNumber:e+1,selected:i.has(t.uri),active:r===t.uri,playing:r===t.uri&&"play"===n,onClick:e=>{c(e,t)},onDoubleClick:()=>{a.onPlayTrack(t.uri)},dragHandler:o,displayType:a.displayType},a.getRowContent(t))),a.subtracks.map(e=>s.default.createElement(s.default.Fragment,null,e.headerRow,e.tracks.map((t,e)=>s.default.createElement(Me,{key:t.uri,track:t,index:a.useTrackNumber?t.trackNumber:e+1,selected:i.has(t.uri),active:r===t.uri,playing:r===t.uri&&"play"===n,onClick:e=>{c(e,t)},onDoubleClick:()=>{a.onPlayTrack(t.uri)},dragHandler:o,displayType:a.displayType},a.getRowContent(t))))))))}var Ue=t(r());function Xe(e){return Ue.default.createElement("div",{className:"main-trackList-rowMainContent"},Ue.default.createElement(b,{className:"main-trackList-rowTitle standalone-ellipsis-one-line",variant:"ballad",semanticColor:"textBase"},e.track.name),e.withArtists&&Ue.default.createElement(b,{className:"main-trackList-rowSubTitle standalone-ellipsis-one-line",variant:"mesto",semanticColor:"textSubdued"},e.track.artists.map(e=>Ue.default.createElement("a",{dir:"auto",href:"#",tabIndex:-1,onClick:()=>{l(u,e.uri)},key:e.uri},e.name)).reduce((e,t)=>null===e?[t]:[...e,Ue.default.createElement(Ue.default.Fragment,null,", "),t],null)))}var m=t(r());function We(e){return m.default.createElement("div",{className:"main-trackList-trackListRowGrid main-trackList-discRow"},m.default.createElement("div",{className:"main-trackList-rowSectionIndex","aria-colindex":1,tabIndex:-1},m.default.createElement("div",{className:"main-trackList-rowMarker"},m.default.createElement("span",{className:"main-trackList-icon"},m.default.createElement("svg",{height:"16",width:"16","aria-hidden":"true",viewBox:"0 0 16 16",fill:"currentColor"},m.default.createElement("path",{d:"M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13zM0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8z"}),m.default.createElement("path",{d:"M8 6.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zM5 8a3 3 0 1 1 6 0 3 3 0 0 1-6 0z"}))))),m.default.createElement("div",{className:"main-trackList-rowSectionStart","aria-colindex":2,tabIndex:-1},m.default.createElement("div",{className:"main-trackList-rowMainContent"},m.default.createElement("div",{dir:"auto",className:"main-trackList-rowTitle main-trackList-discTitle standalone-ellipsis-one-line"},f(["tracklist.disc-sperator.title"],e.discNumber)))))}var Je="app-module__flex-centered___5gRmM_betterDlocalDfiles",Ve=t(r());function Ze(e){return Ve.default.createElement(Spicetify.ReactComponent.TooltipWrapper,{label:e.label,showDelay:100},Ve.default.createElement("div",{className:""+Je},Ve.default.createElement(Spicetify.ReactComponent.ContextMenu,{trigger:"click",action:"toggle",menu:e.menu},Ve.default.createElement(Spicetify.ReactComponent.ButtonTertiary,{"aria-label":e.label,"aria-haspopup":"menu",iconOnly:()=>Ve.default.createElement(_,{icon:"more"})}))))}var Ke=t(r());function Ye(e){return Ke.default.createElement(Spicetify.ReactComponent.Menu,{className:Se},Ke.default.createElement(ye,{label:f(["contextmenu.add-to-playlist"]),submenu:Ke.default.createElement(Ce,{tracksUri:e.tracks.map(e=>e.uri)}),leadingIcon:Ke.default.createElement(_,{icon:"plus2px",iconSize:16})}),Ke.default.createElement(Spicetify.ReactComponent.MenuItem,{onClick:async function(){await p("PlayerAPI").addToQueue(e.tracks.map(e=>({uri:e.uri})))},leadingIcon:Ke.default.createElement(_,{iconPath:Re,iconSize:16})},Ke.default.createElement("span",null,f(["contextmenu.add-to-queue"]))))}function qe(e){var t=[],a=[];const r=Array.from(e.discs.values()).flat();if(1===e.discs.size)t.push(...r);else for(var[n,i]of e.discs.entries())a.push({headerRow:c.default.createElement(We,{discNumber:n}),tracks:i});var l=[{key:"title",label:f(["sort.title"])}];return c.default.createElement(c.default.Fragment,null,c.default.createElement("div",{className:"main-actionBar-ActionBar contentSpacing"},c.default.createElement("div",{className:"main-actionBar-ActionBarRow"},c.default.createElement("div",{className:"main-playButton-PlayButton"},c.default.createElement(pe,{size:"lg",onClick:()=>{ue(r.map(e=>e.localTrack))}})),c.default.createElement(Ze,{label:f(["more.label.context"],r[0].album.name),menu:c.default.createElement(Ye,{tracks:r})}))),c.default.createElement(je,{tracks:t,subtracks:a,gridLabel:e.albumName,useTrackNumber:!0,onPlayTrack:e=>{se(e,r.map(e=>e.localTrack))},headers:l,getRowContent:e=>[c.default.createElement(Xe,{key:e.uri,track:e,withArtists:!0})],displayType:"list"}))}var v=t(r()),Qe=t(e());function et(e){return v.default.createElement("img",{src:e.imageSrc,className:"main-image-image main-entityHeader-image main-entityHeader-shadow main-entityHeader-newEntityHeaders main-image-loaded",onError:e=>e.currentTarget.outerHTML=` -
- - - - - -
`})}function tt(e){var{fontSize:t,ref:a}=(0,Qe.default)();return v.default.createElement("div",{className:"contentSpacing main-entityHeader-container main-entityHeader-nonWrapped main-entityHeader-newEntityHeaders"},v.default.createElement("div",{className:"main-entityHeader-backgroundColor"}),v.default.createElement("div",{className:"main-entityHeader-backgroundColor main-entityHeader-overlay"}),v.default.createElement("div",null),v.default.createElement("div",{className:"main-entityHeader-imageContainer main-entityHeader-imageContainerNew"},v.default.createElement("div",{className:"main-entityHeader-image"},e.image)),v.default.createElement("div",{className:"main-entityHeader-headerText"},e.subtitle&&v.default.createElement(b,{variant:"mesto",className:"main-entityHeader-pretitle"},e.subtitle),v.default.createElement("div",{dir:"auto",className:"main-entityHeader-title",style:{maxHeight:"135px",fontSize:"6rem"},ref:a},v.default.createElement(b,{variant:"bass",semanticColor:"textBase",elementType:"h1",style:{fontSize:t}},e.title)),e.metadata&&v.default.createElement("div",{className:"main-entityHeader-metaData",style:{maxHeight:"66px"}},e.metadata)))}function at(e){return n.default.createElement(tt,{image:n.default.createElement(et,{imageSrc:e.album.image}),subtitle:f(["album"]),title:e.album.name,metadata:n.default.createElement(n.default.Fragment,null,e.album.artists.map(e=>n.default.createElement(b,{variant:"mestoBold",key:e.uri},n.default.createElement("a",{href:"#",draggable:"false",onClick:()=>{l(u,e.uri)}},e.name))).reduce((e,t,a)=>null===e?[t]:[...e,n.default.createElement("span",{key:a,className:"main-entityHeader-divider"}),t],null),n.default.createElement(b,{variant:"mesto",className:"main-entityHeader-metaDataText"},f(["tracklist-header.songs-counter",1===e.album.getTracks().length?"one":"other"],e.album.getTracks().length)),n.default.createElement(b,{variant:"mesto",className:"main-entityHeader-metaDataText"},(e=e.album.getDuration(),t=Math.floor(e/1e3%60),a=Math.floor(e/1e3/60%60),e=Math.floor(e/1e3/60/60%24),r=[],0!==e&&r.push(f(["time.hours.short",1===e?"one":"other"],e)),0!==a&&r.push(f(["time.minutes.short",1===a?"one":"other"],a)),0===e&&0!==t&&r.push(f(["time.seconds.short",1===t?"one":"other"],t)),r.join(" "))))});var t,a,r}function rt(){var e=p("History"),t=e.location.state.uri??null;return null===t?(e.replace(ge),n.default.createElement(n.default.Fragment,null)):(e=window.localTracksService.getAlbums()).has(t)?(e=e.get(t),n.default.createElement(n.default.Fragment,null,null!==e&&n.default.createElement(n.default.Fragment,null,n.default.createElement(at,{album:e}),n.default.createElement(qe,{albumName:e.name,discs:e.discs})))):(l(ge),n.default.createElement(n.default.Fragment,null))}var y=t(r()),nt={"stretch-container":"app-module__stretch-container___SIzsh_betterDlocalDfiles","center-container":"app-module__center-container___LG8O4_betterDlocalDfiles","full-size-container":"app-module__full-size-container___XoGtP_betterDlocalDfiles","pad-top":"app-module__pad-top___8OIp9_betterDlocalDfiles",tabBar:"app-module__tabBar___EngzO_betterDlocalDfiles",active:"app-module__active___JYUKA_betterDlocalDfiles","album-grid":"app-module__album-grid___JeelH_betterDlocalDfiles","main-card-card":"app-module__main-card-card___E9Zy2_betterDlocalDfiles","text-subdued":"app-module__text-subdued___7rYtR_betterDlocalDfiles","album-header":"app-module__album-header___J1nVK_betterDlocalDfiles","search-container":"app-module__search-container___SlAU8_betterDlocalDfiles","search-icon":"app-module__search-icon___-9z2r_betterDlocalDfiles","clear-icon":"app-module__clear-icon___pSLvx_betterDlocalDfiles",controls:"app-module__controls___ZDW-X_betterDlocalDfiles","flex-centered":"app-module__flex-centered___5gRmM_betterDlocalDfiles","display-list":"app-module__display-list___8BLJG_betterDlocalDfiles","display-list-compact":"app-module__display-list-compact___sbWJt_betterDlocalDfiles","limit-lines-2":"app-module__limit-lines-2___GyZCj_betterDlocalDfiles","text-full-centered":"app-module__text-full-centered___xI2eE_betterDlocalDfiles"},E=t(r()),it={"stretch-container":"app-module__stretch-container___SIzsh_betterDlocalDfiles","center-container":"app-module__center-container___LG8O4_betterDlocalDfiles","full-size-container":"app-module__full-size-container___XoGtP_betterDlocalDfiles","pad-top":"app-module__pad-top___8OIp9_betterDlocalDfiles",tabBar:"app-module__tabBar___EngzO_betterDlocalDfiles",active:"app-module__active___JYUKA_betterDlocalDfiles","album-grid":"app-module__album-grid___JeelH_betterDlocalDfiles","main-card-card":"app-module__main-card-card___E9Zy2_betterDlocalDfiles","text-subdued":"app-module__text-subdued___7rYtR_betterDlocalDfiles","album-header":"app-module__album-header___J1nVK_betterDlocalDfiles","search-container":"app-module__search-container___SlAU8_betterDlocalDfiles","search-icon":"app-module__search-icon___-9z2r_betterDlocalDfiles","clear-icon":"app-module__clear-icon___pSLvx_betterDlocalDfiles",controls:"app-module__controls___ZDW-X_betterDlocalDfiles","flex-centered":"app-module__flex-centered___5gRmM_betterDlocalDfiles","display-list":"app-module__display-list___8BLJG_betterDlocalDfiles","display-list-compact":"app-module__display-list-compact___sbWJt_betterDlocalDfiles","limit-lines-2":"app-module__limit-lines-2___GyZCj_betterDlocalDfiles","text-full-centered":"app-module__text-full-centered___xI2eE_betterDlocalDfiles"};function lt(e){var t=(0,E.useRef)(null),a=be(t),r=Spicetify.ReactHook.DragHandler({itemUris:e.album.getTracks().map(e=>e.uri),dragLabelText:e.album.name,contextUri:e.album.uri}),n=E.default.createElement("div",{style:{height:"250px"}});const i=` -
- - - - - -
`;r=E.default.createElement("div",{className:it["main-card-card"]+" main-card-card",draggable:!0,onClick:()=>{l(Ee,e.album.uri)},onDragStart:r},E.default.createElement("div",{className:"main-card-draggable"},E.default.createElement("div",{className:"main-card-imageContainer main-card-imageContainerOld"},E.default.createElement("div",{className:"main-cardImage-imageWrapper"},E.default.createElement("img",{"aria-hidden":"false",draggable:"false",loading:"lazy",src:e.album.image,alt:"album image",className:"main-image-image main-cardImage-image main-image-loading main-image-loaded",onError:e=>e.currentTarget.outerHTML=i})),E.default.createElement("div",{className:"main-card-PlayButtonContainer"},E.default.createElement("div",{className:"main-playButton-PlayButton"},E.default.createElement(pe,{size:"md",onClick:()=>{e.onPlayClicked(e.album)}})))),E.default.createElement("div",{className:"main-card-cardMetadata"},E.default.createElement(b,{className:"main-cardHeader-link main-cardHeader-text",variant:"balladBold",semanticColor:"textBase",paddingBottom:"4px"},e.album.name),E.default.createElement(b,{className:"main-cardSubHeader-root "+it["limit-lines-2"],variant:"mesto",semanticColor:"textSubdued"},e.album.artists.map(t=>E.default.createElement("span",{key:t.uri},E.default.createElement("a",{href:"#",draggable:"false",onClick:e=>{e.stopPropagation(),l(u,t.uri)}},t.name))).reduce((e,t)=>null===e?[t]:[...e,E.default.createElement(E.default.Fragment,null,", "),t],null)))));return E.default.createElement("div",{ref:t},a?E.default.createElement(Spicetify.ReactComponent.RightClickMenu,{menu:E.default.createElement(Ye,{tracks:e.album.getTracks()})},r):n)}var ot=t(r()),ct={"stretch-container":"app-module__stretch-container___SIzsh_betterDlocalDfiles","center-container":"app-module__center-container___LG8O4_betterDlocalDfiles","full-size-container":"app-module__full-size-container___XoGtP_betterDlocalDfiles","pad-top":"app-module__pad-top___8OIp9_betterDlocalDfiles",tabBar:"app-module__tabBar___EngzO_betterDlocalDfiles",active:"app-module__active___JYUKA_betterDlocalDfiles","album-grid":"app-module__album-grid___JeelH_betterDlocalDfiles","main-card-card":"app-module__main-card-card___E9Zy2_betterDlocalDfiles","text-subdued":"app-module__text-subdued___7rYtR_betterDlocalDfiles","album-header":"app-module__album-header___J1nVK_betterDlocalDfiles","search-container":"app-module__search-container___SlAU8_betterDlocalDfiles","search-icon":"app-module__search-icon___-9z2r_betterDlocalDfiles","clear-icon":"app-module__clear-icon___pSLvx_betterDlocalDfiles",controls:"app-module__controls___ZDW-X_betterDlocalDfiles","flex-centered":"app-module__flex-centered___5gRmM_betterDlocalDfiles","display-list":"app-module__display-list___8BLJG_betterDlocalDfiles","display-list-compact":"app-module__display-list-compact___sbWJt_betterDlocalDfiles","limit-lines-2":"app-module__limit-lines-2___GyZCj_betterDlocalDfiles","text-full-centered":"app-module__text-full-centered___xI2eE_betterDlocalDfiles"},st=function(e,t){return(st=Object.setPrototypeOf||({__proto__:[]}instanceof Array?function(e,t){e.__proto__=t}:function(e,t){for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}))(e,t)};function g(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function a(){this.constructor=e}st(e,t),e.prototype=null===t?Object.create(t):(a.prototype=t.prototype,new a)}function ut(e){var t="function"==typeof Symbol&&Symbol.iterator,a=t&&e[t],r=0;if(a)return a.call(e);if(e&&"number"==typeof e.length)return{next:function(){return{value:(e=e&&r>=e.length?void 0:e)&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function dt(e,t){var a="function"==typeof Symbol&&e[Symbol.iterator];if(!a)return e;var r,n,i=a.call(e),l=[];try{for(;(void 0===t||0{var e=(0,pa.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:r,className:n="",children:i,...l},o)=>(0,pa.createElement)("svg",{ref:o,...fa,width:t,height:t,stroke:e,strokeWidth:r?24*Number(a)/Number(t):a,className:["lucide","lucide-"+c.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase().trim(),n].join(" "),...l},[...s.map(([e,t])=>(0,pa.createElement)(e,t)),...Array.isArray(i)?i:[i]]));return e.displayName=""+c,e},_a=e("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),ha=e("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]),ba=e("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),va=e("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]),x=t(r(),1),ya=e=>e+1|0,Ea=()=>{const e=(0,x.useState)(0)[1];return(0,x.useRef)(()=>e(ya)).current},ga=(()=>"undefined"==typeof window?x.useEffect:x.useLayoutEffect)(),Da=e=>e[1]?.next?e[1]:{next:e[1],error:e[2],complete:e[3]};function ka(e,t,a,r){{var n=x.useEffect,i=[e,t,a,r];const l=(0,x.useRef)(i),o=(0,x.useRef)(),c=(0,x.useRef)();ga(()=>{l.current=i,o.current=Da(i)}),n(()=>{const t=l.current[0],e=(o.current||(o.current=Da(l.current)),t.subscribe({next:e=>{t===l.current[0]&&o.current.next?.(e)},error:e=>{t===l.current[0]&&(o.current.error?o.current:console).error(e)},complete:()=>{t===l.current[0]&&o.current.complete?.()}}));return c.current=e,()=>{e.unsubscribe()}},[i[0]]),c}}function wa(e){const r=Ea(),n=(0,x.useRef)(e),i=(0,x.useRef)(),l=(0,x.useRef)(!1),a=(0,x.useRef)(!1),[o,c]=(0,x.useState)(()=>{let t;return e.subscribe({next:e=>{a.current=!0,t=e},error:e=>{i.current=e}}).unsubscribe(),t});if(ga(()=>{n.current=e}),(0,x.useEffect)(()=>{i.current=null;const t=n.current;let a=o;const e=t.subscribe({next:e=>{t===n.current&&(l.current?c(e):a=e)},error:e=>{t===n.current&&(i.current=e,r())}});return l.current||a!==o&&c(a),l.current=!0,()=>{e.unsubscribe()}},[e]),i.current)throw i.current;if(a.current)return(0,x.useDebugValue)(o),o;throw new Error("Observable did not synchronously emit a value.")}function Sa(t){const[a,e]=function(e){const[t]=(0,x.useState)(()=>new Qt(e));var[a]=(0,x.useState)(()=>({get current(){return t.value},set current(e){t.next(e)}}));return[a,t]}(t.search);var i,l,o,c;function r(e){a.current=e,t.setSearch(e)}return ka(e.pipe((o=400,void 0===c&&(c=da),Ft(function(e,a){var r=null,t=null,n=null,i=function(){var e;r&&(r.unsubscribe(),e=t,t=r=null,a.next(e))};function l(){var e=n+o,t=c.now();t{r(e.target.value)}}),ot.default.createElement(Spicetify.ReactComponent.ButtonTertiary,{iconOnly:()=>ot.default.createElement(_,{icon:"x",iconSize:16}),buttonSize:"sm",className:ct["clear-icon"],onClick:()=>{r("")},style:{visibility:t.search?"visible":"hidden"}}))}var N=t(r()),Ia={list:"list-view",compact:"menu",grid:"grid-view"},xa=t(r());function Na(e){return xa.default.createElement("li",null,xa.default.createElement(b,{className:"main-contextMenu-menuHeading ellipsis-one-line",variant:"finaleBold"},e.children))}var Ca=t(r());function Ra(e){return Ca.default.createElement(b,{className:"main-contextMenu-menuItemLabel ellipsis-one-line",variant:"mesto"},e.children)}function La(t){var e=N.default.createElement(N.default.Fragment,null,N.default.createElement(Na,null,f(["drop_down.sort_by"])),t.sortOptions.map(e=>N.default.createElement(Spicetify.ReactComponent.MenuItem,{key:e.key,onClick:()=>{t.setSelectedSortOption(e.key)},role:"menuitemradio","aria-checked":t.selectedSortOption.key===e.key,CheckedIcon:()=>"ascending"===t.selectedSortOption.order?N.default.createElement(ha,null):N.default.createElement(_a,null)},N.default.createElement(Ra,null,e.label)))),a=N.default.createElement(N.default.Fragment,null,N.default.createElement(Na,null,f(["web-player.your-library-x.sort-and-view-picker.view-as"])),t.displayTypes.map(e=>N.default.createElement(Spicetify.ReactComponent.MenuItem,{key:e,onClick:()=>{t.setSelectedDisplayType(e)},leadingIcon:N.default.createElement(_,{icon:Ia[e],iconSize:16}),role:"menuitemradio","aria-checked":t.selectedDisplayType===e},N.default.createElement(Ra,null,f(["web-player.your-library-x.sort-and-view-picker."+e]))))),e=N.default.createElement(Spicetify.ReactComponent.Menu,{className:Se},0e.key===t.selectedSortOption.key)?.label??""),N.default.createElement(_,{icon:Ia[t.selectedDisplayType],iconSize:16})))}function Ta(e,t,a){a="descending"===a?-1:1;return te);const l=(0,y.useMemo)(()=>{return e=i,""===(t=a)?e:e.filter(e=>e.name.toLowerCase().includes(t.toLowerCase())||e.artists.some(e=>e.name.toLowerCase().includes(t.toLowerCase())));var e,t},[i,a]),[o,c]=(0,y.useState)({...n[0],order:"ascending"});var s=(0,y.useMemo)(()=>{return[...(e=l,"title"===(a=o).key?e.sort((e,t)=>Ta(e.name,t.name,a.order)):e)];var e,a},[l,o]);function u(e){ue(e.getTracks().map(e=>e.localTrack))}return y.default.createElement("div",{className:"contentSpacing"},y.default.createElement("div",{className:nt["album-header"]+" "+nt["pad-top"]},y.default.createElement("h1",null,f(["albums"])),y.default.createElement("div",{className:nt.controls},y.default.createElement(Sa,{search:e,setSearch:t,setDebouncedSearch:r}),y.default.createElement(La,{sortOptions:n,selectedSortOption:o,setSelectedSortOption:function(t){c(e=>{return{key:t,order:e.key===t&&"ascending"===e.order?"descending":"ascending"}})},displayTypes:["grid"],selectedDisplayType:"grid",setSelectedDisplayType:()=>{}}))),y.default.createElement("div",{className:nt["album-grid"]+" main-gridContainer-gridContainer main-gridContainer-fixedWidth"},s.map(e=>y.default.createElement(lt,{key:e.uri,album:e,onPlayClicked:u}))))}var C=t(r()),R=t(r()),Aa=t(r());function Ma(e){const t=` -
- -
`;return Aa.default.createElement(Aa.default.Fragment,null,Aa.default.createElement("img",{loading:"eager",src:e.track.localTrack.album.images[0]?.url??t,className:"main-image-image main-trackList-rowImage main-image-loaded",width:"40",height:"40",onError:e=>e.currentTarget.outerHTML=t}),Aa.default.createElement(Xe,{track:e.track,withArtists:e.withArtists}))}var za=t(r());function Pa(e){return za.default.createElement(b,{variant:"mesto"},za.default.createElement("a",{className:"standalone-ellipsis-one-line",dir:"auto",href:"#",tabIndex:-1,onClick:()=>{l(Ee,e.track.album.uri)}},e.track.album.name))}function Ha(t){var e=[{key:"title",label:f(["sort.title"])},{key:"album",label:f(["sort.album"])}];return R.default.createElement(R.default.Fragment,null,R.default.createElement("div",{className:"main-actionBar-ActionBar contentSpacing"},R.default.createElement("div",{className:"main-actionBar-ActionBarRow"},R.default.createElement("div",{className:"main-playButton-PlayButton"},R.default.createElement(pe,{size:"lg",onClick:()=>{ue(t.tracks.map(e=>e.localTrack))}})),R.default.createElement(Ze,{label:f(["more.label.context"],t.artist.name),menu:R.default.createElement(Ye,{tracks:t.tracks})}))),R.default.createElement(je,{tracks:t.tracks,subtracks:[],gridLabel:t.artist.name,useTrackNumber:!1,onPlayTrack:e=>{se(e,t.tracks.map(e=>e.localTrack))},headers:e,getRowContent:e=>[R.default.createElement(Ma,{key:e.uri,track:e,withArtists:!1}),R.default.createElement(Pa,{key:e.uri,track:e})],displayType:"list"}))}function Ba(e){return C.default.createElement(tt,{image:C.default.createElement(et,{imageSrc:e.artist.image}),subtitle:f(["artist"]),title:e.artist.name})}function $a(){var e=p("History"),t=e.location.state.uri??null;return null===t?(e.replace(De),C.default.createElement(C.default.Fragment,null)):(e=window.localTracksService.getArtists()).has(t)?(e=e.get(t),t=window.localTracksService.getArtistTracks(e.uri),C.default.createElement(C.default.Fragment,null,null!==e&&C.default.createElement(C.default.Fragment,null,C.default.createElement(Ba,{artist:e}),C.default.createElement(Ha,{tracks:t,artist:e})))):(l(De),C.default.createElement(C.default.Fragment,null))}var L=t(r()),Ga={"stretch-container":"app-module__stretch-container___SIzsh_betterDlocalDfiles","center-container":"app-module__center-container___LG8O4_betterDlocalDfiles","full-size-container":"app-module__full-size-container___XoGtP_betterDlocalDfiles","pad-top":"app-module__pad-top___8OIp9_betterDlocalDfiles",tabBar:"app-module__tabBar___EngzO_betterDlocalDfiles",active:"app-module__active___JYUKA_betterDlocalDfiles","album-grid":"app-module__album-grid___JeelH_betterDlocalDfiles","main-card-card":"app-module__main-card-card___E9Zy2_betterDlocalDfiles","text-subdued":"app-module__text-subdued___7rYtR_betterDlocalDfiles","album-header":"app-module__album-header___J1nVK_betterDlocalDfiles","search-container":"app-module__search-container___SlAU8_betterDlocalDfiles","search-icon":"app-module__search-icon___-9z2r_betterDlocalDfiles","clear-icon":"app-module__clear-icon___pSLvx_betterDlocalDfiles",controls:"app-module__controls___ZDW-X_betterDlocalDfiles","flex-centered":"app-module__flex-centered___5gRmM_betterDlocalDfiles","display-list":"app-module__display-list___8BLJG_betterDlocalDfiles","display-list-compact":"app-module__display-list-compact___sbWJt_betterDlocalDfiles","limit-lines-2":"app-module__limit-lines-2___GyZCj_betterDlocalDfiles","text-full-centered":"app-module__text-full-centered___xI2eE_betterDlocalDfiles"},T=t(r()),Fa={"stretch-container":"app-module__stretch-container___SIzsh_betterDlocalDfiles","center-container":"app-module__center-container___LG8O4_betterDlocalDfiles","full-size-container":"app-module__full-size-container___XoGtP_betterDlocalDfiles","pad-top":"app-module__pad-top___8OIp9_betterDlocalDfiles",tabBar:"app-module__tabBar___EngzO_betterDlocalDfiles",active:"app-module__active___JYUKA_betterDlocalDfiles","album-grid":"app-module__album-grid___JeelH_betterDlocalDfiles","main-card-card":"app-module__main-card-card___E9Zy2_betterDlocalDfiles","text-subdued":"app-module__text-subdued___7rYtR_betterDlocalDfiles","album-header":"app-module__album-header___J1nVK_betterDlocalDfiles","search-container":"app-module__search-container___SlAU8_betterDlocalDfiles","search-icon":"app-module__search-icon___-9z2r_betterDlocalDfiles","clear-icon":"app-module__clear-icon___pSLvx_betterDlocalDfiles",controls:"app-module__controls___ZDW-X_betterDlocalDfiles","flex-centered":"app-module__flex-centered___5gRmM_betterDlocalDfiles","display-list":"app-module__display-list___8BLJG_betterDlocalDfiles","display-list-compact":"app-module__display-list-compact___sbWJt_betterDlocalDfiles","limit-lines-2":"app-module__limit-lines-2___GyZCj_betterDlocalDfiles","text-full-centered":"app-module__text-full-centered___xI2eE_betterDlocalDfiles"};function ja(e){var t=(0,T.useRef)(null),a=be(t),r=T.default.createElement("div",{style:{height:"260px"}});const n=` -
- - - - - -
`;return T.default.createElement("div",{ref:t},a?T.default.createElement(Spicetify.ReactComponent.RightClickMenu,{menu:T.default.createElement(Ye,{tracks:window.localTracksService.getArtistTracks(e.artist.uri)})},T.default.createElement("div",{className:Fa["main-card-card"]+" main-card-card",onClick:()=>{l(u,e.artist.uri)}},T.default.createElement("div",{draggable:"true",className:"main-card-draggable"},T.default.createElement("div",{className:"main-card-imageContainer main-card-imageContainerOld"},T.default.createElement("div",{className:"main-cardImage-imageWrapper main-cardImage-circular"},T.default.createElement("img",{"aria-hidden":"false",draggable:"false",loading:"lazy",src:e.artist.image,alt:"artist image",className:"main-image-image main-cardImage-image main-cardImage-circular main-image-loading main-image-loaded",onError:e=>e.currentTarget.outerHTML=n})),T.default.createElement("div",{className:"main-card-PlayButtonContainer"},T.default.createElement("div",{className:"main-playButton-PlayButton"},T.default.createElement(pe,{size:"md",onClick:()=>{e.onPlayClicked(e.artist)}})))),T.default.createElement("div",{className:"main-card-cardMetadata"},T.default.createElement(b,{className:"main-cardHeader-link main-cardHeader-text "+Fa["text-full-centered"],variant:"balladBold",semanticColor:"textBase",paddingBottom:"4px"},e.artist.name))))):r)}function Ua(){var[e,t]=(0,L.useState)("");const[a,r]=(0,L.useState)("");var n=[{key:"title",label:f(["collection.sort.alphabetical"])}];const i=Array.from(window.localTracksService.getArtists()).map(([,e])=>e);const l=(0,L.useMemo)(()=>{return e=i,""===(t=a)?e:e.filter(e=>e.name.toLowerCase().includes(t.toLowerCase()));var e,t},[i,a]),[o,c]=(0,L.useState)({...n[0],order:"ascending"});var s=(0,L.useMemo)(()=>{return[...(e=l,"title"===(a=o).key?e.sort((e,t)=>Ta(e.name,t.name,a.order)):e)];var e,a},[l,o]);function u(e){ue(window.localTracksService.getArtistTracks(e.uri).map(e=>e.localTrack))}return L.default.createElement("div",{className:"contentSpacing"},L.default.createElement("div",{className:Ga["album-header"]+" "+Ga["pad-top"]},L.default.createElement("h1",null,f(["artists"])),L.default.createElement("div",{className:Ga.controls},L.default.createElement(Sa,{search:e,setSearch:t,setDebouncedSearch:r}),L.default.createElement(La,{sortOptions:n,selectedSortOption:o,setSelectedSortOption:function(t){c(e=>{return{key:t,order:e.key===t&&"ascending"===e.order?"descending":"ascending"}})},displayTypes:["grid"],selectedDisplayType:"grid",setSelectedDisplayType:()=>{}}))),L.default.createElement("div",{className:Ga["album-grid"]+" main-gridContainer-gridContainer main-gridContainer-fixedWidth"},s.map(e=>L.default.createElement(ja,{key:e.uri,artist:e,onPlayClicked:u}))))}var Xa=t(r());function Wa(){return Xa.default.createElement("svg",{width:"100px",height:"100px",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid"},Xa.default.createElement("circle",{cx:"50",cy:"50",r:"0",fill:"none",stroke:"currentColor",strokeWidth:"2"},Xa.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"}),Xa.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"})),Xa.default.createElement("circle",{cx:"50",cy:"50",r:"0",fill:"none",stroke:"currentColor",strokeWidth:"2"},Xa.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"}),Xa.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"})))}var Ja=t(r()),O=t(r()),Va=t(r()),Za="app-module__active___JYUKA_betterDlocalDfiles";function Ka(e){return Va.default.createElement("li",{"data-tab":e.item.key,onClick:()=>{e.onItemClicked(e.item)}},Va.default.createElement("button",{className:e.active?Za:"",draggable:"false"},Va.default.createElement(b,{variant:"mestoBold"},e.item.label)))}var Ya=t(r());function qa(a){var e={width:a.size+"px"};return Ya.default.createElement("li",{id:"more-button",style:e},Ya.default.createElement(Spicetify.ReactComponent.Dropdown,{value:a.activeItem.key,disabled:!1,onSelect:t=>{var e=a.items.find(e=>e.key===t);e&&a.onClick(e)}},a.items.map(e=>Ya.default.createElement("option",{key:e.key,value:e.key},e.label))))}var Qa={"stretch-container":"app-module__stretch-container___SIzsh_betterDlocalDfiles","center-container":"app-module__center-container___LG8O4_betterDlocalDfiles","full-size-container":"app-module__full-size-container___XoGtP_betterDlocalDfiles","pad-top":"app-module__pad-top___8OIp9_betterDlocalDfiles",tabBar:"app-module__tabBar___EngzO_betterDlocalDfiles",active:"app-module__active___JYUKA_betterDlocalDfiles","album-grid":"app-module__album-grid___JeelH_betterDlocalDfiles","main-card-card":"app-module__main-card-card___E9Zy2_betterDlocalDfiles","text-subdued":"app-module__text-subdued___7rYtR_betterDlocalDfiles","album-header":"app-module__album-header___J1nVK_betterDlocalDfiles","search-container":"app-module__search-container___SlAU8_betterDlocalDfiles","search-icon":"app-module__search-icon___-9z2r_betterDlocalDfiles","clear-icon":"app-module__clear-icon___pSLvx_betterDlocalDfiles",controls:"app-module__controls___ZDW-X_betterDlocalDfiles","flex-centered":"app-module__flex-centered___5gRmM_betterDlocalDfiles","display-list":"app-module__display-list___8BLJG_betterDlocalDfiles","display-list-compact":"app-module__display-list-compact___sbWJt_betterDlocalDfiles","limit-lines-2":"app-module__limit-lines-2___GyZCj_betterDlocalDfiles","text-full-centered":"app-module__text-full-centered___xI2eE_betterDlocalDfiles"};function er(a){const t=O.default.useRef(null),[n,r]=(0,O.useState)([]),[i,e]=(0,O.useState)(0),[l,o]=(0,O.useState)([]),[c,s]=(0,O.useState)(0);return(0,O.useEffect)(()=>{t.current&&e(t.current.clientWidth)},[a.windowSize]),(0,O.useEffect)(()=>{var e;t.current&&(e=Array.from(t.current.children).filter(e=>"more-button"!==e.id).map(e=>e.clientWidth),r(e))},[a.items]),(0,O.useEffect)(()=>{if(t.current)if(n.reduce((e,t)=>e+t,0)<=i)o([]);else{var e=Math.max(...n)+32;const r=[];let a=e;n.forEach((e,t)=>{i>=a+e?a+=e:r.push(t)}),o(r),s(e)}},[i,n]),O.default.createElement("nav",{className:Qa.tabBar},O.default.createElement("ul",{ref:t},a.items.filter((e,t)=>!l.includes(t)).map(e=>O.default.createElement(Ka,{key:e.key,item:e,active:a.activeItem.key===e.key,onItemClicked:a.onItemClicked})),l.length||0===n.length?O.default.createElement(qa,{items:a.items.filter((e,t)=>l.includes(t)||e.key===a.activeItem.key),activeItem:a.activeItem,onClick:a.onItemClicked,size:c}):null))}function tr(e){const t=document.querySelector(".Root__main-view .os-resize-observer-host")??document.querySelector(".Root__main-view .os-size-observer");if(!t)throw new Error("Could not find resize host");const[a,r]=(0,Ja.useState)(t.clientWidth),n=()=>{r(t.clientWidth)};return(0,Ja.useEffect)(()=>{const e=new ResizeObserver(n);return e.observe(t),()=>{e.disconnect()}},[]),Ja.default.createElement(er,{windowSize:a,items:e.items,activeItem:e.activeItem,onItemClicked:e.onItemClicked})}var A=t(r()),ar={"stretch-container":"app-module__stretch-container___SIzsh_betterDlocalDfiles","center-container":"app-module__center-container___LG8O4_betterDlocalDfiles","full-size-container":"app-module__full-size-container___XoGtP_betterDlocalDfiles","pad-top":"app-module__pad-top___8OIp9_betterDlocalDfiles",tabBar:"app-module__tabBar___EngzO_betterDlocalDfiles",active:"app-module__active___JYUKA_betterDlocalDfiles","album-grid":"app-module__album-grid___JeelH_betterDlocalDfiles","main-card-card":"app-module__main-card-card___E9Zy2_betterDlocalDfiles","text-subdued":"app-module__text-subdued___7rYtR_betterDlocalDfiles","album-header":"app-module__album-header___J1nVK_betterDlocalDfiles","search-container":"app-module__search-container___SlAU8_betterDlocalDfiles","search-icon":"app-module__search-icon___-9z2r_betterDlocalDfiles","clear-icon":"app-module__clear-icon___pSLvx_betterDlocalDfiles",controls:"app-module__controls___ZDW-X_betterDlocalDfiles","flex-centered":"app-module__flex-centered___5gRmM_betterDlocalDfiles","display-list":"app-module__display-list___8BLJG_betterDlocalDfiles","display-list-compact":"app-module__display-list-compact___sbWJt_betterDlocalDfiles","limit-lines-2":"app-module__limit-lines-2___GyZCj_betterDlocalDfiles","text-full-centered":"app-module__text-full-centered___xI2eE_betterDlocalDfiles"},M=t(r()),rr=t(r());function nr(e){return rr.default.createElement(b,{className:"standalone-ellipsis-one-line",variant:"mesto"},e.track.artists.map(e=>rr.default.createElement("a",{dir:"auto",href:"#",tabIndex:-1,onClick:()=>{l(u,e.uri)},key:e.uri},e.name)).reduce((e,t)=>null===e?[t]:[...e,rr.default.createElement(rr.default.Fragment,null,", "),t],null))}function ir(a){var[e,t]=(0,M.useState)("");const[r,n]=(0,M.useState)("");var i=[{key:"date",label:f(["sort.date-added"])},{key:"title",label:f(["sort.title"])},{key:"artist",label:f(["sort.artist"])},{key:"album",label:f(["sort.album"])},{key:"duration",label:f(["sort.duration"])}];const[l,o]=(0,M.useState)({...i[0],order:"ascending"}),[c,s]=(0,M.useState)("list");var u=[];"list"===c?u.push("artist"===l.key?{key:"artist",label:f(["artist"])}:{key:"title",label:f(["tracklist.header.title"])}):u.push({key:"title",label:f(["tracklist.header.title"])},{key:"artist",label:f(["artist"])}),u.push({key:"album",label:f(["tracklist.header.album"])},{key:"date",label:f(["tracklist.header.date-added"])});const d=(0,M.useMemo)(()=>{return e=a.tracks,""===(t=r)?e:e.filter(e=>e.name.toLowerCase().includes(t.toLowerCase())||e.album.name.toLowerCase().includes(t.toLowerCase())||e.artists.some(e=>e.name.toLowerCase().includes(t.toLowerCase())));var e,t},[a.tracks,r]),m=(0,M.useMemo)(()=>[...function(e,a){switch(a.key){case"date":return e.sort((e,t)=>Ta(e.addedAt,t.addedAt,a.order));case"title":return e.sort((e,t)=>Ta(e.name,t.name,a.order));case"artist":return e.sort((e,t)=>Ta(e.artists.map(e=>e.name).join(", "),t.artists.map(e=>e.name).join(", "),a.order));case"album":return e.sort((e,t)=>Ta(e.album.name,t.album.name,a.order));case"duration":return e.sort((e,t)=>Ta(e.duration,t.duration,a.order));default:return e}}(d,l)],[d,l]);function p(r,n){o(e=>{let t,a;return a=n||"title"!==r||"descending"!==l.order||"compact"===c?n||"artist"!==r||"descending"!==l.order||"compact"===c?(t=r,e.key===r&&"ascending"===e.order?"descending":"ascending"):(t="title","ascending"):(t="artist","ascending"),{key:t,order:a}})}return M.default.createElement(M.default.Fragment,null,M.default.createElement("div",{className:"main-actionBar-ActionBar contentSpacing"},M.default.createElement("div",{className:"main-actionBar-ActionBarRow"},M.default.createElement("div",{className:"main-playButton-PlayButton"},M.default.createElement(pe,{size:"lg",onClick:()=>{ue(m.map(e=>e.localTrack))}})),M.default.createElement("div",{className:""+ar.controls},M.default.createElement(Sa,{search:e,setSearch:t,setDebouncedSearch:n}),M.default.createElement(La,{sortOptions:i,selectedSortOption:l,setSelectedSortOption:e=>{p(e,!0)},displayTypes:["list","compact"],selectedDisplayType:c,setSelectedDisplayType:s})))),M.default.createElement(je,{tracks:m,subtracks:[],gridLabel:f(["local-files"]),useTrackNumber:!1,onPlayTrack:e=>{se(e,m.map(e=>e.localTrack))},headers:u,onHeaderClicked:e=>{p(e,!1)},sortedHeader:l,getRowContent:e=>{var t=["compact"===c?M.default.createElement(b,{className:"main-trackList-rowTitle standalone-ellipsis-one-line",variant:"ballad",semanticColor:"textBase",key:e.uri},e.name):M.default.createElement(Ma,{track:e,withArtists:!0,key:e.uri})];return"compact"===c&&t.push(M.default.createElement(nr,{track:e,key:e.uri})),t.push(M.default.createElement(Pa,{track:e,key:e.uri}),M.default.createElement(b,{variant:"mesto",semanticColor:"textSubdued",key:e.uri},e.addedAt.toLocaleDateString())),t},displayType:c}))}var lr={"stretch-container":"app-module__stretch-container___SIzsh_betterDlocalDfiles","center-container":"app-module__center-container___LG8O4_betterDlocalDfiles","full-size-container":"app-module__full-size-container___XoGtP_betterDlocalDfiles","pad-top":"app-module__pad-top___8OIp9_betterDlocalDfiles",tabBar:"app-module__tabBar___EngzO_betterDlocalDfiles",active:"app-module__active___JYUKA_betterDlocalDfiles","album-grid":"app-module__album-grid___JeelH_betterDlocalDfiles","main-card-card":"app-module__main-card-card___E9Zy2_betterDlocalDfiles","text-subdued":"app-module__text-subdued___7rYtR_betterDlocalDfiles","album-header":"app-module__album-header___J1nVK_betterDlocalDfiles","search-container":"app-module__search-container___SlAU8_betterDlocalDfiles","search-icon":"app-module__search-icon___-9z2r_betterDlocalDfiles","clear-icon":"app-module__clear-icon___pSLvx_betterDlocalDfiles",controls:"app-module__controls___ZDW-X_betterDlocalDfiles","flex-centered":"app-module__flex-centered___5gRmM_betterDlocalDfiles","display-list":"app-module__display-list___8BLJG_betterDlocalDfiles","display-list-compact":"app-module__display-list-compact___sbWJt_betterDlocalDfiles","limit-lines-2":"app-module__limit-lines-2___GyZCj_betterDlocalDfiles","text-full-centered":"app-module__text-full-centered___xI2eE_betterDlocalDfiles"};function or(){var e=Array.from(window.localTracksService.getTracks().values());return A.default.createElement(A.default.Fragment,null,A.default.createElement(tt,{image:A.default.createElement("div",{className:""+lr["center-container"],style:{background:"linear-gradient(126deg, rgba(69,8,245,1) 0%, rgba(111,86,235,1) 27%, rgba(151,159,225,1) 67%, rgba(189,228,217,1) 100%)",borderRadius:"4px"}},A.default.createElement(ba,{fill:"var(--spice-text)",size:100})),title:f(["local-files"]),titleFontSize:"6rem",metadata:A.default.createElement(A.default.Fragment,null,A.default.createElement(b,{variant:"mesto",className:"main-entityHeader-metaDataText"},f(["local-files.description"])),A.default.createElement(b,{variant:"mesto",className:"main-entityHeader-metaDataText"},f(["tracklist-header.songs-counter",1===e.length?"one":"other"],e.length)))}),A.default.createElement(ir,{tracks:e}))}var cr={"stretch-container":"app-module__stretch-container___SIzsh_betterDlocalDfiles","center-container":"app-module__center-container___LG8O4_betterDlocalDfiles","full-size-container":"app-module__full-size-container___XoGtP_betterDlocalDfiles","pad-top":"app-module__pad-top___8OIp9_betterDlocalDfiles",tabBar:"app-module__tabBar___EngzO_betterDlocalDfiles",active:"app-module__active___JYUKA_betterDlocalDfiles","album-grid":"app-module__album-grid___JeelH_betterDlocalDfiles","main-card-card":"app-module__main-card-card___E9Zy2_betterDlocalDfiles","text-subdued":"app-module__text-subdued___7rYtR_betterDlocalDfiles","album-header":"app-module__album-header___J1nVK_betterDlocalDfiles","search-container":"app-module__search-container___SlAU8_betterDlocalDfiles","search-icon":"app-module__search-icon___-9z2r_betterDlocalDfiles","clear-icon":"app-module__clear-icon___pSLvx_betterDlocalDfiles",controls:"app-module__controls___ZDW-X_betterDlocalDfiles","flex-centered":"app-module__flex-centered___5gRmM_betterDlocalDfiles","display-list":"app-module__display-list___8BLJG_betterDlocalDfiles","display-list-compact":"app-module__display-list-compact___sbWJt_betterDlocalDfiles","limit-lines-2":"app-module__limit-lines-2___GyZCj_betterDlocalDfiles","text-full-centered":"app-module__text-full-centered___xI2eE_betterDlocalDfiles"};var sr=function(){var e=wa(window.localTracksService.isReady$),t=wa(window.localTracksService.processedAlbums$),a=wa(window.localTracksService.albumCount$);(0,o.useEffect)(()=>{!async function(){await window.localTracksService.init(),await le("better-local-files",oe,{title:"New in v"+oe,content:o.default.createElement("p",null,o.default.createElement("ul",null,ce.map(e=>o.default.createElement("li",{key:e},e)))),isLarge:!0})}()},[]);const r=p("History"),n=r.location;let i=o.default.createElement(o.default.Fragment,null);switch(n.pathname){case ke:i=o.default.createElement(or,null);break;case Ee:i=o.default.createElement(rt,null);break;case ge:i=o.default.createElement(Oa,null);break;case u:i=o.default.createElement($a,null);break;case De:i=o.default.createElement(Ua,null);break;default:r.replace(ke)}var l=document.querySelector(".main-topBar-topbarContentWrapper");return o.default.createElement(o.default.Fragment,null,o.default.createElement("div",{className:cr["full-size-container"]},e?o.default.createElement("div",{className:cr["stretch-container"]+" "+cr.padded},i):o.default.createElement("div",{className:cr["center-container"]+" "+cr.padded},o.default.createElement(Wa,null),0===a&&o.default.createElement("p",null,"Processing tracks..."),0{r.push(e.href)},items:we,activeItem:we.find(e=>e.href.startsWith(n.pathname))??we[0]}),l))},ur=t(r());return U=Q,j(H({},"__esModule",{value:!0}),U)})();const render=()=>betterDlocalDfiles.default(); \ No newline at end of file diff --git a/.config/spicetify/CustomApps/better-local-files/manifest.json b/.config/spicetify/CustomApps/better-local-files/manifest.json deleted file mode 100644 index ccfde349..00000000 --- a/.config/spicetify/CustomApps/better-local-files/manifest.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "Local Files", - "icon": "", - "active-icon": "", - "subfiles": [], - "subfiles_extension": [ - "extension.js" - ] -} \ No newline at end of file diff --git a/.config/spicetify/CustomApps/better-local-files/preview.png b/.config/spicetify/CustomApps/better-local-files/preview.png deleted file mode 100644 index f87bcac8..00000000 Binary files a/.config/spicetify/CustomApps/better-local-files/preview.png and /dev/null differ diff --git a/.config/spicetify/CustomApps/better-local-files/style.css b/.config/spicetify/CustomApps/better-local-files/style.css deleted file mode 100644 index 492e566d..00000000 --- a/.config/spicetify/CustomApps/better-local-files/style.css +++ /dev/null @@ -1 +0,0 @@ -.app-module__center-container___LG8O4_betterDlocalDfiles,.app-module__stretch-container___SIzsh_betterDlocalDfiles{display:flex;flex-direction:column;height:100%}.app-module__stretch-container___SIzsh_betterDlocalDfiles{justify-content:stretch;align-items:stretch}.app-module__center-container___LG8O4_betterDlocalDfiles{justify-content:center;align-items:center}.app-module__full-size-container___XoGtP_betterDlocalDfiles{position:absolute;left:0;right:0;top:0;bottom:0}.app-module__pad-top___8OIp9_betterDlocalDfiles{padding-top:64px}.app-module__tabBar___EngzO_betterDlocalDfiles ul{display:flex;flex-direction:row;align-items:stretch}.app-module__tabBar___EngzO_betterDlocalDfiles ul li{pointer-events:all}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button{border-radius:4px;border-style:none;color:var(--spice-text);background-color:transparent;margin:0 8px 0 0;padding:8px 16px;cursor:pointer}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button.app-module__active___JYUKA_betterDlocalDfiles{background-color:var(--spice-tab-active);border-radius:4px}.app-module__tabBar___EngzO_betterDlocalDfiles ul select{height:100%}.app-module__album-grid___JeelH_betterDlocalDfiles{--minimumColumnWidth:180px;--column-width:minmax(var(--minimumColumnWidth), 1fr);--column-count:auto-fill;--grid-gap:24px}.app-module__album-grid___JeelH_betterDlocalDfiles .app-module__main-card-card___E9Zy2_betterDlocalDfiles{cursor:pointer;height:100%;border-radius:6.3px}.app-module__text-subdued___7rYtR_betterDlocalDfiles{color:var(--text-subdued)}.app-module__album-header___J1nVK_betterDlocalDfiles{align-items:center;color:var(--spice-text);display:flex;justify-content:space-between;margin-bottom:16px}.app-module__album-header___J1nVK_betterDlocalDfiles h1{margin-top:0;font-size:1.5rem;font-weight:700}.app-module__search-container___SlAU8_betterDlocalDfiles{display:flex;align-items:center;background-color:rgba(var(--spice-rgb-selected-row),.1);border-radius:4px}.app-module__search-container___SlAU8_betterDlocalDfiles input{border-style:none;background-color:transparent;color:var(--spice-text)!important}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__search-icon___-9z2r_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;margin-left:8px;margin-top:4px;margin-right:8px;display:inline-block}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__clear-icon___pSLvx_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;display:inline-block}.app-module__controls___ZDW-X_betterDlocalDfiles{-webkit-box-flex:1;-webkit-box-pack:end;-ms-flex-pack:end;display:flex;flex:1;gap:8px;justify-content:flex-end}.app-module__flex-centered___5gRmM_betterDlocalDfiles{display:flex;align-items:center}.app-module__display-list___8BLJG_betterDlocalDfiles{--row-height:56px}.app-module__display-list-compact___sbWJt_betterDlocalDfiles{--row-height:32px}.app-module__limit-lines-2___GyZCj_betterDlocalDfiles{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.app-module__text-full-centered___xI2eE_betterDlocalDfiles{text-align:center;width:100%}.app-module__center-container___LG8O4_betterDlocalDfiles,.app-module__stretch-container___SIzsh_betterDlocalDfiles{display:flex;flex-direction:column;height:100%}.app-module__stretch-container___SIzsh_betterDlocalDfiles{justify-content:stretch;align-items:stretch}.app-module__center-container___LG8O4_betterDlocalDfiles{justify-content:center;align-items:center}.app-module__full-size-container___XoGtP_betterDlocalDfiles{position:absolute;left:0;right:0;top:0;bottom:0}.app-module__pad-top___8OIp9_betterDlocalDfiles{padding-top:64px}.app-module__tabBar___EngzO_betterDlocalDfiles ul{display:flex;flex-direction:row;align-items:stretch}.app-module__tabBar___EngzO_betterDlocalDfiles ul li{pointer-events:all}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button{border-radius:4px;border-style:none;color:var(--spice-text);background-color:transparent;margin:0 8px 0 0;padding:8px 16px;cursor:pointer}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button.app-module__active___JYUKA_betterDlocalDfiles{background-color:var(--spice-tab-active);border-radius:4px}.app-module__tabBar___EngzO_betterDlocalDfiles ul select{height:100%}.app-module__album-grid___JeelH_betterDlocalDfiles{--minimumColumnWidth:180px;--column-width:minmax(var(--minimumColumnWidth), 1fr);--column-count:auto-fill;--grid-gap:24px}.app-module__album-grid___JeelH_betterDlocalDfiles .app-module__main-card-card___E9Zy2_betterDlocalDfiles{cursor:pointer;height:100%;border-radius:6.3px}.app-module__text-subdued___7rYtR_betterDlocalDfiles{color:var(--text-subdued)}.app-module__album-header___J1nVK_betterDlocalDfiles{align-items:center;color:var(--spice-text);display:flex;justify-content:space-between;margin-bottom:16px}.app-module__album-header___J1nVK_betterDlocalDfiles h1{margin-top:0;font-size:1.5rem;font-weight:700}.app-module__search-container___SlAU8_betterDlocalDfiles{display:flex;align-items:center;background-color:rgba(var(--spice-rgb-selected-row),.1);border-radius:4px}.app-module__search-container___SlAU8_betterDlocalDfiles input{border-style:none;background-color:transparent;color:var(--spice-text)!important}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__search-icon___-9z2r_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;margin-left:8px;margin-top:4px;margin-right:8px;display:inline-block}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__clear-icon___pSLvx_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;display:inline-block}.app-module__controls___ZDW-X_betterDlocalDfiles{-webkit-box-flex:1;-webkit-box-pack:end;-ms-flex-pack:end;display:flex;flex:1;gap:8px;justify-content:flex-end}.app-module__flex-centered___5gRmM_betterDlocalDfiles{display:flex;align-items:center}.app-module__display-list___8BLJG_betterDlocalDfiles{--row-height:56px}.app-module__display-list-compact___sbWJt_betterDlocalDfiles{--row-height:32px}.app-module__limit-lines-2___GyZCj_betterDlocalDfiles{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.app-module__text-full-centered___xI2eE_betterDlocalDfiles{text-align:center;width:100%}.app-module__center-container___LG8O4_betterDlocalDfiles,.app-module__stretch-container___SIzsh_betterDlocalDfiles{display:flex;flex-direction:column;height:100%}.app-module__stretch-container___SIzsh_betterDlocalDfiles{justify-content:stretch;align-items:stretch}.app-module__center-container___LG8O4_betterDlocalDfiles{justify-content:center;align-items:center}.app-module__full-size-container___XoGtP_betterDlocalDfiles{position:absolute;left:0;right:0;top:0;bottom:0}.app-module__pad-top___8OIp9_betterDlocalDfiles{padding-top:64px}.app-module__tabBar___EngzO_betterDlocalDfiles ul{display:flex;flex-direction:row;align-items:stretch}.app-module__tabBar___EngzO_betterDlocalDfiles ul li{pointer-events:all}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button{border-radius:4px;border-style:none;color:var(--spice-text);background-color:transparent;margin:0 8px 0 0;padding:8px 16px;cursor:pointer}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button.app-module__active___JYUKA_betterDlocalDfiles{background-color:var(--spice-tab-active);border-radius:4px}.app-module__tabBar___EngzO_betterDlocalDfiles ul select{height:100%}.app-module__album-grid___JeelH_betterDlocalDfiles{--minimumColumnWidth:180px;--column-width:minmax(var(--minimumColumnWidth), 1fr);--column-count:auto-fill;--grid-gap:24px}.app-module__album-grid___JeelH_betterDlocalDfiles .app-module__main-card-card___E9Zy2_betterDlocalDfiles{cursor:pointer;height:100%;border-radius:6.3px}.app-module__text-subdued___7rYtR_betterDlocalDfiles{color:var(--text-subdued)}.app-module__album-header___J1nVK_betterDlocalDfiles{align-items:center;color:var(--spice-text);display:flex;justify-content:space-between;margin-bottom:16px}.app-module__album-header___J1nVK_betterDlocalDfiles h1{margin-top:0;font-size:1.5rem;font-weight:700}.app-module__search-container___SlAU8_betterDlocalDfiles{display:flex;align-items:center;background-color:rgba(var(--spice-rgb-selected-row),.1);border-radius:4px}.app-module__search-container___SlAU8_betterDlocalDfiles input{border-style:none;background-color:transparent;color:var(--spice-text)!important}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__search-icon___-9z2r_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;margin-left:8px;margin-top:4px;margin-right:8px;display:inline-block}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__clear-icon___pSLvx_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;display:inline-block}.app-module__controls___ZDW-X_betterDlocalDfiles{-webkit-box-flex:1;-webkit-box-pack:end;-ms-flex-pack:end;display:flex;flex:1;gap:8px;justify-content:flex-end}.app-module__flex-centered___5gRmM_betterDlocalDfiles{display:flex;align-items:center}.app-module__display-list___8BLJG_betterDlocalDfiles{--row-height:56px}.app-module__display-list-compact___sbWJt_betterDlocalDfiles{--row-height:32px}.app-module__limit-lines-2___GyZCj_betterDlocalDfiles{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.app-module__text-full-centered___xI2eE_betterDlocalDfiles{text-align:center;width:100%}.app-module__center-container___LG8O4_betterDlocalDfiles,.app-module__stretch-container___SIzsh_betterDlocalDfiles{display:flex;flex-direction:column;height:100%}.app-module__stretch-container___SIzsh_betterDlocalDfiles{justify-content:stretch;align-items:stretch}.app-module__center-container___LG8O4_betterDlocalDfiles{justify-content:center;align-items:center}.app-module__full-size-container___XoGtP_betterDlocalDfiles{position:absolute;left:0;right:0;top:0;bottom:0}.app-module__pad-top___8OIp9_betterDlocalDfiles{padding-top:64px}.app-module__tabBar___EngzO_betterDlocalDfiles ul{display:flex;flex-direction:row;align-items:stretch}.app-module__tabBar___EngzO_betterDlocalDfiles ul li{pointer-events:all}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button{border-radius:4px;border-style:none;color:var(--spice-text);background-color:transparent;margin:0 8px 0 0;padding:8px 16px;cursor:pointer}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button.app-module__active___JYUKA_betterDlocalDfiles{background-color:var(--spice-tab-active);border-radius:4px}.app-module__tabBar___EngzO_betterDlocalDfiles ul select{height:100%}.app-module__album-grid___JeelH_betterDlocalDfiles{--minimumColumnWidth:180px;--column-width:minmax(var(--minimumColumnWidth), 1fr);--column-count:auto-fill;--grid-gap:24px}.app-module__album-grid___JeelH_betterDlocalDfiles .app-module__main-card-card___E9Zy2_betterDlocalDfiles{cursor:pointer;height:100%;border-radius:6.3px}.app-module__text-subdued___7rYtR_betterDlocalDfiles{color:var(--text-subdued)}.app-module__album-header___J1nVK_betterDlocalDfiles{align-items:center;color:var(--spice-text);display:flex;justify-content:space-between;margin-bottom:16px}.app-module__album-header___J1nVK_betterDlocalDfiles h1{margin-top:0;font-size:1.5rem;font-weight:700}.app-module__search-container___SlAU8_betterDlocalDfiles{display:flex;align-items:center;background-color:rgba(var(--spice-rgb-selected-row),.1);border-radius:4px}.app-module__search-container___SlAU8_betterDlocalDfiles input{border-style:none;background-color:transparent;color:var(--spice-text)!important}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__search-icon___-9z2r_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;margin-left:8px;margin-top:4px;margin-right:8px;display:inline-block}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__clear-icon___pSLvx_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;display:inline-block}.app-module__controls___ZDW-X_betterDlocalDfiles{-webkit-box-flex:1;-webkit-box-pack:end;-ms-flex-pack:end;display:flex;flex:1;gap:8px;justify-content:flex-end}.app-module__flex-centered___5gRmM_betterDlocalDfiles{display:flex;align-items:center}.app-module__display-list___8BLJG_betterDlocalDfiles{--row-height:56px}.app-module__display-list-compact___sbWJt_betterDlocalDfiles{--row-height:32px}.app-module__limit-lines-2___GyZCj_betterDlocalDfiles{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.app-module__text-full-centered___xI2eE_betterDlocalDfiles{text-align:center;width:100%}.app-module__center-container___LG8O4_betterDlocalDfiles,.app-module__stretch-container___SIzsh_betterDlocalDfiles{display:flex;flex-direction:column;height:100%}.app-module__stretch-container___SIzsh_betterDlocalDfiles{justify-content:stretch;align-items:stretch}.app-module__center-container___LG8O4_betterDlocalDfiles{justify-content:center;align-items:center}.app-module__full-size-container___XoGtP_betterDlocalDfiles{position:absolute;left:0;right:0;top:0;bottom:0}.app-module__pad-top___8OIp9_betterDlocalDfiles{padding-top:64px}.app-module__tabBar___EngzO_betterDlocalDfiles ul{display:flex;flex-direction:row;align-items:stretch}.app-module__tabBar___EngzO_betterDlocalDfiles ul li{pointer-events:all}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button{border-radius:4px;border-style:none;color:var(--spice-text);background-color:transparent;margin:0 8px 0 0;padding:8px 16px;cursor:pointer}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button.app-module__active___JYUKA_betterDlocalDfiles{background-color:var(--spice-tab-active);border-radius:4px}.app-module__tabBar___EngzO_betterDlocalDfiles ul select{height:100%}.app-module__album-grid___JeelH_betterDlocalDfiles{--minimumColumnWidth:180px;--column-width:minmax(var(--minimumColumnWidth), 1fr);--column-count:auto-fill;--grid-gap:24px}.app-module__album-grid___JeelH_betterDlocalDfiles .app-module__main-card-card___E9Zy2_betterDlocalDfiles{cursor:pointer;height:100%;border-radius:6.3px}.app-module__text-subdued___7rYtR_betterDlocalDfiles{color:var(--text-subdued)}.app-module__album-header___J1nVK_betterDlocalDfiles{align-items:center;color:var(--spice-text);display:flex;justify-content:space-between;margin-bottom:16px}.app-module__album-header___J1nVK_betterDlocalDfiles h1{margin-top:0;font-size:1.5rem;font-weight:700}.app-module__search-container___SlAU8_betterDlocalDfiles{display:flex;align-items:center;background-color:rgba(var(--spice-rgb-selected-row),.1);border-radius:4px}.app-module__search-container___SlAU8_betterDlocalDfiles input{border-style:none;background-color:transparent;color:var(--spice-text)!important}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__search-icon___-9z2r_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;margin-left:8px;margin-top:4px;margin-right:8px;display:inline-block}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__clear-icon___pSLvx_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;display:inline-block}.app-module__controls___ZDW-X_betterDlocalDfiles{-webkit-box-flex:1;-webkit-box-pack:end;-ms-flex-pack:end;display:flex;flex:1;gap:8px;justify-content:flex-end}.app-module__flex-centered___5gRmM_betterDlocalDfiles{display:flex;align-items:center}.app-module__display-list___8BLJG_betterDlocalDfiles{--row-height:56px}.app-module__display-list-compact___sbWJt_betterDlocalDfiles{--row-height:32px}.app-module__limit-lines-2___GyZCj_betterDlocalDfiles{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.app-module__text-full-centered___xI2eE_betterDlocalDfiles{text-align:center;width:100%}.app-module__center-container___LG8O4_betterDlocalDfiles,.app-module__stretch-container___SIzsh_betterDlocalDfiles{display:flex;flex-direction:column;height:100%}.app-module__stretch-container___SIzsh_betterDlocalDfiles{justify-content:stretch;align-items:stretch}.app-module__center-container___LG8O4_betterDlocalDfiles{justify-content:center;align-items:center}.app-module__full-size-container___XoGtP_betterDlocalDfiles{position:absolute;left:0;right:0;top:0;bottom:0}.app-module__pad-top___8OIp9_betterDlocalDfiles{padding-top:64px}.app-module__tabBar___EngzO_betterDlocalDfiles ul{display:flex;flex-direction:row;align-items:stretch}.app-module__tabBar___EngzO_betterDlocalDfiles ul li{pointer-events:all}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button{border-radius:4px;border-style:none;color:var(--spice-text);background-color:transparent;margin:0 8px 0 0;padding:8px 16px;cursor:pointer}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button.app-module__active___JYUKA_betterDlocalDfiles{background-color:var(--spice-tab-active);border-radius:4px}.app-module__tabBar___EngzO_betterDlocalDfiles ul select{height:100%}.app-module__album-grid___JeelH_betterDlocalDfiles{--minimumColumnWidth:180px;--column-width:minmax(var(--minimumColumnWidth), 1fr);--column-count:auto-fill;--grid-gap:24px}.app-module__album-grid___JeelH_betterDlocalDfiles .app-module__main-card-card___E9Zy2_betterDlocalDfiles{cursor:pointer;height:100%;border-radius:6.3px}.app-module__text-subdued___7rYtR_betterDlocalDfiles{color:var(--text-subdued)}.app-module__album-header___J1nVK_betterDlocalDfiles{align-items:center;color:var(--spice-text);display:flex;justify-content:space-between;margin-bottom:16px}.app-module__album-header___J1nVK_betterDlocalDfiles h1{margin-top:0;font-size:1.5rem;font-weight:700}.app-module__search-container___SlAU8_betterDlocalDfiles{display:flex;align-items:center;background-color:rgba(var(--spice-rgb-selected-row),.1);border-radius:4px}.app-module__search-container___SlAU8_betterDlocalDfiles input{border-style:none;background-color:transparent;color:var(--spice-text)!important}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__search-icon___-9z2r_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;margin-left:8px;margin-top:4px;margin-right:8px;display:inline-block}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__clear-icon___pSLvx_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;display:inline-block}.app-module__controls___ZDW-X_betterDlocalDfiles{-webkit-box-flex:1;-webkit-box-pack:end;-ms-flex-pack:end;display:flex;flex:1;gap:8px;justify-content:flex-end}.app-module__flex-centered___5gRmM_betterDlocalDfiles{display:flex;align-items:center}.app-module__display-list___8BLJG_betterDlocalDfiles{--row-height:56px}.app-module__display-list-compact___sbWJt_betterDlocalDfiles{--row-height:32px}.app-module__limit-lines-2___GyZCj_betterDlocalDfiles{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.app-module__text-full-centered___xI2eE_betterDlocalDfiles{text-align:center;width:100%}.app-module__center-container___LG8O4_betterDlocalDfiles,.app-module__stretch-container___SIzsh_betterDlocalDfiles{display:flex;flex-direction:column;height:100%}.app-module__stretch-container___SIzsh_betterDlocalDfiles{justify-content:stretch;align-items:stretch}.app-module__center-container___LG8O4_betterDlocalDfiles{justify-content:center;align-items:center}.app-module__full-size-container___XoGtP_betterDlocalDfiles{position:absolute;left:0;right:0;top:0;bottom:0}.app-module__pad-top___8OIp9_betterDlocalDfiles{padding-top:64px}.app-module__tabBar___EngzO_betterDlocalDfiles ul{display:flex;flex-direction:row;align-items:stretch}.app-module__tabBar___EngzO_betterDlocalDfiles ul li{pointer-events:all}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button{border-radius:4px;border-style:none;color:var(--spice-text);background-color:transparent;margin:0 8px 0 0;padding:8px 16px;cursor:pointer}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button.app-module__active___JYUKA_betterDlocalDfiles{background-color:var(--spice-tab-active);border-radius:4px}.app-module__tabBar___EngzO_betterDlocalDfiles ul select{height:100%}.app-module__album-grid___JeelH_betterDlocalDfiles{--minimumColumnWidth:180px;--column-width:minmax(var(--minimumColumnWidth), 1fr);--column-count:auto-fill;--grid-gap:24px}.app-module__album-grid___JeelH_betterDlocalDfiles .app-module__main-card-card___E9Zy2_betterDlocalDfiles{cursor:pointer;height:100%;border-radius:6.3px}.app-module__text-subdued___7rYtR_betterDlocalDfiles{color:var(--text-subdued)}.app-module__album-header___J1nVK_betterDlocalDfiles{align-items:center;color:var(--spice-text);display:flex;justify-content:space-between;margin-bottom:16px}.app-module__album-header___J1nVK_betterDlocalDfiles h1{margin-top:0;font-size:1.5rem;font-weight:700}.app-module__search-container___SlAU8_betterDlocalDfiles{display:flex;align-items:center;background-color:rgba(var(--spice-rgb-selected-row),.1);border-radius:4px}.app-module__search-container___SlAU8_betterDlocalDfiles input{border-style:none;background-color:transparent;color:var(--spice-text)!important}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__search-icon___-9z2r_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;margin-left:8px;margin-top:4px;margin-right:8px;display:inline-block}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__clear-icon___pSLvx_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;display:inline-block}.app-module__controls___ZDW-X_betterDlocalDfiles{-webkit-box-flex:1;-webkit-box-pack:end;-ms-flex-pack:end;display:flex;flex:1;gap:8px;justify-content:flex-end}.app-module__flex-centered___5gRmM_betterDlocalDfiles{display:flex;align-items:center}.app-module__display-list___8BLJG_betterDlocalDfiles{--row-height:56px}.app-module__display-list-compact___sbWJt_betterDlocalDfiles{--row-height:32px}.app-module__limit-lines-2___GyZCj_betterDlocalDfiles{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.app-module__text-full-centered___xI2eE_betterDlocalDfiles{text-align:center;width:100%}.app-module__center-container___LG8O4_betterDlocalDfiles,.app-module__stretch-container___SIzsh_betterDlocalDfiles{display:flex;flex-direction:column;height:100%}.app-module__stretch-container___SIzsh_betterDlocalDfiles{justify-content:stretch;align-items:stretch}.app-module__center-container___LG8O4_betterDlocalDfiles{justify-content:center;align-items:center}.app-module__full-size-container___XoGtP_betterDlocalDfiles{position:absolute;left:0;right:0;top:0;bottom:0}.app-module__pad-top___8OIp9_betterDlocalDfiles{padding-top:64px}.app-module__tabBar___EngzO_betterDlocalDfiles ul{display:flex;flex-direction:row;align-items:stretch}.app-module__tabBar___EngzO_betterDlocalDfiles ul li{pointer-events:all}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button{border-radius:4px;border-style:none;color:var(--spice-text);background-color:transparent;margin:0 8px 0 0;padding:8px 16px;cursor:pointer}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button.app-module__active___JYUKA_betterDlocalDfiles{background-color:var(--spice-tab-active);border-radius:4px}.app-module__tabBar___EngzO_betterDlocalDfiles ul select{height:100%}.app-module__album-grid___JeelH_betterDlocalDfiles{--minimumColumnWidth:180px;--column-width:minmax(var(--minimumColumnWidth), 1fr);--column-count:auto-fill;--grid-gap:24px}.app-module__album-grid___JeelH_betterDlocalDfiles .app-module__main-card-card___E9Zy2_betterDlocalDfiles{cursor:pointer;height:100%;border-radius:6.3px}.app-module__text-subdued___7rYtR_betterDlocalDfiles{color:var(--text-subdued)}.app-module__album-header___J1nVK_betterDlocalDfiles{align-items:center;color:var(--spice-text);display:flex;justify-content:space-between;margin-bottom:16px}.app-module__album-header___J1nVK_betterDlocalDfiles h1{margin-top:0;font-size:1.5rem;font-weight:700}.app-module__search-container___SlAU8_betterDlocalDfiles{display:flex;align-items:center;background-color:rgba(var(--spice-rgb-selected-row),.1);border-radius:4px}.app-module__search-container___SlAU8_betterDlocalDfiles input{border-style:none;background-color:transparent;color:var(--spice-text)!important}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__search-icon___-9z2r_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;margin-left:8px;margin-top:4px;margin-right:8px;display:inline-block}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__clear-icon___pSLvx_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;display:inline-block}.app-module__controls___ZDW-X_betterDlocalDfiles{-webkit-box-flex:1;-webkit-box-pack:end;-ms-flex-pack:end;display:flex;flex:1;gap:8px;justify-content:flex-end}.app-module__flex-centered___5gRmM_betterDlocalDfiles{display:flex;align-items:center}.app-module__display-list___8BLJG_betterDlocalDfiles{--row-height:56px}.app-module__display-list-compact___sbWJt_betterDlocalDfiles{--row-height:32px}.app-module__limit-lines-2___GyZCj_betterDlocalDfiles{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.app-module__text-full-centered___xI2eE_betterDlocalDfiles{text-align:center;width:100%}.app-module__center-container___LG8O4_betterDlocalDfiles,.app-module__stretch-container___SIzsh_betterDlocalDfiles{display:flex;flex-direction:column;height:100%}.app-module__stretch-container___SIzsh_betterDlocalDfiles{justify-content:stretch;align-items:stretch}.app-module__center-container___LG8O4_betterDlocalDfiles{justify-content:center;align-items:center}.app-module__full-size-container___XoGtP_betterDlocalDfiles{position:absolute;left:0;right:0;top:0;bottom:0}.app-module__pad-top___8OIp9_betterDlocalDfiles{padding-top:64px}.app-module__tabBar___EngzO_betterDlocalDfiles ul{display:flex;flex-direction:row;align-items:stretch}.app-module__tabBar___EngzO_betterDlocalDfiles ul li{pointer-events:all}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button{border-radius:4px;border-style:none;color:var(--spice-text);background-color:transparent;margin:0 8px 0 0;padding:8px 16px;cursor:pointer}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button.app-module__active___JYUKA_betterDlocalDfiles{background-color:var(--spice-tab-active);border-radius:4px}.app-module__tabBar___EngzO_betterDlocalDfiles ul select{height:100%}.app-module__album-grid___JeelH_betterDlocalDfiles{--minimumColumnWidth:180px;--column-width:minmax(var(--minimumColumnWidth), 1fr);--column-count:auto-fill;--grid-gap:24px}.app-module__album-grid___JeelH_betterDlocalDfiles .app-module__main-card-card___E9Zy2_betterDlocalDfiles{cursor:pointer;height:100%;border-radius:6.3px}.app-module__text-subdued___7rYtR_betterDlocalDfiles{color:var(--text-subdued)}.app-module__album-header___J1nVK_betterDlocalDfiles{align-items:center;color:var(--spice-text);display:flex;justify-content:space-between;margin-bottom:16px}.app-module__album-header___J1nVK_betterDlocalDfiles h1{margin-top:0;font-size:1.5rem;font-weight:700}.app-module__search-container___SlAU8_betterDlocalDfiles{display:flex;align-items:center;background-color:rgba(var(--spice-rgb-selected-row),.1);border-radius:4px}.app-module__search-container___SlAU8_betterDlocalDfiles input{border-style:none;background-color:transparent;color:var(--spice-text)!important}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__search-icon___-9z2r_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;margin-left:8px;margin-top:4px;margin-right:8px;display:inline-block}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__clear-icon___pSLvx_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;display:inline-block}.app-module__controls___ZDW-X_betterDlocalDfiles{-webkit-box-flex:1;-webkit-box-pack:end;-ms-flex-pack:end;display:flex;flex:1;gap:8px;justify-content:flex-end}.app-module__flex-centered___5gRmM_betterDlocalDfiles{display:flex;align-items:center}.app-module__display-list___8BLJG_betterDlocalDfiles{--row-height:56px}.app-module__display-list-compact___sbWJt_betterDlocalDfiles{--row-height:32px}.app-module__limit-lines-2___GyZCj_betterDlocalDfiles{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.app-module__text-full-centered___xI2eE_betterDlocalDfiles{text-align:center;width:100%}.app-module__center-container___LG8O4_betterDlocalDfiles,.app-module__stretch-container___SIzsh_betterDlocalDfiles{display:flex;flex-direction:column;height:100%}.app-module__stretch-container___SIzsh_betterDlocalDfiles{justify-content:stretch;align-items:stretch}.app-module__center-container___LG8O4_betterDlocalDfiles{justify-content:center;align-items:center}.app-module__full-size-container___XoGtP_betterDlocalDfiles{position:absolute;left:0;right:0;top:0;bottom:0}.app-module__pad-top___8OIp9_betterDlocalDfiles{padding-top:64px}.app-module__tabBar___EngzO_betterDlocalDfiles ul{display:flex;flex-direction:row;align-items:stretch}.app-module__tabBar___EngzO_betterDlocalDfiles ul li{pointer-events:all}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button{border-radius:4px;border-style:none;color:var(--spice-text);background-color:transparent;margin:0 8px 0 0;padding:8px 16px;cursor:pointer}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button.app-module__active___JYUKA_betterDlocalDfiles{background-color:var(--spice-tab-active);border-radius:4px}.app-module__tabBar___EngzO_betterDlocalDfiles ul select{height:100%}.app-module__album-grid___JeelH_betterDlocalDfiles{--minimumColumnWidth:180px;--column-width:minmax(var(--minimumColumnWidth), 1fr);--column-count:auto-fill;--grid-gap:24px}.app-module__album-grid___JeelH_betterDlocalDfiles .app-module__main-card-card___E9Zy2_betterDlocalDfiles{cursor:pointer;height:100%;border-radius:6.3px}.app-module__text-subdued___7rYtR_betterDlocalDfiles{color:var(--text-subdued)}.app-module__album-header___J1nVK_betterDlocalDfiles{align-items:center;color:var(--spice-text);display:flex;justify-content:space-between;margin-bottom:16px}.app-module__album-header___J1nVK_betterDlocalDfiles h1{margin-top:0;font-size:1.5rem;font-weight:700}.app-module__search-container___SlAU8_betterDlocalDfiles{display:flex;align-items:center;background-color:rgba(var(--spice-rgb-selected-row),.1);border-radius:4px}.app-module__search-container___SlAU8_betterDlocalDfiles input{border-style:none;background-color:transparent;color:var(--spice-text)!important}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__search-icon___-9z2r_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;margin-left:8px;margin-top:4px;margin-right:8px;display:inline-block}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__clear-icon___pSLvx_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;display:inline-block}.app-module__controls___ZDW-X_betterDlocalDfiles{-webkit-box-flex:1;-webkit-box-pack:end;-ms-flex-pack:end;display:flex;flex:1;gap:8px;justify-content:flex-end}.app-module__flex-centered___5gRmM_betterDlocalDfiles{display:flex;align-items:center}.app-module__display-list___8BLJG_betterDlocalDfiles{--row-height:56px}.app-module__display-list-compact___sbWJt_betterDlocalDfiles{--row-height:32px}.app-module__limit-lines-2___GyZCj_betterDlocalDfiles{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.app-module__text-full-centered___xI2eE_betterDlocalDfiles{text-align:center;width:100%}.app-module__center-container___LG8O4_betterDlocalDfiles,.app-module__stretch-container___SIzsh_betterDlocalDfiles{display:flex;flex-direction:column;height:100%}.app-module__stretch-container___SIzsh_betterDlocalDfiles{justify-content:stretch;align-items:stretch}.app-module__center-container___LG8O4_betterDlocalDfiles{justify-content:center;align-items:center}.app-module__full-size-container___XoGtP_betterDlocalDfiles{position:absolute;left:0;right:0;top:0;bottom:0}.app-module__pad-top___8OIp9_betterDlocalDfiles{padding-top:64px}.app-module__tabBar___EngzO_betterDlocalDfiles ul{display:flex;flex-direction:row;align-items:stretch}.app-module__tabBar___EngzO_betterDlocalDfiles ul li{pointer-events:all}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button{border-radius:4px;border-style:none;color:var(--spice-text);background-color:transparent;margin:0 8px 0 0;padding:8px 16px;cursor:pointer}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button.app-module__active___JYUKA_betterDlocalDfiles{background-color:var(--spice-tab-active);border-radius:4px}.app-module__tabBar___EngzO_betterDlocalDfiles ul select{height:100%}.app-module__album-grid___JeelH_betterDlocalDfiles{--minimumColumnWidth:180px;--column-width:minmax(var(--minimumColumnWidth), 1fr);--column-count:auto-fill;--grid-gap:24px}.app-module__album-grid___JeelH_betterDlocalDfiles .app-module__main-card-card___E9Zy2_betterDlocalDfiles{cursor:pointer;height:100%;border-radius:6.3px}.app-module__text-subdued___7rYtR_betterDlocalDfiles{color:var(--text-subdued)}.app-module__album-header___J1nVK_betterDlocalDfiles{align-items:center;color:var(--spice-text);display:flex;justify-content:space-between;margin-bottom:16px}.app-module__album-header___J1nVK_betterDlocalDfiles h1{margin-top:0;font-size:1.5rem;font-weight:700}.app-module__search-container___SlAU8_betterDlocalDfiles{display:flex;align-items:center;background-color:rgba(var(--spice-rgb-selected-row),.1);border-radius:4px}.app-module__search-container___SlAU8_betterDlocalDfiles input{border-style:none;background-color:transparent;color:var(--spice-text)!important}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__search-icon___-9z2r_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;margin-left:8px;margin-top:4px;margin-right:8px;display:inline-block}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__clear-icon___pSLvx_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;display:inline-block}.app-module__controls___ZDW-X_betterDlocalDfiles{-webkit-box-flex:1;-webkit-box-pack:end;-ms-flex-pack:end;display:flex;flex:1;gap:8px;justify-content:flex-end}.app-module__flex-centered___5gRmM_betterDlocalDfiles{display:flex;align-items:center}.app-module__display-list___8BLJG_betterDlocalDfiles{--row-height:56px}.app-module__display-list-compact___sbWJt_betterDlocalDfiles{--row-height:32px}.app-module__limit-lines-2___GyZCj_betterDlocalDfiles{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.app-module__text-full-centered___xI2eE_betterDlocalDfiles{text-align:center;width:100%}.app-module__center-container___LG8O4_betterDlocalDfiles,.app-module__stretch-container___SIzsh_betterDlocalDfiles{display:flex;flex-direction:column;height:100%}.app-module__stretch-container___SIzsh_betterDlocalDfiles{justify-content:stretch;align-items:stretch}.app-module__center-container___LG8O4_betterDlocalDfiles{justify-content:center;align-items:center}.app-module__full-size-container___XoGtP_betterDlocalDfiles{position:absolute;left:0;right:0;top:0;bottom:0}.app-module__pad-top___8OIp9_betterDlocalDfiles{padding-top:64px}.app-module__tabBar___EngzO_betterDlocalDfiles ul{display:flex;flex-direction:row;align-items:stretch}.app-module__tabBar___EngzO_betterDlocalDfiles ul li{pointer-events:all}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button{border-radius:4px;border-style:none;color:var(--spice-text);background-color:transparent;margin:0 8px 0 0;padding:8px 16px;cursor:pointer}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button.app-module__active___JYUKA_betterDlocalDfiles{background-color:var(--spice-tab-active);border-radius:4px}.app-module__tabBar___EngzO_betterDlocalDfiles ul select{height:100%}.app-module__album-grid___JeelH_betterDlocalDfiles{--minimumColumnWidth:180px;--column-width:minmax(var(--minimumColumnWidth), 1fr);--column-count:auto-fill;--grid-gap:24px}.app-module__album-grid___JeelH_betterDlocalDfiles .app-module__main-card-card___E9Zy2_betterDlocalDfiles{cursor:pointer;height:100%;border-radius:6.3px}.app-module__text-subdued___7rYtR_betterDlocalDfiles{color:var(--text-subdued)}.app-module__album-header___J1nVK_betterDlocalDfiles{align-items:center;color:var(--spice-text);display:flex;justify-content:space-between;margin-bottom:16px}.app-module__album-header___J1nVK_betterDlocalDfiles h1{margin-top:0;font-size:1.5rem;font-weight:700}.app-module__search-container___SlAU8_betterDlocalDfiles{display:flex;align-items:center;background-color:rgba(var(--spice-rgb-selected-row),.1);border-radius:4px}.app-module__search-container___SlAU8_betterDlocalDfiles input{border-style:none;background-color:transparent;color:var(--spice-text)!important}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__search-icon___-9z2r_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;margin-left:8px;margin-top:4px;margin-right:8px;display:inline-block}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__clear-icon___pSLvx_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;display:inline-block}.app-module__controls___ZDW-X_betterDlocalDfiles{-webkit-box-flex:1;-webkit-box-pack:end;-ms-flex-pack:end;display:flex;flex:1;gap:8px;justify-content:flex-end}.app-module__flex-centered___5gRmM_betterDlocalDfiles{display:flex;align-items:center}.app-module__display-list___8BLJG_betterDlocalDfiles{--row-height:56px}.app-module__display-list-compact___sbWJt_betterDlocalDfiles{--row-height:32px}.app-module__limit-lines-2___GyZCj_betterDlocalDfiles{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.app-module__text-full-centered___xI2eE_betterDlocalDfiles{text-align:center;width:100%}.app-module__center-container___LG8O4_betterDlocalDfiles,.app-module__stretch-container___SIzsh_betterDlocalDfiles{display:flex;flex-direction:column;height:100%}.app-module__stretch-container___SIzsh_betterDlocalDfiles{justify-content:stretch;align-items:stretch}.app-module__center-container___LG8O4_betterDlocalDfiles{justify-content:center;align-items:center}.app-module__full-size-container___XoGtP_betterDlocalDfiles{position:absolute;left:0;right:0;top:0;bottom:0}.app-module__pad-top___8OIp9_betterDlocalDfiles{padding-top:64px}.app-module__tabBar___EngzO_betterDlocalDfiles ul{display:flex;flex-direction:row;align-items:stretch}.app-module__tabBar___EngzO_betterDlocalDfiles ul li{pointer-events:all}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button{border-radius:4px;border-style:none;color:var(--spice-text);background-color:transparent;margin:0 8px 0 0;padding:8px 16px;cursor:pointer}.app-module__tabBar___EngzO_betterDlocalDfiles ul li button.app-module__active___JYUKA_betterDlocalDfiles{background-color:var(--spice-tab-active);border-radius:4px}.app-module__tabBar___EngzO_betterDlocalDfiles ul select{height:100%}.app-module__album-grid___JeelH_betterDlocalDfiles{--minimumColumnWidth:180px;--column-width:minmax(var(--minimumColumnWidth), 1fr);--column-count:auto-fill;--grid-gap:24px}.app-module__album-grid___JeelH_betterDlocalDfiles .app-module__main-card-card___E9Zy2_betterDlocalDfiles{cursor:pointer;height:100%;border-radius:6.3px}.app-module__text-subdued___7rYtR_betterDlocalDfiles{color:var(--text-subdued)}.app-module__album-header___J1nVK_betterDlocalDfiles{align-items:center;color:var(--spice-text);display:flex;justify-content:space-between;margin-bottom:16px}.app-module__album-header___J1nVK_betterDlocalDfiles h1{margin-top:0;font-size:1.5rem;font-weight:700}.app-module__search-container___SlAU8_betterDlocalDfiles{display:flex;align-items:center;background-color:rgba(var(--spice-rgb-selected-row),.1);border-radius:4px}.app-module__search-container___SlAU8_betterDlocalDfiles input{border-style:none;background-color:transparent;color:var(--spice-text)!important}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__search-icon___-9z2r_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;margin-left:8px;margin-top:4px;margin-right:8px;display:inline-block}.app-module__search-container___SlAU8_betterDlocalDfiles .app-module__clear-icon___pSLvx_betterDlocalDfiles{color:var(--spice-text);background-color:transparent;display:inline-block}.app-module__controls___ZDW-X_betterDlocalDfiles{-webkit-box-flex:1;-webkit-box-pack:end;-ms-flex-pack:end;display:flex;flex:1;gap:8px;justify-content:flex-end}.app-module__flex-centered___5gRmM_betterDlocalDfiles{display:flex;align-items:center}.app-module__display-list___8BLJG_betterDlocalDfiles{--row-height:56px}.app-module__display-list-compact___sbWJt_betterDlocalDfiles{--row-height:32px}.app-module__limit-lines-2___GyZCj_betterDlocalDfiles{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.app-module__text-full-centered___xI2eE_betterDlocalDfiles{text-align:center;width:100%} \ No newline at end of file diff --git a/.config/spicetify/config-xpui.ini b/.config/spicetify/config-xpui.ini index 0702ee53..73158941 100644 --- a/.config/spicetify/config-xpui.ini +++ b/.config/spicetify/config-xpui.ini @@ -22,11 +22,11 @@ sidebar_config = 1 home_config = 1 experimental_features = 1 extensions = -custom_apps = marketplace|stats|library|better-local-files|lyrics-plus +custom_apps = library|lyrics-plus|marketplace|stats [Patch] ; DO NOT CHANGE! [Backup] -version = 1.2.40.599.g606b7f29 +version = 1.2.42.290.g242057a2 with = 2.36.15