muzical-ui 0.1.13 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/musicbrainz.html +1 -1
- package/.next/standalone/.next/server/app/musicbrainz.rsc +1 -1
- package/.next/standalone/.next/server/app/musicbrainz.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/musicbrainz.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/musicbrainz.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/musicbrainz.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/musicbrainz.segments/musicbrainz/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/musicbrainz.segments/musicbrainz.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/browse.html +1 -1
- package/.next/standalone/.next/server/app/settings/browse.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/browse.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/browse.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/browse.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/browse.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/browse.segments/settings/browse/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/browse.segments/settings/browse.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/browse.segments/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/display.html +1 -1
- package/.next/standalone/.next/server/app/settings/display.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/display.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/display.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/display.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/display.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/display.segments/settings/display/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/display.segments/settings/display.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/display.segments/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/lastfm.html +1 -1
- package/.next/standalone/.next/server/app/settings/lastfm.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/lastfm.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/lastfm.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/lastfm.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/lastfm.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/lastfm.segments/settings/lastfm/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/lastfm.segments/settings/lastfm.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/lastfm.segments/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/library.html +1 -1
- package/.next/standalone/.next/server/app/settings/library.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/library.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/library.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/library.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/library.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/library.segments/settings/library/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/library.segments/settings/library.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/library.segments/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/playback.html +1 -1
- package/.next/standalone/.next/server/app/settings/playback.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/playback.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/playback.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/playback.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/playback.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/playback.segments/settings/playback/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/playback.segments/settings/playback.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/playback.segments/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/youtube.html +1 -1
- package/.next/standalone/.next/server/app/settings/youtube.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/youtube.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/youtube.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/youtube.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/youtube.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/youtube.segments/settings/youtube/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/youtube.segments/settings/youtube.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings/youtube.segments/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/youtube.html +1 -1
- package/.next/standalone/.next/server/app/youtube.rsc +1 -1
- package/.next/standalone/.next/server/app/youtube.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/youtube.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/youtube.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/youtube.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/youtube.segments/youtube/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/youtube.segments/youtube.segment.rsc +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_0c2d1xv._.js +3 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/static/chunks/0pq~1c74h4~0l.js +1 -0
- package/.next/standalone/package.json +1 -1
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/ssr/components_MusicPlayer_tsx_06~82ey._.js +0 -3
- package/.next/standalone/.next/static/chunks/0me.0ghc7bi2f.js +0 -1
- /package/.next/standalone/.next/static/{6R8dLcmFAc7AeUCNbCJAA → wtr8iSQMkGBfaJ1Xulser}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{6R8dLcmFAc7AeUCNbCJAA → wtr8iSQMkGBfaJ1Xulser}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{6R8dLcmFAc7AeUCNbCJAA → wtr8iSQMkGBfaJ1Xulser}/_ssgManifest.js +0 -0
|
@@ -15,7 +15,7 @@ f:I[83775,["/_next/static/chunks/00bzw__-m1fpe.js","/_next/static/chunks/0532909
|
|
|
15
15
|
:HL["/_next/static/chunks/0ps~ft3qx-shn.css","style"]
|
|
16
16
|
:HL["/_next/static/media/797e433ab948586e-s.p.09zddjkbdep5a.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
17
17
|
:HL["/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
18
|
-
0:{"P":null,"c":["","youtube"],"q":"","i":false,"f":[[["",{"children":["youtube",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ps~ft3qx-shn.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/00bzw__-m1fpe.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/05329099kf0o5.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/0n~v8~rri7~t2.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0c5m3gpe71ppi.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"className":"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full min-h-0 antialiased","children":["$","body",null,{"className":"flex h-full min-h-0 flex-col overflow-hidden bg-background font-sans text-foreground","children":[["$","$L2",null,{"id":"app-init","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"muzical-theme\");document.documentElement.classList.toggle('dark',t==='dark');var a=localStorage.getItem(\"muzical.accent\");var ids=[\"amber\",\"orange\",\"rose\",\"red\",\"violet\",\"blue\",\"teal\",\"emerald\",\"custom\"];var shades=[\"50\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\",\"950\"];var r=document.documentElement;if(a==='custom'){r.setAttribute('data-accent','custom');var pal=localStorage.getItem(\"muzical.accentCustomPalette\");if(pal){try{var p=JSON.parse(pal);for(var i=0;i<shades.length;i++){var k=shades[i];if(typeof p[k]==='string')r.style.setProperty('--accent-'+k,p[k]);}}catch(e){}}}else{r.setAttribute('data-accent',ids.indexOf(a)>=0?a:\"amber\");}}catch(e){}})();"}}],["$","div",null,{"className":"flex min-h-0 flex-1 flex-col","children":["$","$L3",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"children":["$","$L6",null,{"children":["$","$L7",null,{"children":["$","$L8",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L9",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]}]}]}]]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L8",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L9",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$La",null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ps~ft3qx-shn.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
18
|
+
0:{"P":null,"c":["","youtube"],"q":"","i":false,"f":[[["",{"children":["youtube",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ps~ft3qx-shn.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/00bzw__-m1fpe.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/05329099kf0o5.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/0n~v8~rri7~t2.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0c5m3gpe71ppi.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"className":"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full min-h-0 antialiased","children":["$","body",null,{"className":"flex h-full min-h-0 flex-col overflow-hidden bg-background font-sans text-foreground","children":[["$","$L2",null,{"id":"app-init","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"muzical-theme\");document.documentElement.classList.toggle('dark',t==='dark');var a=localStorage.getItem(\"muzical.accent\");var ids=[\"amber\",\"orange\",\"rose\",\"red\",\"violet\",\"blue\",\"teal\",\"emerald\",\"custom\"];var shades=[\"50\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\",\"950\"];var r=document.documentElement;if(a==='custom'){r.setAttribute('data-accent','custom');var pal=localStorage.getItem(\"muzical.accentCustomPalette\");if(pal){try{var p=JSON.parse(pal);for(var i=0;i<shades.length;i++){var k=shades[i];if(typeof p[k]==='string')r.style.setProperty('--accent-'+k,p[k]);}}catch(e){}}}else{r.setAttribute('data-accent',ids.indexOf(a)>=0?a:\"amber\");}}catch(e){}})();"}}],["$","div",null,{"className":"flex min-h-0 flex-1 flex-col","children":["$","$L3",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"children":["$","$L6",null,{"children":["$","$L7",null,{"children":["$","$L8",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L9",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]}]}]}]]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L8",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L9",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$La",null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ps~ft3qx-shn.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"wtr8iSQMkGBfaJ1Xulser"}
|
|
19
19
|
a:E{"digest":"NEXT_REDIRECT;replace;/?view=youtube;307;"}
|
|
20
20
|
14:[]
|
|
21
21
|
e:"$W14"
|
|
@@ -15,7 +15,7 @@ f:I[83775,["/_next/static/chunks/00bzw__-m1fpe.js","/_next/static/chunks/0532909
|
|
|
15
15
|
:HL["/_next/static/chunks/0ps~ft3qx-shn.css","style"]
|
|
16
16
|
:HL["/_next/static/media/797e433ab948586e-s.p.09zddjkbdep5a.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
17
17
|
:HL["/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
18
|
-
0:{"P":null,"c":["","youtube"],"q":"","i":false,"f":[[["",{"children":["youtube",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ps~ft3qx-shn.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/00bzw__-m1fpe.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/05329099kf0o5.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/0n~v8~rri7~t2.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0c5m3gpe71ppi.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"className":"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full min-h-0 antialiased","children":["$","body",null,{"className":"flex h-full min-h-0 flex-col overflow-hidden bg-background font-sans text-foreground","children":[["$","$L2",null,{"id":"app-init","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"muzical-theme\");document.documentElement.classList.toggle('dark',t==='dark');var a=localStorage.getItem(\"muzical.accent\");var ids=[\"amber\",\"orange\",\"rose\",\"red\",\"violet\",\"blue\",\"teal\",\"emerald\",\"custom\"];var shades=[\"50\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\",\"950\"];var r=document.documentElement;if(a==='custom'){r.setAttribute('data-accent','custom');var pal=localStorage.getItem(\"muzical.accentCustomPalette\");if(pal){try{var p=JSON.parse(pal);for(var i=0;i<shades.length;i++){var k=shades[i];if(typeof p[k]==='string')r.style.setProperty('--accent-'+k,p[k]);}}catch(e){}}}else{r.setAttribute('data-accent',ids.indexOf(a)>=0?a:\"amber\");}}catch(e){}})();"}}],["$","div",null,{"className":"flex min-h-0 flex-1 flex-col","children":["$","$L3",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"children":["$","$L6",null,{"children":["$","$L7",null,{"children":["$","$L8",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L9",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]}]}]}]]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L8",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L9",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$La",null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ps~ft3qx-shn.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
18
|
+
0:{"P":null,"c":["","youtube"],"q":"","i":false,"f":[[["",{"children":["youtube",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ps~ft3qx-shn.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/00bzw__-m1fpe.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/05329099kf0o5.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/0n~v8~rri7~t2.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/0c5m3gpe71ppi.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"className":"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full min-h-0 antialiased","children":["$","body",null,{"className":"flex h-full min-h-0 flex-col overflow-hidden bg-background font-sans text-foreground","children":[["$","$L2",null,{"id":"app-init","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"muzical-theme\");document.documentElement.classList.toggle('dark',t==='dark');var a=localStorage.getItem(\"muzical.accent\");var ids=[\"amber\",\"orange\",\"rose\",\"red\",\"violet\",\"blue\",\"teal\",\"emerald\",\"custom\"];var shades=[\"50\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\",\"950\"];var r=document.documentElement;if(a==='custom'){r.setAttribute('data-accent','custom');var pal=localStorage.getItem(\"muzical.accentCustomPalette\");if(pal){try{var p=JSON.parse(pal);for(var i=0;i<shades.length;i++){var k=shades[i];if(typeof p[k]==='string')r.style.setProperty('--accent-'+k,p[k]);}}catch(e){}}}else{r.setAttribute('data-accent',ids.indexOf(a)>=0?a:\"amber\");}}catch(e){}})();"}}],["$","div",null,{"className":"flex min-h-0 flex-1 flex-col","children":["$","$L3",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"children":["$","$L6",null,{"children":["$","$L7",null,{"children":["$","$L8",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L9",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]}]}]}]]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L8",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L9",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$La",null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ps~ft3qx-shn.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"wtr8iSQMkGBfaJ1Xulser"}
|
|
19
19
|
a:E{"digest":"NEXT_REDIRECT;replace;/?view=youtube;307;"}
|
|
20
20
|
14:[]
|
|
21
21
|
e:"$W14"
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
3:I[83775,["/_next/static/chunks/00bzw__-m1fpe.js","/_next/static/chunks/05329099kf0o5.js","/_next/static/chunks/0n~v8~rri7~t2.js","/_next/static/chunks/0c5m3gpe71ppi.js"],"MetadataBoundary"]
|
|
4
4
|
4:"$Sreact.suspense"
|
|
5
5
|
5:I[31415,["/_next/static/chunks/00bzw__-m1fpe.js","/_next/static/chunks/05329099kf0o5.js","/_next/static/chunks/0n~v8~rri7~t2.js","/_next/static/chunks/0c5m3gpe71ppi.js"],"IconMark"]
|
|
6
|
-
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Muzical"}],["$","meta","1",{"name":"description","content":"Local music player"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.0x3dzn~oxb6tn.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","3",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
6
|
+
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Muzical"}],["$","meta","1",{"name":"description","content":"Local music player"}],["$","link","2",{"rel":"icon","href":"/favicon.ico?favicon.0x3dzn~oxb6tn.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","3",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"wtr8iSQMkGBfaJ1Xulser"}
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
8:I[5233,["/_next/static/chunks/00bzw__-m1fpe.js","/_next/static/chunks/05329099kf0o5.js","/_next/static/chunks/0n~v8~rri7~t2.js","/_next/static/chunks/0c5m3gpe71ppi.js"],"default"]
|
|
9
9
|
9:I[73632,["/_next/static/chunks/00bzw__-m1fpe.js","/_next/static/chunks/05329099kf0o5.js","/_next/static/chunks/0n~v8~rri7~t2.js","/_next/static/chunks/0c5m3gpe71ppi.js"],"default"]
|
|
10
10
|
:HL["/_next/static/chunks/0ps~ft3qx-shn.css","style"]
|
|
11
|
-
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ps~ft3qx-shn.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/00bzw__-m1fpe.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/05329099kf0o5.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/0n~v8~rri7~t2.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0c5m3gpe71ppi.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"className":"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full min-h-0 antialiased","children":["$","body",null,{"className":"flex h-full min-h-0 flex-col overflow-hidden bg-background font-sans text-foreground","children":[["$","$L2",null,{"id":"app-init","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"muzical-theme\");document.documentElement.classList.toggle('dark',t==='dark');var a=localStorage.getItem(\"muzical.accent\");var ids=[\"amber\",\"orange\",\"rose\",\"red\",\"violet\",\"blue\",\"teal\",\"emerald\",\"custom\"];var shades=[\"50\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\",\"950\"];var r=document.documentElement;if(a==='custom'){r.setAttribute('data-accent','custom');var pal=localStorage.getItem(\"muzical.accentCustomPalette\");if(pal){try{var p=JSON.parse(pal);for(var i=0;i<shades.length;i++){var k=shades[i];if(typeof p[k]==='string')r.style.setProperty('--accent-'+k,p[k]);}}catch(e){}}}else{r.setAttribute('data-accent',ids.indexOf(a)>=0?a:\"amber\");}}catch(e){}})();"}}],["$","div",null,{"className":"flex min-h-0 flex-1 flex-col","children":["$","$L3",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"children":["$","$L6",null,{"children":["$","$L7",null,{"children":["$","$L8",null,{"parallelRouterKey":"children","template":["$","$L9",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]}]}]}]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
11
|
+
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ps~ft3qx-shn.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/00bzw__-m1fpe.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/05329099kf0o5.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/0n~v8~rri7~t2.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/0c5m3gpe71ppi.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"className":"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable h-full min-h-0 antialiased","children":["$","body",null,{"className":"flex h-full min-h-0 flex-col overflow-hidden bg-background font-sans text-foreground","children":[["$","$L2",null,{"id":"app-init","strategy":"beforeInteractive","dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"muzical-theme\");document.documentElement.classList.toggle('dark',t==='dark');var a=localStorage.getItem(\"muzical.accent\");var ids=[\"amber\",\"orange\",\"rose\",\"red\",\"violet\",\"blue\",\"teal\",\"emerald\",\"custom\"];var shades=[\"50\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\",\"950\"];var r=document.documentElement;if(a==='custom'){r.setAttribute('data-accent','custom');var pal=localStorage.getItem(\"muzical.accentCustomPalette\");if(pal){try{var p=JSON.parse(pal);for(var i=0;i<shades.length;i++){var k=shades[i];if(typeof p[k]==='string')r.style.setProperty('--accent-'+k,p[k]);}}catch(e){}}}else{r.setAttribute('data-accent',ids.indexOf(a)>=0?a:\"amber\");}}catch(e){}})();"}}],["$","div",null,{"className":"flex min-h-0 flex-1 flex-col","children":["$","$L3",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"children":["$","$L6",null,{"children":["$","$L7",null,{"children":["$","$L8",null,{"parallelRouterKey":"children","template":["$","$L9",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]}]}]}]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"wtr8iSQMkGBfaJ1Xulser"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
:HL["/_next/static/chunks/0ps~ft3qx-shn.css","style"]
|
|
2
2
|
:HL["/_next/static/media/797e433ab948586e-s.p.09zddjkbdep5a.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
3
3
|
:HL["/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
4
|
-
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"youtube","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"
|
|
4
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"youtube","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"wtr8iSQMkGBfaJ1Xulser"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
3:I[83775,["/_next/static/chunks/00bzw__-m1fpe.js","/_next/static/chunks/05329099kf0o5.js","/_next/static/chunks/0n~v8~rri7~t2.js","/_next/static/chunks/0c5m3gpe71ppi.js"],"OutletBoundary"]
|
|
3
3
|
4:"$Sreact.suspense"
|
|
4
|
-
0:{"rsc":["$","$1","c",{"children":["$L2",null,["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
4
|
+
0:{"rsc":["$","$1","c",{"children":["$L2",null,["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"wtr8iSQMkGBfaJ1Xulser"}
|
|
5
5
|
5:null
|
|
6
6
|
2:E{"digest":"NEXT_REDIRECT;replace;/?view=youtube;307;"}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
2:I[5233,["/_next/static/chunks/00bzw__-m1fpe.js","/_next/static/chunks/05329099kf0o5.js","/_next/static/chunks/0n~v8~rri7~t2.js","/_next/static/chunks/0c5m3gpe71ppi.js"],"default"]
|
|
3
3
|
3:I[73632,["/_next/static/chunks/00bzw__-m1fpe.js","/_next/static/chunks/05329099kf0o5.js","/_next/static/chunks/0n~v8~rri7~t2.js","/_next/static/chunks/0c5m3gpe71ppi.js"],"default"]
|
|
4
4
|
4:[]
|
|
5
|
-
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"
|
|
5
|
+
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"wtr8iSQMkGBfaJ1Xulser"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[35428,(a,b,c)=>{b.exports={name:"muzical-ui",version:"0.1.14",description:"Local Node.JS music player with library browse, queue playback and MusicBrainz",author:"f3rnox",license:"MIT",homepage:"https://github.com/f3rnox/muzical-ui#readme",repository:{type:"git",url:"git+https://github.com/f3rnox/muzical-ui.git"},bugs:{url:"https://github.com/f3rnox/muzical-ui/issues"},keywords:["music","player","local-library","musicbrainz","nextjs"],engines:{node:">=20"},bin:{"muzical-ui":"./bin/muzical-ui.js","stt-ui":"./bin/stt-ui.js"},files:["bin",".next/standalone","package.json"],scripts:{dev:"next dev",build:"next build && node scripts/prepare-standalone-build.js",start:"next start","build:docs":"typedoc --out ./docs ./src && cp LICENSE.md docs/LICENSE.md && cp CHANGELOG.md docs/CHANGELOG.md","build:ts":"NODE_PATH=./src tsc -p tsconfig.json",format:"pnpm format:prettier","format:check":"pnpm format:prettier:check","format:prettier":"prettier --write .","format:prettier:check":"prettier --check .",lint:"pnpm lint:markdownlint && pnpm lint:eslint","lint:eslint":"eslint package.json src/**/*","lint:eslint:fix":"eslint package.json src/**/*","lint:fix":"pnpm lint:markdownlint:fix && pnpm lint:eslint:fix","lint:markdownlint":"markdownlint README.md","lint:markdownlint:fix":"markdownlint --fix README.md",prepare:"husky","prepare-release":"pnpm build && git add docs",prepublishOnly:"pnpm build",release:"pnpm prepare-release && pnpm update-version && git push --follow-tags origin main","serve:coverage":"http-server ./coverage","serve:docs":"http-server ./docs",test:"NODE_PATH=./src NODE_ENV=test vitest run","update-deps":"updates -u -g -c","update-version":"standard-version -a"},dependencies:{"browser-id3-writer":"^6.3.1","music-metadata":"^11.12.3",next:"16.2.6",react:"19.2.4","react-dom":"19.2.4"},devDependencies:{"@commitlint/cli":"^20.5.0","@commitlint/config-conventional":"^20.5.0","@commitlint/format":"^20.5.0","@commitlint/types":"^20.5.0","@eslint/js":"^10.0.1","@istanbuljs/nyc-config-typescript":"^1.0.2","@tailwindcss/postcss":"^4","@types/node":"^20","@types/react":"^19","@types/react-dom":"^19",eslint:"^9","eslint-config-next":"16.2.6","eslint-plugin-package-json":"^0.91.1",globals:"^17.4.0","http-server":"^14.1.1",husky:"^9.1.7",jiti:"^2.6.1","lint-staged":"^16.4.0","markdownlint-cli":"^0.48.0",nyc:"^18.0.0",prettier:"^3.8.1",remark:"^15.0.1","standard-version":"^9.5.0",tailwindcss:"^4","ts-node":"^10.9.2",tslib:"^2.8.1",tsx:"^4.21.0",typedoc:"^0.28.18",typescript:"^6.0.2","typescript-eslint":"^8.58.0",updates:"^17.13.5",vitest:"^4.1.2"}}},98324,a=>{"use strict";var b=a.i(39752),c=a.i(62988),d=a.i(34542),e=a.i(82508),f=a.i(58760),g=a.i(14142);function h(a){let{recentBrowseSearches:c}=(0,f.useLibrary)(),e=a.limit??Math.min(8,g.RECENT_BROWSE_SEARCHES_LIMIT),h=(0,d.useMemo)(()=>{var b;let d;return b=a.source,0===(d=Math.max(0,Math.floor(e)))?[]:c.filter(a=>a.source===b).slice(0,d)},[c,a.source,e]);return 0===h.length?null:(0,b.jsxs)("div",{className:"space-y-1.5",children:[(0,b.jsx)("p",{className:"text-[10px] font-medium uppercase tracking-wider text-zinc-500",children:"Recent searches"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",role:"list","aria-label":"Recent searches",children:h.map(c=>(0,b.jsx)("button",{type:"button",role:"listitem",className:"max-w-full min-w-0 cursor-pointer truncate rounded-full border border-zinc-200 bg-white px-3 py-1 text-left text-xs font-medium text-zinc-800 shadow-sm transition hover:border-accent-400/50 hover:bg-accent-50/50 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-200 dark:hover:border-accent-500/30 dark:hover:bg-accent-950/20",onClick:()=>a.onSelect(c.query),children:c.query},`${c.source}\u0000${c.query}`))})]})}function i(a,b){let c=(0,d.useMemo)(()=>a.get("q")?.trim()||null,[a]);(0,d.useEffect)(()=>{if(!c)return;let a=window.requestAnimationFrame(()=>{b(c)});return()=>window.cancelAnimationFrame(a)},[c,b])}var j=a.i(96332);async function k(a){try{let b=(await (0,j.parseBlob)(a,{duration:!1})).common.picture;if(!b?.length)return null;let c=b.find(a=>{let b=a.type?.toLowerCase()??"";return b.includes("front")||b.includes("cover")})??b.reduce((a,b)=>b.data.length>a.data.length?b:a);return{mime:c.format?.trim()||(c.name?.toLowerCase().endsWith(".png")?"image/png":"image/jpeg"),data:Uint8Array.from(c.data)}}catch{return null}}let l=new Map,m=new Map;async function n(a,b){let c=l.get(a);if(c){var d;return d={...c,lastUsedAt:Date.now()},l.delete(a),l.set(a,d),c.bytes}let e=m.get(a);if(e)return e;let f=(async()=>{let c=await k(b);if(c){let b={bytes:c,lastUsedAt:Date.now()};l.set(a,b),function(){for(;l.size>48;){let a=l.keys().next().value;if(!a)return;l.delete(a)}}()}return c})();m.set(a,f);try{return await f}finally{m.delete(a)}}let o={max:"maxresdefault",hq:"hqdefault",mq:"mqdefault",default:"default"};function p(a,b="hq"){let c=a.trim();if(!c)return"";let d=o[b];return`https://i.ytimg.com/vi/${c}/${d}.jpg`}function q(a){let{track:c,className:e="h-12 w-12 shrink-0 overflow-hidden rounded-md ring-1 ring-zinc-200/80 dark:ring-zinc-700/80"}=a,{resolveFileForTrack:g}=(0,f.useLibrary)(),[h,i]=(0,d.useState)(null);(0,d.useEffect)(()=>{let a=!1,b=null,d=c?.youtubeVideoId?.trim();return c?.library?((async()=>{let d=await g(c);if(a||!d)return;let e=await n(c.id,d);if(a)return;if(!e)return i(null);let f=URL.createObjectURL(new Blob([e.data],{type:e.mime}));if(a){f&&URL.revokeObjectURL(f);return}b=f,i(f)})(),()=>{a=!0,b&&URL.revokeObjectURL(b)}):(d?i(p(d)):i(null),()=>{a=!0})},[c,g]);let j=c?.album?.trim().charAt(0)||"♪";return(0,b.jsx)("div",{className:["relative bg-linear-to-br from-accent-200/70 via-zinc-100 to-zinc-200 dark:from-accent-900/35 dark:via-zinc-800 dark:to-zinc-900",e].join(" "),"aria-hidden":!0,children:h?(0,b.jsx)("img",{src:h,alt:"",className:"absolute inset-0 h-full w-full object-cover",decoding:"async"}):(0,b.jsx)("span",{className:"flex h-full w-full items-center justify-center text-lg font-semibold tracking-tight text-accent-900/25 dark:text-zinc-600/90",children:j})})}function r(a){let{filled:c,onPress:d,label:e,className:f}=a;return(0,b.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),a.preventDefault(),d()},"aria-label":e,"aria-pressed":c,className:["inline-flex h-7 w-7 shrink-0 items-center justify-center self-center leading-none text-accent-600 transition hover:bg-accent-500/15 hover:text-accent-700 dark:text-accent-400 dark:hover:bg-accent-500/10 dark:hover:text-accent-300",f??"rounded-full"].join(" "),children:(0,b.jsx)("svg",{viewBox:"0 0 24 24",className:"block h-4 w-4 shrink-0",fill:c?"currentColor":"none","aria-hidden":!0,children:(0,b.jsx)("path",{stroke:"currentColor",strokeWidth:"1.75",strokeLinejoin:"round",d:"M12 3.5l2.35 4.76 5.26.77-3.8 3.7.9 5.24L12 15.9 6.29 18l.9-5.24-3.8-3.7 5.26-.77L12 3.5z"})})})}var s=a.i(67486),t=a.i(80977),u=a.i(34991);function v(a){let{openTrackDetails:c,openRelatedSongs:d,removeFromLibrary:e,isFavoriteSong:g,toggleFavoriteTrack:h}=(0,f.useLibrary)(),i=a.compact?"px-1.5 py-1.5":"px-2 py-2",j=a.compact?"gap-1.5":"gap-2";return(0,b.jsxs)("div",{className:[`flex items-center ${j} rounded-lg ${i}`,a.indentClass??"","hover:bg-zinc-100 dark:hover:bg-zinc-800/80"].join(" "),children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:a.track.title}),!1!==a.showArtist?(0,b.jsx)("p",{className:"truncate text-xs text-zinc-500",children:a.track.artist}):null]}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-zinc-500",children:a.track.durationSec>0?(0,t.formatDuration)(a.track.durationSec):"—"}),(0,b.jsx)(s.default,{triggerLabel:`Actions for ${a.track.title}`,items:(0,u.default)({track:a.track,onViewDetails:c,onViewRelatedSongs:d,onRemoveFromLibrary:()=>e(a.track)})}),(0,b.jsx)(r,{filled:g(a.track.id),onPress:()=>h(a.track),label:g(a.track.id)?"Remove song from favorites":"Add song to favorites"}),(0,b.jsx)("button",{type:"button",onClick:()=>a.onAdd(a.track),className:"shrink-0 cursor-pointer rounded-full bg-accent-500/15 px-2.5 py-1 text-xs font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 dark:text-accent-300 dark:ring-accent-500/40",children:"Add"})]})}let w="mt-1 block w-full rounded-lg border border-zinc-300 bg-white px-3 py-2 text-sm text-zinc-900 outline-none ring-accent-500/0 transition focus:border-accent-400 focus:ring-2 focus:ring-accent-500/20 dark:border-zinc-600 dark:bg-zinc-900 dark:text-zinc-100";function x(a){let{artist:c,album:e,trackCount:f,multipleTrackArtists:g,hasYoutubeTracks:h,saving:i,saveError:j,onSave:k}=a,l={artist:c,album:e},[m,n]=(0,d.useState)(l),[o,p]=(0,d.useState)(l);(0,d.useEffect)(()=>{let a={artist:c,album:e};n(a),p(a)},[c,e]);let q=m.artist!==o.artist||m.album!==o.album,r=q&&""!==m.artist.trim(),s=(0,d.useCallback)(()=>{n(o)},[o]),t=(0,d.useCallback)(async a=>{if(a.preventDefault(),!r||i)return;let b={artist:m.artist.trim(),album:m.album.trim()||o.album};await k(b),p(b),n(b)},[r,m,k,o.album,i]);return(0,b.jsxs)("form",{onSubmit:t,className:"space-y-3",children:[(0,b.jsxs)("p",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:["Updates artist and album on ",f," track",1===f?"":"s",". Song titles are unchanged. Saving also writes ID3 tags to each local MP3 file when write access is allowed."]}),g?(0,b.jsx)("p",{className:"text-xs text-amber-700 dark:text-amber-400",children:"Tracks on this album currently have different artists; saving sets the same artist on all of them."}):null,(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"text-xs font-medium text-zinc-500",children:"Artist"}),(0,b.jsx)("input",{type:"text",value:m.artist,onChange:a=>n(b=>({...b,artist:a.target.value})),className:w,autoComplete:"off",required:!0})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"text-xs font-medium text-zinc-500",children:"Album"}),(0,b.jsx)("input",{type:"text",value:m.album,onChange:a=>n(b=>({...b,album:a.target.value})),className:w,autoComplete:"off"})]}),h?(0,b.jsx)("p",{className:"text-xs text-zinc-500",children:"Saving updates YouTube search queries and clears resolved video ids for affected tracks."}):null,j?(0,b.jsx)("p",{className:"text-xs text-red-600 dark:text-red-400",role:"alert",children:j}):null,(0,b.jsxs)("div",{className:"flex flex-wrap gap-2 pt-1",children:[(0,b.jsx)("button",{type:"submit",disabled:!r||i,className:"rounded-full bg-accent-500 px-4 py-2 text-sm font-medium text-zinc-950 transition hover:bg-accent-400 disabled:cursor-not-allowed disabled:opacity-50",children:i?"Saving…":"Save to all tracks"}),(0,b.jsx)("button",{type:"button",disabled:!q||i,onClick:s,className:"rounded-full border border-zinc-300 bg-white px-4 py-2 text-sm font-medium text-zinc-800 transition hover:bg-zinc-50 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-600 dark:bg-zinc-800 dark:text-zinc-200 dark:hover:bg-zinc-700",children:"Revert"})]})]})}var y=a.i(88965),z=a.i(79340),A=a.i(27120);function B(a){let{albumKey:c,albumTitle:e,artistName:g,trackCount:h,multipleTrackArtists:i,onClose:j,onSaved:k}=a,{libraryTracks:l,patchAlbumMetadataByKey:m,writeLibraryTracksToFiles:n}=(0,f.useLibrary)(),o=(0,d.useId)(),p=(0,d.useRef)(null),[q,r]=(0,d.useState)(!1),[s,t]=(0,d.useState)(null),u=(0,d.useMemo)(()=>l.some(a=>(0,A.albumCompositeKey)(a.album,a.artist)===c&&!!a.youtubeQuery?.trim()),[c,l]),v=(0,d.useCallback)(async a=>{r(!0),t(null);let b=(0,z.default)(l,c).map(b=>(0,y.default)(b,a)),d=m(c,a);if(!d){r(!1),t("Could not update album metadata.");return}let e=await n(b);if(r(!1),!e.ok&&e.failedCount>0){let a=e.writtenCount>0?` Updated ${e.writtenCount} file${1===e.writtenCount?"":"s"}; ${e.failedCount} failed.`:"";t(`${e.reason??"Could not write tags to audio files."}${a}`),k(d);return}k(d),j()},[c,l,j,k,m,n]);return(0,d.useEffect)(()=>{let a=a=>{"Escape"===a.key&&j()};return document.addEventListener("keydown",a),p.current?.focus(),()=>document.removeEventListener("keydown",a)},[j]),(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-end justify-center bg-zinc-900/50 p-4 sm:items-center",role:"presentation",onClick:j,children:(0,b.jsxs)("div",{ref:p,role:"dialog","aria-modal":"true","aria-labelledby":o,tabIndex:-1,className:"flex max-h-[min(85vh,32rem)] w-full max-w-lg flex-col overflow-hidden rounded-2xl border border-zinc-200 bg-white shadow-xl dark:border-zinc-700 dark:bg-zinc-950",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("header",{className:"flex shrink-0 items-start justify-between gap-3 border-b border-zinc-200 px-4 py-3 dark:border-zinc-800",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("h2",{id:o,className:"truncate text-base font-semibold text-zinc-900 dark:text-zinc-100",children:"Edit album metadata"}),(0,b.jsxs)("p",{className:"truncate text-sm text-zinc-500",children:[e," · ",g]})]}),(0,b.jsx)("button",{type:"button",onClick:j,className:"shrink-0 cursor-pointer rounded-lg px-2 py-1 text-sm font-medium text-zinc-600 transition hover:bg-zinc-100 dark:text-zinc-400 dark:hover:bg-zinc-800",children:"Close"})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto overscroll-contain px-4 py-4",children:(0,b.jsx)(x,{artist:g,album:e,trackCount:h,multipleTrackArtists:i,hasYoutubeTracks:u,saving:q,saveError:s,onSave:v})})]})})}function C(a){let{artist:c,trackCount:e,albumCount:f,hasYoutubeTracks:g,saving:h,saveError:i,onSave:j}=a,[k,l]=(0,d.useState)(c),[m,n]=(0,d.useState)(c);(0,d.useEffect)(()=>{l(c),n(c)},[c]);let o=k!==m,p=o&&""!==k.trim(),q=(0,d.useCallback)(()=>{l(m)},[m]),r=(0,d.useCallback)(async a=>{if(a.preventDefault(),!p||h)return;let b={artist:k.trim()};await j(b),n(b.artist),l(b.artist)},[p,k,j,h]);return(0,b.jsxs)("form",{onSubmit:r,className:"space-y-3",children:[(0,b.jsxs)("p",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:["Updates the artist on ",e," track",1===e?"":"s"," across"," ",f," album",1===f?"":"s",". Song titles and album names are unchanged. Saving also writes ID3 tags to each local MP3 file when write access is allowed."]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"text-xs font-medium text-zinc-500",children:"Artist"}),(0,b.jsx)("input",{type:"text",value:k,onChange:a=>l(a.target.value),className:"mt-1 block w-full rounded-lg border border-zinc-300 bg-white px-3 py-2 text-sm text-zinc-900 outline-none ring-accent-500/0 transition focus:border-accent-400 focus:ring-2 focus:ring-accent-500/20 dark:border-zinc-600 dark:bg-zinc-900 dark:text-zinc-100",autoComplete:"off",required:!0})]}),g?(0,b.jsx)("p",{className:"text-xs text-zinc-500",children:"Saving updates YouTube search queries and clears resolved video ids for affected tracks."}):null,i?(0,b.jsx)("p",{className:"text-xs text-red-600 dark:text-red-400",role:"alert",children:i}):null,(0,b.jsxs)("div",{className:"flex flex-wrap gap-2 pt-1",children:[(0,b.jsx)("button",{type:"submit",disabled:!p||h,className:"rounded-full bg-accent-500 px-4 py-2 text-sm font-medium text-zinc-950 transition hover:bg-accent-400 disabled:cursor-not-allowed disabled:opacity-50",children:h?"Saving…":"Save to all tracks"}),(0,b.jsx)("button",{type:"button",disabled:!o||h,onClick:q,className:"rounded-full border border-zinc-300 bg-white px-4 py-2 text-sm font-medium text-zinc-800 transition hover:bg-zinc-50 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-600 dark:bg-zinc-800 dark:text-zinc-200 dark:hover:bg-zinc-700",children:"Revert"})]})]})}var D=a.i(18975),E=a.i(14269);function F(a){let{artistName:c,trackCount:e,albumCount:g,onClose:h,onSaved:i}=a,{libraryTracks:j,patchArtistMetadataByKey:k,writeLibraryTracksToFiles:l}=(0,f.useLibrary)(),m=(0,d.useId)(),n=(0,d.useRef)(null),[o,p]=(0,d.useState)(!1),[q,r]=(0,d.useState)(null),s=(0,d.useMemo)(()=>j.some(a=>(0,A.artistDisplayName)(a.artist)===c&&!!a.youtubeQuery?.trim()),[c,j]),t=(0,d.useCallback)(async a=>{p(!0),r(null);let b=(0,E.default)(j,c).map(b=>(0,D.default)(b,a)),d=k(c,a);if(!d){p(!1),r("Could not update artist metadata.");return}let e=await l(b);if(p(!1),!e.ok&&e.failedCount>0){let a=e.writtenCount>0?` Updated ${e.writtenCount} file${1===e.writtenCount?"":"s"}; ${e.failedCount} failed.`:"";r(`${e.reason??"Could not write tags to audio files."}${a}`),i(d);return}i(d),h()},[c,j,h,i,k,l]);return(0,d.useEffect)(()=>{let a=a=>{"Escape"===a.key&&h()};return document.addEventListener("keydown",a),n.current?.focus(),()=>document.removeEventListener("keydown",a)},[h]),(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-end justify-center bg-zinc-900/50 p-4 sm:items-center",role:"presentation",onClick:h,children:(0,b.jsxs)("div",{ref:n,role:"dialog","aria-modal":"true","aria-labelledby":m,tabIndex:-1,className:"flex max-h-[min(85vh,28rem)] w-full max-w-lg flex-col overflow-hidden rounded-2xl border border-zinc-200 bg-white shadow-xl dark:border-zinc-700 dark:bg-zinc-950",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("header",{className:"flex shrink-0 items-start justify-between gap-3 border-b border-zinc-200 px-4 py-3 dark:border-zinc-800",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("h2",{id:m,className:"truncate text-base font-semibold text-zinc-900 dark:text-zinc-100",children:"Edit artist metadata"}),(0,b.jsx)("p",{className:"truncate text-sm text-zinc-500",children:c})]}),(0,b.jsx)("button",{type:"button",onClick:h,className:"shrink-0 cursor-pointer rounded-lg px-2 py-1 text-sm font-medium text-zinc-600 transition hover:bg-zinc-100 dark:text-zinc-400 dark:hover:bg-zinc-800",children:"Close"})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto overscroll-contain px-4 py-4",children:(0,b.jsx)(C,{artist:c,trackCount:e,albumCount:g,hasYoutubeTracks:s,saving:o,saveError:q,onSave:t})})]})})}function G(a){let b=new Map;for(let c of a){let a=(0,A.artistDisplayName)(c.artist),d=b.get(a)??[];d.push(c),b.set(a,d)}for(let a of b.values())a.sort((a,b)=>a.title.localeCompare(b.title,void 0,{sensitivity:"base"}));return b}function H(a){let b=new Map;for(let c of a){let a=(0,A.albumCompositeKey)(c.album,c.artist),d=b.get(a)??[];d.push(c),b.set(a,d)}for(let a of b.values())a.sort((a,b)=>a.title.localeCompare(b.title,void 0,{sensitivity:"base"}));return b}function I(a,b){return a.filter(a=>a.library?.rootId===b)}function J(a,b){let c=b.trim();if(!c)return[...a];let d=`${c}/`;return a.filter(a=>{let b=a.library?.relativePath??"";return b===c||b.startsWith(d)})}function K(){let{roots:a,libraryTracks:c,addToQueue:g,compactLists:j,favoriteSongIds:k,favoriteArtistNames:l,favoriteAlbumKeys:m,isFavoriteArtist:n,isFavoriteAlbum:o,toggleFavoriteArtist:p,toggleFavoriteAlbum:u,removeAlbumFromLibrary:w,removeArtistFromLibrary:x,recordRecentBrowseSearch:y}=(0,f.useLibrary)(),z=(0,e.useSearchParams)(),[C,D]=(0,d.useState)("artist"),[E,K]=(0,d.useState)("");i(z,K),(0,d.useEffect)(()=>{let a=E.trim();if(a.length<2)return;let b=window.setTimeout(()=>{y("library",a)},800);return()=>window.clearTimeout(b)},[E,y]);let[L,M]=(0,d.useState)(null),[N,O]=(0,d.useState)(null),[P,Q]=(0,d.useState)(null),[R,S]=(0,d.useState)(null),[T,U]=(0,d.useState)(null),[V,W]=(0,d.useState)(""),X=(0,d.useMemo)(()=>{let a;return(a=E.trim().toLowerCase())?c.filter(b=>{let c=b.library?.relativePath??"";return b.title.toLowerCase().includes(a)||b.artist.toLowerCase().includes(a)||b.album.toLowerCase().includes(a)||c.toLowerCase().includes(a)}):[...c]},[c,E]),Y=E.trim().length>0,Z=j?"space-y-0.25":"space-y-0.5",$=j?"px-2 py-2":"px-3 py-2.5",_=j?"gap-2":"gap-3",aa=j?"py-2 pr-2 pl-5":"py-2.5 pr-3 pl-6",ab=(0,d.useCallback)(a=>{D(a),M(null),O(null),U(null),W("")},[]),ac=(0,d.useMemo)(()=>G(X),[X]),ad=(0,d.useMemo)(()=>H(X),[X]),ae=(0,d.useMemo)(()=>[...ac.keys()].sort((a,b)=>a.localeCompare(b,void 0,{sensitivity:"base"})),[ac]),af=(0,d.useMemo)(()=>[...ad.keys()].sort((a,b)=>{let[c,d]=a.split("\0"),[e,f]=b.split("\0"),g=c.localeCompare(e,void 0,{sensitivity:"base"});return 0!==g?g:d.localeCompare(f,void 0,{sensitivity:"base"})}),[ad]),ag=(0,d.useMemo)(()=>{if(null===N)return null;let b=ad.get(N)??[],c=N.split("\0"),d=c[0]??"",e=c[1]??"",f=0,g=0;for(let a of b)a.durationSec>0&&(f+=a.durationSec,g+=1);let h=new Set;for(let a of b){let b=a.library?.rootId;b&&h.add(b)}let i=[...h].map(b=>a.find(a=>a.id===b)?.name??b).sort((a,b)=>a.localeCompare(b,void 0,{sensitivity:"base"})),j=new Set(b.map(a=>(0,A.artistDisplayName)(a.artist)));return{title:d,artist:e,trackCount:b.length,totalSec:f,withDurationCount:g,sample:b[0],rootLabels:i,multipleTrackArtists:j.size>1}},[N,ad,a]),ah=(0,d.useMemo)(()=>{if(null===L)return null;let b=ac.get(L)??[],c=0,d=0;for(let a of b)a.durationSec>0&&(c+=a.durationSec,d+=1);let e=new Set;for(let a of b){let b=a.library?.rootId;b&&e.add(b)}let f=[...e].map(b=>a.find(a=>a.id===b)?.name??b).sort((a,b)=>a.localeCompare(b,void 0,{sensitivity:"base"})),g=new Set(b.map(a=>(0,A.albumCompositeKey)(a.album,a.artist)));return{name:L,trackCount:b.length,albumCount:g.size,totalSec:c,withDurationCount:d,sample:b[0],rootLabels:f}},[L,ac,a]),ai=(0,d.useMemo)(()=>T?I(X,T):[],[X,T]),aj=(0,d.useMemo)(()=>T?function(a,b){let c=""===b?"":`${b}/`,d=new Set,e=[];for(let f of a){let a=f.library?.relativePath??"";if(""===b)a.includes("/")?d.add(a.slice(0,a.indexOf("/"))):e.push(f);else{if(!a.startsWith(c))continue;let b=a.slice(c.length);if(!b)continue;let g=b.indexOf("/");-1===g?e.push(f):d.add(b.slice(0,g))}}return e.sort((a,b)=>a.title.localeCompare(b.title,void 0,{sensitivity:"base"})),{folders:[...d].sort((a,b)=>a.localeCompare(b,void 0,{sensitivity:"base"})),files:e}}(ai,V):{folders:[],files:[]},[T,ai,V]),ak=(0,d.useMemo)(()=>J(ai,V),[ai,V]),al=(0,d.useMemo)(()=>{let b=E.trim().toLowerCase();return b?a.filter(a=>a.name.toLowerCase().includes(b)):a},[a,E]),am=(0,d.useCallback)(a=>{g(a)},[g]),an=(0,d.useCallback)(a=>{0!==a.length&&g(a)},[g]),ao=(0,d.useMemo)(()=>(function(a,b,c){let d=c.trim().toLowerCase();if(!d)return{artists:[],albums:[],folders:[],songs:[]};let e=G(a),f=[];for(let[a,b]of e)a.toLowerCase().includes(d)&&f.push({name:a,tracks:b});f.sort((a,b)=>a.name.localeCompare(b.name,void 0,{sensitivity:"base"}));let g=H(a),h=[];for(let[a,b]of g){let[c,e]=a.split("\0");(c.toLowerCase().includes(d)||e.toLowerCase().includes(d))&&h.push({key:a,album:c,artist:e,tracks:b})}h.sort((a,b)=>{let c=a.album.localeCompare(b.album,void 0,{sensitivity:"base"});return 0!==c?c:a.artist.localeCompare(b.artist,void 0,{sensitivity:"base"})});let i=new Map,j=(a,c,d)=>{let e=`${a}\u0000${c}`,f=i.get(e);!f&&(f={rootId:a,rootName:b.find(b=>b.id===a)?.name??a,path:c,tracks:[]},i.set(e,f));f.tracks.some(a=>a.id===d.id)||f.tracks.push(d)};for(let c of b)if(c.name.toLowerCase().includes(d))for(let b of a)b.library?.rootId===c.id&&j(c.id,"",b);for(let b of a){let a=b.library;if(a)for(let c of function(a){let b=a.split("/").filter(Boolean);if(b.length<=1)return[];let c=[];for(let a=0;a<b.length-1;a++)c.push(b.slice(0,a+1).join("/"));return c}(a.relativePath))(function(a,b){return!!b&&(!!a.toLowerCase().includes(b)||a.split("/").filter(Boolean).some(a=>a.toLowerCase().includes(b)))})(c,d)&&j(a.rootId,c,b)}return{artists:f,albums:h,folders:[...i.values()].sort((a,b)=>{let c=a.rootName.localeCompare(b.rootName,void 0,{sensitivity:"base"});return 0!==c?c:a.path.localeCompare(b.path,void 0,{sensitivity:"base"})}),songs:a.filter(a=>a.title.toLowerCase().includes(d)).sort((a,b)=>a.title.localeCompare(b.title,void 0,{sensitivity:"base"}))}})(c,a,E),[c,a,E]),ap=(0,d.useMemo)(()=>(function(a){let b=new Set,c=[];for(let d of a)for(let a of d)b.has(a.id)||(b.add(a.id),c.push(a));return c})([ao.artists.flatMap(a=>a.tracks),ao.albums.flatMap(a=>a.tracks),ao.folders.flatMap(a=>a.tracks),ao.songs]),[ao]),aq=(0,d.useMemo)(()=>G(c),[c]),ar=(0,d.useMemo)(()=>H(c),[c]),as=(0,d.useMemo)(()=>l.filter(a=>aq.has(a)).sort((a,b)=>a.localeCompare(b,void 0,{sensitivity:"base"})),[l,aq]),at=(0,d.useMemo)(()=>m.filter(a=>ar.has(a)).sort((a,b)=>{let[c,d]=a.split("\0"),[e,f]=b.split("\0"),g=c.localeCompare(e,void 0,{sensitivity:"base"});return 0!==g?g:d.localeCompare(f,void 0,{sensitivity:"base"})}),[m,ar]),au=(0,d.useMemo)(()=>{let a=new Set(k);return c.filter(b=>a.has(b.id)).sort((a,b)=>a.title.localeCompare(b.title,void 0,{sensitivity:"base"}))},[c,k]),av=(0,d.useMemo)(()=>{let a=new Set,b=[],d=c=>{a.has(c.id)||(a.add(c.id),b.push(c))};for(let a of k){let b=c.find(b=>b.id===a);b&&d(b)}for(let a of l){let b=aq.get(a);if(b)for(let a of b)d(a)}for(let a of m){let b=ar.get(a);if(b)for(let a of b)d(a)}return b.sort((a,b)=>a.title.localeCompare(b.title,void 0,{sensitivity:"base"})),b},[k,l,m,c,aq,ar]),aw=(0,d.useMemo)(()=>{let a=[],{artists:b,albums:c,folders:d,songs:e}=ao;return b.length&&a.push(`${b.length} artist${1===b.length?"":"s"}`),c.length&&a.push(`${c.length} album${1===c.length?"":"s"}`),d.length&&a.push(`${d.length} folder${1===d.length?"":"s"}`),e.length&&a.push(`${e.length} song${1===e.length?"":"s"}`),a},[ao]),ax=(0,d.useCallback)(a=>{K(""),O(null),U(null),W(""),D("artist"),M(a)},[]),ay=(0,d.useCallback)(a=>{K(""),M(null),U(null),W(""),D("album"),O(a)},[]),az=(0,d.useCallback)((a,b)=>{K(""),M(null),O(null),D("folder"),U(a),W(b)},[]),aA=(0,d.useCallback)(a=>{x(a),M(b=>b===a?null:b)},[x]),aB=(0,d.useCallback)(a=>{w(a),O(b=>b===a?null:b)},[w]),aC=(0,d.useCallback)(a=>{Q(a)},[]),aD=(0,d.useMemo)(()=>{if(!P)return null;let a=ar.get(P)??[];if(0===a.length)return null;let b=P.split("\0"),c=b[0]??"",d=b[1]??"",e=new Set(a.map(a=>(0,A.artistDisplayName)(a.artist)));return{albumKey:P,albumTitle:c,artistName:d,trackCount:a.length,multipleTrackArtists:e.size>1}},[P,ar]),aE=(0,d.useCallback)(a=>{var b;let c;return c=[],(b={albumKey:a,onRemoveAlbumFromLibrary:aB,onEditAlbumMetadata:aC}).onEditAlbumMetadata&&c.push({id:"edit-metadata",label:"Edit album metadata",onSelect:()=>b.onEditAlbumMetadata(b.albumKey)}),c.push({id:"remove",label:"Remove album from library",onSelect:()=>b.onRemoveAlbumFromLibrary(b.albumKey)}),c},[aB,aC]),aF=(0,d.useCallback)(a=>{S(a)},[]),aG=(0,d.useMemo)(()=>{if(!R)return null;let a=aq.get(R)??[];if(0===a.length)return null;let b=new Set(a.map(a=>(0,A.albumCompositeKey)(a.album,a.artist)));return{artistName:R,trackCount:a.length,albumCount:b.size}},[R,aq]),aH=(0,d.useCallback)(a=>{var b;let c;return c=[],(b={artistName:a,onRemoveArtistFromLibrary:aA,onEditArtistMetadata:aF}).onEditArtistMetadata&&c.push({id:"edit-metadata",label:"Edit artist metadata",onSelect:()=>b.onEditArtistMetadata(b.artistName)}),c.push({id:"remove",label:"Remove artist from library",onSelect:()=>b.onRemoveArtistFromLibrary(b.artistName)}),c},[aA,aF]);return(0,b.jsxs)("section",{className:"flex h-full min-h-0 flex-1 flex-col overflow-hidden border-b border-zinc-200 bg-zinc-50/80 dark:border-zinc-800 dark:bg-zinc-900/30 lg:border-b-0 lg:border-r",children:[(0,b.jsxs)("div",{className:"shrink-0 space-y-3 border-b border-zinc-200 px-4 py-3 dark:border-zinc-800",children:[(0,b.jsx)("h2",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Library"}),(0,b.jsx)("input",{type:"search",value:E,onChange:a=>K(a.target.value),placeholder:"Artists, albums, folders, or song titles…",className:"w-full rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm text-zinc-900 shadow-sm outline-none ring-accent-500/0 transition focus:border-accent-400 focus:ring-2 focus:ring-accent-500/20 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100 dark:focus:border-accent-500/60","aria-label":"Search library"}),(0,b.jsx)(h,{source:"library",onSelect:K}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1",children:["artist","album","folder","favorites"].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>ab(a),className:["cursor-pointer rounded-full px-3 py-1 text-xs font-medium capitalize transition",C===a?"bg-accent-500 text-zinc-950":"bg-zinc-200 text-zinc-700 hover:bg-zinc-300 dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700"].join(" "),children:a},a))})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-auto px-2 py-2",children:0===c.length?(0,b.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"No library tracks yet. Configure folders in settings."}):Y?(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("p",{className:"px-2 pb-2 text-xs text-zinc-500",children:aw.length>0?(0,b.jsxs)(b.Fragment,{children:[aw.join(" · "),ap.length>0?(0,b.jsxs)("span",{className:"text-zinc-400",children:[" ","· ",ap.length," unique track",1===ap.length?"":"s"," (add all)"]}):null]}):"No matches."}),aw.length>0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{type:"button",onClick:()=>an(ap),disabled:0===ap.length,className:"mb-2 w-full rounded-lg border border-zinc-200 bg-white py-2 text-xs font-medium text-zinc-800 transition hover:bg-zinc-50 disabled:opacity-40 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-200 dark:hover:bg-zinc-800",children:"Add all search results to queue"}),ao.artists.length>0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"px-2 pt-2 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Artists"}),(0,b.jsx)("ul",{className:Z,children:ao.artists.map(a=>(0,b.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>ax(a.name),className:`flex min-w-0 flex-1 items-center justify-between rounded-lg ${$} text-left text-sm text-zinc-800 transition hover:bg-zinc-100 dark:text-zinc-200 dark:hover:bg-zinc-800/80`,children:[(0,b.jsx)("span",{className:"truncate font-medium text-zinc-900 dark:text-zinc-100",children:a.name}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-zinc-500",children:a.tracks.length})]}),(0,b.jsx)(s.default,{triggerLabel:`Actions for ${a.name}`,items:aH(a.name)}),(0,b.jsx)(r,{filled:n(a.name),onPress:()=>p(a.name),label:n(a.name)?"Remove artist from favorites":"Add artist to favorites"}),(0,b.jsx)("button",{type:"button",onClick:()=>an(a.tracks),disabled:0===a.tracks.length,className:"shrink-0 self-center rounded-full bg-accent-500/15 px-2.5 py-1 text-xs font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 disabled:opacity-40 dark:text-accent-300 dark:ring-accent-500/40",children:"Add all"})]},a.name))})]}):null,ao.albums.length>0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"px-2 pt-3 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Albums"}),(0,b.jsx)("ul",{className:Z,children:ao.albums.map(a=>{let c=a.tracks[0];return(0,b.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>ay(a.key),className:`flex min-w-0 flex-1 items-center ${_} rounded-lg ${$} text-left transition hover:bg-zinc-100 dark:hover:bg-zinc-800/80`,children:[(0,b.jsx)(q,{track:c}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col items-start",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:a.album}),(0,b.jsx)("span",{className:"truncate text-xs text-zinc-500",children:a.artist}),(0,b.jsxs)("span",{className:"mt-0.5 text-xs text-zinc-400",children:[a.tracks.length," track",1===a.tracks.length?"":"s"]})]})]}),(0,b.jsx)(s.default,{triggerLabel:`Actions for ${a.album}`,items:aE(a.key)}),(0,b.jsx)(r,{filled:o(a.key),onPress:()=>u(a.key),label:o(a.key)?"Remove album from favorites":"Add album to favorites"}),(0,b.jsx)("button",{type:"button",onClick:()=>an(a.tracks),disabled:0===a.tracks.length,className:"shrink-0 self-center rounded-full bg-accent-500/15 px-2.5 py-1 text-xs font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 disabled:opacity-40 dark:text-accent-300 dark:ring-accent-500/40",children:"Add all"})]},a.key)})})]}):null,ao.folders.length>0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"px-2 pt-3 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Folders"}),(0,b.jsx)("ul",{className:Z,children:ao.folders.map(a=>(0,b.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>az(a.rootId,a.path),className:`flex min-w-0 flex-1 flex-col items-start rounded-lg ${$} text-left text-sm transition hover:bg-zinc-100 dark:hover:bg-zinc-800/80`,children:[(0,b.jsx)("span",{className:"truncate font-medium text-zinc-900 dark:text-zinc-100",children:a.path?`${a.rootName} / ${a.path.replace(/\//g," / ")}`:`${a.rootName} (library)`}),(0,b.jsxs)("span",{className:"mt-0.5 text-xs tabular-nums text-zinc-500",children:[a.tracks.length," tracks"]})]}),(0,b.jsx)("button",{type:"button",onClick:()=>an(a.tracks),disabled:0===a.tracks.length,className:"shrink-0 self-center rounded-full bg-accent-500/15 px-2.5 py-1 text-xs font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 disabled:opacity-40 dark:text-accent-300 dark:ring-accent-500/40",children:"Add all"})]},`${a.rootId}\u0000${a.path}`))})]}):null,ao.songs.length>0?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"px-2 pt-3 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Songs"}),(0,b.jsx)("ul",{className:Z,children:ao.songs.map(a=>(0,b.jsx)("li",{children:(0,b.jsx)(v,{track:a,compact:j,onAdd:am})},a.id))})]}):null]}):null]}):"artist"===C?null===L?(0,b.jsx)("ul",{className:Z,children:ae.map(a=>(0,b.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>M(a),className:`flex min-w-0 flex-1 items-center justify-between rounded-lg ${$} text-left text-sm text-zinc-800 transition hover:bg-zinc-100 dark:text-zinc-200 dark:hover:bg-zinc-800/80`,children:[(0,b.jsx)("span",{className:"truncate font-medium",children:a}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-zinc-500",children:ac.get(a)?.length??0})]}),(0,b.jsx)(s.default,{triggerLabel:`Actions for ${a}`,items:aH(a)}),(0,b.jsx)(r,{filled:n(a),onPress:()=>p(a),label:n(a)?"Remove artist from favorites":"Add artist to favorites"}),(0,b.jsx)("button",{type:"button",onClick:()=>an(ac.get(a)??[]),disabled:(ac.get(a)?.length??0)===0,className:"shrink-0 self-center rounded-full bg-accent-500/15 px-2.5 py-1 text-xs font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 disabled:opacity-40 dark:text-accent-300 dark:ring-accent-500/40",children:"Add all"})]},a))}):(0,b.jsxs)("div",{children:[(0,b.jsx)("button",{type:"button",onClick:()=>M(null),className:"mb-2 px-2 text-xs font-medium text-accent-700 hover:underline dark:text-accent-400",children:"← Artists"}),ah?(0,b.jsx)("div",{className:"mb-4 border-b border-zinc-200 px-2 pb-4 dark:border-zinc-800",children:(0,b.jsxs)("div",{className:"flex gap-4",children:[ah.sample?(0,b.jsx)(q,{track:ah.sample,className:"h-22 w-22 shrink-0 overflow-hidden rounded-lg ring-1 ring-zinc-200/80 dark:ring-zinc-700/80"}):null,(0,b.jsxs)("div",{className:"min-w-0 flex-1 py-0.5",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,b.jsx)("div",{className:"min-w-0 flex-1",children:(0,b.jsx)("h3",{className:"text-lg font-semibold leading-tight text-zinc-900 dark:text-zinc-50",children:ah.name})}),L?(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,b.jsx)("button",{type:"button",onClick:()=>an(ac.get(L)??[]),disabled:(ac.get(L)?.length??0)===0,className:"rounded-full border border-zinc-200 bg-white px-2 py-1 text-xs font-medium disabled:opacity-40 dark:border-zinc-700 dark:bg-zinc-900",children:"Add all"}),(0,b.jsx)(s.default,{triggerLabel:`Actions for ${ah.name}`,items:aH(L)}),(0,b.jsx)(r,{filled:n(L),onPress:()=>p(L),label:n(L)?"Remove artist from favorites":"Add artist to favorites"})]}):null]}),(0,b.jsxs)("p",{className:"mt-2 text-xs tabular-nums text-zinc-500 dark:text-zinc-400",children:[ah.trackCount," track",1===ah.trackCount?"":"s",ah.albumCount>0?` \xb7 ${ah.albumCount} album${1===ah.albumCount?"":"s"}`:"",ah.totalSec>0?` \xb7 ${(0,t.formatDuration)(ah.totalSec)} total`:ah.trackCount>0?" · unknown total length":"",ah.withDurationCount>0&&ah.withDurationCount<ah.trackCount?(0,b.jsxs)("span",{className:"text-zinc-400",children:[" ","(",ah.withDurationCount," timed)"]}):null]}),ah.rootLabels.length>1?(0,b.jsxs)("p",{className:"mt-1.5 text-xs leading-snug text-zinc-500 dark:text-zinc-500",children:["Libraries: ",ah.rootLabels.join(" · ")]}):1===ah.rootLabels.length?(0,b.jsxs)("p",{className:"mt-1.5 text-xs text-zinc-500 dark:text-zinc-500",children:["Library: ",ah.rootLabels[0]]}):null]})]})}):null,(0,b.jsx)("ul",{className:Z,children:(ac.get(L)??[]).map(a=>(0,b.jsx)("li",{children:(0,b.jsx)(v,{track:a,compact:j,onAdd:am,showArtist:!1})},a.id))})]}):"album"===C?null===N?(0,b.jsx)("ul",{className:Z,children:af.map(a=>{let[c,d]=a.split("\0"),e=ad.get(a)?.length??0,f=ad.get(a)?.[0];return(0,b.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>O(a),className:`flex min-w-0 flex-1 items-center ${_} rounded-lg ${$} text-left transition hover:bg-zinc-100 dark:hover:bg-zinc-800/80`,children:[(0,b.jsx)(q,{track:f}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col items-start",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:c}),(0,b.jsx)("span",{className:"truncate text-xs text-zinc-500",children:d}),(0,b.jsxs)("span",{className:"mt-0.5 text-xs text-zinc-400",children:[e," track",1===e?"":"s"]})]})]}),(0,b.jsx)(s.default,{triggerLabel:`Actions for ${c}`,items:aE(a)}),(0,b.jsx)(r,{filled:o(a),onPress:()=>u(a),label:o(a)?"Remove album from favorites":"Add album to favorites"}),(0,b.jsx)("button",{type:"button",onClick:()=>an(ad.get(a)??[]),disabled:0===e,className:"shrink-0 self-center rounded-full bg-accent-500/15 px-2.5 py-1 text-xs font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 disabled:opacity-40 dark:text-accent-300 dark:ring-accent-500/40",children:"Add all"})]},a)})}):(0,b.jsxs)("div",{children:[(0,b.jsx)("button",{type:"button",onClick:()=>O(null),className:"mb-2 px-2 text-xs font-medium text-accent-700 hover:underline dark:text-accent-400",children:"← Albums"}),ag?(0,b.jsx)("div",{className:"mb-4 border-b border-zinc-200 px-2 pb-4 dark:border-zinc-800",children:(0,b.jsxs)("div",{className:"flex gap-4",children:[(0,b.jsx)(q,{track:ag.sample,className:"h-22 w-22 shrink-0 overflow-hidden rounded-lg ring-1 ring-zinc-200/80 dark:ring-zinc-700/80"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 py-0.5",children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("h3",{className:"text-lg font-semibold leading-tight text-zinc-900 dark:text-zinc-50",children:ag.title}),(0,b.jsx)("p",{className:"mt-1 text-sm text-zinc-600 dark:text-zinc-400",children:ag.artist})]}),N?(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,b.jsx)("button",{type:"button",onClick:()=>an(ad.get(N)??[]),disabled:(ad.get(N)?.length??0)===0,className:"rounded-full border border-zinc-200 bg-white px-2 py-1 text-xs font-medium disabled:opacity-40 dark:border-zinc-700 dark:bg-zinc-900",children:"Add all"}),(0,b.jsx)(s.default,{triggerLabel:`Actions for ${ag.title}`,items:aE(N)}),(0,b.jsx)(r,{filled:o(N),onPress:()=>u(N),label:o(N)?"Remove album from favorites":"Add album to favorites"})]}):null]}),ag.multipleTrackArtists?(0,b.jsx)("p",{className:"mt-1 text-xs text-zinc-500 dark:text-zinc-500",children:"Track-level artists differ on this album"}):null,(0,b.jsxs)("p",{className:"mt-2 text-xs tabular-nums text-zinc-500 dark:text-zinc-400",children:[ag.trackCount," track",1===ag.trackCount?"":"s",ag.totalSec>0?` \xb7 ${(0,t.formatDuration)(ag.totalSec)} total`:ag.trackCount>0?" · unknown total length":"",ag.withDurationCount>0&&ag.withDurationCount<ag.trackCount?(0,b.jsxs)("span",{className:"text-zinc-400",children:[" (",ag.withDurationCount," timed)"]}):null]}),ag.rootLabels.length>1?(0,b.jsxs)("p",{className:"mt-1.5 text-xs leading-snug text-zinc-500 dark:text-zinc-500",children:["Libraries: ",ag.rootLabels.join(" · ")]}):1===ag.rootLabels.length?(0,b.jsxs)("p",{className:"mt-1.5 text-xs text-zinc-500 dark:text-zinc-500",children:["Library: ",ag.rootLabels[0]]}):null]})]})}):null,(0,b.jsx)("ul",{className:Z,children:(ad.get(N)??[]).map(a=>(0,b.jsx)("li",{children:(0,b.jsx)(v,{track:a,compact:j,onAdd:am})},a.id))})]}):"favorites"===C?(0,b.jsxs)("div",{className:"space-y-4 px-1",children:[(0,b.jsx)("div",{className:"flex flex-wrap gap-2 px-2",children:(0,b.jsxs)("button",{type:"button",onClick:()=>an(av),disabled:0===av.length,className:"rounded-full border border-zinc-200 bg-white px-3 py-1.5 text-xs font-medium disabled:opacity-40 dark:border-zinc-700 dark:bg-zinc-900",children:["Add all favorite tracks (",av.length,")"]})}),0===as.length&&0===at.length&&0===au.length?(0,b.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"No favorites yet. Use the star on artists, albums, or songs while browsing or searching."}):(0,b.jsxs)(b.Fragment,{children:[as.length>0?(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"px-2 pb-1 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Artists"}),(0,b.jsx)("ul",{className:Z,children:as.map(a=>(0,b.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{ab("artist"),M(a)},className:`flex min-w-0 flex-1 items-center justify-between rounded-lg ${$} text-left text-sm text-zinc-800 transition hover:bg-zinc-100 dark:text-zinc-200 dark:hover:bg-zinc-800/80`,children:[(0,b.jsx)("span",{className:"truncate font-medium text-zinc-900 dark:text-zinc-100",children:a}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-zinc-500",children:aq.get(a)?.length??0})]}),(0,b.jsx)(s.default,{triggerLabel:`Actions for ${a}`,items:aH(a)}),(0,b.jsx)(r,{filled:!0,onPress:()=>p(a),label:"Remove artist from favorites"}),(0,b.jsx)("button",{type:"button",onClick:()=>an(aq.get(a)??[]),disabled:(aq.get(a)?.length??0)===0,className:"shrink-0 self-center rounded-full bg-accent-500/15 px-2.5 py-1 text-xs font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 disabled:opacity-40 dark:text-accent-300 dark:ring-accent-500/40",children:"Add all"})]},a))})]}):null,at.length>0?(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"px-2 pb-1 pt-2 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Albums"}),(0,b.jsx)("ul",{className:Z,children:at.map(a=>{let[c,d]=a.split("\0"),e=ar.get(a)??[],f=e[0];return(0,b.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{ab("album"),O(a)},className:`flex min-w-0 flex-1 items-center ${_} rounded-lg ${$} text-left transition hover:bg-zinc-100 dark:hover:bg-zinc-800/80`,children:[(0,b.jsx)(q,{track:f}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col items-start",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:c}),(0,b.jsx)("span",{className:"truncate text-xs text-zinc-500",children:d}),(0,b.jsxs)("span",{className:"mt-0.5 text-xs text-zinc-400",children:[e.length," track",1===e.length?"":"s"]})]})]}),(0,b.jsx)(s.default,{triggerLabel:`Actions for ${c}`,items:aE(a)}),(0,b.jsx)(r,{filled:!0,onPress:()=>u(a),label:"Remove album from favorites"}),(0,b.jsx)("button",{type:"button",onClick:()=>an(e),disabled:0===e.length,className:"shrink-0 self-center rounded-full bg-accent-500/15 px-2.5 py-1 text-xs font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 disabled:opacity-40 dark:text-accent-300 dark:ring-accent-500/40",children:"Add all"})]},a)})})]}):null,au.length>0?(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"px-2 pb-1 pt-2 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Songs"}),(0,b.jsx)("ul",{className:Z,children:au.map(a=>(0,b.jsx)("li",{children:(0,b.jsx)(v,{track:a,compact:j,onAdd:am})},a.id))})]}):null]})]}):null===T?(0,b.jsx)("ul",{className:Z,children:al.map(a=>{let c=I(X,a.id);return(0,b.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{U(a.id),W("")},className:`flex min-w-0 flex-1 items-center justify-between rounded-lg ${$} text-left text-sm transition hover:bg-zinc-100 dark:hover:bg-zinc-800/80`,children:[(0,b.jsx)("span",{className:"truncate font-medium text-zinc-900 dark:text-zinc-100",children:a.name}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-zinc-500",children:c.length})]}),(0,b.jsx)("button",{type:"button",onClick:()=>an(c),disabled:0===c.length,className:"shrink-0 self-center rounded-full bg-accent-500/15 px-2.5 py-1 text-xs font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 disabled:opacity-40 dark:text-accent-300 dark:ring-accent-500/40",children:"Add all"})]},a.id)})}):(0,b.jsxs)("div",{children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{if(""===V)U(null);else{let a=V.split("/").filter(Boolean);a.pop(),W(a.join("/"))}},className:"mb-2 px-2 text-xs font-medium text-accent-700 hover:underline dark:text-accent-400",children:["← ",""===V?"Libraries":"Up"]}),(0,b.jsxs)("p",{className:"mb-2 truncate px-2 text-xs text-zinc-500",title:V||"/",children:[a.find(a=>a.id===T)?.name??T,V?` / ${V.replace(/\//g," / ")}`:""]}),(0,b.jsxs)("div",{className:"mb-2 flex flex-wrap gap-2 px-2",children:[(0,b.jsx)("button",{type:"button",onClick:()=>an(ak),disabled:0===ak.length,className:"rounded-full border border-zinc-200 bg-white px-2 py-1 text-xs font-medium disabled:opacity-40 dark:border-zinc-700 dark:bg-zinc-900",children:"Add entire folder"}),(0,b.jsx)("button",{type:"button",onClick:()=>an(aj.files),disabled:0===aj.files.length,className:"rounded-full border border-zinc-200 bg-white px-2 py-1 text-xs font-medium disabled:opacity-40 dark:border-zinc-700 dark:bg-zinc-900",children:"Add files in this level only"})]}),(0,b.jsxs)("ul",{className:Z,children:[aj.folders.map(a=>{let c=""===V?a:`${V}/${a}`,d=J(ai,c);return(0,b.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>W(c),className:`flex min-w-0 flex-1 items-center rounded-lg ${aa} text-left text-sm hover:bg-zinc-100 dark:hover:bg-zinc-800/80`,children:[(0,b.jsx)("span",{className:"truncate font-medium text-zinc-900 dark:text-zinc-100",children:a}),(0,b.jsx)("span",{className:"ml-2 shrink-0 text-xs tabular-nums text-zinc-500",children:d.length})]}),(0,b.jsx)("button",{type:"button",onClick:()=>an(d),disabled:0===d.length,className:"shrink-0 self-center rounded-full bg-accent-500/15 px-2 py-1 text-[11px] font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 disabled:opacity-40 dark:text-accent-300 dark:ring-accent-500/40",children:"Add all"})]},a)}),aj.files.map(a=>(0,b.jsx)("li",{children:(0,b.jsx)(v,{track:a,compact:j,onAdd:am,showArtist:!1,indentClass:j?"pl-3":"pl-4"})},a.id))]})]})}),aD?(0,b.jsx)(B,{albumKey:aD.albumKey,albumTitle:aD.albumTitle,artistName:aD.artistName,trackCount:aD.trackCount,multipleTrackArtists:aD.multipleTrackArtists,onClose:()=>Q(null),onSaved:a=>{O(b=>b===P?a:b),Q(null)}}):null,aG?(0,b.jsx)(F,{artistName:aG.artistName,trackCount:aG.trackCount,albumCount:aG.albumCount,onClose:()=>S(null),onSaved:a=>{M(b=>b===R?a:b),S(null)}}):null]})}function L(a){return a.hasMore?(0,b.jsx)("div",{className:"flex justify-center px-2 pt-3 pb-1",children:(0,b.jsx)("button",{type:"button",onClick:a.onLoadMore,disabled:a.loading,className:"cursor-pointer rounded-full border border-zinc-200 bg-white px-4 py-2 text-xs font-medium text-zinc-700 transition hover:bg-zinc-50 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:bg-zinc-800",children:a.loading?"Loading…":"Load more"})}):null}var M=a.i(47179);function N(a){let b=new Map;for(let c of a){let a=(0,A.artistDisplayName)(c.artist),d=b.get(a)??[];d.push(c),b.set(a,d)}for(let a of b.values())a.sort((a,b)=>a.title.localeCompare(b.title,void 0,{sensitivity:"base"}));return b}function O(a,b){let c=new Set(a.map(a=>a.id));for(let d of b)c.has(d.id)||(c.add(d.id),a.push(d))}let P=0,Q=Promise.resolve();async function R(){Q=Q.then(async()=>{let a=Math.max(0,1100-(Date.now()-P));a>0&&await new Promise(b=>setTimeout(b,a)),P=Date.now()}),await Q}let S=new Set([503,502,429]);async function T(a,b){let c=a.toString(),d=null;for(let a=0;a<3;a+=1){let e;if(b?.aborted)throw new DOMException("Aborted","AbortError");await R();try{e=await fetch(c,{method:"GET",headers:{Accept:"application/json","User-Agent":"MuzicalUI/1.0 (https://github.com/f3rnox/muzical-ui)"},signal:b})}catch(a){if(b?.aborted||a instanceof Error&&"AbortError"===a.name||"object"==typeof a&&null!==a&&"name"in a&&"AbortError"===a.name)throw a;throw console.error("[MusicBrainz] request failed",{url:c,error:a}),a}if(e.ok)return await e.json();let f="";try{f=(await e.text()).slice(0,300)}catch{}if(d=Error(`MusicBrainz request failed (${e.status})`),console.error("[MusicBrainz] request failed",{url:c,status:e.status,statusText:e.statusText,body:f||void 0,attempt:a+1}),!S.has(e.status)||a>=2)throw d;await new Promise(b=>setTimeout(b,1500*(a+1)))}throw d??Error("MusicBrainz request failed")}function U(a,b={},c){let d=a["artist-credit"]?.map(a=>a.name?.trim()||a.artist?.name?.trim()).filter(Boolean).join(" & ")??"Unknown artist",e=function(a,b){if(!a?.length)return;let c=b.album?.trim().toLowerCase();if(c){let b=a.find(a=>{let b=a.title?.trim().toLowerCase()??"",d=a["release-group"]?.title?.trim().toLowerCase()??"";return b===c||d===c});if(b)return b;let d=a.find(a=>{let b=a.title?.trim().toLowerCase()??"",d=a["release-group"]?.title?.trim().toLowerCase()??"";return b.includes(c)||d.includes(c)});if(d)return d}return a.find(a=>"Official"===a.status)??a[0]}(a.releases,b),f=c?.trim()||e?.["release-group"]?.title?.trim()||e?.title?.trim()||"Unknown album",g=a.title?.trim()||"Unknown title",h=`${g} ${d}`.trim();return{id:`musicbrainz:${a.id}`,title:g,artist:d,album:f,durationSec:a.length&&Number.isFinite(a.length)?Math.round(a.length/1e3):0,source:"musicbrainz",youtubeQuery:h}}async function V(a,b,c,d){let e=new URL(`https://musicbrainz.org/ws/2/release/${a}`);e.searchParams.set("inc","recordings+artist-credits+media"),e.searchParams.set("fmt","json");let f=await T(e,d),g={artist:c,album:b},h=[],i=new Set;for(let a of f.media??[])for(let c of a.tracks??[]){let a=c.recording,d=a?.id;if(!d||i.has(d))continue;i.add(d);let e=U(a??{id:c.id,title:c.title,length:c.length,"artist-credit":f["artist-credit"]},g,b);e.title&&"Unknown title"!==e.title||(e.title=c.title?.trim()||e.title),c.length&&Number.isFinite(c.length)&&(e.durationSec=Math.round(c.length/1e3)),h.push(e)}return h}async function W(a,b,c,d=25,e=0){let f=a.trim();if(!f)return[];let g=new URL("https://musicbrainz.org/ws/2/recording");g.searchParams.set("query",f),g.searchParams.set("fmt","json"),g.searchParams.set("limit",String(d)),e>0&&g.searchParams.set("offset",String(e)),g.searchParams.set("inc","artist-credits+releases");let h=await T(g,c);return(Array.isArray(h.recordings)?h.recordings:[]).map(a=>U(a,b))}async function X(a,b,c=8,d=0){let e=a.trim();if(!e)return[];let f=new URL("https://musicbrainz.org/ws/2/release-group");f.searchParams.set("query",e),f.searchParams.set("fmt","json"),f.searchParams.set("limit",String(c)),d>0&&f.searchParams.set("offset",String(d));let g=await T(f,b);return Array.isArray(g["release-groups"])?g["release-groups"]:[]}function Y(a){return a.replace(/([+\-!(){}[\]^"~*?:\\/])/g,"\\$1")}function Z(a,b){let c=b.album?.trim().toLowerCase()??"";return c?[...a].sort((a,b)=>{let d=a.title?.trim().toLowerCase()??"",e=b.title?.trim().toLowerCase()??"",f=d===c?2:+!!d.includes(c);return(e===c?2:+!!e.includes(c))-f}):[...a]}function $(a,b){let{queries:c,hints:d}=function(a){let b=a.trim();if(!b)return{queries:[],hints:{}};let c=b.split(/\s+/).filter(Boolean),d={};if(c.length>=2){let a=Y(c[0]),e=Y(c.slice(1).join(" "));d.artist=c[0],d.album=c.slice(1).join(" ");let f=Y(c[1]),g=[`artist:${a} AND release:${e}`,`artist:${a} AND release-group:${e}`,`artist:${a} AND releasegroup:${e}`];return 2===c.length&&g.push(`artist:${f} AND release:${a}`),g.push(`"${Y(b)}"`,b),{hints:d,queries:g}}let e=Y(c[0]);return{hints:{artist:c[0]},queries:[`artist:${e}`,b]}}(a),e="album"===b?c.slice(0,1):c;return{query:a,mode:b,hints:d,recordingQueries:e,recordingQueryIndex:0,recordingOffset:0,releaseGroupQuery:function(a,b){let c=a.trim();if(b.artist&&b.album){let a=Y(b.artist),c=Y(b.album);return`artist:${a} AND releasegroup:${c}`}return c}(a,d),releaseGroupOffset:0,releaseGroups:null,releaseGroupExpandIndex:0}}async function _(a,b,c="song",d){var e;let f=a.trim();if(!f)return{tracks:[],cursor:$("",c),hasMore:!1};let g=d??$(f,c),h=[];for(;h.length<20&&g.recordingQueryIndex<g.recordingQueries.length&&!b?.aborted;){let a=g.recordingQueries[g.recordingQueryIndex];if(!a)break;let c=await W(a,g.hints,b,25,g.recordingOffset);if(O(h,c),g=c.length<25?{...g,recordingQueryIndex:g.recordingQueryIndex+1,recordingOffset:0}:{...g,recordingOffset:g.recordingOffset+25},0===c.length&&g.recordingQueryIndex>=g.recordingQueries.length)break}if(h.length<20&&g.releaseGroupQuery.trim()){let a=g.releaseGroups;if(!a){let c=await X(g.releaseGroupQuery,b,10,g.releaseGroupOffset);a=Z(c,g.hints),g={...g,releaseGroups:a,releaseGroupOffset:g.releaseGroupOffset+c.length}}let c=0;for(;h.length<20&&c<2&&g.releaseGroupExpandIndex<a.length&&!b?.aborted;){;let d=a[g.releaseGroupExpandIndex];g={...g,releaseGroupExpandIndex:g.releaseGroupExpandIndex+1},c+=1;let e=function(a){let b=a.releases??[],c=b.find(a=>"Official"===a.status);return c?.id??b[0]?.id??null}(d);if(!e)continue;let f=d["artist-credit"]?.map(a=>a.name?.trim()||a.artist?.name?.trim()).filter(Boolean).join(" & ")??"Unknown artist",i=d.title?.trim()||"Unknown album";O(h,await V(e,i,f,b))}if(h.length<20&&g.releaseGroupExpandIndex>=a.length&&a.length>=10){let c=await X(g.releaseGroupQuery,b,10,g.releaseGroupOffset);if(c.length>0){let b=Z([...a,...c],g.hints);g={...g,releaseGroups:b,releaseGroupOffset:g.releaseGroupOffset+c.length}}}}let i=(e=g).recordingQueryIndex<e.recordingQueries.length||!!e.releaseGroupQuery.trim()&&(null===e.releaseGroups||e.releaseGroupExpandIndex<e.releaseGroups.length);return{tracks:h,cursor:g,hasMore:i}}var aa=a.i(24388),ab=a.i(2196),ac=a.i(41090);let ad=["artist","album","song"];function ae(){let{libraryTracks:a,addToLibrary:c,addToQueue:g,compactLists:j,recordRecentBrowseSearch:k,beginYoutubePrefetch:l,endYoutubePrefetch:m}=(0,f.useLibrary)(),n=(0,e.useSearchParams)(),[o,p]=(0,d.useState)(""),[q,r]=(0,d.useState)([]),[s,t]=(0,d.useState)(!1),[u,v]=(0,d.useState)(!1),[w,x]=(0,d.useState)(!1),[y,z]=(0,d.useState)(null),[B,C]=(0,d.useState)(null),[D,E]=(0,d.useState)("song"),[F,G]=(0,d.useState)(null),[H,I]=(0,d.useState)(null),J=(0,d.useRef)(null),K=(0,d.useRef)(null),P=j?"space-y-0.25":"space-y-0.5",Q=j?"px-2 py-2":"px-3 py-2.5",R=j?"gap-2":"gap-3",S=(0,d.useCallback)(b=>a.some(a=>a.id===b),[a]),T=(0,d.useCallback)(()=>{K.current&&(window.clearTimeout(K.current),K.current=null),J.current&&(J.current.abort(),J.current=null),r([]),t(!1),v(!1),x(!1),z(null),C(null),G(null),I(null)},[]),U=(0,d.useCallback)(a=>{E(a),G(null),I(null)},[]),V=(0,d.useCallback)(a=>{(p(a),G(null),I(null),a.trim().length<3)?T():(t(!0),C(null))},[T]);i(n,V),(0,d.useEffect)(()=>{let a=o.trim();if(a.length<3)return;K.current&&(window.clearTimeout(K.current),K.current=null),J.current&&(J.current.abort(),J.current=null);let b=new AbortController;return J.current=b,K.current=window.setTimeout(()=>{_(a,b.signal,D).then(b=>{r(b.tracks),z(b.cursor),x(b.hasMore),C(null),k("musicbrainz",a)}).catch(a=>{a instanceof Error&&"AbortError"===a.name||"object"==typeof a&&null!==a&&"name"in a&&"AbortError"===a.name||(C(a instanceof Error?a.message:"MusicBrainz search failed"),r([]),x(!1),z(null))}).finally(()=>t(!1))},300),()=>{K.current&&(window.clearTimeout(K.current),K.current=null),J.current&&(J.current.abort(),J.current=null)}},[o,D,k]),(0,d.useEffect)(()=>{if((0,ac.default)()||0===q.length)return;let a=(0,aa.default)(q).slice(0,12);if(0===a.length)return;let b=new AbortController,c=a.length;return l(c),(0,ab.default)(a,(a,b)=>{r(c=>c.map(c=>c.id===a?{...c,youtubeVideoId:b}:c))},{signal:b.signal}).finally(()=>{m(c)}),()=>{b.abort()}},[q,l,m]);let W=(0,d.useCallback)(a=>g(a),[g]),X=(0,d.useCallback)(a=>c(a),[c]),Y=(0,d.useCallback)(a=>{let b=a.filter(a=>!S(a.id));b.length>0&&c(b)},[c,S]),Z=(0,d.useCallback)(a=>{0!==a.length&&g(a)},[g]),$=(0,d.useCallback)(()=>{let a=o.trim();a.length<3||!y||u||s||(v(!0),C(null),_(a,new AbortController().signal,D,y).then(a=>{r(b=>{let c=[...b];return O(c,a.tracks),c}),z(a.cursor),x(a.hasMore)}).catch(a=>{a instanceof Error&&"AbortError"===a.name||C(a instanceof Error?a.message:"MusicBrainz search failed")}).finally(()=>v(!1)))},[o,D,y,u,s]),ae=(0,d.useMemo)(()=>N(q),[q]),af=(0,d.useMemo)(()=>(function(a){let b=new Map;for(let c of a){let a=(0,A.albumCompositeKey)(c.album,(0,A.artistDisplayName)(c.artist)),d=b.get(a)??[];d.push(c),b.set(a,d)}for(let a of b.values())a.sort((a,b)=>a.title.localeCompare(b.title,void 0,{sensitivity:"base"}));return b})(q),[q]),ag=(0,d.useMemo)(()=>[...ae.keys()].sort((a,b)=>a.localeCompare(b,void 0,{sensitivity:"base"})),[ae]),ah=(0,d.useMemo)(()=>[...af.keys()].sort((a,b)=>{let[c,d]=a.split("\0"),[e,f]=b.split("\0"),g=c.localeCompare(e,void 0,{sensitivity:"base"});return 0!==g?g:d.localeCompare(f,void 0,{sensitivity:"base"})}),[af]),ai=o.trim(),aj=ai.length>0&&ai.length<3,ak=q.length>0,al=(a,c)=>(0,b.jsx)("ul",{className:P,children:a.map(a=>(0,b.jsx)("li",{children:(0,b.jsx)(M.default,{track:a,alreadySaved:S(a.id),compact:j,onQueue:W,onSave:X,subtitle:c?.(a)})},a.id))});return(0,b.jsxs)("section",{className:"flex h-full min-h-0 flex-1 flex-col overflow-hidden border-b border-zinc-200 bg-zinc-50/80 dark:border-zinc-800 dark:bg-zinc-900/30 lg:border-b-0 lg:border-r",children:[(0,b.jsxs)("div",{className:"shrink-0 space-y-3 border-b border-zinc-200 px-4 py-3 dark:border-zinc-800",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"MusicBrainz"}),(0,b.jsx)("p",{className:"mt-1 text-xs text-zinc-400",children:"Discover recordings via MusicBrainz; save to your library for playback later (streams via YouTube)."})]}),(0,b.jsx)("input",{type:"search",value:o,onChange:a=>V(a.target.value),placeholder:"Songs, artists, or releases…",className:"w-full rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm text-zinc-900 shadow-sm outline-none ring-accent-500/0 transition focus:border-accent-400 focus:ring-2 focus:ring-accent-500/20 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100 dark:focus:border-accent-500/60","aria-label":"Search MusicBrainz"}),(0,b.jsx)(h,{source:"musicbrainz",onSelect:V}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1",children:ad.map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>U(a),className:["cursor-pointer rounded-full px-3 py-1 text-xs font-medium capitalize transition",D===a?"bg-accent-500 text-zinc-950":"bg-zinc-200 text-zinc-700 hover:bg-zinc-300 dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700"].join(" "),children:a},a))})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-auto px-2 py-2",children:B?(0,b.jsx)("p",{className:"px-2 py-4 text-sm text-red-600 dark:text-red-400",role:"alert",children:B}):s?(0,b.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"Searching MusicBrainz…"}):aj?(0,b.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"Type at least 3 characters to search."}):0===ai.length?(0,b.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"Search MusicBrainz to find recordings to queue or save to your library."}):ak?(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 px-2 pb-2",children:[(0,b.jsxs)("p",{className:"text-xs text-zinc-500",children:[q.length," recording",1===q.length?"":"s","artist"===D&&ag.length>0?` \xb7 ${ag.length} artist${1===ag.length?"":"s"}`:"","album"===D&&ah.length>0?` \xb7 ${ah.length} album${1===ah.length?"":"s"}`:""]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-1",children:[(0,b.jsx)("button",{type:"button",onClick:()=>Z(q),className:"cursor-pointer rounded-full border border-zinc-200 bg-white px-2 py-1 text-xs font-medium text-zinc-700 transition hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:bg-zinc-800",children:"Add all to queue"}),(0,b.jsx)("button",{type:"button",onClick:()=>Y(q),disabled:q.every(a=>S(a.id)),className:"cursor-pointer rounded-full border border-zinc-200 bg-white px-2 py-1 text-xs font-medium text-zinc-700 transition hover:bg-zinc-50 disabled:opacity-40 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:bg-zinc-800",children:"Save all to library"})]})]}),(()=>{if("song"===D)return al(q);if("artist"===D){if(null===F)return(0,b.jsx)("ul",{className:P,children:ag.map(a=>{let c=ae.get(a)?.length??0;return(0,b.jsxs)("li",{className:"flex items-center gap-1",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>G(a),className:`flex min-w-0 flex-1 cursor-pointer items-center justify-between rounded-lg ${Q} text-left text-sm text-zinc-800 transition hover:bg-zinc-100 dark:text-zinc-200 dark:hover:bg-zinc-800/80`,children:[(0,b.jsx)("span",{className:"truncate font-medium",children:a}),(0,b.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-zinc-500",children:c})]}),(0,b.jsx)("button",{type:"button",onClick:()=>Z(ae.get(a)??[]),disabled:0===c,className:"shrink-0 cursor-pointer self-center rounded-full bg-accent-500/15 px-2.5 py-1 text-xs font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 disabled:opacity-40 dark:text-accent-300 dark:ring-accent-500/40",children:"Add all"})]},a)})});let a=ae.get(F)??[];return(0,b.jsxs)("div",{children:[(0,b.jsx)("button",{type:"button",onClick:()=>G(null),className:"mb-2 cursor-pointer px-2 text-xs font-medium text-accent-700 hover:underline dark:text-accent-400",children:"← Artists"}),(0,b.jsxs)("div",{className:"mb-2 flex flex-wrap gap-2 px-2",children:[(0,b.jsx)("button",{type:"button",onClick:()=>Z(a),disabled:0===a.length,className:"cursor-pointer rounded-full border border-zinc-200 bg-white px-2 py-1 text-xs font-medium dark:border-zinc-700 dark:bg-zinc-900",children:"Add all"}),(0,b.jsx)("button",{type:"button",onClick:()=>Y(a),disabled:a.every(a=>S(a.id)),className:"cursor-pointer rounded-full border border-zinc-200 bg-white px-2 py-1 text-xs font-medium dark:border-zinc-700 dark:bg-zinc-900",children:"Save all"})]}),al(a,a=>a.album)]})}if(null===H)return(0,b.jsx)("ul",{className:P,children:ah.map(a=>{let[c,d]=a.split("\0"),e=af.get(a)?.length??0;return(0,b.jsxs)("li",{className:"flex items-center gap-1",children:[(0,b.jsx)("button",{type:"button",onClick:()=>I(a),className:`flex min-w-0 flex-1 cursor-pointer items-center ${R} rounded-lg ${Q} text-left transition hover:bg-zinc-100 dark:hover:bg-zinc-800/80`,children:(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col items-start",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:c}),(0,b.jsx)("span",{className:"truncate text-xs text-zinc-500",children:d}),(0,b.jsxs)("span",{className:"mt-0.5 text-xs text-zinc-400",children:[e," track",1===e?"":"s"]})]})}),(0,b.jsx)("button",{type:"button",onClick:()=>Z(af.get(a)??[]),disabled:0===e,className:"shrink-0 cursor-pointer self-center rounded-full bg-accent-500/15 px-2.5 py-1 text-xs font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 disabled:opacity-40 dark:text-accent-300 dark:ring-accent-500/40",children:"Add all"})]},a)})});let a=af.get(H)??[];return(0,b.jsxs)("div",{children:[(0,b.jsx)("button",{type:"button",onClick:()=>I(null),className:"mb-2 cursor-pointer px-2 text-xs font-medium text-accent-700 hover:underline dark:text-accent-400",children:"← Albums"}),(0,b.jsxs)("div",{className:"mb-2 flex flex-wrap gap-2 px-2",children:[(0,b.jsx)("button",{type:"button",onClick:()=>Z(a),disabled:0===a.length,className:"cursor-pointer rounded-full border border-zinc-200 bg-white px-2 py-1 text-xs font-medium dark:border-zinc-700 dark:bg-zinc-900",children:"Add all"}),(0,b.jsx)("button",{type:"button",onClick:()=>Y(a),disabled:a.every(a=>S(a.id)),className:"cursor-pointer rounded-full border border-zinc-200 bg-white px-2 py-1 text-xs font-medium dark:border-zinc-700 dark:bg-zinc-900",children:"Save all"})]}),al(a,a=>a.artist)]})})(),(0,b.jsx)(L,{hasMore:w,loading:u,onLoadMore:$})]}):(0,b.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"No MusicBrainz results for that query."})})]})}async function af(a,b,c=20){let d=a.trim();if(!d)return[];let e=new URL("/api/youtube/search",window.location.origin);e.searchParams.set("q",d),e.searchParams.set("maxResults",String(Math.min(50,Math.max(1,c))));let f=await fetch(e.toString(),{signal:b});if(!f.ok)return[];let g=await f.json();return Array.isArray(g.videos)?g.videos.filter(a=>"string"==typeof a.videoId&&a.videoId.trim().length>0):[]}var ag=a.i(44803);function ah(a){return a.trim().toLowerCase()}var ai=a.i(16564);let aj=new Map;var ak=a.i(37978),al=a.i(91320),am=a.i(73972);async function an(a,b,c,d=ai.YOUTUBE_SEARCH_PAGE_SIZE,e){let f=a.trim(),g=b.trim();if(!f||!g||(0,ac.default)())return{videos:[]};let h=new URL("https://www.googleapis.com/youtube/v3/search");h.searchParams.set("part","snippet"),h.searchParams.set("type","video"),h.searchParams.set("maxResults",String(Math.min(50,Math.max(1,d)))),h.searchParams.set("videoEmbeddable","true"),h.searchParams.set("q",f),h.searchParams.set("key",g),e?.trim()&&h.searchParams.set("pageToken",e.trim()),await (0,am.default)();let i=await fetch(h,{signal:c}),j=await i.json();if(!i.ok){let a=j.error?.message?.trim()??"";throw(j.error?.errors?.some(a=>"quotaExceeded"===a.reason)||(0,ag.default)(a))&&(0,al.default)(),Error(a||"YouTube search failed")}let k=[],l=new Map;for(let a of j.items??[]){let b=a.id?.videoId?.trim();!b||l.has(b)||(k.push(b),l.set(b,{title:a.snippet?.title?.trim()||"Unknown title",channelTitle:a.snippet?.channelTitle?.trim()||"Unknown channel"}))}if(0===k.length)return{videos:[],nextPageToken:j.nextPageToken};let m=new URL("https://www.googleapis.com/youtube/v3/videos");m.searchParams.set("part","contentDetails,snippet"),m.searchParams.set("id",k.join(",")),m.searchParams.set("key",g),await (0,am.default)();let n=await fetch(m,{signal:c}),o=await n.json();if(!n.ok){let a=o.error?.message?.trim()??"";throw(o.error?.errors?.some(a=>"quotaExceeded"===a.reason)||(0,ag.default)(a))&&(0,al.default)(),Error(a||"YouTube video lookup failed")}let p=[],q=new Map(k.map((a,b)=>[a,b]));for(let a of[...o.items??[]].sort((a,b)=>(q.get(a.id??"")??0)-(q.get(b.id??"")??0))){let b=a.id?.trim();if(!b)continue;let c=l.get(b),d=a.snippet?.title?.trim()||c?.title||"Unknown title",e=a.snippet?.channelTitle?.trim()||c?.channelTitle||"Unknown channel",f=function(a){let b=a.trim();if(!b.startsWith("PT"))return 0;let c=b.match(/^PT(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?$/);if(!c)return 0;let d=Number.parseInt(c[1]??"0",10),e=Number.parseInt(c[2]??"0",10),f=Number.parseInt(c[3]??"0",10);return Number.isFinite(d)&&Number.isFinite(e)&&Number.isFinite(f)?3600*d+60*e+f:0}(a.contentDetails?.duration??"");p.push({videoId:b,title:d,channelTitle:e,durationSec:f})}return{videos:p,nextPageToken:j.nextPageToken}}function ao(a,b){let c=ah(a);c&&aj.set(c,{at:Date.now(),result:b})}function ap(a,b){let c=b.trim(),d=a.title.trim()||"Unknown title",e=a.channelTitle.trim()||"Unknown channel";return{id:`youtube:${a.videoId}`,title:d,artist:e,album:"YouTube",durationSec:a.durationSec>0?a.durationSec:0,source:"youtube",youtubeQuery:c||`${d} ${e}`.trim(),youtubeVideoId:a.videoId}}async function aq(a,b,c){let d=a.trim();if(!d)return{tracks:[],source:"scrape",hasMore:!1};let e=!c?.pageToken&&(c?.excludeVideoIds?.length??0)===0;if(e){let a=function(a){let b=ah(a);if(!b)return null;let c=aj.get(b);return c?Date.now()-c.at>ai.YOUTUBE_SEARCH_CACHE_TTL_MS?(aj.delete(b),null):c.result:null}(d);if(a)return{tracks:a.tracks,source:a.source,nextPageToken:a.nextPageToken,hasMore:!!a.nextPageToken||a.tracks.length>=ai.YOUTUBE_SEARCH_PAGE_SIZE}}let f=new Set(c?.excludeVideoIds??[]),g=(0,ak.default)().trim();if(g&&!(0,ac.default)())try{let{videos:a,nextPageToken:h}=await an(d,g,b,ai.YOUTUBE_SEARCH_PAGE_SIZE,c?.pageToken),i={tracks:a.filter(a=>!f.has(a.videoId)).map(a=>ap(a,d)),source:"api",nextPageToken:h,hasMore:!!h};return e&&ao(d,{tracks:i.tracks,source:i.source,nextPageToken:i.nextPageToken}),i}catch(a){if(!(a instanceof Error&&(0,ag.default)(a.message)))throw a}let h=Math.min(50,f.size+ai.YOUTUBE_SEARCH_PAGE_SIZE+5),i=(await af(d,b,h)).filter(a=>!f.has(a.videoId)).slice(0,ai.YOUTUBE_SEARCH_PAGE_SIZE),j={tracks:i.map(a=>ap(a,d)),source:"scrape",hasMore:i.length>=ai.YOUTUBE_SEARCH_PAGE_SIZE};return e&&ao(d,{tracks:j.tracks,source:j.source}),j}let ar="muzical-youtube-api-key-changed",as={hasKey:!1,blocked:!1,ready:!1},at=as;function au(){let a=(0,ak.default)().trim().length>0,b=(0,ac.default)(),c=a&&!b;return at.hasKey===a&&at.blocked===b&&at.ready===c?at:at={hasKey:a,blocked:b,ready:c}}function av(a){let b=()=>a();return window.addEventListener("focus",b),window.addEventListener("storage",b),window.addEventListener(ar,b),()=>{window.removeEventListener("focus",b),window.removeEventListener("storage",b),window.removeEventListener(ar,b)}}function aw(){let a,g,{libraryTracks:j,addToLibrary:k,addToQueue:l,compactLists:m,recordRecentBrowseSearch:n}=(0,f.useLibrary)(),o=(0,e.useSearchParams)(),[p,q]=(0,d.useState)(""),[r,s]=(0,d.useState)([]),[t,u]=(0,d.useState)(!1),[v,w]=(0,d.useState)(!1),[x,y]=(0,d.useState)(!1),[z,A]=(0,d.useState)(null),[B,C]=(0,d.useState)(null),D=(0,d.useRef)(null),E=(0,d.useRef)(null),{checked:F,blocked:G,hasKey:H}=(a=(0,d.useSyncExternalStore)(()=>()=>{},()=>!0,()=>!1),g=(0,d.useSyncExternalStore)(av,au,()=>as),(0,d.useMemo)(()=>({checked:a,...g}),[a,g])),[I,J]=(0,d.useState)(null),K=(0,d.useCallback)(a=>j.some(b=>b.id===a),[j]),N=(0,d.useCallback)(()=>{E.current&&(window.clearTimeout(E.current),E.current=null),D.current&&(D.current.abort(),D.current=null),s([]),u(!1),w(!1),y(!1),A(null),C(null),J(null)},[]),O=(0,d.useCallback)(a=>{if(q(a),a.trim().length<2)return void N();if(!F){C(null),s([]);return}u(!0),C(null)},[F,N]);i(o,O),(0,d.useEffect)(()=>{let a=p.trim();if(a.length<2||!F)return;E.current&&(window.clearTimeout(E.current),E.current=null),D.current&&(D.current.abort(),D.current=null);let b=new AbortController;return D.current=b,E.current=window.setTimeout(()=>{u(!0),aq(a,b.signal).then(b=>{s(b.tracks),J(b.source),A(b.nextPageToken??null),y(b.hasMore),C(null),n("youtube",a)}).catch(a=>{a instanceof Error&&"AbortError"===a.name||"object"==typeof a&&null!==a&&"name"in a&&"AbortError"===a.name||(J(null),C(a instanceof Error?a.message:"YouTube search failed"),s([]),y(!1),A(null))}).finally(()=>u(!1))},ai.YOUTUBE_SEARCH_DEBOUNCE_MS),()=>{E.current&&(window.clearTimeout(E.current),E.current=null),D.current&&(D.current.abort(),D.current=null)}},[p,F,n]);let P=(0,d.useCallback)(a=>l(a),[l]),Q=(0,d.useCallback)(a=>k(a),[k]),R=(0,d.useCallback)(a=>{let b=a.filter(a=>!K(a.id));b.length>0&&k(b)},[k,K]),S=(0,d.useCallback)(a=>{0!==a.length&&l(a)},[l]),T=(0,d.useCallback)(()=>{let a=p.trim();a.length<2||v||t||!F||!x||(w(!0),C(null),aq(a,void 0,{pageToken:z??void 0,excludeVideoIds:r.map(a=>a.youtubeVideoId?.trim()).filter(a=>!!a)}).then(a=>{s(b=>{let c=new Set(b.map(a=>a.id)),d=[...b];for(let b of a.tracks)c.has(b.id)||(c.add(b.id),d.push(b));return d}),A(a.nextPageToken??null),y(a.hasMore),a.source&&J(a.source)}).catch(a=>{C(a instanceof Error?a.message:"YouTube search failed")}).finally(()=>w(!1)))},[p,v,t,F,x,z,r]),U=p.trim(),V=U.length>0&&U.length<2,W=r.length>0;return(0,b.jsxs)("section",{className:"flex h-full min-h-0 flex-1 flex-col overflow-hidden border-b border-zinc-200 bg-zinc-50/80 dark:border-zinc-800 dark:bg-zinc-900/30 lg:border-b-0 lg:border-r",children:[(0,b.jsxs)("div",{className:"shrink-0 space-y-3 border-b border-zinc-200 px-4 py-3 dark:border-zinc-800",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"YouTube"}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-zinc-400",children:["Search YouTube and add videos to your queue or library. A Data API key in"," ",(0,b.jsx)(c.default,{href:"/settings/youtube",className:"font-medium text-accent-700 hover:underline dark:text-accent-400",children:"Settings → YouTube"})," ","improves results; if quota runs out, search falls back automatically."]})]}),(0,b.jsx)("input",{type:"search",value:p,onChange:a=>O(a.target.value),placeholder:"Search YouTube…",disabled:!F,className:"w-full rounded-lg border border-zinc-200 bg-white px-3 py-2 text-sm text-zinc-900 shadow-sm outline-none ring-accent-500/0 transition focus:border-accent-400 focus:ring-2 focus:ring-accent-500/20 disabled:opacity-50 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100 dark:focus:border-accent-500/60","aria-label":"Search YouTube"}),(0,b.jsx)(h,{source:"youtube",onSelect:O})]}),(0,b.jsxs)("div",{className:"min-h-0 flex-1 overflow-auto px-2 py-2",children:[F&&B?(0,b.jsx)("p",{className:"px-2 py-4 text-sm text-red-600 dark:text-red-400",role:"alert",children:B}):null,F&&!H&&"scrape"===I&&(G||U.length>=2)?(0,b.jsxs)("p",{className:"px-2 pb-2 text-center text-xs text-zinc-500",children:["Using fallback search (API quota exceeded or unavailable). Durations may be missing.",G?(0,b.jsxs)(b.Fragment,{children:[" ","Save your key again in"," ",(0,b.jsx)(c.default,{href:"/settings/youtube",className:"font-medium text-accent-700 hover:underline dark:text-accent-400",children:"Settings → YouTube"})," ","to retry the Data API."]}):null]}):null,F&&t?(0,b.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"Searching YouTube…"}):null,F&&V?(0,b.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"Type at least 2 characters to search."}):null,F&&0===U.length?(0,b.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"Search YouTube to find videos to queue or save to your library."}):null,!F||t||!(U.length>=2)||W||B?null:(0,b.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"No YouTube results for that query."}),F&&W?(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 px-2 pb-2",children:[(0,b.jsxs)("p",{className:"text-xs text-zinc-500",children:[r.length," video",1===r.length?"":"s"]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-1",children:[(0,b.jsx)("button",{type:"button",onClick:()=>S(r),className:"cursor-pointer rounded-full border border-zinc-200 bg-white px-2 py-1 text-xs font-medium text-zinc-700 transition hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:bg-zinc-800",children:"Add all to queue"}),(0,b.jsx)("button",{type:"button",onClick:()=>R(r),disabled:r.every(a=>K(a.id)),className:"cursor-pointer rounded-full border border-zinc-200 bg-white px-2 py-1 text-xs font-medium text-zinc-700 transition hover:bg-zinc-50 disabled:opacity-40 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:bg-zinc-800",children:"Save all to library"})]})]}),(0,b.jsx)("ul",{className:m?"space-y-0.25":"space-y-0.5",children:r.map(a=>(0,b.jsx)("li",{children:(0,b.jsx)(M.default,{track:a,alreadySaved:K(a.id),compact:m,onQueue:P,onSave:Q,subtitle:a.artist})},a.id))}),(0,b.jsx)(L,{hasMore:x,loading:v,onLoadMore:T})]}):null]})]})}function ax(a){return"musicbrainz"===a||"youtube"===a?a:"library"}var ay=a.i(358);function az(){let a,c,f,g,h=(0,e.useSearchParams)();a=(0,e.useRouter)(),c=(0,e.usePathname)(),f=(0,e.useSearchParams)(),g=(0,d.useRef)(!1),(0,d.useEffect)(()=>{if(g.current||(g.current=!0,f.has("view")))return;let b=(0,ay.default)();if("library"===b)return;let d=new URLSearchParams(f.toString());d.set("view",b);let e=d.toString();a.replace(e?`${c}?${e}`:c,{scroll:!1})},[c,a,f]);let i=ax(h.get("view"));return(0,b.jsx)("div",{className:"flex h-full min-h-0 flex-1 flex-col overflow-hidden",children:"library"===i?(0,b.jsx)(K,{}):"musicbrainz"===i?(0,b.jsx)(ae,{}):(0,b.jsx)(aw,{})})}let aA=["library","musicbrainz","youtube"];function aB(){let a=(0,e.useRouter)(),c=(0,e.usePathname)(),f=(0,e.useSearchParams)(),g=ax(f.get("view")),h=(0,d.useCallback)(b=>{let d=new URLSearchParams(f.toString());"library"===b?d.delete("view"):d.set("view",b);let e=d.toString();a.replace(e?`${c}?${e}`:c,{scroll:!1})},[c,a,f]);return(0,b.jsx)("div",{className:"flex items-center gap-1",role:"tablist","aria-label":"Browse source",children:aA.map(a=>(0,b.jsx)("button",{type:"button",role:"tab","aria-selected":g===a,onClick:()=>h(a),className:["cursor-pointer rounded-full px-3 py-1.5 text-xs font-medium transition",g===a?"bg-accent-500 text-zinc-950":"bg-zinc-200 text-zinc-700 hover:bg-zinc-300 dark:bg-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-700"].join(" "),children:"musicbrainz"===a?"MusicBrainz":"youtube"===a?"YouTube":"Library"},a))})}let aC=(0,d.forwardRef)(function(a,c){let e=(0,d.useRef)(null),f=(0,d.useRef)(null),g=(0,d.useRef)(a.isPlaying),h=(0,d.useRef)(a.onReady),i=(0,d.useRef)(a.onEnded),j=(0,d.useRef)(a.onError),k=(0,d.useRef)(a.onDuration);return(0,d.useLayoutEffect)(()=>{g.current=a.isPlaying},[a.isPlaying]),(0,d.useLayoutEffect)(()=>{h.current=a.onReady,i.current=a.onEnded,j.current=a.onError,k.current=a.onDuration},[a.onDuration,a.onEnded,a.onError,a.onReady]),(0,d.useImperativeHandle)(c,()=>({seekTo(a){let b=f.current;if(b)try{b.seekTo(a,!0)}catch{}},getCurrentTime(){try{let a=f.current?.getCurrentTime();return Number.isFinite(a)&&a>=0?a:0}catch{return 0}},getDuration(){try{let a=f.current?.getDuration();return Number.isFinite(a)&&a>0?a:0}catch{return 0}}})),(0,d.useEffect)(()=>{let b=a.videoId?.trim();if(!b){if(f.current){try{f.current.destroy()}catch{}f.current=null}return}let c=a=>{try{let b=a.getDuration();Number.isFinite(b)&&b>0&&k.current?.(b)}catch{}},d=()=>{if(!window.YT?.Player||!e.current)return;let k=f.current;if(k){try{k.loadVideoById(b),k.setVolume(Math.round(100*a.volume)),c(k),g.current?k.playVideo():k.pauseVideo()}catch{try{k.destroy()}catch{}f.current=null,d()}return}f.current=new window.YT.Player(e.current,{height:"200",width:"200",videoId:b,playerVars:{autoplay:+!!g.current,controls:0,disablekb:1,fs:0,rel:0,modestbranding:1,iv_load_policy:3,origin:window.location.origin},events:{onReady:b=>{try{b.target.setVolume(Math.round(100*a.volume)),c(b.target)}catch{}if(h.current?.(),g.current)try{b.target.playVideo()}catch{}},onStateChange:a=>{let b=window.YT;if(b){if(a.data===b.PlayerState.ENDED)return void i.current?.();if(g.current&&(a.data===b.PlayerState.CUED||a.data===b.PlayerState.PAUSED))try{a.target.playVideo()}catch{}a.data===b.PlayerState.PLAYING&&c(a.target)}},onError:()=>{j.current?.("YouTube playback failed for this track.")}}})};if(window.YT?.Player)d();else{if(!document.getElementById("youtube-iframe-api")){let a=document.createElement("script");a.id="youtube-iframe-api",a.src="https://www.youtube.com/iframe_api",a.async=!0,document.body.appendChild(a)}let a=window.onYouTubeIframeAPIReady;window.onYouTubeIframeAPIReady=()=>{d(),"function"==typeof a&&a()}}return()=>{if(f.current){try{f.current.destroy()}catch{}f.current=null}}},[a.videoId,a.volume]),(0,d.useEffect)(()=>{let b=f.current;if(b&&a.videoId?.trim())try{a.isPlaying?b.playVideo():b.pauseVideo()}catch{}},[a.isPlaying,a.videoId]),(0,d.useEffect)(()=>{let b=f.current;if(b&&a.videoId?.trim())try{b.setVolume(Math.round(100*a.volume))}catch{}},[a.volume,a.videoId]),(0,b.jsx)("div",{ref:e,className:"pointer-events-none fixed top-0 left-[-9999px] h-[200px] w-[200px] overflow-hidden opacity-0","aria-hidden":!0,tabIndex:-1})});var aD=a.i(53804),aE=a.i(57670),aF=a.i(82986),aG=a.i(96391);function aH(a){let{"aria-label":c,onSessionStart:e,onSessionMove:f,onSessionEnd:g}=a,h=(0,d.useCallback)(a=>{a.preventDefault();let b=a.currentTarget,c=a.clientX;e(),b.setPointerCapture(a.pointerId);let d=a=>{f(a.clientX-c)},h=a=>{try{b.releasePointerCapture(a.pointerId)}catch{}window.removeEventListener("pointermove",d),window.removeEventListener("pointerup",h),window.removeEventListener("pointercancel",h),g()};window.addEventListener("pointermove",d),window.addEventListener("pointerup",h),window.addEventListener("pointercancel",h)},[g,f,e]);return(0,b.jsxs)("div",{role:"separator","aria-orientation":"vertical","aria-label":c,tabIndex:0,onPointerDown:h,className:"group relative z-10 flex w-0 shrink-0 cursor-col-resize justify-center outline-none max-lg:hidden",children:[(0,b.jsx)("div",{className:"absolute top-0 bottom-0 left-1/2 w-3 -translate-x-1/2 bg-transparent transition-colors group-hover:bg-accent-500/15 group-active:bg-accent-500/25","aria-hidden":!0}),(0,b.jsx)("div",{className:"pointer-events-none absolute top-0 bottom-0 left-1/2 w-px -translate-x-1/2 bg-zinc-200 dark:bg-zinc-700","aria-hidden":!0})]})}function aI(){return(0,b.jsxs)("div",{className:"flex h-full min-h-0 flex-1 flex-col items-center justify-center gap-3 px-4 py-12",role:"status","aria-live":"polite","aria-label":"Loading queue",children:[(0,b.jsx)("span",{className:"h-8 w-8 animate-spin rounded-full border-2 border-zinc-300 border-t-accent-500 dark:border-zinc-600 dark:border-t-accent-400","aria-hidden":!0}),(0,b.jsx)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400",children:"Loading queue…"})]})}function aJ(a){var d,e;let f,g="youtube"===(d=a.entry.source)?"YouTube":"musicbrainz"===d?"MusicBrainz":"Library";return(0,b.jsxs)(c.default,{href:(e=a.entry,f=new URLSearchParams,"youtube"===e.source?f.set("view","youtube"):"musicbrainz"===e.source&&f.set("view","musicbrainz"),f.set("q",e.query),`/?${f.toString()}`),scroll:!1,className:"inline-flex max-w-full min-w-0 items-center gap-2 rounded-full border border-zinc-200 bg-white px-3 py-1.5 text-left text-xs shadow-sm transition hover:border-accent-400/50 hover:bg-accent-50/50 dark:border-zinc-800 dark:bg-zinc-950/40 dark:hover:border-accent-500/30 dark:hover:bg-accent-950/20",children:[(0,b.jsx)("span",{className:"shrink-0 font-medium uppercase tracking-wider text-zinc-500",children:g}),(0,b.jsx)("span",{className:"truncate font-medium text-zinc-900 dark:text-zinc-100",children:a.entry.query})]})}function aK(a){return a.visible?(0,b.jsxs)("div",{role:"status","aria-live":"polite","aria-busy":"true",className:"pointer-events-none fixed bottom-24 right-4 z-50 w-[min(100vw-2rem,22rem)] rounded-xl border border-zinc-200/90 bg-white/95 p-4 shadow-lg shadow-zinc-900/10 backdrop-blur-sm dark:border-zinc-700/80 dark:bg-zinc-900/95 dark:shadow-black/40",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Resolving stream…"}),a.trackTitle?(0,b.jsx)("p",{className:"mt-1 truncate text-xs text-zinc-600 dark:text-zinc-400",children:a.trackTitle}):null,(0,b.jsx)("div",{className:"mt-3 h-1 overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-800",children:(0,b.jsx)("div",{className:"h-full w-1/3 animate-pulse rounded-full bg-accent-500 dark:bg-accent-400"})})]}):null}var aL=a.i(35428),aM=a.i(22451);function aN(a,b,c){return Math.min(c,Math.max(b,a))}function aO(a,b,c){if(a<=0)return{libraryPx:b,queuePx:c};let d=Math.max(720,a-350),e=aN(b,300,960),f=Math.max(420,c);if(e+f>d){let a=e+f-d,b=Math.min(a,e-300);e-=b;let c=a-b,g=Math.min(c,f-420);f-=g,(c-=g)>0&&(e=Math.max(300,e-c))}return{libraryPx:e,queuePx:f}}function aP(a){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,className:a.className,children:(0,b.jsx)("path",{d:"M8 5v14l11-7L8 5z"})})}function aQ(a){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,className:a.className,children:(0,b.jsx)("path",{d:"M6 5h4v14H6V5zm8 0h4v14h-4V5z"})})}function aR(a){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,className:a.className,children:(0,b.jsx)("path",{d:"M6 6h2v12H6V6zm3.5 6 8.5 6V6l-8.5 6z"})})}function aS(a){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,className:a.className,children:(0,b.jsx)("path",{d:"M16 18h2V6h-2v12zM6 18l8.5-6L6 6v12z"})})}function aT(a){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,className:a.className,children:(0,b.jsx)("path",{d:"M3 10v4h4l5 5V5L7 10H3zm13.5 2A4.5 4.5 0 0 0 14 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"})})}function aU(a){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,className:a.className,children:(0,b.jsx)("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2zm12 1v6l5-3-5-3z"})})}function aV(a){return(0,b.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,className:a.className,children:[(0,b.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,b.jsx)("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})]})}function aW(a){return(0,b.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,className:[a.className,a.dimmed?"opacity-40":""].filter(Boolean).join(" "),children:[(0,b.jsx)("path",{d:"M17 1l4 4-4 4"}),(0,b.jsx)("path",{d:"M3 11V9a4 4 0 0 1 4-4h14"}),(0,b.jsx)("path",{d:"M7 23l-4-4 4-4"}),(0,b.jsx)("path",{d:"M21 13v2a4 4 0 0 1-4 4H3"})]})}function aX(a){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":!0,className:a.className,children:(0,b.jsx)("path",{d:"M16 3h5v5M4 20L21 3M21 16v5h-5M15 15l6 6M4 4l5 5",strokeLinecap:"round",strokeLinejoin:"round"})})}function aY(a){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,className:a.className,children:(0,b.jsx)("path",{d:"m9 18 6-6-6-6"})})}a.s(["default",0,function(){let{queue:a,libraryTracks:e,isScanning:g,youtubePrefetchActive:h,youtubePrefetchVideoCount:i,resolveFileForTrack:j,bumpTrackDuration:k,removeFromQueue:l,clearQueue:m,compactLists:o,reorderQueueItems:v,recentlyPlayedTrackIds:w,recentBrowseSearches:x,recordRecentlyPlayedTrack:y,isFavoriteSong:z,toggleFavoriteTrack:B,addToQueue:C,addToLibrary:D,removeFromLibrary:E,openTrackDetails:F,openRelatedSongs:G,favoriteSongIds:H,favoriteArtistNames:I,favoriteAlbumKeys:J,isFavoriteArtist:K,isFavoriteAlbum:L,toggleFavoriteArtist:M,toggleFavoriteAlbum:O,playbackRestore:P,consumePlaybackRestore:Q,playNowRequest:R,consumePlayNowRequest:S,reportPlayback:T,isQueueReady:U,patchTrackById:V}=(0,f.useLibrary)(),{preferences:W,setRepeatMode:X,setShuffle:Y,setPlaybackRate:Z,setVolume:$}=(0,aD.usePlaybackPreferences)(),{repeatMode:_,shuffle:aa,playbackRate:ab,autoAdvanceOnEnd:ac,seekStepSmallSec:ad,seekStepLargeSec:ae,rememberVolume:af}=W,[ag,ah]=(0,d.useState)(null),[ai,aj]=(0,d.useState)(!1),[ak,al]=(0,d.useState)(0),[am,an]=(0,d.useState)(0),[ao,ap]=(0,d.useState)(null),[aq,ar]=(0,d.useState)(null),[as,at]=(0,d.useState)(!1),[au,av]=(0,d.useState)(null),[aw,ax]=(0,d.useState)(!1),[ay,aA]=(0,d.useState)(440),[aZ,a$]=(0,d.useState)(300),a_=af?W.volume:ao??aE.DEFAULT_PLAYBACK_VOLUME,a0=(0,d.useRef)(null),a1=(0,d.useRef)([]),a2=(0,d.useRef)(null),a3=(0,d.useRef)(null),a4=(0,d.useRef)(0),a5=(0,d.useRef)(440),a6=(0,d.useRef)(300),[a7,a8]=(0,d.useState)(null),[a9,ba]=(0,d.useState)(null),[bb,bc]=(0,d.useState)(!0),bd=(0,d.useRef)(null),be=(0,d.useRef)(null),bf=(0,d.useRef)(null),bg=(0,d.useRef)(null),bh=(0,d.useRef)(null),bi=(0,d.useRef)(ai),bj=(0,d.useRef)(ab);(0,d.useLayoutEffect)(()=>{bi.current=ai},[ai]),(0,d.useLayoutEffect)(()=>{bj.current=ab},[ab]),(0,d.useLayoutEffect)(()=>{a5.current=ay,a6.current=aZ},[ay,aZ]),(0,d.useEffect)(()=>{queueMicrotask(()=>{aA(440),a$(300)})},[]),(0,d.useEffect)(()=>{aa||(a1.current=[])},[aa]),(0,d.useLayoutEffect)(()=>{},[]),(0,d.useEffect)(()=>{a3.current=ag},[ag]),(0,d.useEffect)(()=>{if(!P)return;let{activeQueueId:a,positionSec:b}=P;a2.current=b,Q(),Promise.resolve().then(()=>{ah(a),al(b),aj(!1)})},[P,Q]),(0,d.useEffect)(()=>{if(!R)return;let{activeQueueId:a}=R;S(),a1.current=[],Promise.resolve().then(()=>{ah(a),al(0),ar(null),aj(!0)})},[R,S]),(0,d.useEffect)(()=>{let a=be.current;T(ag,a&&Number.isFinite(a.currentTime)?a.currentTime:0)},[ag,T]);let bk=(0,d.useMemo)(()=>{if(0===a.length)return -1;if(ag){let b=a.findIndex(a=>a.queueId===ag);if(b>=0)return b}return 0},[a,ag]),bl=bk>=0?a[bk]?.track:void 0,bm=(0,d.useRef)(null);(0,d.useEffect)(()=>{if(!ai)return;let a=bl?.id??"";a&&bm.current!==a&&(bm.current=a,y(a))},[bl?.id,ai,y]);let bn=(0,d.useMemo)(()=>{if(0===w.length)return[];let a=new Map;for(let b of e)a.set(b.id,b);let b=[];for(let c of w){let d=a.get(c);if(d&&b.push(d),b.length>=8)break}return b},[w,e]),bo=(0,d.useMemo)(()=>N(e),[e]),bp=(0,d.useMemo)(()=>{let a=new Map;for(let b of e){let c=(0,A.albumCompositeKey)(b.album,b.artist),d=a.get(c)??[];d.push(b),a.set(c,d)}for(let b of a.values())b.sort((a,b)=>a.title.localeCompare(b.title,void 0,{sensitivity:"base"}));return a},[e]),bq=(0,d.useMemo)(()=>I.filter(a=>bo.has(a)).sort((a,b)=>a.localeCompare(b,void 0,{sensitivity:"base"})),[I,bo]),br=(0,d.useMemo)(()=>J.filter(a=>bp.has(a)).sort((a,b)=>{let[c,d]=a.split("\0"),[e,f]=b.split("\0"),g=c.localeCompare(e,void 0,{sensitivity:"base"});return 0!==g?g:d.localeCompare(f,void 0,{sensitivity:"base"})}),[J,bp]),bs=(0,d.useMemo)(()=>{let a=new Set(H);return e.filter(b=>a.has(b.id)).sort((a,b)=>a.title.localeCompare(b.title,void 0,{sensitivity:"base"}))},[e,H]),bt=(0,d.useMemo)(()=>{let a=new Set,b=[],c=c=>{a.has(c.id)||(a.add(c.id),b.push(c))};for(let a of H){let b=e.find(b=>b.id===a);b&&c(b)}for(let a of I){let b=bo.get(a);if(b)for(let a of b)c(a)}for(let a of J){let b=bp.get(a);if(b)for(let a of b)c(a)}return b.sort((a,b)=>a.title.localeCompare(b.title,void 0,{sensitivity:"base"})),b},[H,I,J,e,bo,bp]),bu=bq.length>0||br.length>0||bs.length>0,bv=(0,d.useMemo)(()=>{let a=[],b=bq.length,c=br.length,d=bs.length;return b>0&&a.push(`${b} artist${1===b?"":"s"}`),c>0&&a.push(`${c} album${1===c?"":"s"}`),d>0&&a.push(`${d} song${1===d?"":"s"}`),a.join(" · ")},[bq.length,br.length,bs.length]),bw=(0,d.useMemo)(()=>{if(0===e.length)return[];let a=new Set,b=[];for(let b of bn)a.add(b.id);for(let b of H)a.add(b);for(let c=0;c<e.length;c++){let d=e[c];if(!a.has(d.id)&&(a.add(d.id),b.push(d),b.length>=12))break}return b},[e,H,bn]),bx=(0,d.useMemo)(()=>x.slice(0,8),[x]),by=(0,d.useMemo)(()=>Math.max(bl?.durationSec??0,Number.isFinite(am)&&am>0?am:0),[bl?.durationSec,am]),bz=(0,d.useCallback)(b=>{a1.current=[],ah(a[b]?.queueId??null),al(0),ar(null),aj(!0)},[a]),bA=(0,d.useCallback)(()=>{if(0===a.length)return;let b=bk>=0?bk:0;if(aa&&a.length>1){a1.current.push(b);let c=b;for(let d=0;d<48&&c===b;d++)c=Math.floor(Math.random()*a.length);ah(a[c]?.queueId??null),al(0),ar(null),aj(!0);return}if(b<a.length-1){ah(a[b+1]?.queueId??null),al(0),ar(null),aj(!0);return}if("all"===_){ah(a[0]?.queueId??null),al(0),ar(null),aj(!0);return}aj(!1)},[bk,a,_,aa]),bB=(0,d.useCallback)(()=>{if(0===a.length)return;let b=bk>=0?bk:0;if(aa&&a1.current.length>0){let b=a1.current.pop();if(void 0!==b&&b>=0&&b<a.length){ah(a[b]?.queueId??null),al(0),ar(null),aj(!0);return}}if(b>0){ah(a[b-1]?.queueId??null),al(0),ar(null),aj(!0);return}"all"===_&&(ah(a[a.length-1]?.queueId??null),al(0),ar(null),aj(!0))},[bk,a,_,aa]),bC=(0,d.useCallback)(()=>{X("off"===_?"all":"all"===_?"one":"off")},[_,X]),bD=(0,d.useCallback)(()=>{Y(!aa)},[aa,Y]),bE=(0,d.useCallback)(()=>{let a=a0.current?.getBoundingClientRect().width??0;if(a<=0)return;let{libraryPx:b,queuePx:c}=aO(a,a5.current,a6.current);aA(b),a$(c)},[]),bF=(0,d.useCallback)(()=>{try{window.localStorage.setItem("muzical.panelWidth.library",String(a5.current)),window.localStorage.setItem("muzical.panelWidth.queue",String(a6.current))}catch{}},[]),bG=(0,d.useCallback)(()=>{bd.current={kind:"library-queue",startLib:a5.current,startQ:a6.current}},[]),bH=(0,d.useCallback)(a=>{let b=bd.current;if(!b||"library-queue"!==b.kind)return;let c=aO(a0.current?.getBoundingClientRect().width??0,b.startLib+a,b.startQ-a);aA(c.libraryPx),a$(c.queuePx)},[]),bI=(0,d.useCallback)(()=>{bd.current={kind:"queue-player",startQ:a6.current}},[]),bJ=(0,d.useCallback)(a=>{var b,c;let d=bd.current;d&&"queue-player"===d.kind&&a$((b=a0.current?.getBoundingClientRect().width??0,c=a5.current,aN(d.startQ+a,420,Math.max(420,b-c-350))))},[]),bK=(0,d.useCallback)(()=>{bd.current=null,bF()},[bF]);(0,d.useEffect)(()=>{if(!aw)return;let a=()=>{bE()};return window.addEventListener("resize",a),bE(),()=>window.removeEventListener("resize",a)},[aw,bE]),(0,d.useEffect)(()=>{let a=be.current;a&&(a.volume=a_)},[a_]),(0,d.useEffect)(()=>{let a=be.current;a&&(a.playbackRate=ab)},[ab]),(0,d.useEffect)(()=>{if(bg.current&&(URL.revokeObjectURL(bg.current),bg.current=null),av(null),!bl||!bl.library&&!bl.youtubeQuery&&!bl.audioUrl){let a=be.current;a&&(a.pause(),a.removeAttribute("src"),a.load()),bf.current&&(URL.revokeObjectURL(bf.current),bf.current=null);return}let a=bl.youtubeVideoId?.trim();if(!bl.library&&a){let b=be.current;b&&(b.pause(),b.removeAttribute("src"),b.load()),bf.current&&(URL.revokeObjectURL(bf.current),bf.current=null),av(p(a));return}if(!bl.library){let a=be.current;a&&(a.pause(),a.removeAttribute("src"),a.load()),bf.current&&(URL.revokeObjectURL(bf.current),bf.current=null);return}let b=!1,c=a2.current,d=requestAnimationFrame(()=>{an(0),al(c??0)});return(async()=>{ar(null);let a=await j(bl);if(b)return;if(!a)return ar("Could not read this file from the library.");let c=n(bl.id,a),d=URL.createObjectURL(a);if(bf.current&&URL.revokeObjectURL(bf.current),bf.current=d,b)return;let e=await c;if(b)return;if(e){let a=URL.createObjectURL(new Blob([e.data],{type:e.mime}));bg.current=a,av(a)}let f=be.current;f&&!b&&(f.src=d,f.load(),f.playbackRate=bj.current,bi.current&&f.play().catch(a=>{ar(a instanceof Error?a.message:"Playback failed"),aj(!1)}))})(),()=>{b=!0,cancelAnimationFrame(d),bg.current&&(URL.revokeObjectURL(bg.current),bg.current=null)}},[bl,j]);let bL=bl?.youtubeVideoId?.trim()||null;(0,d.useEffect)(()=>{!bL||bl?.library||av(p(bL))},[bL,bl?.library,bl?.id]);let bM=!!bL,bN=!!(bl?.youtubeQuery?.trim()&&!bL),bO=(0,d.useCallback)(()=>{if("one"===_){if(bM&&bh.current){bh.current.seekTo(0),al(0),aj(!0);return}let a=be.current;a&&(a.currentTime=0,al(0),a.play().catch(a=>{ar(a instanceof Error?a.message:"Playback failed"),aj(!1)}));return}ac?bA():aj(!1)},[_,ac,bA,bM]);(0,d.useEffect)(()=>{let a=bl?.youtubeQuery?.trim();if(!a||bl?.youtubeVideoId?.trim())return void queueMicrotask(()=>at(!1));let b=new AbortController;return queueMicrotask(()=>at(!0)),(0,aM.default)(a,b.signal).then(a=>{!b.signal.aborted&&(a&&bl?.id?(V(bl.id,b=>({...b,youtubeVideoId:a})),ar(null)):a||ar("Could not find a YouTube video for this track."))}).catch(a=>{b.signal.aborted||a instanceof Error&&"AbortError"===a.name||"object"==typeof a&&null!==a&&"name"in a&&"AbortError"===a.name||ar(a instanceof Error?a.message:"Could not resolve YouTube stream.")}).finally(()=>{b.signal.aborted||at(!1)}),()=>{b.abort()}},[bl?.id,bl?.youtubeQuery,bl?.youtubeVideoId,V]);let bP=(0,d.useCallback)(a=>{an(a),bl?.id&&k(bl.id,a)},[k,bl?.id]);(0,d.useEffect)(()=>{if(!bM)return;let a=()=>{let a=bh.current?.getCurrentTime()??0;Number.isFinite(a)&&a>=0&&(al(a),T(a3.current,a));let b=bh.current?.getDuration()??0;Number.isFinite(b)&&b>0&&an(b)};a();let b=window.setInterval(a,500);return()=>{window.clearInterval(b)}},[bM,T]),(0,d.useEffect)(()=>{let a=be.current;!a||a.src&&(ai?a.play().catch(a=>{ar(a instanceof Error?a.message:"Playback failed"),aj(!1)}):a.pause())},[ai]),(0,d.useEffect)(()=>{let a=be.current;if(!a||!bl)return;let b=()=>{al(a.currentTime);let b=Date.now();b-a4.current>=2e3&&(a4.current=b,T(a3.current,a.currentTime))},c=()=>{Number.isFinite(a.duration)&&a.duration>0&&(an(a.duration),k(bl.id,a.duration));let b=a2.current;if(null!=b&&b>0){let c=Math.min(b,a.duration>0?a.duration:b);a.currentTime=c,al(c),a2.current=null,T(a3.current,c)}},d=()=>{bO()};return a.addEventListener("timeupdate",b),a.addEventListener("loadedmetadata",c),a.addEventListener("ended",d),()=>{a.removeEventListener("timeupdate",b),a.removeEventListener("loadedmetadata",c),a.removeEventListener("ended",d)}},[bl,k,bO,T]),(0,d.useEffect)(()=>()=>{bf.current&&(URL.revokeObjectURL(bf.current),bf.current=null),bg.current&&(URL.revokeObjectURL(bg.current),bg.current=null)},[]);let bQ=(0,d.useCallback)(a=>{let b=Math.min(1,Math.max(0,a));if(bM&&bh.current){let a=by>0?by:bh.current.getDuration();if(a>0){let c=b*a;bh.current.seekTo(c),al(c),T(a3.current,c)}return}let c=be.current;if(!c||!Number.isFinite(c.duration)||c.duration<=0){by>0&&(al(b*by),c&&(c.currentTime=b*by));return}let d=Math.min(c.duration,Math.max(0,b*c.duration));c.currentTime=d,al(d),T(a3.current,d)},[bM,by,T]),bR=(0,d.useCallback)(a=>{if(by<=0)return;let b=null;if("ArrowLeft"===a.key)b=ak-ad;else if("ArrowRight"===a.key)b=ak+ad;else if("PageDown"===a.key)b=ak-ae;else if("PageUp"===a.key)b=ak+ae;else if("Home"===a.key)b=0;else{if("End"!==a.key)return;b=by}a.preventDefault(),bQ(Math.min(by,Math.max(0,b))/by)},[by,bQ,ak,ae,ad]),bS=g?"Scanning…":h?`Prefetching ${i} YouTube video${1===i?"":"s"}…`:`${e.length} in library \xb7 ${a.length} in queue`,bT=o?"gap-2":"gap-3",bU=o?"px-3 py-2":"px-4 py-2.5",bV=o?"px-1.5 py-1.5":"px-2 py-2",bW=o?"gap-2":"gap-3",bX=o?"p-2":"p-3";return(0,b.jsxs)("div",{className:"flex h-full min-h-0 flex-1 flex-col bg-zinc-100 text-zinc-900 dark:bg-zinc-950 dark:text-zinc-100",children:[(0,b.jsx)(aK,{visible:as||bN&&ai,trackTitle:bl?.title}),(0,b.jsx)("audio",{ref:be,className:"hidden",preload:"metadata"}),(0,b.jsx)(aC,{ref:bh,videoId:bL,isPlaying:ai&&bM,volume:a_,onReady:()=>ar(null),onEnded:bO,onDuration:bP,onError:a=>ar(a)}),(0,b.jsxs)("header",{className:"flex shrink-0 flex-wrap items-center gap-x-4 gap-y-3 border-b border-zinc-200 bg-white/90 px-6 py-3 backdrop-blur-sm dark:border-zinc-800/80 dark:bg-zinc-950/90",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)("div",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-accent-500/15 text-accent-700 ring-1 ring-accent-500/25 dark:text-accent-400 dark:ring-accent-500/30",children:(0,b.jsx)(aU,{className:"h-5 w-5"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("h1",{className:"text-sm font-semibold tracking-tight text-zinc-900 dark:text-zinc-50",children:"Muzical"}),(0,b.jsxs)("p",{className:"text-xs text-zinc-500",children:["Local library · browser playback · v",aL.default.version]})]})]}),(0,b.jsx)(aB,{}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsx)(c.default,{href:"/settings/library",className:"hidden cursor-pointer rounded-full border border-zinc-200 bg-zinc-50 px-3 py-1 text-xs text-zinc-500 shadow-sm transition hover:border-zinc-300 hover:bg-zinc-100 hover:text-zinc-700 sm:inline dark:border-zinc-700/80 dark:bg-zinc-900/80 dark:text-zinc-400 dark:shadow-none dark:hover:border-zinc-600 dark:hover:bg-zinc-800 dark:hover:text-zinc-300","aria-label":"Open library settings","aria-live":"polite",children:bS}),(0,b.jsx)(c.default,{href:"/settings",className:"flex h-9 w-9 items-center justify-center rounded-full border border-zinc-200 bg-white text-zinc-600 shadow-sm transition hover:border-zinc-300 hover:bg-zinc-50 hover:text-zinc-900 dark:border-zinc-600 dark:bg-zinc-800 dark:text-zinc-300 dark:shadow-none dark:hover:border-zinc-500 dark:hover:bg-zinc-700 dark:hover:text-zinc-50","aria-label":"Library settings",children:(0,b.jsx)(aV,{className:"h-[18px] w-[18px]"})}),(0,b.jsx)(aG.default,{})]})]}),aq?(0,b.jsx)("p",{className:"shrink-0 border-b border-red-200 bg-red-50 px-6 py-2 text-sm text-red-800 dark:border-red-900/40 dark:bg-red-950/30 dark:text-red-200",role:"alert",children:aq}):null,(0,b.jsxs)("div",{ref:a0,className:"flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden lg:flex-row",children:[(0,b.jsx)("div",{className:"flex min-h-0 min-w-0 flex-col overflow-hidden max-lg:flex-2 max-lg:w-full lg:h-full lg:min-w-0 lg:shrink-0",style:aw?{width:ay,flex:"0 0 auto"}:void 0,children:(0,b.jsx)(az,{})}),(0,b.jsx)(aH,{"aria-label":"Resize library and queue panels",onSessionStart:bG,onSessionMove:bH,onSessionEnd:bK}),(0,b.jsx)("section",{className:"flex min-h-0 min-w-0 flex-col overflow-hidden border-b border-zinc-200 bg-white dark:border-zinc-800/80 dark:bg-zinc-950/50 max-lg:flex-1 max-lg:w-full lg:h-full lg:shrink-0 lg:border-b-0 lg:border-r lg:border-zinc-200 lg:dark:border-zinc-800",style:aw?{width:aZ,flex:"0 0 auto"}:void 0,children:U?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex h-11 shrink-0 items-center justify-between gap-2 border-b border-zinc-200 bg-white/80 px-3 dark:border-zinc-800 dark:bg-zinc-950/80",children:[(0,b.jsx)("h2",{className:"text-xs font-medium uppercase leading-none tracking-wider text-zinc-500",children:"Queue"}),a.length>0?(0,b.jsx)("button",{type:"button",onClick:()=>{m(),ah(null),aj(!1),al(0)},className:"text-xs font-medium text-zinc-500 underline-offset-2 hover:text-zinc-800 hover:underline dark:hover:text-zinc-300",children:"Clear"}):null]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-auto pb-2",children:0===a.length?(0,b.jsxs)("div",{className:"px-4 py-6",children:[(0,b.jsx)("p",{className:"text-sm font-medium text-zinc-700 dark:text-zinc-300",children:"Queue is empty"}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-zinc-500 dark:text-zinc-400",children:["Add something to start playback.",(0,b.jsx)(c.default,{href:"/settings",className:"ml-2 font-medium text-accent-700 underline-offset-2 hover:underline dark:text-accent-400",children:"Library folders"})]}),bn.length>0?(0,b.jsxs)("div",{className:"mt-5",children:[(0,b.jsx)("p",{className:"mb-2 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Recently played"}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:bn.map(a=>(0,b.jsxs)("div",{className:`flex min-w-0 items-center ${bW} rounded-xl border border-zinc-200 bg-white ${bX} shadow-sm dark:border-zinc-800 dark:bg-zinc-950/40 dark:shadow-none`,children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:a.title}),(0,b.jsxs)("p",{className:"truncate text-xs text-zinc-500 dark:text-zinc-400",children:[a.artist," · ",a.album]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] tabular-nums text-zinc-400 dark:text-zinc-500",children:a.durationSec>0?(0,t.formatDuration)(a.durationSec):"—"}),(0,b.jsx)(r,{className:"rounded-full",filled:z(a.id),onPress:()=>B(a),label:z(a.id)?"Remove song from favorites":"Add song to favorites"}),(0,b.jsx)("button",{type:"button",onClick:()=>C(a),className:"shrink-0 rounded-full bg-accent-500/15 px-2.5 py-1 text-xs font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 dark:text-accent-300 dark:ring-accent-500/40",children:"Add"})]})]},a.id))})]}):null,bu?(0,b.jsxs)("div",{className:"mt-5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>bc(a=>!a),"aria-expanded":bb,className:"flex min-w-0 items-center gap-1 rounded-md py-0.5 text-left text-xs font-medium uppercase tracking-wider text-zinc-500 transition hover:text-zinc-700 dark:hover:text-zinc-300",children:[(0,b.jsx)(aY,{className:["h-3.5 w-3.5 shrink-0 text-zinc-400 transition-transform",bb?"rotate-90":""].join(" ")}),(0,b.jsx)("span",{children:"Favorites"}),!bb&&bv?(0,b.jsxs)("span",{className:"truncate font-normal normal-case tracking-normal text-zinc-400",children:["· ",bv]}):null]}),bt.length>0?(0,b.jsxs)("button",{type:"button",onClick:()=>C(bt),className:"rounded-full border border-zinc-200 bg-white px-2.5 py-1 text-xs font-medium text-zinc-700 transition hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-200 dark:hover:bg-zinc-800",children:["Add all (",bt.length,")"]}):null]}),bb?(0,b.jsxs)("div",{className:"mt-3 space-y-4",children:[bq.length>0?(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-2 text-[11px] font-medium uppercase tracking-wider text-zinc-400",children:"Artists"}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:bq.map(a=>{let c=bo.get(a)??[];return(0,b.jsxs)("div",{className:`flex min-w-0 items-center ${bW} rounded-xl border border-zinc-200 bg-white ${bX} shadow-sm dark:border-zinc-800 dark:bg-zinc-950/40 dark:shadow-none`,children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:a}),(0,b.jsxs)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:[c.length," track",1===c.length?"":"s"]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)(r,{className:"rounded-full",filled:K(a),onPress:()=>M(a),label:"Remove artist from favorites"}),(0,b.jsx)("button",{type:"button",onClick:()=>C(c),disabled:0===c.length,className:"shrink-0 rounded-full bg-accent-500/15 px-2.5 py-1 text-xs font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 disabled:opacity-40 dark:text-accent-300 dark:ring-accent-500/40",children:"Add all"})]})]},a)})})]}):null,br.length>0?(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-2 text-[11px] font-medium uppercase tracking-wider text-zinc-400",children:"Albums"}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:br.map(a=>{let[c,d]=a.split("\0"),e=bp.get(a)??[],f=e[0];return(0,b.jsxs)("div",{className:`flex min-w-0 items-center ${bW} rounded-xl border border-zinc-200 bg-white ${bX} shadow-sm dark:border-zinc-800 dark:bg-zinc-950/40 dark:shadow-none`,children:[(0,b.jsx)(q,{track:f,className:"h-10 w-10 shrink-0 rounded-md"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:c}),(0,b.jsx)("p",{className:"truncate text-xs text-zinc-500 dark:text-zinc-400",children:d}),(0,b.jsxs)("p",{className:"text-[11px] text-zinc-400 dark:text-zinc-500",children:[e.length," track",1===e.length?"":"s"]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)(r,{className:"rounded-full",filled:L(a),onPress:()=>O(a),label:"Remove album from favorites"}),(0,b.jsx)("button",{type:"button",onClick:()=>C(e),disabled:0===e.length,className:"shrink-0 rounded-full bg-accent-500/15 px-2.5 py-1 text-xs font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 disabled:opacity-40 dark:text-accent-300 dark:ring-accent-500/40",children:"Add all"})]})]},a)})})]}):null,bs.length>0?(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-2 text-[11px] font-medium uppercase tracking-wider text-zinc-400",children:"Songs"}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:bs.map(a=>(0,b.jsxs)("div",{className:`flex min-w-0 items-center ${bW} rounded-xl border border-zinc-200 bg-white ${bX} shadow-sm dark:border-zinc-800 dark:bg-zinc-950/40 dark:shadow-none`,children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:a.title}),(0,b.jsxs)("p",{className:"truncate text-xs text-zinc-500 dark:text-zinc-400",children:[a.artist," · ",a.album]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] tabular-nums text-zinc-400 dark:text-zinc-500",children:a.durationSec>0?(0,t.formatDuration)(a.durationSec):"—"}),(0,b.jsx)(r,{className:"rounded-full",filled:z(a.id),onPress:()=>B(a),label:"Remove song from favorites"}),(0,b.jsx)("button",{type:"button",onClick:()=>C(a),className:"shrink-0 rounded-full bg-accent-500/15 px-2.5 py-1 text-xs font-medium text-accent-800 ring-1 ring-accent-500/25 transition hover:bg-accent-500/25 dark:text-accent-300 dark:ring-accent-500/40",children:"Add"})]})]},a.id))})]}):null]}):null]}):null,bx.length>0||bw.length>0?(0,b.jsxs)("div",{className:"mt-6",children:[(0,b.jsx)("p",{className:"mb-2 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Suggestions"}),bx.length>0?(0,b.jsx)("div",{className:"mb-3 flex flex-wrap gap-2",children:bx.map(a=>(0,b.jsx)(aJ,{entry:a},`${a.source}\u0000${a.query}`))}):null,bw.length>0?(0,b.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:bw.map(a=>(0,b.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>C(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),C(a))},"aria-label":`Add ${a.title} to queue`,className:`flex w-full min-w-0 cursor-pointer items-center text-left ${bW} rounded-xl border border-zinc-200 bg-white ${bX} shadow-sm transition hover:border-accent-400/50 hover:bg-accent-50/50 dark:border-zinc-800 dark:bg-zinc-950/40 dark:hover:border-accent-500/30 dark:hover:bg-accent-950/20 dark:shadow-none`,children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:a.title}),(0,b.jsxs)("p",{className:"truncate text-xs text-zinc-500 dark:text-zinc-400",children:[a.artist," · ",a.album]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] tabular-nums text-zinc-400 dark:text-zinc-500",children:a.durationSec>0?(0,t.formatDuration)(a.durationSec):"—"}),(0,b.jsx)(r,{className:"rounded-full",filled:z(a.id),onPress:()=>B(a),label:z(a.id)?"Remove song from favorites":"Add song to favorites"})]})]},a.id))}):null]}):null]}):(0,b.jsx)("ul",{className:"divide-y divide-zinc-200 dark:divide-zinc-800",role:"listbox","aria-label":"Track queue",children:a.map((c,d)=>{let f=c.track,g=d===bk,h=a7===c.queueId&&a9!==c.queueId,i=!f.library&&(!!("musicbrainz"===f.source||"youtube"===f.source||f.id.startsWith("musicbrainz:"))||!!f.youtubeQuery?.trim()),j=e.some(a=>a.id===f.id);return(0,b.jsxs)("li",{className:["group/row flex items-center gap-0",g?"bg-accent-50/90 dark:bg-white/6":"",h?"ring-1 ring-accent-400/30":""].join(" "),onDragOver:a=>{a9&&(a.preventDefault(),a7!==c.queueId&&a8(c.queueId))},onDrop:b=>{if(b.preventDefault(),ba(null),a8(null),!a9||a9===c.queueId)return;let e=a.findIndex(a=>a.queueId===a9);if(e<0)return;let f=b.currentTarget.getBoundingClientRect(),g=b.clientY>f.top+f.height/2?d+1:d;v(e,e<g?g-1:g)},children:[(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":g,onClick:()=>bz(d),draggable:!0,onDragStart:a=>{ba(c.queueId),a8(c.queueId),a.dataTransfer.effectAllowed="move",a.dataTransfer.setData("text/plain",c.queueId)},onDragEnd:()=>{ba(null),a8(null)},className:[`flex min-w-0 flex-1 items-center ${bT} border-l-2 border-transparent ${bU} text-left transition-colors`,g?"border-accent-500 dark:border-accent-400":"hover:bg-zinc-50 dark:hover:bg-zinc-900/60","cursor-grab active:cursor-grabbing",h?"border-accent-500/20 dark:border-accent-400/20":""].join(" "),children:[(0,b.jsx)("span",{className:"w-5 shrink-0 text-right text-[11px] tabular-nums text-zinc-400 dark:text-zinc-500",children:d+1}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium leading-snug text-zinc-900 dark:text-zinc-100",children:f.title}),(0,b.jsxs)("p",{className:"truncate text-xs leading-snug text-zinc-500 dark:text-zinc-400",children:[f.artist," · ",f.album]})]}),(0,b.jsx)("span",{className:"shrink-0 text-[11px] tabular-nums text-zinc-400 dark:text-zinc-500",children:f.durationSec>0?(0,t.formatDuration)(f.durationSec):"—"})]}),(0,b.jsxs)("div",{className:["flex shrink-0 items-center border-l pr-1 pl-0.5",g?"border-accent-200/80 dark:border-white/8":"border-zinc-200 bg-zinc-50/80 dark:border-zinc-800 dark:bg-zinc-900/40"].join(" "),children:[(0,b.jsx)(r,{className:"rounded-none",filled:z(f.id),onPress:()=>B(f),label:z(f.id)?"Remove song from favorites":"Add song to favorites"}),(0,b.jsx)(s.default,{triggerLabel:`Actions for ${f.title}`,items:(0,u.default)({track:f,onViewDetails:F,onViewRelatedSongs:G,onSave:i&&!j?()=>D(f):void 0,onRemoveFromLibrary:j?()=>E(f):void 0})}),(0,b.jsx)("button",{type:"button","aria-label":`Remove ${f.title} from queue`,onClick:()=>{let b=ag===c.queueId,e=b?a[d+1]?.queueId??a[d-1]?.queueId??null:ag;l(c.queueId),ah(e),b&&!e&&(aj(!1),al(0))},className:`shrink-0 ${bV} text-[11px] text-zinc-500 opacity-80 transition hover:bg-zinc-200/80 hover:text-zinc-900 sm:opacity-0 sm:group-hover/row:opacity-100 dark:hover:bg-zinc-800 dark:hover:text-zinc-100`,children:"Remove"})]})]},c.queueId)})})})]}):(0,b.jsx)(aI,{})}),(0,b.jsx)(aH,{"aria-label":"Resize queue and player panels",onSessionStart:bI,onSessionMove:bJ,onSessionEnd:bK}),(0,b.jsxs)("aside",{className:"flex min-h-0 min-w-0 flex-1 flex-col justify-between gap-3 overflow-hidden bg-zinc-50 p-4 dark:bg-transparent lg:h-full lg:min-w-0 lg:flex-1",children:[(0,b.jsxs)("div",{className:"mx-auto flex w-full max-w-[280px] shrink-0 flex-col gap-4",children:[(0,b.jsx)("div",{className:"relative aspect-square w-full overflow-hidden rounded-2xl bg-linear-to-br from-accent-200/90 via-zinc-100 to-zinc-200 ring-1 ring-zinc-300/70 shadow-xl shadow-zinc-400/20 dark:from-accent-900/40 dark:via-zinc-800 dark:to-zinc-900 dark:ring-zinc-700/60 dark:shadow-2xl dark:shadow-black/40","aria-hidden":!0,children:au?(0,b.jsx)("img",{src:au,alt:"",className:"absolute inset-0 h-full w-full object-cover",decoding:"async"}):(0,b.jsx)("div",{className:"flex h-full w-full items-center justify-center p-8",children:(0,b.jsx)("span",{className:"select-none text-6xl font-bold tracking-tighter text-accent-800/20 dark:text-zinc-700/90",children:bl?.album?bl.album.charAt(0):"♪"})})}),(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("p",{className:"truncate text-lg font-semibold tracking-tight text-zinc-900 dark:text-zinc-50",children:bl?.title??"—"}),(0,b.jsx)("p",{className:"mt-1 truncate text-sm text-zinc-600 dark:text-zinc-400",children:bl?.artist??""}),(0,b.jsx)("p",{className:"mt-0.5 truncate text-xs text-zinc-500 dark:text-zinc-600",children:bl?.album??""})]})]}),(0,b.jsxs)("div",{className:"shrink-0 space-y-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs tabular-nums text-zinc-500",children:[(0,b.jsx)("span",{children:(0,t.formatDuration)(ak)}),(0,b.jsx)("span",{children:by>0?(0,t.formatDuration)(by):"—"})]}),(0,b.jsx)("div",{className:"group relative h-2 cursor-pointer rounded-full bg-zinc-200 dark:bg-zinc-800",onPointerDown:a=>{let b=a.currentTarget.getBoundingClientRect();bQ((a.clientX-b.left)/Math.max(1,b.width));let c=a=>{bQ((a.clientX-b.left)/Math.max(1,b.width))},d=()=>{window.removeEventListener("pointermove",c),window.removeEventListener("pointerup",d)};window.addEventListener("pointermove",c),window.addEventListener("pointerup",d)},role:"slider",tabIndex:0,onKeyDown:bR,"aria-valuemin":0,"aria-valuemax":Math.round(by),"aria-valuenow":Math.round(ak),"aria-label":"Seek",children:(0,b.jsx)("div",{className:"pointer-events-none absolute inset-y-0 left-0 rounded-full bg-linear-to-r from-accent-600 to-accent-400",style:{width:`${by>0?100*ak/by:0}%`}})}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("button",{type:"button","aria-label":"Previous track",onClick:()=>bB(),disabled:0===a.length,className:"rounded-full p-2.5 text-zinc-600 transition hover:bg-zinc-200 hover:text-zinc-900 disabled:cursor-not-allowed disabled:opacity-40 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-100",children:(0,b.jsx)(aR,{className:"h-6 w-6"})}),(0,b.jsx)("button",{type:"button","aria-label":ai?"Pause":"Play",onClick:()=>aj(a=>!a),disabled:0===a.length||!bl,className:"mx-0.5 flex h-12 w-12 items-center justify-center rounded-full bg-accent-500 text-zinc-950 shadow-md shadow-accent-600/20 transition hover:bg-accent-400 disabled:cursor-not-allowed disabled:opacity-40 dark:shadow-accent-900/30",children:ai?(0,b.jsx)(aQ,{className:"h-6 w-6"}):(0,b.jsx)(aP,{className:"h-6 w-6 pl-0.5"})}),(0,b.jsx)("button",{type:"button","aria-label":"Next track",onClick:()=>bA(),disabled:0===a.length,className:"rounded-full p-2.5 text-zinc-600 transition hover:bg-zinc-200 hover:text-zinc-900 disabled:cursor-not-allowed disabled:opacity-40 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-100",children:(0,b.jsx)(aS,{className:"h-6 w-6"})})]}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[(0,b.jsx)(aT,{className:"h-5 w-5 shrink-0 text-zinc-500"}),(0,b.jsx)("input",{type:"range",min:0,max:1,step:.01,value:a_,onChange:a=>{let b=Number(a.target.value);af?$(b):ap(b)},className:"h-1 w-full min-w-0 cursor-pointer accent-accent-500","aria-label":"Volume"})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-2 border-t border-zinc-200 pt-2 dark:border-zinc-800",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>bC(),className:"relative flex h-9 w-9 items-center justify-center rounded-full border border-zinc-200 bg-white text-zinc-600 transition hover:border-zinc-300 hover:bg-zinc-50 hover:text-zinc-900 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:border-zinc-600 dark:hover:bg-zinc-800 dark:hover:text-zinc-100","aria-label":"off"===_?"Repeat off. Click for repeat all.":"all"===_?"Repeat all. Click for repeat one.":"Repeat one. Click for repeat off.",children:[(0,b.jsx)(aW,{dimmed:"off"===_,className:"h-5 w-5"}),"one"===_?(0,b.jsx)("span",{className:"absolute -right-0.5 -top-0.5 flex h-3.5 min-w-3.5 items-center justify-center rounded bg-accent-500 px-0.5 text-[9px] font-bold leading-none text-zinc-950",children:"1"}):null]}),(0,b.jsx)("button",{type:"button",onClick:()=>bD(),"aria-pressed":aa,"aria-label":aa?"Shuffle on":"Shuffle off",className:["flex h-9 w-9 items-center justify-center rounded-full border transition",aa?"border-accent-500/50 bg-accent-500/15 text-accent-800 dark:text-accent-300":"border-zinc-200 bg-white text-zinc-600 hover:border-zinc-300 hover:bg-zinc-50 hover:text-zinc-900 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:border-zinc-600 dark:hover:bg-zinc-800 dark:hover:text-zinc-100"].join(" "),children:(0,b.jsx)(aX,{className:"h-5 w-5"})}),(0,b.jsxs)("label",{className:"flex items-center gap-2 text-xs text-zinc-600 dark:text-zinc-400",children:[(0,b.jsx)("span",{className:"sr-only",children:"Playback speed"}),(0,b.jsx)("span",{"aria-hidden":!0,className:"tabular-nums",children:"Speed"}),(0,b.jsx)("select",{value:ab,onChange:a=>Z(Number(a.target.value)),className:"cursor-pointer rounded-md border border-zinc-200 bg-white px-2 py-1 text-xs font-medium text-zinc-800 outline-none ring-accent-500/0 transition focus:border-accent-400 focus:ring-2 focus:ring-accent-500/20 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-200","aria-label":"Playback speed",children:aF.PLAYBACK_RATES.map(a=>(0,b.jsx)("option",{value:a,children:1===a?"1×":`${a}\xd7`},a))})]})]})]})]})]})]})}],98324)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0c2d1xv._.js.map
|
|
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
|
|
|
7
7
|
"static/chunks/03~yq9q893hmn.js"
|
|
8
8
|
],
|
|
9
9
|
"lowPriorityFiles": [
|
|
10
|
-
"static/
|
|
11
|
-
"static/
|
|
12
|
-
"static/
|
|
10
|
+
"static/wtr8iSQMkGBfaJ1Xulser/_buildManifest.js",
|
|
11
|
+
"static/wtr8iSQMkGBfaJ1Xulser/_ssgManifest.js",
|
|
12
|
+
"static/wtr8iSQMkGBfaJ1Xulser/_clientMiddlewareManifest.js"
|
|
13
13
|
],
|
|
14
14
|
"rootMainFiles": [
|
|
15
15
|
"static/chunks/04-q~k1s4h2o9.js",
|