muzical-ui 0.1.10 → 0.1.13

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.
Files changed (295) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +7 -1
  3. package/.next/standalone/.next/build-manifest.json +6 -6
  4. package/.next/standalone/.next/prerender-manifest.json +75 -3
  5. package/.next/standalone/.next/required-server-files.json +3 -0
  6. package/.next/standalone/.next/routes-manifest.json +36 -0
  7. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +3 -3
  8. package/.next/standalone/.next/server/app/_global-error/page.js +1 -1
  9. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +3 -3
  18. package/.next/standalone/.next/server/app/_not-found/page.js +2 -2
  19. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  22. package/.next/standalone/.next/server/app/_not-found.rsc +24 -18
  23. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +24 -18
  24. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  25. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -7
  26. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  27. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  28. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  29. package/.next/standalone/.next/server/app/api/lastfm/track-similar/route/app-paths-manifest.json +3 -0
  30. package/.next/standalone/.next/server/app/api/lastfm/track-similar/route/build-manifest.json +9 -0
  31. package/.next/standalone/.next/server/app/api/lastfm/track-similar/route/server-reference-manifest.json +4 -0
  32. package/.next/standalone/.next/server/app/api/lastfm/track-similar/route.js +6 -0
  33. package/.next/standalone/.next/server/app/api/lastfm/track-similar/route.js.map +5 -0
  34. package/.next/standalone/.next/server/app/api/lastfm/track-similar/route.js.nft.json +1 -0
  35. package/.next/standalone/.next/server/app/api/lastfm/track-similar/route_client-reference-manifest.js +3 -0
  36. package/.next/standalone/.next/server/app/api/youtube/resolve/route/app-paths-manifest.json +3 -0
  37. package/.next/standalone/.next/server/app/api/youtube/resolve/route/build-manifest.json +9 -0
  38. package/.next/standalone/.next/server/app/api/youtube/resolve/route/server-reference-manifest.json +4 -0
  39. package/.next/standalone/.next/server/app/api/youtube/resolve/route.js +6 -0
  40. package/.next/standalone/.next/server/app/api/youtube/resolve/route.js.map +5 -0
  41. package/.next/standalone/.next/server/app/api/youtube/resolve/route.js.nft.json +1 -0
  42. package/.next/standalone/.next/server/app/api/youtube/resolve/route_client-reference-manifest.js +3 -0
  43. package/.next/standalone/.next/server/app/api/youtube/search/route/app-paths-manifest.json +3 -0
  44. package/.next/standalone/.next/server/app/api/youtube/search/route/build-manifest.json +9 -0
  45. package/.next/standalone/.next/server/app/api/youtube/search/route/server-reference-manifest.json +4 -0
  46. package/.next/standalone/.next/server/app/api/youtube/search/route.js +6 -0
  47. package/.next/standalone/.next/server/app/api/youtube/search/route.js.map +5 -0
  48. package/.next/standalone/.next/server/app/api/youtube/search/route.js.nft.json +1 -0
  49. package/.next/standalone/.next/server/app/api/youtube/search/route_client-reference-manifest.js +3 -0
  50. package/.next/standalone/.next/server/app/favicon.ico/route.js +2 -1
  51. package/.next/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/index.html +1 -1
  53. package/.next/standalone/.next/server/app/index.rsc +20 -17
  54. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  55. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +20 -17
  56. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  57. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -7
  58. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  59. package/.next/standalone/.next/server/app/musicbrainz/page/build-manifest.json +3 -3
  60. package/.next/standalone/.next/server/app/musicbrainz/page.js +4 -4
  61. package/.next/standalone/.next/server/app/musicbrainz/page.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/musicbrainz/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/musicbrainz.html +1 -1
  64. package/.next/standalone/.next/server/app/musicbrainz.rsc +22 -19
  65. package/.next/standalone/.next/server/app/musicbrainz.segments/_full.segment.rsc +22 -19
  66. package/.next/standalone/.next/server/app/musicbrainz.segments/_head.segment.rsc +4 -4
  67. package/.next/standalone/.next/server/app/musicbrainz.segments/_index.segment.rsc +10 -7
  68. package/.next/standalone/.next/server/app/musicbrainz.segments/_tree.segment.rsc +2 -2
  69. package/.next/standalone/.next/server/app/musicbrainz.segments/musicbrainz/__PAGE__.segment.rsc +2 -2
  70. package/.next/standalone/.next/server/app/musicbrainz.segments/musicbrainz.segment.rsc +3 -3
  71. package/.next/standalone/.next/server/app/page/build-manifest.json +3 -3
  72. package/.next/standalone/.next/server/app/page.js +2 -2
  73. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/settings/browse/page/app-paths-manifest.json +3 -0
  76. package/.next/standalone/.next/server/app/settings/browse/page/build-manifest.json +17 -0
  77. package/.next/standalone/.next/server/app/settings/browse/page/next-font-manifest.json +11 -0
  78. package/.next/standalone/.next/server/app/settings/browse/page/react-loadable-manifest.json +1 -0
  79. package/.next/standalone/.next/server/app/settings/browse/page/server-reference-manifest.json +4 -0
  80. package/.next/standalone/.next/server/app/settings/browse/page.js +15 -0
  81. package/.next/standalone/.next/server/app/settings/browse/page.js.map +5 -0
  82. package/.next/standalone/.next/server/app/settings/browse/page.js.nft.json +1 -0
  83. package/.next/standalone/.next/server/app/settings/browse/page_client-reference-manifest.js +3 -0
  84. package/.next/standalone/.next/server/app/settings/browse.html +1 -0
  85. package/.next/standalone/.next/server/app/settings/browse.meta +16 -0
  86. package/.next/standalone/.next/server/app/settings/browse.rsc +29 -0
  87. package/.next/standalone/.next/server/app/settings/browse.segments/_full.segment.rsc +29 -0
  88. package/.next/standalone/.next/server/app/settings/browse.segments/_head.segment.rsc +6 -0
  89. package/.next/standalone/.next/server/app/settings/browse.segments/_index.segment.rsc +11 -0
  90. package/.next/standalone/.next/server/app/settings/browse.segments/_tree.segment.rsc +4 -0
  91. package/.next/standalone/.next/server/app/settings/browse.segments/settings/browse/__PAGE__.segment.rsc +6 -0
  92. package/.next/standalone/.next/server/app/settings/browse.segments/settings/browse.segment.rsc +5 -0
  93. package/.next/standalone/.next/server/app/settings/browse.segments/settings.segment.rsc +5 -0
  94. package/.next/standalone/.next/server/app/settings/display/page/build-manifest.json +3 -3
  95. package/.next/standalone/.next/server/app/settings/display/page.js +2 -2
  96. package/.next/standalone/.next/server/app/settings/display/page.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/app/settings/display/page_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/settings/display.html +1 -1
  99. package/.next/standalone/.next/server/app/settings/display.rsc +26 -20
  100. package/.next/standalone/.next/server/app/settings/display.segments/_full.segment.rsc +26 -20
  101. package/.next/standalone/.next/server/app/settings/display.segments/_head.segment.rsc +4 -4
  102. package/.next/standalone/.next/server/app/settings/display.segments/_index.segment.rsc +10 -7
  103. package/.next/standalone/.next/server/app/settings/display.segments/_tree.segment.rsc +2 -2
  104. package/.next/standalone/.next/server/app/settings/display.segments/settings/display/__PAGE__.segment.rsc +3 -3
  105. package/.next/standalone/.next/server/app/settings/display.segments/settings/display.segment.rsc +3 -3
  106. package/.next/standalone/.next/server/app/settings/display.segments/settings.segment.rsc +4 -4
  107. package/.next/standalone/.next/server/app/settings/lastfm/page/app-paths-manifest.json +3 -0
  108. package/.next/standalone/.next/server/app/settings/lastfm/page/build-manifest.json +17 -0
  109. package/.next/standalone/.next/server/app/settings/lastfm/page/next-font-manifest.json +11 -0
  110. package/.next/standalone/.next/server/app/settings/lastfm/page/react-loadable-manifest.json +1 -0
  111. package/.next/standalone/.next/server/app/settings/lastfm/page/server-reference-manifest.json +4 -0
  112. package/.next/standalone/.next/server/app/settings/lastfm/page.js +15 -0
  113. package/.next/standalone/.next/server/app/settings/lastfm/page.js.map +5 -0
  114. package/.next/standalone/.next/server/app/settings/lastfm/page.js.nft.json +1 -0
  115. package/.next/standalone/.next/server/app/settings/lastfm/page_client-reference-manifest.js +3 -0
  116. package/.next/standalone/.next/server/app/settings/lastfm.html +1 -0
  117. package/.next/standalone/.next/server/app/settings/lastfm.meta +16 -0
  118. package/.next/standalone/.next/server/app/settings/lastfm.rsc +29 -0
  119. package/.next/standalone/.next/server/app/settings/lastfm.segments/_full.segment.rsc +29 -0
  120. package/.next/standalone/.next/server/app/settings/lastfm.segments/_head.segment.rsc +6 -0
  121. package/.next/standalone/.next/server/app/settings/lastfm.segments/_index.segment.rsc +11 -0
  122. package/.next/standalone/.next/server/app/settings/lastfm.segments/_tree.segment.rsc +4 -0
  123. package/.next/standalone/.next/server/app/settings/lastfm.segments/settings/lastfm/__PAGE__.segment.rsc +6 -0
  124. package/.next/standalone/.next/server/app/settings/lastfm.segments/settings/lastfm.segment.rsc +5 -0
  125. package/.next/standalone/.next/server/app/settings/lastfm.segments/settings.segment.rsc +5 -0
  126. package/.next/standalone/.next/server/app/settings/library/page/build-manifest.json +3 -3
  127. package/.next/standalone/.next/server/app/settings/library/page.js +2 -2
  128. package/.next/standalone/.next/server/app/settings/library/page.js.nft.json +1 -1
  129. package/.next/standalone/.next/server/app/settings/library/page_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/settings/library.html +1 -1
  131. package/.next/standalone/.next/server/app/settings/library.rsc +26 -20
  132. package/.next/standalone/.next/server/app/settings/library.segments/_full.segment.rsc +26 -20
  133. package/.next/standalone/.next/server/app/settings/library.segments/_head.segment.rsc +4 -4
  134. package/.next/standalone/.next/server/app/settings/library.segments/_index.segment.rsc +10 -7
  135. package/.next/standalone/.next/server/app/settings/library.segments/_tree.segment.rsc +2 -2
  136. package/.next/standalone/.next/server/app/settings/library.segments/settings/library/__PAGE__.segment.rsc +3 -3
  137. package/.next/standalone/.next/server/app/settings/library.segments/settings/library.segment.rsc +3 -3
  138. package/.next/standalone/.next/server/app/settings/library.segments/settings.segment.rsc +4 -4
  139. package/.next/standalone/.next/server/app/settings/page/build-manifest.json +3 -3
  140. package/.next/standalone/.next/server/app/settings/page.js +2 -2
  141. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/settings/playback/page/build-manifest.json +3 -3
  144. package/.next/standalone/.next/server/app/settings/playback/page.js +2 -2
  145. package/.next/standalone/.next/server/app/settings/playback/page.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/settings/playback/page_client-reference-manifest.js +1 -1
  147. package/.next/standalone/.next/server/app/settings/playback.html +1 -1
  148. package/.next/standalone/.next/server/app/settings/playback.rsc +26 -20
  149. package/.next/standalone/.next/server/app/settings/playback.segments/_full.segment.rsc +26 -20
  150. package/.next/standalone/.next/server/app/settings/playback.segments/_head.segment.rsc +4 -4
  151. package/.next/standalone/.next/server/app/settings/playback.segments/_index.segment.rsc +10 -7
  152. package/.next/standalone/.next/server/app/settings/playback.segments/_tree.segment.rsc +2 -2
  153. package/.next/standalone/.next/server/app/settings/playback.segments/settings/playback/__PAGE__.segment.rsc +3 -3
  154. package/.next/standalone/.next/server/app/settings/playback.segments/settings/playback.segment.rsc +3 -3
  155. package/.next/standalone/.next/server/app/settings/playback.segments/settings.segment.rsc +4 -4
  156. package/.next/standalone/.next/server/app/settings/youtube/page/build-manifest.json +3 -3
  157. package/.next/standalone/.next/server/app/settings/youtube/page.js +2 -2
  158. package/.next/standalone/.next/server/app/settings/youtube/page.js.nft.json +1 -1
  159. package/.next/standalone/.next/server/app/settings/youtube/page_client-reference-manifest.js +1 -1
  160. package/.next/standalone/.next/server/app/settings/youtube.html +1 -1
  161. package/.next/standalone/.next/server/app/settings/youtube.rsc +26 -20
  162. package/.next/standalone/.next/server/app/settings/youtube.segments/_full.segment.rsc +26 -20
  163. package/.next/standalone/.next/server/app/settings/youtube.segments/_head.segment.rsc +4 -4
  164. package/.next/standalone/.next/server/app/settings/youtube.segments/_index.segment.rsc +10 -7
  165. package/.next/standalone/.next/server/app/settings/youtube.segments/_tree.segment.rsc +2 -2
  166. package/.next/standalone/.next/server/app/settings/youtube.segments/settings/youtube/__PAGE__.segment.rsc +3 -3
  167. package/.next/standalone/.next/server/app/settings/youtube.segments/settings/youtube.segment.rsc +3 -3
  168. package/.next/standalone/.next/server/app/settings/youtube.segments/settings.segment.rsc +4 -4
  169. package/.next/standalone/.next/server/app/settings.html +1 -1
  170. package/.next/standalone/.next/server/app/settings.rsc +21 -18
  171. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +21 -18
  172. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  173. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +10 -7
  174. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  175. package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +3 -3
  176. package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +4 -4
  177. package/.next/standalone/.next/server/app/youtube/page/app-paths-manifest.json +3 -0
  178. package/.next/standalone/.next/server/app/youtube/page/build-manifest.json +17 -0
  179. package/.next/standalone/.next/server/app/youtube/page/next-font-manifest.json +11 -0
  180. package/.next/standalone/.next/server/app/youtube/page/react-loadable-manifest.json +1 -0
  181. package/.next/standalone/.next/server/app/youtube/page/server-reference-manifest.json +4 -0
  182. package/.next/standalone/.next/server/app/youtube/page.js +15 -0
  183. package/.next/standalone/.next/server/app/youtube/page.js.map +5 -0
  184. package/.next/standalone/.next/server/app/youtube/page.js.nft.json +1 -0
  185. package/.next/standalone/.next/server/app/youtube/page_client-reference-manifest.js +3 -0
  186. package/.next/standalone/.next/server/app/youtube.html +1 -0
  187. package/.next/standalone/.next/server/app/youtube.meta +17 -0
  188. package/.next/standalone/.next/server/app/youtube.rsc +25 -0
  189. package/.next/standalone/.next/server/app/youtube.segments/_full.segment.rsc +25 -0
  190. package/.next/standalone/.next/server/app/youtube.segments/_head.segment.rsc +6 -0
  191. package/.next/standalone/.next/server/app/youtube.segments/_index.segment.rsc +11 -0
  192. package/.next/standalone/.next/server/app/youtube.segments/_tree.segment.rsc +4 -0
  193. package/.next/standalone/.next/server/app/youtube.segments/youtube/__PAGE__.segment.rsc +6 -0
  194. package/.next/standalone/.next/server/app/youtube.segments/youtube.segment.rsc +5 -0
  195. package/.next/standalone/.next/server/app-paths-manifest.json +7 -1
  196. package/.next/standalone/.next/server/chunks/0z~i_next_dist_esm_build_templates_app-route_0mm3io..js +3 -0
  197. package/.next/standalone/.next/server/chunks/[root-of-the-server]__04rmaa_._.js +3 -0
  198. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0iga-fk._.js +13 -0
  199. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0syodc9._.js +3 -0
  200. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0yh0qgz._.js +3 -0
  201. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_lastfm_track-similar_route_actions_0o0aksj.js +3 -0
  202. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_youtube_resolve_route_actions_00u-beh.js +3 -0
  203. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_youtube_search_route_actions_11oame5.js +3 -0
  204. package/.next/standalone/.next/server/chunks/ssr/0a6e_music-metadata_lib_0952jxx._.js +1 -1
  205. package/.next/standalone/.next/server/chunks/ssr/0a6e_music-metadata_lib_0epj5a8._.js +1 -1
  206. package/.next/standalone/.next/server/chunks/ssr/0a6e_music-metadata_lib_0lxnb~i._.js +1 -1
  207. package/.next/standalone/.next/server/chunks/ssr/0a6e_music-metadata_lib_0mpaeoj._.js +1 -1
  208. package/.next/standalone/.next/server/chunks/ssr/0a6e_music-metadata_lib_0vvxdoi._.js +1 -1
  209. package/.next/standalone/.next/server/chunks/ssr/0a6e_music-metadata_lib_0xiet5m._.js +1 -1
  210. package/.next/standalone/.next/server/chunks/ssr/0a6e_music-metadata_lib_0xr.otg._.js +1 -1
  211. package/.next/standalone/.next/server/chunks/ssr/0a6e_music-metadata_lib_apev2_APEv2Parser_0baa0n9.js +1 -1
  212. package/.next/standalone/.next/server/chunks/ssr/0a6e_music-metadata_lib_id3v2_048_t.z._.js +1 -1
  213. package/.next/standalone/.next/server/chunks/ssr/0a6e_music-metadata_lib_matroska_MatroskaParser_129r4d4.js +1 -1
  214. package/.next/standalone/.next/server/chunks/ssr/0a6e_music-metadata_lib_mpeg_MpegParser_02l3ght.js +1 -1
  215. package/.next/standalone/.next/server/chunks/ssr/0z~i_next_dist_02m-902._.js +1 -1
  216. package/.next/standalone/.next/server/chunks/ssr/{_0v8tsu.._.js → 0z~i_next_dist_0y7_gi1._.js} +2 -2
  217. package/.next/standalone/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_05w__hq.js +4 -0
  218. package/.next/standalone/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0rtq_vg.js +4 -0
  219. package/.next/standalone/.next/server/chunks/ssr/0z~i_next_dist_esm_build_templates_app-page_0zexs35.js +4 -0
  220. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0.kc4tr._.js +3 -0
  221. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03-3mbr._.js +1 -1
  222. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__044c9~u._.js +3 -0
  223. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0v30c9w._.js → [root-of-the-server]__05f62me._.js} +2 -2
  224. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0hiy0el._.js +3 -0
  225. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0wgbp9t._.js → [root-of-the-server]__0jowkig._.js} +2 -2
  226. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0lkpda-._.js +3 -0
  227. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0sn2..k._.js +3 -0
  228. package/.next/standalone/.next/server/chunks/ssr/_014lxrc._.js +3 -0
  229. package/.next/standalone/.next/server/chunks/ssr/_06it0sh._.js +2 -2
  230. package/.next/standalone/.next/server/chunks/ssr/_0b8qx~m._.js +1 -1
  231. package/.next/standalone/.next/server/chunks/ssr/_0~cb-t9._.js +3 -0
  232. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_settings_browse_page_actions_0_gn~yf.js +3 -0
  233. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_settings_lastfm_page_actions_002qs5v.js +3 -0
  234. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_youtube_page_actions_12geo5h.js +3 -0
  235. package/.next/standalone/.next/server/chunks/ssr/components_00y4y-o._.js +1 -1
  236. package/.next/standalone/.next/server/chunks/ssr/components_0c.t1du._.js +1 -1
  237. package/.next/standalone/.next/server/chunks/ssr/components_0dp4-uk._.js +3 -0
  238. package/.next/standalone/.next/server/chunks/ssr/components_LastfmSettingsPanel_tsx_0tqjys8._.js +3 -0
  239. package/.next/standalone/.next/server/chunks/ssr/components_LibrarySettingsPanel_tsx_0krc7dk._.js +3 -0
  240. package/.next/standalone/.next/server/chunks/ssr/components_MusicPlayer_tsx_06~82ey._.js +1 -1
  241. package/.next/standalone/.next/server/chunks/ssr/components_SettingsOverview_tsx_0axvc~a._.js +1 -1
  242. package/.next/standalone/.next/server/chunks/ssr/components_SettingsSwitchRow_tsx_0rn035g._.js +3 -0
  243. package/.next/standalone/.next/server/chunks/ssr/lib_0mppqs2._.js +3 -0
  244. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0bx6yug._.js +3 -0
  245. package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0f~0-nb._.js +1 -1
  246. package/.next/standalone/.next/server/middleware-build-manifest.js +6 -6
  247. package/.next/standalone/.next/server/next-font-manifest.js +1 -1
  248. package/.next/standalone/.next/server/next-font-manifest.json +12 -0
  249. package/.next/standalone/.next/server/pages/404.html +1 -1
  250. package/.next/standalone/.next/server/pages/500.html +1 -1
  251. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  252. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  253. package/.next/standalone/.next/static/chunks/00bzw__-m1fpe.js +1 -0
  254. package/.next/standalone/.next/static/chunks/00ffr5pv82u34.js +1 -0
  255. package/.next/standalone/.next/static/chunks/03f3hyhv4x63v.js +1 -0
  256. package/.next/standalone/.next/static/chunks/04-q~k1s4h2o9.js +31 -0
  257. package/.next/standalone/.next/static/chunks/0638t8cqzkdfe.js +1 -0
  258. package/.next/standalone/.next/static/chunks/073k~no118gmz.js +1 -0
  259. package/.next/standalone/.next/static/chunks/0c5m3gpe71ppi.js +1 -0
  260. package/.next/standalone/.next/static/chunks/0dusa1wc1mnfl.js +1 -0
  261. package/.next/standalone/.next/static/chunks/0me.0ghc7bi2f.js +1 -0
  262. package/.next/standalone/.next/static/chunks/0ps~ft3qx-shn.css +3 -0
  263. package/.next/standalone/.next/static/chunks/0ty~h16-~8eka.js +1 -0
  264. package/.next/standalone/.next/static/chunks/0w~k0r.qfm0zf.js +1 -0
  265. package/.next/standalone/.next/static/chunks/0xj5z58rgukgs.js +1 -0
  266. package/.next/standalone/.next/static/chunks/109xoml1ptc8~.js +1 -0
  267. package/.next/standalone/.next/static/chunks/14z_1xu7t6lay.js +2 -0
  268. package/.next/standalone/.next/static/chunks/{turbopack-0g-.7kit-b4.8.js → turbopack-0ctpbjx-g6dyl.js} +1 -1
  269. package/.next/standalone/package.json +9 -8
  270. package/.next/standalone/server.js +1 -1
  271. package/package.json +9 -8
  272. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~e2g3i._.js +0 -13
  273. package/.next/standalone/.next/server/chunks/ssr/0z~i_next_dist_0z0kx9a._.js +0 -3
  274. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00e_fc7._.js +0 -3
  275. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0_8f2hf._.js +0 -3
  276. package/.next/standalone/.next/server/chunks/ssr/_09vx.ql._.js +0 -3
  277. package/.next/standalone/.next/server/chunks/ssr/components_0-e3h_v._.js +0 -3
  278. package/.next/standalone/.next/server/chunks/ssr/components_YouTubeSettingsPanel_tsx_0t6pw~9._.js +0 -3
  279. package/.next/standalone/.next/server/chunks/ssr/lib_library_favorite-keys_ts_0mlju9x._.js +0 -3
  280. package/.next/standalone/.next/static/chunks/06c2c_.-4ag08.css +0 -3
  281. package/.next/standalone/.next/static/chunks/0_fmjohj6n9ax.js +0 -1
  282. package/.next/standalone/.next/static/chunks/0cx3-_9jp9j1a.js +0 -1
  283. package/.next/standalone/.next/static/chunks/0d05.rh-.aulc.js +0 -1
  284. package/.next/standalone/.next/static/chunks/0gs~olgu8~txo.js +0 -1
  285. package/.next/standalone/.next/static/chunks/0lse6x.rhc0i5.js +0 -1
  286. package/.next/standalone/.next/static/chunks/0nh7t0mlv.533.js +0 -2
  287. package/.next/standalone/.next/static/chunks/0wvzb~7kpzo6n.js +0 -1
  288. package/.next/standalone/.next/static/chunks/0y-bftn0gphdn.js +0 -1
  289. package/.next/standalone/.next/static/chunks/10e1sx.nf-s.5.js +0 -1
  290. package/.next/standalone/.next/static/chunks/10l3mqv783cbv.js +0 -1
  291. package/.next/standalone/.next/static/chunks/118x8mar90jp8.js +0 -1
  292. package/.next/standalone/.next/static/chunks/148g6~qgt.qca.js +0 -31
  293. /package/.next/standalone/.next/static/{n5DAS0x4tZcr-pX-g7jcA → 6R8dLcmFAc7AeUCNbCJAA}/_buildManifest.js +0 -0
  294. /package/.next/standalone/.next/static/{n5DAS0x4tZcr-pX-g7jcA → 6R8dLcmFAc7AeUCNbCJAA}/_clientMiddlewareManifest.js +0 -0
  295. /package/.next/standalone/.next/static/{n5DAS0x4tZcr-pX-g7jcA → 6R8dLcmFAc7AeUCNbCJAA}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,79280,e=>{"use strict";var t=e.i(54710),r=e.i(45958),n=e.i(34416),a=e.i(71060),i=e.i(70487),s=e.i(75397);function l(e){let{recentBrowseSearches:r}=(0,i.useLibrary)(),a=e.limit??Math.min(8,s.RECENT_BROWSE_SEARCHES_LIMIT),l=(0,n.useMemo)(()=>{var t;let n;return t=e.source,0===(n=Math.max(0,Math.floor(a)))?[]:r.filter(e=>e.source===t).slice(0,n)},[r,e.source,a]);return 0===l.length?null:(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("p",{className:"text-[10px] font-medium uppercase tracking-wider text-zinc-500",children:"Recent searches"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",role:"list","aria-label":"Recent searches",children:l.map(r=>(0,t.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:()=>e.onSelect(r.query),children:r.query},`${r.source}\u0000${r.query}`))})]})}function c(e,t){let r=(0,n.useMemo)(()=>e.get("q")?.trim()||null,[e]);(0,n.useEffect)(()=>{if(!r)return;let e=window.requestAnimationFrame(()=>{t(r)});return()=>window.cancelAnimationFrame(e)},[r,t])}var o=e.i(30164);async function d(e){try{let t=(await (0,o.parseBlob)(e,{duration:!1})).common.picture;if(!t?.length)return null;let r=t.find(e=>{let t=e.type?.toLowerCase()??"";return t.includes("front")||t.includes("cover")})??t.reduce((e,t)=>t.data.length>e.data.length?t:e);return{mime:r.format?.trim()||(r.name?.toLowerCase().endsWith(".png")?"image/png":"image/jpeg"),data:Uint8Array.from(r.data)}}catch{return null}}let u=new Map,m=new Map;async function x(e,t){let r=u.get(e);if(r){var n;return n={...r,lastUsedAt:Date.now()},u.delete(e),u.set(e,n),r.bytes}let a=m.get(e);if(a)return a;let i=(async()=>{let r=await d(t);if(r){let t={bytes:r,lastUsedAt:Date.now()};u.set(e,t),function(){for(;u.size>48;){let e=u.keys().next().value;if(!e)return;u.delete(e)}}()}return r})();m.set(e,i);try{return await i}finally{m.delete(e)}}let h={max:"maxresdefault",hq:"hqdefault",mq:"mqdefault",default:"default"};function b(e,t="hq"){let r=e.trim();if(!r)return"";let n=h[t];return`https://i.ytimg.com/vi/${r}/${n}.jpg`}function f(e){let{track:r,className:a="h-12 w-12 shrink-0 overflow-hidden rounded-md ring-1 ring-zinc-200/80 dark:ring-zinc-700/80"}=e,{resolveFileForTrack:s}=(0,i.useLibrary)(),[l,c]=(0,n.useState)(null);(0,n.useEffect)(()=>{let e=!1,t=null,n=r?.youtubeVideoId?.trim();return r?.library?((async()=>{let n=await s(r);if(e||!n)return;let a=await x(r.id,n);if(e)return;if(!a)return c(null);let i=URL.createObjectURL(new Blob([a.data],{type:a.mime}));if(e){i&&URL.revokeObjectURL(i);return}t=i,c(i)})(),()=>{e=!0,t&&URL.revokeObjectURL(t)}):(n?c(b(n)):c(null),()=>{e=!0})},[r,s]);let o=r?.album?.trim().charAt(0)||"♪";return(0,t.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",a].join(" "),"aria-hidden":!0,children:l?(0,t.jsx)("img",{src:l,alt:"",className:"absolute inset-0 h-full w-full object-cover",decoding:"async"}):(0,t.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:o})})}function p(e){let{filled:r,onPress:n,label:a,className:i}=e;return(0,t.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),e.preventDefault(),n()},"aria-label":a,"aria-pressed":r,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",i??"rounded-full"].join(" "),children:(0,t.jsx)("svg",{viewBox:"0 0 24 24",className:"block h-4 w-4 shrink-0",fill:r?"currentColor":"none","aria-hidden":!0,children:(0,t.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 g=e.i(38602),k=e.i(34713),v=e.i(74061);function y(e){let{openTrackDetails:r,openRelatedSongs:n,removeFromLibrary:a,isFavoriteSong:s,toggleFavoriteTrack:l}=(0,i.useLibrary)(),c=e.compact?"px-1.5 py-1.5":"px-2 py-2",o=e.compact?"gap-1.5":"gap-2";return(0,t.jsxs)("div",{className:[`flex items-center ${o} rounded-lg ${c}`,e.indentClass??"","hover:bg-zinc-100 dark:hover:bg-zinc-800/80"].join(" "),children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:e.track.title}),!1!==e.showArtist?(0,t.jsx)("p",{className:"truncate text-xs text-zinc-500",children:e.track.artist}):null]}),(0,t.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-zinc-500",children:e.track.durationSec>0?(0,k.formatDuration)(e.track.durationSec):"—"}),(0,t.jsx)(g.default,{triggerLabel:`Actions for ${e.track.title}`,items:(0,v.default)({track:e.track,onViewDetails:r,onViewRelatedSongs:n,onRemoveFromLibrary:()=>a(e.track)})}),(0,t.jsx)(p,{filled:s(e.track.id),onPress:()=>l(e.track),label:s(e.track.id)?"Remove song from favorites":"Add song to favorites"}),(0,t.jsx)("button",{type:"button",onClick:()=>e.onAdd(e.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 z="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 j(e){let{artist:r,album:a,trackCount:i,multipleTrackArtists:s,hasYoutubeTracks:l,saving:c,saveError:o,onSave:d}=e,u={artist:r,album:a},[m,x]=(0,n.useState)(u),[h,b]=(0,n.useState)(u);(0,n.useEffect)(()=>{let e={artist:r,album:a};x(e),b(e)},[r,a]);let f=m.artist!==h.artist||m.album!==h.album,p=f&&""!==m.artist.trim(),g=(0,n.useCallback)(()=>{x(h)},[h]),k=(0,n.useCallback)(async e=>{if(e.preventDefault(),!p||c)return;let t={artist:m.artist.trim(),album:m.album.trim()||h.album};await d(t),b(t),x(t)},[p,m,d,h.album,c]);return(0,t.jsxs)("form",{onSubmit:k,className:"space-y-3",children:[(0,t.jsxs)("p",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:["Updates artist and album on ",i," track",1===i?"":"s",". Song titles are unchanged. Saving also writes ID3 tags to each local MP3 file when write access is allowed."]}),s?(0,t.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,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-zinc-500",children:"Artist"}),(0,t.jsx)("input",{type:"text",value:m.artist,onChange:e=>x(t=>({...t,artist:e.target.value})),className:z,autoComplete:"off",required:!0})]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-zinc-500",children:"Album"}),(0,t.jsx)("input",{type:"text",value:m.album,onChange:e=>x(t=>({...t,album:e.target.value})),className:z,autoComplete:"off"})]}),l?(0,t.jsx)("p",{className:"text-xs text-zinc-500",children:"Saving updates YouTube search queries and clears resolved video ids for affected tracks."}):null,o?(0,t.jsx)("p",{className:"text-xs text-red-600 dark:text-red-400",role:"alert",children:o}):null,(0,t.jsxs)("div",{className:"flex flex-wrap gap-2 pt-1",children:[(0,t.jsx)("button",{type:"submit",disabled:!p||c,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:c?"Saving…":"Save to all tracks"}),(0,t.jsx)("button",{type:"button",disabled:!f||c,onClick:g,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 w=e.i(91768),N=e.i(97891),C=e.i(99513);function S(e){let{albumKey:r,albumTitle:a,artistName:s,trackCount:l,multipleTrackArtists:c,onClose:o,onSaved:d}=e,{libraryTracks:u,patchAlbumMetadataByKey:m,writeLibraryTracksToFiles:x}=(0,i.useLibrary)(),h=(0,n.useId)(),b=(0,n.useRef)(null),[f,p]=(0,n.useState)(!1),[g,k]=(0,n.useState)(null),v=(0,n.useMemo)(()=>u.some(e=>(0,C.albumCompositeKey)(e.album,e.artist)===r&&!!e.youtubeQuery?.trim()),[r,u]),y=(0,n.useCallback)(async e=>{p(!0),k(null);let t=(0,N.default)(u,r).map(t=>(0,w.default)(t,e)),n=m(r,e);if(!n){p(!1),k("Could not update album metadata.");return}let a=await x(t);if(p(!1),!a.ok&&a.failedCount>0){let e=a.writtenCount>0?` Updated ${a.writtenCount} file${1===a.writtenCount?"":"s"}; ${a.failedCount} failed.`:"";k(`${a.reason??"Could not write tags to audio files."}${e}`),d(n);return}d(n),o()},[r,u,o,d,m,x]);return(0,n.useEffect)(()=>{let e=e=>{"Escape"===e.key&&o()};return document.addEventListener("keydown",e),b.current?.focus(),()=>document.removeEventListener("keydown",e)},[o]),(0,t.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:o,children:(0,t.jsxs)("div",{ref:b,role:"dialog","aria-modal":"true","aria-labelledby":h,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:e=>e.stopPropagation(),children:[(0,t.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,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("h2",{id:h,className:"truncate text-base font-semibold text-zinc-900 dark:text-zinc-100",children:"Edit album metadata"}),(0,t.jsxs)("p",{className:"truncate text-sm text-zinc-500",children:[a," · ",s]})]}),(0,t.jsx)("button",{type:"button",onClick:o,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,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto overscroll-contain px-4 py-4",children:(0,t.jsx)(j,{artist:s,album:a,trackCount:l,multipleTrackArtists:c,hasYoutubeTracks:v,saving:f,saveError:g,onSave:y})})]})})}function E(e){let{artist:r,trackCount:a,albumCount:i,hasYoutubeTracks:s,saving:l,saveError:c,onSave:o}=e,[d,u]=(0,n.useState)(r),[m,x]=(0,n.useState)(r);(0,n.useEffect)(()=>{u(r),x(r)},[r]);let h=d!==m,b=h&&""!==d.trim(),f=(0,n.useCallback)(()=>{u(m)},[m]),p=(0,n.useCallback)(async e=>{if(e.preventDefault(),!b||l)return;let t={artist:d.trim()};await o(t),x(t.artist),u(t.artist)},[b,d,o,l]);return(0,t.jsxs)("form",{onSubmit:p,className:"space-y-3",children:[(0,t.jsxs)("p",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:["Updates the artist on ",a," track",1===a?"":"s"," across"," ",i," album",1===i?"":"s",". Song titles and album names are unchanged. Saving also writes ID3 tags to each local MP3 file when write access is allowed."]}),(0,t.jsxs)("label",{className:"block",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-zinc-500",children:"Artist"}),(0,t.jsx)("input",{type:"text",value:d,onChange:e=>u(e.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})]}),s?(0,t.jsx)("p",{className:"text-xs text-zinc-500",children:"Saving updates YouTube search queries and clears resolved video ids for affected tracks."}):null,c?(0,t.jsx)("p",{className:"text-xs text-red-600 dark:text-red-400",role:"alert",children:c}):null,(0,t.jsxs)("div",{className:"flex flex-wrap gap-2 pt-1",children:[(0,t.jsx)("button",{type:"submit",disabled:!b||l,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:l?"Saving…":"Save to all tracks"}),(0,t.jsx)("button",{type:"button",disabled:!h||l,onClick:f,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 L=e.i(73973),A=e.i(4728);function M(e){let{artistName:r,trackCount:a,albumCount:s,onClose:l,onSaved:c}=e,{libraryTracks:o,patchArtistMetadataByKey:d,writeLibraryTracksToFiles:u}=(0,i.useLibrary)(),m=(0,n.useId)(),x=(0,n.useRef)(null),[h,b]=(0,n.useState)(!1),[f,p]=(0,n.useState)(null),g=(0,n.useMemo)(()=>o.some(e=>(0,C.artistDisplayName)(e.artist)===r&&!!e.youtubeQuery?.trim()),[r,o]),k=(0,n.useCallback)(async e=>{b(!0),p(null);let t=(0,A.default)(o,r).map(t=>(0,L.default)(t,e)),n=d(r,e);if(!n){b(!1),p("Could not update artist metadata.");return}let a=await u(t);if(b(!1),!a.ok&&a.failedCount>0){let e=a.writtenCount>0?` Updated ${a.writtenCount} file${1===a.writtenCount?"":"s"}; ${a.failedCount} failed.`:"";p(`${a.reason??"Could not write tags to audio files."}${e}`),c(n);return}c(n),l()},[r,o,l,c,d,u]);return(0,n.useEffect)(()=>{let e=e=>{"Escape"===e.key&&l()};return document.addEventListener("keydown",e),x.current?.focus(),()=>document.removeEventListener("keydown",e)},[l]),(0,t.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:l,children:(0,t.jsxs)("div",{ref:x,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:e=>e.stopPropagation(),children:[(0,t.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,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("h2",{id:m,className:"truncate text-base font-semibold text-zinc-900 dark:text-zinc-100",children:"Edit artist metadata"}),(0,t.jsx)("p",{className:"truncate text-sm text-zinc-500",children:r})]}),(0,t.jsx)("button",{type:"button",onClick:l,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,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto overscroll-contain px-4 py-4",children:(0,t.jsx)(E,{artist:r,trackCount:a,albumCount:s,hasYoutubeTracks:g,saving:h,saveError:f,onSave:k})})]})})}function R(e){let t=new Map;for(let r of e){let e=(0,C.artistDisplayName)(r.artist),n=t.get(e)??[];n.push(r),t.set(e,n)}for(let e of t.values())e.sort((e,t)=>e.title.localeCompare(t.title,void 0,{sensitivity:"base"}));return t}function P(e){let t=new Map;for(let r of e){let e=(0,C.albumCompositeKey)(r.album,r.artist),n=t.get(e)??[];n.push(r),t.set(e,n)}for(let e of t.values())e.sort((e,t)=>e.title.localeCompare(t.title,void 0,{sensitivity:"base"}));return t}function T(e,t){return e.filter(e=>e.library?.rootId===t)}function $(e,t){let r=t.trim();if(!r)return[...e];let n=`${r}/`;return e.filter(e=>{let t=e.library?.relativePath??"";return t===r||t.startsWith(n)})}function I(){let{roots:e,libraryTracks:r,addToQueue:s,compactLists:o,favoriteSongIds:d,favoriteArtistNames:u,favoriteAlbumKeys:m,isFavoriteArtist:x,isFavoriteAlbum:h,toggleFavoriteArtist:b,toggleFavoriteAlbum:v,removeAlbumFromLibrary:z,removeArtistFromLibrary:j,recordRecentBrowseSearch:w}=(0,i.useLibrary)(),N=(0,a.useSearchParams)(),[E,L]=(0,n.useState)("artist"),[A,I]=(0,n.useState)("");c(N,I),(0,n.useEffect)(()=>{let e=A.trim();if(e.length<2)return;let t=window.setTimeout(()=>{w("library",e)},800);return()=>window.clearTimeout(t)},[A,w]);let[U,q]=(0,n.useState)(null),[D,B]=(0,n.useState)(null),[O,Y]=(0,n.useState)(null),[V,_]=(0,n.useState)(null),[F,G]=(0,n.useState)(null),[Q,H]=(0,n.useState)(""),K=(0,n.useMemo)(()=>{let e;return(e=A.trim().toLowerCase())?r.filter(t=>{let r=t.library?.relativePath??"";return t.title.toLowerCase().includes(e)||t.artist.toLowerCase().includes(e)||t.album.toLowerCase().includes(e)||r.toLowerCase().includes(e)}):[...r]},[r,A]),W=A.trim().length>0,Z=o?"space-y-0.25":"space-y-0.5",X=o?"px-2 py-2":"px-3 py-2.5",J=o?"gap-2":"gap-3",ee=o?"py-2 pr-2 pl-5":"py-2.5 pr-3 pl-6",et=(0,n.useCallback)(e=>{L(e),q(null),B(null),G(null),H("")},[]),er=(0,n.useMemo)(()=>R(K),[K]),en=(0,n.useMemo)(()=>P(K),[K]),ea=(0,n.useMemo)(()=>[...er.keys()].sort((e,t)=>e.localeCompare(t,void 0,{sensitivity:"base"})),[er]),ei=(0,n.useMemo)(()=>[...en.keys()].sort((e,t)=>{let[r,n]=e.split("\0"),[a,i]=t.split("\0"),s=r.localeCompare(a,void 0,{sensitivity:"base"});return 0!==s?s:n.localeCompare(i,void 0,{sensitivity:"base"})}),[en]),es=(0,n.useMemo)(()=>{if(null===D)return null;let t=en.get(D)??[],r=D.split("\0"),n=r[0]??"",a=r[1]??"",i=0,s=0;for(let e of t)e.durationSec>0&&(i+=e.durationSec,s+=1);let l=new Set;for(let e of t){let t=e.library?.rootId;t&&l.add(t)}let c=[...l].map(t=>e.find(e=>e.id===t)?.name??t).sort((e,t)=>e.localeCompare(t,void 0,{sensitivity:"base"})),o=new Set(t.map(e=>(0,C.artistDisplayName)(e.artist)));return{title:n,artist:a,trackCount:t.length,totalSec:i,withDurationCount:s,sample:t[0],rootLabels:c,multipleTrackArtists:o.size>1}},[D,en,e]),el=(0,n.useMemo)(()=>{if(null===U)return null;let t=er.get(U)??[],r=0,n=0;for(let e of t)e.durationSec>0&&(r+=e.durationSec,n+=1);let a=new Set;for(let e of t){let t=e.library?.rootId;t&&a.add(t)}let i=[...a].map(t=>e.find(e=>e.id===t)?.name??t).sort((e,t)=>e.localeCompare(t,void 0,{sensitivity:"base"})),s=new Set(t.map(e=>(0,C.albumCompositeKey)(e.album,e.artist)));return{name:U,trackCount:t.length,albumCount:s.size,totalSec:r,withDurationCount:n,sample:t[0],rootLabels:i}},[U,er,e]),ec=(0,n.useMemo)(()=>F?T(K,F):[],[K,F]),eo=(0,n.useMemo)(()=>F?function(e,t){let r=""===t?"":`${t}/`,n=new Set,a=[];for(let i of e){let e=i.library?.relativePath??"";if(""===t)e.includes("/")?n.add(e.slice(0,e.indexOf("/"))):a.push(i);else{if(!e.startsWith(r))continue;let t=e.slice(r.length);if(!t)continue;let s=t.indexOf("/");-1===s?a.push(i):n.add(t.slice(0,s))}}return a.sort((e,t)=>e.title.localeCompare(t.title,void 0,{sensitivity:"base"})),{folders:[...n].sort((e,t)=>e.localeCompare(t,void 0,{sensitivity:"base"})),files:a}}(ec,Q):{folders:[],files:[]},[F,ec,Q]),ed=(0,n.useMemo)(()=>$(ec,Q),[ec,Q]),eu=(0,n.useMemo)(()=>{let t=A.trim().toLowerCase();return t?e.filter(e=>e.name.toLowerCase().includes(t)):e},[e,A]),em=(0,n.useCallback)(e=>{s(e)},[s]),ex=(0,n.useCallback)(e=>{0!==e.length&&s(e)},[s]),eh=(0,n.useMemo)(()=>(function(e,t,r){let n=r.trim().toLowerCase();if(!n)return{artists:[],albums:[],folders:[],songs:[]};let a=R(e),i=[];for(let[e,t]of a)e.toLowerCase().includes(n)&&i.push({name:e,tracks:t});i.sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:"base"}));let s=P(e),l=[];for(let[e,t]of s){let[r,a]=e.split("\0");(r.toLowerCase().includes(n)||a.toLowerCase().includes(n))&&l.push({key:e,album:r,artist:a,tracks:t})}l.sort((e,t)=>{let r=e.album.localeCompare(t.album,void 0,{sensitivity:"base"});return 0!==r?r:e.artist.localeCompare(t.artist,void 0,{sensitivity:"base"})});let c=new Map,o=(e,r,n)=>{let a=`${e}\u0000${r}`,i=c.get(a);!i&&(i={rootId:e,rootName:t.find(t=>t.id===e)?.name??e,path:r,tracks:[]},c.set(a,i));i.tracks.some(e=>e.id===n.id)||i.tracks.push(n)};for(let r of t)if(r.name.toLowerCase().includes(n))for(let t of e)t.library?.rootId===r.id&&o(r.id,"",t);for(let t of e){let e=t.library;if(e)for(let r of function(e){let t=e.split("/").filter(Boolean);if(t.length<=1)return[];let r=[];for(let e=0;e<t.length-1;e++)r.push(t.slice(0,e+1).join("/"));return r}(e.relativePath))(function(e,t){return!!t&&(!!e.toLowerCase().includes(t)||e.split("/").filter(Boolean).some(e=>e.toLowerCase().includes(t)))})(r,n)&&o(e.rootId,r,t)}return{artists:i,albums:l,folders:[...c.values()].sort((e,t)=>{let r=e.rootName.localeCompare(t.rootName,void 0,{sensitivity:"base"});return 0!==r?r:e.path.localeCompare(t.path,void 0,{sensitivity:"base"})}),songs:e.filter(e=>e.title.toLowerCase().includes(n)).sort((e,t)=>e.title.localeCompare(t.title,void 0,{sensitivity:"base"}))}})(r,e,A),[r,e,A]),eb=(0,n.useMemo)(()=>(function(e){let t=new Set,r=[];for(let n of e)for(let e of n)t.has(e.id)||(t.add(e.id),r.push(e));return r})([eh.artists.flatMap(e=>e.tracks),eh.albums.flatMap(e=>e.tracks),eh.folders.flatMap(e=>e.tracks),eh.songs]),[eh]),ef=(0,n.useMemo)(()=>R(r),[r]),ep=(0,n.useMemo)(()=>P(r),[r]),eg=(0,n.useMemo)(()=>u.filter(e=>ef.has(e)).sort((e,t)=>e.localeCompare(t,void 0,{sensitivity:"base"})),[u,ef]),ek=(0,n.useMemo)(()=>m.filter(e=>ep.has(e)).sort((e,t)=>{let[r,n]=e.split("\0"),[a,i]=t.split("\0"),s=r.localeCompare(a,void 0,{sensitivity:"base"});return 0!==s?s:n.localeCompare(i,void 0,{sensitivity:"base"})}),[m,ep]),ev=(0,n.useMemo)(()=>{let e=new Set(d);return r.filter(t=>e.has(t.id)).sort((e,t)=>e.title.localeCompare(t.title,void 0,{sensitivity:"base"}))},[r,d]),ey=(0,n.useMemo)(()=>{let e=new Set,t=[],n=r=>{e.has(r.id)||(e.add(r.id),t.push(r))};for(let e of d){let t=r.find(t=>t.id===e);t&&n(t)}for(let e of u){let t=ef.get(e);if(t)for(let e of t)n(e)}for(let e of m){let t=ep.get(e);if(t)for(let e of t)n(e)}return t.sort((e,t)=>e.title.localeCompare(t.title,void 0,{sensitivity:"base"})),t},[d,u,m,r,ef,ep]),ez=(0,n.useMemo)(()=>{let e=[],{artists:t,albums:r,folders:n,songs:a}=eh;return t.length&&e.push(`${t.length} artist${1===t.length?"":"s"}`),r.length&&e.push(`${r.length} album${1===r.length?"":"s"}`),n.length&&e.push(`${n.length} folder${1===n.length?"":"s"}`),a.length&&e.push(`${a.length} song${1===a.length?"":"s"}`),e},[eh]),ej=(0,n.useCallback)(e=>{I(""),B(null),G(null),H(""),L("artist"),q(e)},[]),ew=(0,n.useCallback)(e=>{I(""),q(null),G(null),H(""),L("album"),B(e)},[]),eN=(0,n.useCallback)((e,t)=>{I(""),q(null),B(null),L("folder"),G(e),H(t)},[]),eC=(0,n.useCallback)(e=>{j(e),q(t=>t===e?null:t)},[j]),eS=(0,n.useCallback)(e=>{z(e),B(t=>t===e?null:t)},[z]),eE=(0,n.useCallback)(e=>{Y(e)},[]),eL=(0,n.useMemo)(()=>{if(!O)return null;let e=ep.get(O)??[];if(0===e.length)return null;let t=O.split("\0"),r=t[0]??"",n=t[1]??"",a=new Set(e.map(e=>(0,C.artistDisplayName)(e.artist)));return{albumKey:O,albumTitle:r,artistName:n,trackCount:e.length,multipleTrackArtists:a.size>1}},[O,ep]),eA=(0,n.useCallback)(e=>{var t;let r;return r=[],(t={albumKey:e,onRemoveAlbumFromLibrary:eS,onEditAlbumMetadata:eE}).onEditAlbumMetadata&&r.push({id:"edit-metadata",label:"Edit album metadata",onSelect:()=>t.onEditAlbumMetadata(t.albumKey)}),r.push({id:"remove",label:"Remove album from library",onSelect:()=>t.onRemoveAlbumFromLibrary(t.albumKey)}),r},[eS,eE]),eM=(0,n.useCallback)(e=>{_(e)},[]),eR=(0,n.useMemo)(()=>{if(!V)return null;let e=ef.get(V)??[];if(0===e.length)return null;let t=new Set(e.map(e=>(0,C.albumCompositeKey)(e.album,e.artist)));return{artistName:V,trackCount:e.length,albumCount:t.size}},[V,ef]),eP=(0,n.useCallback)(e=>{var t;let r;return r=[],(t={artistName:e,onRemoveArtistFromLibrary:eC,onEditArtistMetadata:eM}).onEditArtistMetadata&&r.push({id:"edit-metadata",label:"Edit artist metadata",onSelect:()=>t.onEditArtistMetadata(t.artistName)}),r.push({id:"remove",label:"Remove artist from library",onSelect:()=>t.onRemoveArtistFromLibrary(t.artistName)}),r},[eC,eM]);return(0,t.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,t.jsxs)("div",{className:"shrink-0 space-y-3 border-b border-zinc-200 px-4 py-3 dark:border-zinc-800",children:[(0,t.jsx)("h2",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Library"}),(0,t.jsx)("input",{type:"search",value:A,onChange:e=>I(e.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,t.jsx)(l,{source:"library",onSelect:I}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:["artist","album","folder","favorites"].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>et(e),className:["cursor-pointer rounded-full px-3 py-1 text-xs font-medium capitalize transition",E===e?"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:e},e))})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-auto px-2 py-2",children:0===r.length?(0,t.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"No library tracks yet. Configure folders in settings."}):W?(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("p",{className:"px-2 pb-2 text-xs text-zinc-500",children:ez.length>0?(0,t.jsxs)(t.Fragment,{children:[ez.join(" · "),eb.length>0?(0,t.jsxs)("span",{className:"text-zinc-400",children:[" ","· ",eb.length," unique track",1===eb.length?"":"s"," (add all)"]}):null]}):"No matches."}),ez.length>0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{type:"button",onClick:()=>ex(eb),disabled:0===eb.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"}),eh.artists.length>0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"px-2 pt-2 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Artists"}),(0,t.jsx)("ul",{className:Z,children:eh.artists.map(e=>(0,t.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>ej(e.name),className:`flex min-w-0 flex-1 items-center justify-between rounded-lg ${X} text-left text-sm text-zinc-800 transition hover:bg-zinc-100 dark:text-zinc-200 dark:hover:bg-zinc-800/80`,children:[(0,t.jsx)("span",{className:"truncate font-medium text-zinc-900 dark:text-zinc-100",children:e.name}),(0,t.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-zinc-500",children:e.tracks.length})]}),(0,t.jsx)(g.default,{triggerLabel:`Actions for ${e.name}`,items:eP(e.name)}),(0,t.jsx)(p,{filled:x(e.name),onPress:()=>b(e.name),label:x(e.name)?"Remove artist from favorites":"Add artist to favorites"}),(0,t.jsx)("button",{type:"button",onClick:()=>ex(e.tracks),disabled:0===e.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"})]},e.name))})]}):null,eh.albums.length>0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"px-2 pt-3 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Albums"}),(0,t.jsx)("ul",{className:Z,children:eh.albums.map(e=>{let r=e.tracks[0];return(0,t.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>ew(e.key),className:`flex min-w-0 flex-1 items-center ${J} rounded-lg ${X} text-left transition hover:bg-zinc-100 dark:hover:bg-zinc-800/80`,children:[(0,t.jsx)(f,{track:r}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col items-start",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:e.album}),(0,t.jsx)("span",{className:"truncate text-xs text-zinc-500",children:e.artist}),(0,t.jsxs)("span",{className:"mt-0.5 text-xs text-zinc-400",children:[e.tracks.length," track",1===e.tracks.length?"":"s"]})]})]}),(0,t.jsx)(g.default,{triggerLabel:`Actions for ${e.album}`,items:eA(e.key)}),(0,t.jsx)(p,{filled:h(e.key),onPress:()=>v(e.key),label:h(e.key)?"Remove album from favorites":"Add album to favorites"}),(0,t.jsx)("button",{type:"button",onClick:()=>ex(e.tracks),disabled:0===e.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"})]},e.key)})})]}):null,eh.folders.length>0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"px-2 pt-3 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Folders"}),(0,t.jsx)("ul",{className:Z,children:eh.folders.map(e=>(0,t.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>eN(e.rootId,e.path),className:`flex min-w-0 flex-1 flex-col items-start rounded-lg ${X} text-left text-sm transition hover:bg-zinc-100 dark:hover:bg-zinc-800/80`,children:[(0,t.jsx)("span",{className:"truncate font-medium text-zinc-900 dark:text-zinc-100",children:e.path?`${e.rootName} / ${e.path.replace(/\//g," / ")}`:`${e.rootName} (library)`}),(0,t.jsxs)("span",{className:"mt-0.5 text-xs tabular-nums text-zinc-500",children:[e.tracks.length," tracks"]})]}),(0,t.jsx)("button",{type:"button",onClick:()=>ex(e.tracks),disabled:0===e.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"})]},`${e.rootId}\u0000${e.path}`))})]}):null,eh.songs.length>0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"px-2 pt-3 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Songs"}),(0,t.jsx)("ul",{className:Z,children:eh.songs.map(e=>(0,t.jsx)("li",{children:(0,t.jsx)(y,{track:e,compact:o,onAdd:em})},e.id))})]}):null]}):null]}):"artist"===E?null===U?(0,t.jsx)("ul",{className:Z,children:ea.map(e=>(0,t.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>q(e),className:`flex min-w-0 flex-1 items-center justify-between rounded-lg ${X} text-left text-sm text-zinc-800 transition hover:bg-zinc-100 dark:text-zinc-200 dark:hover:bg-zinc-800/80`,children:[(0,t.jsx)("span",{className:"truncate font-medium",children:e}),(0,t.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-zinc-500",children:er.get(e)?.length??0})]}),(0,t.jsx)(g.default,{triggerLabel:`Actions for ${e}`,items:eP(e)}),(0,t.jsx)(p,{filled:x(e),onPress:()=>b(e),label:x(e)?"Remove artist from favorites":"Add artist to favorites"}),(0,t.jsx)("button",{type:"button",onClick:()=>ex(er.get(e)??[]),disabled:(er.get(e)?.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"})]},e))}):(0,t.jsxs)("div",{children:[(0,t.jsx)("button",{type:"button",onClick:()=>q(null),className:"mb-2 px-2 text-xs font-medium text-accent-700 hover:underline dark:text-accent-400",children:"← Artists"}),el?(0,t.jsx)("div",{className:"mb-4 border-b border-zinc-200 px-2 pb-4 dark:border-zinc-800",children:(0,t.jsxs)("div",{className:"flex gap-4",children:[el.sample?(0,t.jsx)(f,{track:el.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,t.jsxs)("div",{className:"min-w-0 flex-1 py-0.5",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsx)("div",{className:"min-w-0 flex-1",children:(0,t.jsx)("h3",{className:"text-lg font-semibold leading-tight text-zinc-900 dark:text-zinc-50",children:el.name})}),U?(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,t.jsx)("button",{type:"button",onClick:()=>ex(er.get(U)??[]),disabled:(er.get(U)?.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,t.jsx)(g.default,{triggerLabel:`Actions for ${el.name}`,items:eP(U)}),(0,t.jsx)(p,{filled:x(U),onPress:()=>b(U),label:x(U)?"Remove artist from favorites":"Add artist to favorites"})]}):null]}),(0,t.jsxs)("p",{className:"mt-2 text-xs tabular-nums text-zinc-500 dark:text-zinc-400",children:[el.trackCount," track",1===el.trackCount?"":"s",el.albumCount>0?` \xb7 ${el.albumCount} album${1===el.albumCount?"":"s"}`:"",el.totalSec>0?` \xb7 ${(0,k.formatDuration)(el.totalSec)} total`:el.trackCount>0?" · unknown total length":"",el.withDurationCount>0&&el.withDurationCount<el.trackCount?(0,t.jsxs)("span",{className:"text-zinc-400",children:[" ","(",el.withDurationCount," timed)"]}):null]}),el.rootLabels.length>1?(0,t.jsxs)("p",{className:"mt-1.5 text-xs leading-snug text-zinc-500 dark:text-zinc-500",children:["Libraries: ",el.rootLabels.join(" · ")]}):1===el.rootLabels.length?(0,t.jsxs)("p",{className:"mt-1.5 text-xs text-zinc-500 dark:text-zinc-500",children:["Library: ",el.rootLabels[0]]}):null]})]})}):null,(0,t.jsx)("ul",{className:Z,children:(er.get(U)??[]).map(e=>(0,t.jsx)("li",{children:(0,t.jsx)(y,{track:e,compact:o,onAdd:em,showArtist:!1})},e.id))})]}):"album"===E?null===D?(0,t.jsx)("ul",{className:Z,children:ei.map(e=>{let[r,n]=e.split("\0"),a=en.get(e)?.length??0,i=en.get(e)?.[0];return(0,t.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>B(e),className:`flex min-w-0 flex-1 items-center ${J} rounded-lg ${X} text-left transition hover:bg-zinc-100 dark:hover:bg-zinc-800/80`,children:[(0,t.jsx)(f,{track:i}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col items-start",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:r}),(0,t.jsx)("span",{className:"truncate text-xs text-zinc-500",children:n}),(0,t.jsxs)("span",{className:"mt-0.5 text-xs text-zinc-400",children:[a," track",1===a?"":"s"]})]})]}),(0,t.jsx)(g.default,{triggerLabel:`Actions for ${r}`,items:eA(e)}),(0,t.jsx)(p,{filled:h(e),onPress:()=>v(e),label:h(e)?"Remove album from favorites":"Add album to favorites"}),(0,t.jsx)("button",{type:"button",onClick:()=>ex(en.get(e)??[]),disabled:0===a,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"})]},e)})}):(0,t.jsxs)("div",{children:[(0,t.jsx)("button",{type:"button",onClick:()=>B(null),className:"mb-2 px-2 text-xs font-medium text-accent-700 hover:underline dark:text-accent-400",children:"← Albums"}),es?(0,t.jsx)("div",{className:"mb-4 border-b border-zinc-200 px-2 pb-4 dark:border-zinc-800",children:(0,t.jsxs)("div",{className:"flex gap-4",children:[(0,t.jsx)(f,{track:es.sample,className:"h-22 w-22 shrink-0 overflow-hidden rounded-lg ring-1 ring-zinc-200/80 dark:ring-zinc-700/80"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 py-0.5",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold leading-tight text-zinc-900 dark:text-zinc-50",children:es.title}),(0,t.jsx)("p",{className:"mt-1 text-sm text-zinc-600 dark:text-zinc-400",children:es.artist})]}),D?(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,t.jsx)("button",{type:"button",onClick:()=>ex(en.get(D)??[]),disabled:(en.get(D)?.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,t.jsx)(g.default,{triggerLabel:`Actions for ${es.title}`,items:eA(D)}),(0,t.jsx)(p,{filled:h(D),onPress:()=>v(D),label:h(D)?"Remove album from favorites":"Add album to favorites"})]}):null]}),es.multipleTrackArtists?(0,t.jsx)("p",{className:"mt-1 text-xs text-zinc-500 dark:text-zinc-500",children:"Track-level artists differ on this album"}):null,(0,t.jsxs)("p",{className:"mt-2 text-xs tabular-nums text-zinc-500 dark:text-zinc-400",children:[es.trackCount," track",1===es.trackCount?"":"s",es.totalSec>0?` \xb7 ${(0,k.formatDuration)(es.totalSec)} total`:es.trackCount>0?" · unknown total length":"",es.withDurationCount>0&&es.withDurationCount<es.trackCount?(0,t.jsxs)("span",{className:"text-zinc-400",children:[" (",es.withDurationCount," timed)"]}):null]}),es.rootLabels.length>1?(0,t.jsxs)("p",{className:"mt-1.5 text-xs leading-snug text-zinc-500 dark:text-zinc-500",children:["Libraries: ",es.rootLabels.join(" · ")]}):1===es.rootLabels.length?(0,t.jsxs)("p",{className:"mt-1.5 text-xs text-zinc-500 dark:text-zinc-500",children:["Library: ",es.rootLabels[0]]}):null]})]})}):null,(0,t.jsx)("ul",{className:Z,children:(en.get(D)??[]).map(e=>(0,t.jsx)("li",{children:(0,t.jsx)(y,{track:e,compact:o,onAdd:em})},e.id))})]}):"favorites"===E?(0,t.jsxs)("div",{className:"space-y-4 px-1",children:[(0,t.jsx)("div",{className:"flex flex-wrap gap-2 px-2",children:(0,t.jsxs)("button",{type:"button",onClick:()=>ex(ey),disabled:0===ey.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 (",ey.length,")"]})}),0===eg.length&&0===ek.length&&0===ev.length?(0,t.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,t.jsxs)(t.Fragment,{children:[eg.length>0?(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"px-2 pb-1 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Artists"}),(0,t.jsx)("ul",{className:Z,children:eg.map(e=>(0,t.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{et("artist"),q(e)},className:`flex min-w-0 flex-1 items-center justify-between rounded-lg ${X} text-left text-sm text-zinc-800 transition hover:bg-zinc-100 dark:text-zinc-200 dark:hover:bg-zinc-800/80`,children:[(0,t.jsx)("span",{className:"truncate font-medium text-zinc-900 dark:text-zinc-100",children:e}),(0,t.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-zinc-500",children:ef.get(e)?.length??0})]}),(0,t.jsx)(g.default,{triggerLabel:`Actions for ${e}`,items:eP(e)}),(0,t.jsx)(p,{filled:!0,onPress:()=>b(e),label:"Remove artist from favorites"}),(0,t.jsx)("button",{type:"button",onClick:()=>ex(ef.get(e)??[]),disabled:(ef.get(e)?.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"})]},e))})]}):null,ek.length>0?(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"px-2 pb-1 pt-2 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Albums"}),(0,t.jsx)("ul",{className:Z,children:ek.map(e=>{let[r,n]=e.split("\0"),a=ep.get(e)??[],i=a[0];return(0,t.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{et("album"),B(e)},className:`flex min-w-0 flex-1 items-center ${J} rounded-lg ${X} text-left transition hover:bg-zinc-100 dark:hover:bg-zinc-800/80`,children:[(0,t.jsx)(f,{track:i}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col items-start",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:r}),(0,t.jsx)("span",{className:"truncate text-xs text-zinc-500",children:n}),(0,t.jsxs)("span",{className:"mt-0.5 text-xs text-zinc-400",children:[a.length," track",1===a.length?"":"s"]})]})]}),(0,t.jsx)(g.default,{triggerLabel:`Actions for ${r}`,items:eA(e)}),(0,t.jsx)(p,{filled:!0,onPress:()=>v(e),label:"Remove album from favorites"}),(0,t.jsx)("button",{type:"button",onClick:()=>ex(a),disabled:0===a.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"})]},e)})})]}):null,ev.length>0?(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"px-2 pb-1 pt-2 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Songs"}),(0,t.jsx)("ul",{className:Z,children:ev.map(e=>(0,t.jsx)("li",{children:(0,t.jsx)(y,{track:e,compact:o,onAdd:em})},e.id))})]}):null]})]}):null===F?(0,t.jsx)("ul",{className:Z,children:eu.map(e=>{let r=T(K,e.id);return(0,t.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{G(e.id),H("")},className:`flex min-w-0 flex-1 items-center justify-between rounded-lg ${X} text-left text-sm transition hover:bg-zinc-100 dark:hover:bg-zinc-800/80`,children:[(0,t.jsx)("span",{className:"truncate font-medium text-zinc-900 dark:text-zinc-100",children:e.name}),(0,t.jsx)("span",{className:"shrink-0 text-xs text-zinc-500",children:r.length})]}),(0,t.jsx)("button",{type:"button",onClick:()=>ex(r),disabled:0===r.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"})]},e.id)})}):(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{if(""===Q)G(null);else{let e=Q.split("/").filter(Boolean);e.pop(),H(e.join("/"))}},className:"mb-2 px-2 text-xs font-medium text-accent-700 hover:underline dark:text-accent-400",children:["← ",""===Q?"Libraries":"Up"]}),(0,t.jsxs)("p",{className:"mb-2 truncate px-2 text-xs text-zinc-500",title:Q||"/",children:[e.find(e=>e.id===F)?.name??F,Q?` / ${Q.replace(/\//g," / ")}`:""]}),(0,t.jsxs)("div",{className:"mb-2 flex flex-wrap gap-2 px-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>ex(ed),disabled:0===ed.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,t.jsx)("button",{type:"button",onClick:()=>ex(eo.files),disabled:0===eo.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,t.jsxs)("ul",{className:Z,children:[eo.folders.map(e=>{let r=""===Q?e:`${Q}/${e}`,n=$(ec,r);return(0,t.jsxs)("li",{className:"group/row flex items-center gap-1",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>H(r),className:`flex min-w-0 flex-1 items-center rounded-lg ${ee} text-left text-sm hover:bg-zinc-100 dark:hover:bg-zinc-800/80`,children:[(0,t.jsx)("span",{className:"truncate font-medium text-zinc-900 dark:text-zinc-100",children:e}),(0,t.jsx)("span",{className:"ml-2 shrink-0 text-xs tabular-nums text-zinc-500",children:n.length})]}),(0,t.jsx)("button",{type:"button",onClick:()=>ex(n),disabled:0===n.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"})]},e)}),eo.files.map(e=>(0,t.jsx)("li",{children:(0,t.jsx)(y,{track:e,compact:o,onAdd:em,showArtist:!1,indentClass:o?"pl-3":"pl-4"})},e.id))]})]})}),eL?(0,t.jsx)(S,{albumKey:eL.albumKey,albumTitle:eL.albumTitle,artistName:eL.artistName,trackCount:eL.trackCount,multipleTrackArtists:eL.multipleTrackArtists,onClose:()=>Y(null),onSaved:e=>{B(t=>t===O?e:t),Y(null)}}):null,eR?(0,t.jsx)(M,{artistName:eR.artistName,trackCount:eR.trackCount,albumCount:eR.albumCount,onClose:()=>_(null),onSaved:e=>{q(t=>t===V?e:t),_(null)}}):null]})}function U(e){return e.hasMore?(0,t.jsx)("div",{className:"flex justify-center px-2 pt-3 pb-1",children:(0,t.jsx)("button",{type:"button",onClick:e.onLoadMore,disabled:e.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:e.loading?"Loading…":"Load more"})}):null}var q=e.i(75878);function D(e){let t=new Map;for(let r of e){let e=(0,C.artistDisplayName)(r.artist),n=t.get(e)??[];n.push(r),t.set(e,n)}for(let e of t.values())e.sort((e,t)=>e.title.localeCompare(t.title,void 0,{sensitivity:"base"}));return t}function B(e,t){let r=new Set(e.map(e=>e.id));for(let n of t)r.has(n.id)||(r.add(n.id),e.push(n))}let O=0,Y=Promise.resolve();async function V(){Y=Y.then(async()=>{let e=Math.max(0,1100-(Date.now()-O));e>0&&await new Promise(t=>setTimeout(t,e)),O=Date.now()}),await Y}let _=new Set([503,502,429]);async function F(e,t){let r=e.toString(),n=null;for(let e=0;e<3;e+=1){let a;if(t?.aborted)throw new DOMException("Aborted","AbortError");await V();try{a=await fetch(r,{method:"GET",headers:{Accept:"application/json","User-Agent":"MuzicalUI/1.0 (https://github.com/f3rnox/muzical-ui)"},signal:t})}catch(e){if(t?.aborted||e instanceof Error&&"AbortError"===e.name||"object"==typeof e&&null!==e&&"name"in e&&"AbortError"===e.name)throw e;throw console.error("[MusicBrainz] request failed",{url:r,error:e}),e}if(a.ok)return await a.json();let i="";try{i=(await a.text()).slice(0,300)}catch{}if(n=Error(`MusicBrainz request failed (${a.status})`),console.error("[MusicBrainz] request failed",{url:r,status:a.status,statusText:a.statusText,body:i||void 0,attempt:e+1}),!_.has(a.status)||e>=2)throw n;await new Promise(t=>setTimeout(t,1500*(e+1)))}throw n??Error("MusicBrainz request failed")}function G(e,t={},r){let n=e["artist-credit"]?.map(e=>e.name?.trim()||e.artist?.name?.trim()).filter(Boolean).join(" & ")??"Unknown artist",a=function(e,t){if(!e?.length)return;let r=t.album?.trim().toLowerCase();if(r){let t=e.find(e=>{let t=e.title?.trim().toLowerCase()??"",n=e["release-group"]?.title?.trim().toLowerCase()??"";return t===r||n===r});if(t)return t;let n=e.find(e=>{let t=e.title?.trim().toLowerCase()??"",n=e["release-group"]?.title?.trim().toLowerCase()??"";return t.includes(r)||n.includes(r)});if(n)return n}return e.find(e=>"Official"===e.status)??e[0]}(e.releases,t),i=r?.trim()||a?.["release-group"]?.title?.trim()||a?.title?.trim()||"Unknown album",s=e.title?.trim()||"Unknown title",l=`${s} ${n}`.trim();return{id:`musicbrainz:${e.id}`,title:s,artist:n,album:i,durationSec:e.length&&Number.isFinite(e.length)?Math.round(e.length/1e3):0,source:"musicbrainz",youtubeQuery:l}}async function Q(e,t,r,n){let a=new URL(`https://musicbrainz.org/ws/2/release/${e}`);a.searchParams.set("inc","recordings+artist-credits+media"),a.searchParams.set("fmt","json");let i=await F(a,n),s={artist:r,album:t},l=[],c=new Set;for(let e of i.media??[])for(let r of e.tracks??[]){let e=r.recording,n=e?.id;if(!n||c.has(n))continue;c.add(n);let a=G(e??{id:r.id,title:r.title,length:r.length,"artist-credit":i["artist-credit"]},s,t);a.title&&"Unknown title"!==a.title||(a.title=r.title?.trim()||a.title),r.length&&Number.isFinite(r.length)&&(a.durationSec=Math.round(r.length/1e3)),l.push(a)}return l}async function H(e,t,r,n=25,a=0){let i=e.trim();if(!i)return[];let s=new URL("https://musicbrainz.org/ws/2/recording");s.searchParams.set("query",i),s.searchParams.set("fmt","json"),s.searchParams.set("limit",String(n)),a>0&&s.searchParams.set("offset",String(a)),s.searchParams.set("inc","artist-credits+releases");let l=await F(s,r);return(Array.isArray(l.recordings)?l.recordings:[]).map(e=>G(e,t))}async function K(e,t,r=8,n=0){let a=e.trim();if(!a)return[];let i=new URL("https://musicbrainz.org/ws/2/release-group");i.searchParams.set("query",a),i.searchParams.set("fmt","json"),i.searchParams.set("limit",String(r)),n>0&&i.searchParams.set("offset",String(n));let s=await F(i,t);return Array.isArray(s["release-groups"])?s["release-groups"]:[]}function W(e){return e.replace(/([+\-!(){}[\]^"~*?:\\/])/g,"\\$1")}function Z(e,t){let r=t.album?.trim().toLowerCase()??"";return r?[...e].sort((e,t)=>{let n=e.title?.trim().toLowerCase()??"",a=t.title?.trim().toLowerCase()??"",i=n===r?2:+!!n.includes(r);return(a===r?2:+!!a.includes(r))-i}):[...e]}function X(e,t){let{queries:r,hints:n}=function(e){let t=e.trim();if(!t)return{queries:[],hints:{}};let r=t.split(/\s+/).filter(Boolean),n={};if(r.length>=2){let e=W(r[0]),a=W(r.slice(1).join(" "));n.artist=r[0],n.album=r.slice(1).join(" ");let i=W(r[1]),s=[`artist:${e} AND release:${a}`,`artist:${e} AND release-group:${a}`,`artist:${e} AND releasegroup:${a}`];return 2===r.length&&s.push(`artist:${i} AND release:${e}`),s.push(`"${W(t)}"`,t),{hints:n,queries:s}}let a=W(r[0]);return{hints:{artist:r[0]},queries:[`artist:${a}`,t]}}(e),a="album"===t?r.slice(0,1):r;return{query:e,mode:t,hints:n,recordingQueries:a,recordingQueryIndex:0,recordingOffset:0,releaseGroupQuery:function(e,t){let r=e.trim();if(t.artist&&t.album){let e=W(t.artist),r=W(t.album);return`artist:${e} AND releasegroup:${r}`}return r}(e,n),releaseGroupOffset:0,releaseGroups:null,releaseGroupExpandIndex:0}}async function J(e,t,r="song",n){var a;let i=e.trim();if(!i)return{tracks:[],cursor:X("",r),hasMore:!1};let s=n??X(i,r),l=[];for(;l.length<20&&s.recordingQueryIndex<s.recordingQueries.length&&!t?.aborted;){let e=s.recordingQueries[s.recordingQueryIndex];if(!e)break;let r=await H(e,s.hints,t,25,s.recordingOffset);if(B(l,r),s=r.length<25?{...s,recordingQueryIndex:s.recordingQueryIndex+1,recordingOffset:0}:{...s,recordingOffset:s.recordingOffset+25},0===r.length&&s.recordingQueryIndex>=s.recordingQueries.length)break}if(l.length<20&&s.releaseGroupQuery.trim()){let e=s.releaseGroups;if(!e){let r=await K(s.releaseGroupQuery,t,10,s.releaseGroupOffset);e=Z(r,s.hints),s={...s,releaseGroups:e,releaseGroupOffset:s.releaseGroupOffset+r.length}}let r=0;for(;l.length<20&&r<2&&s.releaseGroupExpandIndex<e.length&&!t?.aborted;){;let n=e[s.releaseGroupExpandIndex];s={...s,releaseGroupExpandIndex:s.releaseGroupExpandIndex+1},r+=1;let a=function(e){let t=e.releases??[],r=t.find(e=>"Official"===e.status);return r?.id??t[0]?.id??null}(n);if(!a)continue;let i=n["artist-credit"]?.map(e=>e.name?.trim()||e.artist?.name?.trim()).filter(Boolean).join(" & ")??"Unknown artist",c=n.title?.trim()||"Unknown album";B(l,await Q(a,c,i,t))}if(l.length<20&&s.releaseGroupExpandIndex>=e.length&&e.length>=10){let r=await K(s.releaseGroupQuery,t,10,s.releaseGroupOffset);if(r.length>0){let t=Z([...e,...r],s.hints);s={...s,releaseGroups:t,releaseGroupOffset:s.releaseGroupOffset+r.length}}}}let c=(a=s).recordingQueryIndex<a.recordingQueries.length||!!a.releaseGroupQuery.trim()&&(null===a.releaseGroups||a.releaseGroupExpandIndex<a.releaseGroups.length);return{tracks:l,cursor:s,hasMore:c}}var ee=e.i(71569),et=e.i(45461),er=e.i(62445);let en=["artist","album","song"];function ea(){let{libraryTracks:e,addToLibrary:r,addToQueue:s,compactLists:o,recordRecentBrowseSearch:d,beginYoutubePrefetch:u,endYoutubePrefetch:m}=(0,i.useLibrary)(),x=(0,a.useSearchParams)(),[h,b]=(0,n.useState)(""),[f,p]=(0,n.useState)([]),[g,k]=(0,n.useState)(!1),[v,y]=(0,n.useState)(!1),[z,j]=(0,n.useState)(!1),[w,N]=(0,n.useState)(null),[S,E]=(0,n.useState)(null),[L,A]=(0,n.useState)("song"),[M,R]=(0,n.useState)(null),[P,T]=(0,n.useState)(null),$=(0,n.useRef)(null),I=(0,n.useRef)(null),O=o?"space-y-0.25":"space-y-0.5",Y=o?"px-2 py-2":"px-3 py-2.5",V=o?"gap-2":"gap-3",_=(0,n.useCallback)(t=>e.some(e=>e.id===t),[e]),F=(0,n.useCallback)(()=>{I.current&&(window.clearTimeout(I.current),I.current=null),$.current&&($.current.abort(),$.current=null),p([]),k(!1),y(!1),j(!1),N(null),E(null),R(null),T(null)},[]),G=(0,n.useCallback)(e=>{A(e),R(null),T(null)},[]),Q=(0,n.useCallback)(e=>{(b(e),R(null),T(null),e.trim().length<3)?F():(k(!0),E(null))},[F]);c(x,Q),(0,n.useEffect)(()=>{let e=h.trim();if(e.length<3)return;I.current&&(window.clearTimeout(I.current),I.current=null),$.current&&($.current.abort(),$.current=null);let t=new AbortController;return $.current=t,I.current=window.setTimeout(()=>{J(e,t.signal,L).then(t=>{p(t.tracks),N(t.cursor),j(t.hasMore),E(null),d("musicbrainz",e)}).catch(e=>{e instanceof Error&&"AbortError"===e.name||"object"==typeof e&&null!==e&&"name"in e&&"AbortError"===e.name||(E(e instanceof Error?e.message:"MusicBrainz search failed"),p([]),j(!1),N(null))}).finally(()=>k(!1))},300),()=>{I.current&&(window.clearTimeout(I.current),I.current=null),$.current&&($.current.abort(),$.current=null)}},[h,L,d]),(0,n.useEffect)(()=>{if((0,er.default)()||0===f.length)return;let e=(0,ee.default)(f).slice(0,12);if(0===e.length)return;let t=new AbortController,r=e.length;return u(r),(0,et.default)(e,(e,t)=>{p(r=>r.map(r=>r.id===e?{...r,youtubeVideoId:t}:r))},{signal:t.signal}).finally(()=>{m(r)}),()=>{t.abort()}},[f,u,m]);let H=(0,n.useCallback)(e=>s(e),[s]),K=(0,n.useCallback)(e=>r(e),[r]),W=(0,n.useCallback)(e=>{let t=e.filter(e=>!_(e.id));t.length>0&&r(t)},[r,_]),Z=(0,n.useCallback)(e=>{0!==e.length&&s(e)},[s]),X=(0,n.useCallback)(()=>{let e=h.trim();e.length<3||!w||v||g||(y(!0),E(null),J(e,new AbortController().signal,L,w).then(e=>{p(t=>{let r=[...t];return B(r,e.tracks),r}),N(e.cursor),j(e.hasMore)}).catch(e=>{e instanceof Error&&"AbortError"===e.name||E(e instanceof Error?e.message:"MusicBrainz search failed")}).finally(()=>y(!1)))},[h,L,w,v,g]),ea=(0,n.useMemo)(()=>D(f),[f]),ei=(0,n.useMemo)(()=>(function(e){let t=new Map;for(let r of e){let e=(0,C.albumCompositeKey)(r.album,(0,C.artistDisplayName)(r.artist)),n=t.get(e)??[];n.push(r),t.set(e,n)}for(let e of t.values())e.sort((e,t)=>e.title.localeCompare(t.title,void 0,{sensitivity:"base"}));return t})(f),[f]),es=(0,n.useMemo)(()=>[...ea.keys()].sort((e,t)=>e.localeCompare(t,void 0,{sensitivity:"base"})),[ea]),el=(0,n.useMemo)(()=>[...ei.keys()].sort((e,t)=>{let[r,n]=e.split("\0"),[a,i]=t.split("\0"),s=r.localeCompare(a,void 0,{sensitivity:"base"});return 0!==s?s:n.localeCompare(i,void 0,{sensitivity:"base"})}),[ei]),ec=h.trim(),eo=ec.length>0&&ec.length<3,ed=f.length>0,eu=(e,r)=>(0,t.jsx)("ul",{className:O,children:e.map(e=>(0,t.jsx)("li",{children:(0,t.jsx)(q.default,{track:e,alreadySaved:_(e.id),compact:o,onQueue:H,onSave:K,subtitle:r?.(e)})},e.id))});return(0,t.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,t.jsxs)("div",{className:"shrink-0 space-y-3 border-b border-zinc-200 px-4 py-3 dark:border-zinc-800",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"MusicBrainz"}),(0,t.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,t.jsx)("input",{type:"search",value:h,onChange:e=>Q(e.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,t.jsx)(l,{source:"musicbrainz",onSelect:Q}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:en.map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>G(e),className:["cursor-pointer rounded-full px-3 py-1 text-xs font-medium capitalize transition",L===e?"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:e},e))})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-auto px-2 py-2",children:S?(0,t.jsx)("p",{className:"px-2 py-4 text-sm text-red-600 dark:text-red-400",role:"alert",children:S}):g?(0,t.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"Searching MusicBrainz…"}):eo?(0,t.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"Type at least 3 characters to search."}):0===ec.length?(0,t.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."}):ed?(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 px-2 pb-2",children:[(0,t.jsxs)("p",{className:"text-xs text-zinc-500",children:[f.length," recording",1===f.length?"":"s","artist"===L&&es.length>0?` \xb7 ${es.length} artist${1===es.length?"":"s"}`:"","album"===L&&el.length>0?` \xb7 ${el.length} album${1===el.length?"":"s"}`:""]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1",children:[(0,t.jsx)("button",{type:"button",onClick:()=>Z(f),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,t.jsx)("button",{type:"button",onClick:()=>W(f),disabled:f.every(e=>_(e.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"===L)return eu(f);if("artist"===L){if(null===M)return(0,t.jsx)("ul",{className:O,children:es.map(e=>{let r=ea.get(e)?.length??0;return(0,t.jsxs)("li",{className:"flex items-center gap-1",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>R(e),className:`flex min-w-0 flex-1 cursor-pointer items-center justify-between rounded-lg ${Y} text-left text-sm text-zinc-800 transition hover:bg-zinc-100 dark:text-zinc-200 dark:hover:bg-zinc-800/80`,children:[(0,t.jsx)("span",{className:"truncate font-medium",children:e}),(0,t.jsx)("span",{className:"shrink-0 text-xs tabular-nums text-zinc-500",children:r})]}),(0,t.jsx)("button",{type:"button",onClick:()=>Z(ea.get(e)??[]),disabled:0===r,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"})]},e)})});let e=ea.get(M)??[];return(0,t.jsxs)("div",{children:[(0,t.jsx)("button",{type:"button",onClick:()=>R(null),className:"mb-2 cursor-pointer px-2 text-xs font-medium text-accent-700 hover:underline dark:text-accent-400",children:"← Artists"}),(0,t.jsxs)("div",{className:"mb-2 flex flex-wrap gap-2 px-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>Z(e),disabled:0===e.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,t.jsx)("button",{type:"button",onClick:()=>W(e),disabled:e.every(e=>_(e.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"})]}),eu(e,e=>e.album)]})}if(null===P)return(0,t.jsx)("ul",{className:O,children:el.map(e=>{let[r,n]=e.split("\0"),a=ei.get(e)?.length??0;return(0,t.jsxs)("li",{className:"flex items-center gap-1",children:[(0,t.jsx)("button",{type:"button",onClick:()=>T(e),className:`flex min-w-0 flex-1 cursor-pointer items-center ${V} rounded-lg ${Y} text-left transition hover:bg-zinc-100 dark:hover:bg-zinc-800/80`,children:(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col items-start",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:r}),(0,t.jsx)("span",{className:"truncate text-xs text-zinc-500",children:n}),(0,t.jsxs)("span",{className:"mt-0.5 text-xs text-zinc-400",children:[a," track",1===a?"":"s"]})]})}),(0,t.jsx)("button",{type:"button",onClick:()=>Z(ei.get(e)??[]),disabled:0===a,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"})]},e)})});let e=ei.get(P)??[];return(0,t.jsxs)("div",{children:[(0,t.jsx)("button",{type:"button",onClick:()=>T(null),className:"mb-2 cursor-pointer px-2 text-xs font-medium text-accent-700 hover:underline dark:text-accent-400",children:"← Albums"}),(0,t.jsxs)("div",{className:"mb-2 flex flex-wrap gap-2 px-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>Z(e),disabled:0===e.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,t.jsx)("button",{type:"button",onClick:()=>W(e),disabled:e.every(e=>_(e.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"})]}),eu(e,e=>e.artist)]})})(),(0,t.jsx)(U,{hasMore:z,loading:v,onLoadMore:X})]}):(0,t.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"No MusicBrainz results for that query."})})]})}async function ei(e,t,r=20){let n=e.trim();if(!n)return[];let a=new URL("/api/youtube/search",window.location.origin);a.searchParams.set("q",n),a.searchParams.set("maxResults",String(Math.min(50,Math.max(1,r))));let i=await fetch(a.toString(),{signal:t});if(!i.ok)return[];let s=await i.json();return Array.isArray(s.videos)?s.videos.filter(e=>"string"==typeof e.videoId&&e.videoId.trim().length>0):[]}var es=e.i(56784);function el(e){return e.trim().toLowerCase()}var ec=e.i(8998);let eo=new Map;var ed=e.i(65079),eu=e.i(95772),em=e.i(32022);async function ex(e,t,r,n=ec.YOUTUBE_SEARCH_PAGE_SIZE,a){let i=e.trim(),s=t.trim();if(!i||!s||(0,er.default)())return{videos:[]};let l=new URL("https://www.googleapis.com/youtube/v3/search");l.searchParams.set("part","snippet"),l.searchParams.set("type","video"),l.searchParams.set("maxResults",String(Math.min(50,Math.max(1,n)))),l.searchParams.set("videoEmbeddable","true"),l.searchParams.set("q",i),l.searchParams.set("key",s),a?.trim()&&l.searchParams.set("pageToken",a.trim()),await (0,em.default)();let c=await fetch(l,{signal:r}),o=await c.json();if(!c.ok){let e=o.error?.message?.trim()??"";throw(o.error?.errors?.some(e=>"quotaExceeded"===e.reason)||(0,es.default)(e))&&(0,eu.default)(),Error(e||"YouTube search failed")}let d=[],u=new Map;for(let e of o.items??[]){let t=e.id?.videoId?.trim();!t||u.has(t)||(d.push(t),u.set(t,{title:e.snippet?.title?.trim()||"Unknown title",channelTitle:e.snippet?.channelTitle?.trim()||"Unknown channel"}))}if(0===d.length)return{videos:[],nextPageToken:o.nextPageToken};let m=new URL("https://www.googleapis.com/youtube/v3/videos");m.searchParams.set("part","contentDetails,snippet"),m.searchParams.set("id",d.join(",")),m.searchParams.set("key",s),await (0,em.default)();let x=await fetch(m,{signal:r}),h=await x.json();if(!x.ok){let e=h.error?.message?.trim()??"";throw(h.error?.errors?.some(e=>"quotaExceeded"===e.reason)||(0,es.default)(e))&&(0,eu.default)(),Error(e||"YouTube video lookup failed")}let b=[],f=new Map(d.map((e,t)=>[e,t]));for(let e of[...h.items??[]].sort((e,t)=>(f.get(e.id??"")??0)-(f.get(t.id??"")??0))){let t=e.id?.trim();if(!t)continue;let r=u.get(t),n=e.snippet?.title?.trim()||r?.title||"Unknown title",a=e.snippet?.channelTitle?.trim()||r?.channelTitle||"Unknown channel",i=function(e){let t=e.trim();if(!t.startsWith("PT"))return 0;let r=t.match(/^PT(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?$/);if(!r)return 0;let n=Number.parseInt(r[1]??"0",10),a=Number.parseInt(r[2]??"0",10),i=Number.parseInt(r[3]??"0",10);return Number.isFinite(n)&&Number.isFinite(a)&&Number.isFinite(i)?3600*n+60*a+i:0}(e.contentDetails?.duration??"");b.push({videoId:t,title:n,channelTitle:a,durationSec:i})}return{videos:b,nextPageToken:o.nextPageToken}}function eh(e,t){let r=el(e);r&&eo.set(r,{at:Date.now(),result:t})}function eb(e,t){let r=t.trim(),n=e.title.trim()||"Unknown title",a=e.channelTitle.trim()||"Unknown channel";return{id:`youtube:${e.videoId}`,title:n,artist:a,album:"YouTube",durationSec:e.durationSec>0?e.durationSec:0,source:"youtube",youtubeQuery:r||`${n} ${a}`.trim(),youtubeVideoId:e.videoId}}async function ef(e,t,r){let n=e.trim();if(!n)return{tracks:[],source:"scrape",hasMore:!1};let a=!r?.pageToken&&(r?.excludeVideoIds?.length??0)===0;if(a){let e=function(e){let t=el(e);if(!t)return null;let r=eo.get(t);return r?Date.now()-r.at>ec.YOUTUBE_SEARCH_CACHE_TTL_MS?(eo.delete(t),null):r.result:null}(n);if(e)return{tracks:e.tracks,source:e.source,nextPageToken:e.nextPageToken,hasMore:!!e.nextPageToken||e.tracks.length>=ec.YOUTUBE_SEARCH_PAGE_SIZE}}let i=new Set(r?.excludeVideoIds??[]),s=(0,ed.default)().trim();if(s&&!(0,er.default)())try{let{videos:e,nextPageToken:l}=await ex(n,s,t,ec.YOUTUBE_SEARCH_PAGE_SIZE,r?.pageToken),c={tracks:e.filter(e=>!i.has(e.videoId)).map(e=>eb(e,n)),source:"api",nextPageToken:l,hasMore:!!l};return a&&eh(n,{tracks:c.tracks,source:c.source,nextPageToken:c.nextPageToken}),c}catch(e){if(!(e instanceof Error&&(0,es.default)(e.message)))throw e}let l=Math.min(50,i.size+ec.YOUTUBE_SEARCH_PAGE_SIZE+5),c=(await ei(n,t,l)).filter(e=>!i.has(e.videoId)).slice(0,ec.YOUTUBE_SEARCH_PAGE_SIZE),o={tracks:c.map(e=>eb(e,n)),source:"scrape",hasMore:c.length>=ec.YOUTUBE_SEARCH_PAGE_SIZE};return a&&eh(n,{tracks:o.tracks,source:o.source}),o}var ep=e.i(28116);let eg={hasKey:!1,blocked:!1,ready:!1},ek=eg;function ev(){let e=(0,ed.default)().trim().length>0,t=(0,er.default)(),r=e&&!t;return ek.hasKey===e&&ek.blocked===t&&ek.ready===r?ek:ek={hasKey:e,blocked:t,ready:r}}function ey(e){let t=()=>e();return window.addEventListener("focus",t),window.addEventListener("storage",t),window.addEventListener(ep.YOUTUBE_API_KEY_CHANGED_EVENT,t),()=>{window.removeEventListener("focus",t),window.removeEventListener("storage",t),window.removeEventListener(ep.YOUTUBE_API_KEY_CHANGED_EVENT,t)}}function ez(){let e,s,{libraryTracks:o,addToLibrary:d,addToQueue:u,compactLists:m,recordRecentBrowseSearch:x}=(0,i.useLibrary)(),h=(0,a.useSearchParams)(),[b,f]=(0,n.useState)(""),[p,g]=(0,n.useState)([]),[k,v]=(0,n.useState)(!1),[y,z]=(0,n.useState)(!1),[j,w]=(0,n.useState)(!1),[N,C]=(0,n.useState)(null),[S,E]=(0,n.useState)(null),L=(0,n.useRef)(null),A=(0,n.useRef)(null),{checked:M,blocked:R,hasKey:P}=(e=(0,n.useSyncExternalStore)(()=>()=>{},()=>!0,()=>!1),s=(0,n.useSyncExternalStore)(ey,ev,()=>eg),(0,n.useMemo)(()=>({checked:e,...s}),[e,s])),[T,$]=(0,n.useState)(null),I=(0,n.useCallback)(e=>o.some(t=>t.id===e),[o]),D=(0,n.useCallback)(()=>{A.current&&(window.clearTimeout(A.current),A.current=null),L.current&&(L.current.abort(),L.current=null),g([]),v(!1),z(!1),w(!1),C(null),E(null),$(null)},[]),B=(0,n.useCallback)(e=>{if(f(e),e.trim().length<2)return void D();if(!M){E(null),g([]);return}v(!0),E(null)},[M,D]);c(h,B),(0,n.useEffect)(()=>{let e=b.trim();if(e.length<2||!M)return;A.current&&(window.clearTimeout(A.current),A.current=null),L.current&&(L.current.abort(),L.current=null);let t=new AbortController;return L.current=t,A.current=window.setTimeout(()=>{v(!0),ef(e,t.signal).then(t=>{g(t.tracks),$(t.source),C(t.nextPageToken??null),w(t.hasMore),E(null),x("youtube",e)}).catch(e=>{e instanceof Error&&"AbortError"===e.name||"object"==typeof e&&null!==e&&"name"in e&&"AbortError"===e.name||($(null),E(e instanceof Error?e.message:"YouTube search failed"),g([]),w(!1),C(null))}).finally(()=>v(!1))},ec.YOUTUBE_SEARCH_DEBOUNCE_MS),()=>{A.current&&(window.clearTimeout(A.current),A.current=null),L.current&&(L.current.abort(),L.current=null)}},[b,M,x]);let O=(0,n.useCallback)(e=>u(e),[u]),Y=(0,n.useCallback)(e=>d(e),[d]),V=(0,n.useCallback)(e=>{let t=e.filter(e=>!I(e.id));t.length>0&&d(t)},[d,I]),_=(0,n.useCallback)(e=>{0!==e.length&&u(e)},[u]),F=(0,n.useCallback)(()=>{let e=b.trim();e.length<2||y||k||!M||!j||(z(!0),E(null),ef(e,void 0,{pageToken:N??void 0,excludeVideoIds:p.map(e=>e.youtubeVideoId?.trim()).filter(e=>!!e)}).then(e=>{g(t=>{let r=new Set(t.map(e=>e.id)),n=[...t];for(let t of e.tracks)r.has(t.id)||(r.add(t.id),n.push(t));return n}),C(e.nextPageToken??null),w(e.hasMore),e.source&&$(e.source)}).catch(e=>{E(e instanceof Error?e.message:"YouTube search failed")}).finally(()=>z(!1)))},[b,y,k,M,j,N,p]),G=b.trim(),Q=G.length>0&&G.length<2,H=p.length>0;return(0,t.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,t.jsxs)("div",{className:"shrink-0 space-y-3 border-b border-zinc-200 px-4 py-3 dark:border-zinc-800",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"YouTube"}),(0,t.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,t.jsx)(r.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,t.jsx)("input",{type:"search",value:b,onChange:e=>B(e.target.value),placeholder:"Search YouTube…",disabled:!M,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,t.jsx)(l,{source:"youtube",onSelect:B})]}),(0,t.jsxs)("div",{className:"min-h-0 flex-1 overflow-auto px-2 py-2",children:[M&&S?(0,t.jsx)("p",{className:"px-2 py-4 text-sm text-red-600 dark:text-red-400",role:"alert",children:S}):null,M&&!P&&"scrape"===T&&(R||G.length>=2)?(0,t.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.",R?(0,t.jsxs)(t.Fragment,{children:[" ","Save your key again in"," ",(0,t.jsx)(r.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,M&&k?(0,t.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"Searching YouTube…"}):null,M&&Q?(0,t.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"Type at least 2 characters to search."}):null,M&&0===G.length?(0,t.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,!M||k||!(G.length>=2)||H||S?null:(0,t.jsx)("p",{className:"px-2 py-6 text-center text-sm text-zinc-500",children:"No YouTube results for that query."}),M&&H?(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 px-2 pb-2",children:[(0,t.jsxs)("p",{className:"text-xs text-zinc-500",children:[p.length," video",1===p.length?"":"s"]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1",children:[(0,t.jsx)("button",{type:"button",onClick:()=>_(p),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,t.jsx)("button",{type:"button",onClick:()=>V(p),disabled:p.every(e=>I(e.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,t.jsx)("ul",{className:m?"space-y-0.25":"space-y-0.5",children:p.map(e=>(0,t.jsx)("li",{children:(0,t.jsx)(q.default,{track:e,alreadySaved:I(e.id),compact:m,onQueue:O,onSave:Y,subtitle:e.artist})},e.id))}),(0,t.jsx)(U,{hasMore:j,loading:y,onLoadMore:F})]}):null]})]})}function ej(e){return"musicbrainz"===e||"youtube"===e?e:"library"}var ew=e.i(841);function eN(){let e,r,i,s,l=(0,a.useSearchParams)();e=(0,a.useRouter)(),r=(0,a.usePathname)(),i=(0,a.useSearchParams)(),s=(0,n.useRef)(!1),(0,n.useEffect)(()=>{if(s.current||(s.current=!0,i.has("view")))return;let t=(0,ew.default)();if("library"===t)return;let n=new URLSearchParams(i.toString());n.set("view",t);let a=n.toString();e.replace(a?`${r}?${a}`:r,{scroll:!1})},[r,e,i]);let c=ej(l.get("view"));return(0,t.jsx)("div",{className:"flex h-full min-h-0 flex-1 flex-col overflow-hidden",children:"library"===c?(0,t.jsx)(I,{}):"musicbrainz"===c?(0,t.jsx)(ea,{}):(0,t.jsx)(ez,{})})}let eC=["library","musicbrainz","youtube"];function eS(){let e=(0,a.useRouter)(),r=(0,a.usePathname)(),i=(0,a.useSearchParams)(),s=ej(i.get("view")),l=(0,n.useCallback)(t=>{let n=new URLSearchParams(i.toString());"library"===t?n.delete("view"):n.set("view",t);let a=n.toString();e.replace(a?`${r}?${a}`:r,{scroll:!1})},[r,e,i]);return(0,t.jsx)("div",{className:"flex items-center gap-1",role:"tablist","aria-label":"Browse source",children:eC.map(e=>(0,t.jsx)("button",{type:"button",role:"tab","aria-selected":s===e,onClick:()=>l(e),className:["cursor-pointer rounded-full px-3 py-1.5 text-xs font-medium transition",s===e?"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"===e?"MusicBrainz":"youtube"===e?"YouTube":"Library"},e))})}let eE=(0,n.forwardRef)(function(e,r){let a=(0,n.useRef)(null),i=(0,n.useRef)(null),s=(0,n.useRef)(e.isPlaying),l=(0,n.useRef)(e.onReady),c=(0,n.useRef)(e.onEnded),o=(0,n.useRef)(e.onError),d=(0,n.useRef)(e.onDuration);return(0,n.useLayoutEffect)(()=>{s.current=e.isPlaying},[e.isPlaying]),(0,n.useLayoutEffect)(()=>{l.current=e.onReady,c.current=e.onEnded,o.current=e.onError,d.current=e.onDuration},[e.onDuration,e.onEnded,e.onError,e.onReady]),(0,n.useImperativeHandle)(r,()=>({seekTo(e){let t=i.current;if(t)try{t.seekTo(e,!0)}catch{}},getCurrentTime(){try{let e=i.current?.getCurrentTime();return Number.isFinite(e)&&e>=0?e:0}catch{return 0}},getDuration(){try{let e=i.current?.getDuration();return Number.isFinite(e)&&e>0?e:0}catch{return 0}}})),(0,n.useEffect)(()=>{let t=e.videoId?.trim();if(!t){if(i.current){try{i.current.destroy()}catch{}i.current=null}return}let r=e=>{try{let t=e.getDuration();Number.isFinite(t)&&t>0&&d.current?.(t)}catch{}},n=()=>{if(!window.YT?.Player||!a.current)return;let d=i.current;if(d){try{d.loadVideoById(t),d.setVolume(Math.round(100*e.volume)),r(d),s.current?d.playVideo():d.pauseVideo()}catch{try{d.destroy()}catch{}i.current=null,n()}return}i.current=new window.YT.Player(a.current,{height:"200",width:"200",videoId:t,playerVars:{autoplay:+!!s.current,controls:0,disablekb:1,fs:0,rel:0,modestbranding:1,iv_load_policy:3,origin:window.location.origin},events:{onReady:t=>{try{t.target.setVolume(Math.round(100*e.volume)),r(t.target)}catch{}if(l.current?.(),s.current)try{t.target.playVideo()}catch{}},onStateChange:e=>{let t=window.YT;if(t){if(e.data===t.PlayerState.ENDED)return void c.current?.();if(s.current&&(e.data===t.PlayerState.CUED||e.data===t.PlayerState.PAUSED))try{e.target.playVideo()}catch{}e.data===t.PlayerState.PLAYING&&r(e.target)}},onError:()=>{o.current?.("YouTube playback failed for this track.")}}})};if(window.YT?.Player)n();else{if(!document.getElementById("youtube-iframe-api")){let e=document.createElement("script");e.id="youtube-iframe-api",e.src="https://www.youtube.com/iframe_api",e.async=!0,document.body.appendChild(e)}let e=window.onYouTubeIframeAPIReady;window.onYouTubeIframeAPIReady=()=>{n(),"function"==typeof e&&e()}}return()=>{if(i.current){try{i.current.destroy()}catch{}i.current=null}}},[e.videoId,e.volume]),(0,n.useEffect)(()=>{let t=i.current;if(t&&e.videoId?.trim())try{e.isPlaying?t.playVideo():t.pauseVideo()}catch{}},[e.isPlaying,e.videoId]),(0,n.useEffect)(()=>{let t=i.current;if(t&&e.videoId?.trim())try{t.setVolume(Math.round(100*e.volume))}catch{}},[e.volume,e.videoId]),(0,t.jsx)("div",{ref:a,className:"pointer-events-none fixed top-0 left-[-9999px] h-[200px] w-[200px] overflow-hidden opacity-0","aria-hidden":!0,tabIndex:-1})});var eL=e.i(20498),eA=e.i(24315),eM=e.i(53589),eR=e.i(62474);function eP(e){let{"aria-label":r,onSessionStart:a,onSessionMove:i,onSessionEnd:s}=e,l=(0,n.useCallback)(e=>{e.preventDefault();let t=e.currentTarget,r=e.clientX;a(),t.setPointerCapture(e.pointerId);let n=e=>{i(e.clientX-r)},l=e=>{try{t.releasePointerCapture(e.pointerId)}catch{}window.removeEventListener("pointermove",n),window.removeEventListener("pointerup",l),window.removeEventListener("pointercancel",l),s()};window.addEventListener("pointermove",n),window.addEventListener("pointerup",l),window.addEventListener("pointercancel",l)},[s,i,a]);return(0,t.jsxs)("div",{role:"separator","aria-orientation":"vertical","aria-label":r,tabIndex:0,onPointerDown:l,className:"group relative z-10 flex w-0 shrink-0 cursor-col-resize justify-center outline-none max-lg:hidden",children:[(0,t.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,t.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 eT(){return(0,t.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,t.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,t.jsx)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400",children:"Loading queue…"})]})}function e$(e){var n,a;let i,s="youtube"===(n=e.entry.source)?"YouTube":"musicbrainz"===n?"MusicBrainz":"Library";return(0,t.jsxs)(r.default,{href:(a=e.entry,i=new URLSearchParams,"youtube"===a.source?i.set("view","youtube"):"musicbrainz"===a.source&&i.set("view","musicbrainz"),i.set("q",a.query),`/?${i.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,t.jsx)("span",{className:"shrink-0 font-medium uppercase tracking-wider text-zinc-500",children:s}),(0,t.jsx)("span",{className:"truncate font-medium text-zinc-900 dark:text-zinc-100",children:e.entry.query})]})}function eI(e){return e.visible?(0,t.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,t.jsx)("p",{className:"text-sm font-medium text-zinc-900 dark:text-zinc-100",children:"Resolving stream…"}),e.trackTitle?(0,t.jsx)("p",{className:"mt-1 truncate text-xs text-zinc-600 dark:text-zinc-400",children:e.trackTitle}):null,(0,t.jsx)("div",{className:"mt-3 h-1 overflow-hidden rounded-full bg-zinc-200 dark:bg-zinc-800",children:(0,t.jsx)("div",{className:"h-full w-1/3 animate-pulse rounded-full bg-accent-500 dark:bg-accent-400"})})]}):null}var eU=e.i(63080);let eq="muzical.panelWidth.library",eD="muzical.panelWidth.queue";function eB(e,t,r){return Math.min(r,Math.max(t,e))}function eO(e,t){let r=Number.parseInt(window.localStorage.getItem(e)??"",10);return Number.isFinite(r)?r:t}function eY(e,t,r){if(e<=0)return{libraryPx:t,queuePx:r};let n=Math.max(720,e-350),a=eB(t,300,960),i=Math.max(420,r);if(a+i>n){let e=a+i-n,t=Math.min(e,a-300);a-=t;let r=e-t,s=Math.min(r,i-420);i-=s,(r-=s)>0&&(a=Math.max(300,a-r))}return{libraryPx:a,queuePx:i}}function eV(e){return(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,className:e.className,children:(0,t.jsx)("path",{d:"M8 5v14l11-7L8 5z"})})}function e_(e){return(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,className:e.className,children:(0,t.jsx)("path",{d:"M6 5h4v14H6V5zm8 0h4v14h-4V5z"})})}function eF(e){return(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,className:e.className,children:(0,t.jsx)("path",{d:"M6 6h2v12H6V6zm3.5 6 8.5 6V6l-8.5 6z"})})}function eG(e){return(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,className:e.className,children:(0,t.jsx)("path",{d:"M16 18h2V6h-2v12zM6 18l8.5-6L6 6v12z"})})}function eQ(e){return(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,className:e.className,children:(0,t.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 eH(e){return(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,className:e.className,children:(0,t.jsx)("path",{d:"M4 6h16v2H4V6zm0 5h16v2H4v-2zm0 5h10v2H4v-2zm12 1v6l5-3-5-3z"})})}function eK(e){return(0,t.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,className:e.className,children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,t.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 eW(e){return(0,t.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,className:[e.className,e.dimmed?"opacity-40":""].filter(Boolean).join(" "),children:[(0,t.jsx)("path",{d:"M17 1l4 4-4 4"}),(0,t.jsx)("path",{d:"M3 11V9a4 4 0 0 1 4-4h14"}),(0,t.jsx)("path",{d:"M7 23l-4-4 4-4"}),(0,t.jsx)("path",{d:"M21 13v2a4 4 0 0 1-4 4H3"})]})}function eZ(e){return(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":!0,className:e.className,children:(0,t.jsx)("path",{d:"M16 3h5v5M4 20L21 3M21 16v5h-5M15 15l6 6M4 4l5 5",strokeLinecap:"round",strokeLinejoin:"round"})})}function eX(e){return(0,t.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,className:e.className,children:(0,t.jsx)("path",{d:"m9 18 6-6-6-6"})})}e.s(["default",0,function(){let{queue:e,libraryTracks:a,isScanning:s,youtubePrefetchActive:l,youtubePrefetchVideoCount:c,resolveFileForTrack:o,bumpTrackDuration:d,removeFromQueue:u,clearQueue:m,compactLists:h,reorderQueueItems:y,recentlyPlayedTrackIds:z,recentBrowseSearches:j,recordRecentlyPlayedTrack:w,isFavoriteSong:N,toggleFavoriteTrack:S,addToQueue:E,addToLibrary:L,removeFromLibrary:A,openTrackDetails:M,openRelatedSongs:R,favoriteSongIds:P,favoriteArtistNames:T,favoriteAlbumKeys:$,isFavoriteArtist:I,isFavoriteAlbum:U,toggleFavoriteArtist:q,toggleFavoriteAlbum:B,playbackRestore:O,consumePlaybackRestore:Y,playNowRequest:V,consumePlayNowRequest:_,reportPlayback:F,isQueueReady:G,patchTrackById:Q}=(0,i.useLibrary)(),{preferences:H,setRepeatMode:K,setShuffle:W,setPlaybackRate:Z,setVolume:X}=(0,eL.usePlaybackPreferences)(),{repeatMode:J,shuffle:ee,playbackRate:et,autoAdvanceOnEnd:er,seekStepSmallSec:en,seekStepLargeSec:ea,rememberVolume:ei}=H,[es,el]=(0,n.useState)(null),[ec,eo]=(0,n.useState)(!1),[ed,eu]=(0,n.useState)(0),[em,ex]=(0,n.useState)(0),[eh,eb]=(0,n.useState)(null),[ef,ep]=(0,n.useState)(null),[eg,ek]=(0,n.useState)(!1),[ev,ey]=(0,n.useState)(null),[ez,ej]=(0,n.useState)(!1),[ew,eC]=(0,n.useState)(440),[eJ,e0]=(0,n.useState)(300),e1=ei?H.volume:eh??eA.DEFAULT_PLAYBACK_VOLUME,e2=(0,n.useRef)(null),e5=(0,n.useRef)([]),e4=(0,n.useRef)(null),e3=(0,n.useRef)(null),e8=(0,n.useRef)(0),e6=(0,n.useRef)(440),e9=(0,n.useRef)(300),[e7,te]=(0,n.useState)(null),[tt,tr]=(0,n.useState)(null),[tn,ta]=(0,n.useState)(!0),ti=(0,n.useRef)(null),ts=(0,n.useRef)(null),tl=(0,n.useRef)(null),tc=(0,n.useRef)(null),to=(0,n.useRef)(null),td=(0,n.useRef)(ec),tu=(0,n.useRef)(et);(0,n.useLayoutEffect)(()=>{td.current=ec},[ec]),(0,n.useLayoutEffect)(()=>{tu.current=et},[et]),(0,n.useLayoutEffect)(()=>{e6.current=ew,e9.current=eJ},[ew,eJ]),(0,n.useEffect)(()=>{queueMicrotask(()=>{eC(eO(eq,440)),e0(eO(eD,300))})},[]),(0,n.useEffect)(()=>{ee||(e5.current=[])},[ee]),(0,n.useLayoutEffect)(()=>{let e=window.matchMedia("(min-width: 1024px)"),t=()=>{ej(e.matches)};return t(),e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),(0,n.useEffect)(()=>{e3.current=es},[es]),(0,n.useEffect)(()=>{if(!O)return;let{activeQueueId:e,positionSec:t}=O;e4.current=t,Y(),Promise.resolve().then(()=>{el(e),eu(t),eo(!1)})},[O,Y]),(0,n.useEffect)(()=>{if(!V)return;let{activeQueueId:e}=V;_(),e5.current=[],Promise.resolve().then(()=>{el(e),eu(0),ep(null),eo(!0)})},[V,_]),(0,n.useEffect)(()=>{let e=ts.current;F(es,e&&Number.isFinite(e.currentTime)?e.currentTime:0)},[es,F]);let tm=(0,n.useMemo)(()=>{if(0===e.length)return -1;if(es){let t=e.findIndex(e=>e.queueId===es);if(t>=0)return t}return 0},[e,es]),tx=tm>=0?e[tm]?.track:void 0,th=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(!ec)return;let e=tx?.id??"";e&&th.current!==e&&(th.current=e,w(e))},[tx?.id,ec,w]);let tb=(0,n.useMemo)(()=>{if(0===z.length)return[];let e=new Map;for(let t of a)e.set(t.id,t);let t=[];for(let r of z){let n=e.get(r);if(n&&t.push(n),t.length>=8)break}return t},[z,a]),tf=(0,n.useMemo)(()=>D(a),[a]),tp=(0,n.useMemo)(()=>{let e=new Map;for(let t of a){let r=(0,C.albumCompositeKey)(t.album,t.artist),n=e.get(r)??[];n.push(t),e.set(r,n)}for(let t of e.values())t.sort((e,t)=>e.title.localeCompare(t.title,void 0,{sensitivity:"base"}));return e},[a]),tg=(0,n.useMemo)(()=>T.filter(e=>tf.has(e)).sort((e,t)=>e.localeCompare(t,void 0,{sensitivity:"base"})),[T,tf]),tk=(0,n.useMemo)(()=>$.filter(e=>tp.has(e)).sort((e,t)=>{let[r,n]=e.split("\0"),[a,i]=t.split("\0"),s=r.localeCompare(a,void 0,{sensitivity:"base"});return 0!==s?s:n.localeCompare(i,void 0,{sensitivity:"base"})}),[$,tp]),tv=(0,n.useMemo)(()=>{let e=new Set(P);return a.filter(t=>e.has(t.id)).sort((e,t)=>e.title.localeCompare(t.title,void 0,{sensitivity:"base"}))},[a,P]),ty=(0,n.useMemo)(()=>{let e=new Set,t=[],r=r=>{e.has(r.id)||(e.add(r.id),t.push(r))};for(let e of P){let t=a.find(t=>t.id===e);t&&r(t)}for(let e of T){let t=tf.get(e);if(t)for(let e of t)r(e)}for(let e of $){let t=tp.get(e);if(t)for(let e of t)r(e)}return t.sort((e,t)=>e.title.localeCompare(t.title,void 0,{sensitivity:"base"})),t},[P,T,$,a,tf,tp]),tz=tg.length>0||tk.length>0||tv.length>0,tj=(0,n.useMemo)(()=>{let e=[],t=tg.length,r=tk.length,n=tv.length;return t>0&&e.push(`${t} artist${1===t?"":"s"}`),r>0&&e.push(`${r} album${1===r?"":"s"}`),n>0&&e.push(`${n} song${1===n?"":"s"}`),e.join(" · ")},[tg.length,tk.length,tv.length]),tw=(0,n.useMemo)(()=>{if(0===a.length)return[];let e=new Set,t=[];for(let t of tb)e.add(t.id);for(let t of P)e.add(t);for(let r=0;r<a.length;r++){let n=a[r];if(!e.has(n.id)&&(e.add(n.id),t.push(n),t.length>=12))break}return t},[a,P,tb]),tN=(0,n.useMemo)(()=>j.slice(0,8),[j]),tC=(0,n.useMemo)(()=>Math.max(tx?.durationSec??0,Number.isFinite(em)&&em>0?em:0),[tx?.durationSec,em]),tS=(0,n.useCallback)(t=>{e5.current=[],el(e[t]?.queueId??null),eu(0),ep(null),eo(!0)},[e]),tE=(0,n.useCallback)(()=>{if(0===e.length)return;let t=tm>=0?tm:0;if(ee&&e.length>1){e5.current.push(t);let r=t;for(let n=0;n<48&&r===t;n++)r=Math.floor(Math.random()*e.length);el(e[r]?.queueId??null),eu(0),ep(null),eo(!0);return}if(t<e.length-1){el(e[t+1]?.queueId??null),eu(0),ep(null),eo(!0);return}if("all"===J){el(e[0]?.queueId??null),eu(0),ep(null),eo(!0);return}eo(!1)},[tm,e,J,ee]),tL=(0,n.useCallback)(()=>{if(0===e.length)return;let t=tm>=0?tm:0;if(ee&&e5.current.length>0){let t=e5.current.pop();if(void 0!==t&&t>=0&&t<e.length){el(e[t]?.queueId??null),eu(0),ep(null),eo(!0);return}}if(t>0){el(e[t-1]?.queueId??null),eu(0),ep(null),eo(!0);return}"all"===J&&(el(e[e.length-1]?.queueId??null),eu(0),ep(null),eo(!0))},[tm,e,J,ee]),tA=(0,n.useCallback)(()=>{K("off"===J?"all":"all"===J?"one":"off")},[J,K]),tM=(0,n.useCallback)(()=>{W(!ee)},[ee,W]),tR=(0,n.useCallback)(()=>{let e=e2.current?.getBoundingClientRect().width??0;if(e<=0)return;let{libraryPx:t,queuePx:r}=eY(e,e6.current,e9.current);eC(t),e0(r)},[]),tP=(0,n.useCallback)(()=>{try{window.localStorage.setItem(eq,String(e6.current)),window.localStorage.setItem(eD,String(e9.current))}catch{}},[]),tT=(0,n.useCallback)(()=>{ti.current={kind:"library-queue",startLib:e6.current,startQ:e9.current}},[]),t$=(0,n.useCallback)(e=>{let t=ti.current;if(!t||"library-queue"!==t.kind)return;let r=eY(e2.current?.getBoundingClientRect().width??0,t.startLib+e,t.startQ-e);eC(r.libraryPx),e0(r.queuePx)},[]),tI=(0,n.useCallback)(()=>{ti.current={kind:"queue-player",startQ:e9.current}},[]),tU=(0,n.useCallback)(e=>{var t,r;let n=ti.current;n&&"queue-player"===n.kind&&e0((t=e2.current?.getBoundingClientRect().width??0,r=e6.current,eB(n.startQ+e,420,Math.max(420,t-r-350))))},[]),tq=(0,n.useCallback)(()=>{ti.current=null,tP()},[tP]);(0,n.useEffect)(()=>{if(!ez)return;let e=()=>{tR()};return window.addEventListener("resize",e),tR(),()=>window.removeEventListener("resize",e)},[ez,tR]),(0,n.useEffect)(()=>{let e=ts.current;e&&(e.volume=e1)},[e1]),(0,n.useEffect)(()=>{let e=ts.current;e&&(e.playbackRate=et)},[et]),(0,n.useEffect)(()=>{if(tc.current&&(URL.revokeObjectURL(tc.current),tc.current=null),ey(null),!tx||!tx.library&&!tx.youtubeQuery&&!tx.audioUrl){let e=ts.current;e&&(e.pause(),e.removeAttribute("src"),e.load()),tl.current&&(URL.revokeObjectURL(tl.current),tl.current=null);return}let e=tx.youtubeVideoId?.trim();if(!tx.library&&e){let t=ts.current;t&&(t.pause(),t.removeAttribute("src"),t.load()),tl.current&&(URL.revokeObjectURL(tl.current),tl.current=null),ey(b(e));return}if(!tx.library){let e=ts.current;e&&(e.pause(),e.removeAttribute("src"),e.load()),tl.current&&(URL.revokeObjectURL(tl.current),tl.current=null);return}let t=!1,r=e4.current,n=requestAnimationFrame(()=>{ex(0),eu(r??0)});return(async()=>{ep(null);let e=await o(tx);if(t)return;if(!e)return ep("Could not read this file from the library.");let r=x(tx.id,e),n=URL.createObjectURL(e);if(tl.current&&URL.revokeObjectURL(tl.current),tl.current=n,t)return;let a=await r;if(t)return;if(a){let e=URL.createObjectURL(new Blob([a.data],{type:a.mime}));tc.current=e,ey(e)}let i=ts.current;i&&!t&&(i.src=n,i.load(),i.playbackRate=tu.current,td.current&&i.play().catch(e=>{ep(e instanceof Error?e.message:"Playback failed"),eo(!1)}))})(),()=>{t=!0,cancelAnimationFrame(n),tc.current&&(URL.revokeObjectURL(tc.current),tc.current=null)}},[tx,o]);let tD=tx?.youtubeVideoId?.trim()||null;(0,n.useEffect)(()=>{!tD||tx?.library||ey(b(tD))},[tD,tx?.library,tx?.id]);let tB=!!tD,tO=!!(tx?.youtubeQuery?.trim()&&!tD),tY=(0,n.useCallback)(()=>{if("one"===J){if(tB&&to.current){to.current.seekTo(0),eu(0),eo(!0);return}let e=ts.current;e&&(e.currentTime=0,eu(0),e.play().catch(e=>{ep(e instanceof Error?e.message:"Playback failed"),eo(!1)}));return}er?tE():eo(!1)},[J,er,tE,tB]);(0,n.useEffect)(()=>{let e=tx?.youtubeQuery?.trim();if(!e||tx?.youtubeVideoId?.trim())return void queueMicrotask(()=>ek(!1));let t=new AbortController;return queueMicrotask(()=>ek(!0)),(0,eU.default)(e,t.signal).then(e=>{!t.signal.aborted&&(e&&tx?.id?(Q(tx.id,t=>({...t,youtubeVideoId:e})),ep(null)):e||ep("Could not find a YouTube video for this track."))}).catch(e=>{t.signal.aborted||e instanceof Error&&"AbortError"===e.name||"object"==typeof e&&null!==e&&"name"in e&&"AbortError"===e.name||ep(e instanceof Error?e.message:"Could not resolve YouTube stream.")}).finally(()=>{t.signal.aborted||ek(!1)}),()=>{t.abort()}},[tx?.id,tx?.youtubeQuery,tx?.youtubeVideoId,Q]);let tV=(0,n.useCallback)(e=>{ex(e),tx?.id&&d(tx.id,e)},[d,tx?.id]);(0,n.useEffect)(()=>{if(!tB)return;let e=()=>{let e=to.current?.getCurrentTime()??0;Number.isFinite(e)&&e>=0&&(eu(e),F(e3.current,e));let t=to.current?.getDuration()??0;Number.isFinite(t)&&t>0&&ex(t)};e();let t=window.setInterval(e,500);return()=>{window.clearInterval(t)}},[tB,F]),(0,n.useEffect)(()=>{let e=ts.current;!e||e.src&&(ec?e.play().catch(e=>{ep(e instanceof Error?e.message:"Playback failed"),eo(!1)}):e.pause())},[ec]),(0,n.useEffect)(()=>{let e=ts.current;if(!e||!tx)return;let t=()=>{eu(e.currentTime);let t=Date.now();t-e8.current>=2e3&&(e8.current=t,F(e3.current,e.currentTime))},r=()=>{Number.isFinite(e.duration)&&e.duration>0&&(ex(e.duration),d(tx.id,e.duration));let t=e4.current;if(null!=t&&t>0){let r=Math.min(t,e.duration>0?e.duration:t);e.currentTime=r,eu(r),e4.current=null,F(e3.current,r)}},n=()=>{tY()};return e.addEventListener("timeupdate",t),e.addEventListener("loadedmetadata",r),e.addEventListener("ended",n),()=>{e.removeEventListener("timeupdate",t),e.removeEventListener("loadedmetadata",r),e.removeEventListener("ended",n)}},[tx,d,tY,F]),(0,n.useEffect)(()=>()=>{tl.current&&(URL.revokeObjectURL(tl.current),tl.current=null),tc.current&&(URL.revokeObjectURL(tc.current),tc.current=null)},[]);let t_=(0,n.useCallback)(e=>{let t=Math.min(1,Math.max(0,e));if(tB&&to.current){let e=tC>0?tC:to.current.getDuration();if(e>0){let r=t*e;to.current.seekTo(r),eu(r),F(e3.current,r)}return}let r=ts.current;if(!r||!Number.isFinite(r.duration)||r.duration<=0){tC>0&&(eu(t*tC),r&&(r.currentTime=t*tC));return}let n=Math.min(r.duration,Math.max(0,t*r.duration));r.currentTime=n,eu(n),F(e3.current,n)},[tB,tC,F]),tF=(0,n.useCallback)(e=>{if(tC<=0)return;let t=null;if("ArrowLeft"===e.key)t=ed-en;else if("ArrowRight"===e.key)t=ed+en;else if("PageDown"===e.key)t=ed-ea;else if("PageUp"===e.key)t=ed+ea;else if("Home"===e.key)t=0;else{if("End"!==e.key)return;t=tC}e.preventDefault(),t_(Math.min(tC,Math.max(0,t))/tC)},[tC,t_,ed,ea,en]),tG=s?"Scanning…":l?`Prefetching ${c} YouTube video${1===c?"":"s"}…`:`${a.length} in library \xb7 ${e.length} in queue`,tQ=h?"gap-2":"gap-3",tH=h?"px-3 py-2":"px-4 py-2.5",tK=h?"px-1.5 py-1.5":"px-2 py-2",tW=h?"gap-2":"gap-3",tZ=h?"p-2":"p-3";return(0,t.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,t.jsx)(eI,{visible:eg||tO&&ec,trackTitle:tx?.title}),(0,t.jsx)("audio",{ref:ts,className:"hidden",preload:"metadata"}),(0,t.jsx)(eE,{ref:to,videoId:tD,isPlaying:ec&&tB,volume:e1,onReady:()=>ep(null),onEnded:tY,onDuration:tV,onError:e=>ep(e)}),(0,t.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,t.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,t.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,t.jsx)(eH,{className:"h-5 w-5"})}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("h1",{className:"text-sm font-semibold tracking-tight text-zinc-900 dark:text-zinc-50",children:"Muzical"}),(0,t.jsx)("p",{className:"text-xs text-zinc-500",children:"Local library · browser playback"})]})]}),(0,t.jsx)(eS,{}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsx)(r.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:tG}),(0,t.jsx)(r.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,t.jsx)(eK,{className:"h-[18px] w-[18px]"})}),(0,t.jsx)(eR.default,{})]})]}),ef?(0,t.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:ef}):null,(0,t.jsxs)("div",{ref:e2,className:"flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden lg:flex-row",children:[(0,t.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:ez?{width:ew,flex:"0 0 auto"}:void 0,children:(0,t.jsx)(eN,{})}),(0,t.jsx)(eP,{"aria-label":"Resize library and queue panels",onSessionStart:tT,onSessionMove:t$,onSessionEnd:tq}),(0,t.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:ez?{width:eJ,flex:"0 0 auto"}:void 0,children:G?(0,t.jsxs)(t.Fragment,{children:[(0,t.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,t.jsx)("h2",{className:"text-xs font-medium uppercase leading-none tracking-wider text-zinc-500",children:"Queue"}),e.length>0?(0,t.jsx)("button",{type:"button",onClick:()=>{m(),el(null),eo(!1),eu(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,t.jsx)("div",{className:"min-h-0 flex-1 overflow-auto pb-2",children:0===e.length?(0,t.jsxs)("div",{className:"px-4 py-6",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-zinc-700 dark:text-zinc-300",children:"Queue is empty"}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-zinc-500 dark:text-zinc-400",children:["Add something to start playback.",(0,t.jsx)(r.default,{href:"/settings",className:"ml-2 font-medium text-accent-700 underline-offset-2 hover:underline dark:text-accent-400",children:"Library folders"})]}),tb.length>0?(0,t.jsxs)("div",{className:"mt-5",children:[(0,t.jsx)("p",{className:"mb-2 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Recently played"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:tb.map(e=>(0,t.jsxs)("div",{className:`flex min-w-0 items-center ${tW} rounded-xl border border-zinc-200 bg-white ${tZ} shadow-sm dark:border-zinc-800 dark:bg-zinc-950/40 dark:shadow-none`,children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:e.title}),(0,t.jsxs)("p",{className:"truncate text-xs text-zinc-500 dark:text-zinc-400",children:[e.artist," · ",e.album]})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] tabular-nums text-zinc-400 dark:text-zinc-500",children:e.durationSec>0?(0,k.formatDuration)(e.durationSec):"—"}),(0,t.jsx)(p,{className:"rounded-full",filled:N(e.id),onPress:()=>S(e),label:N(e.id)?"Remove song from favorites":"Add song to favorites"}),(0,t.jsx)("button",{type:"button",onClick:()=>E(e),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"})]})]},e.id))})]}):null,tz?(0,t.jsxs)("div",{className:"mt-5",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>ta(e=>!e),"aria-expanded":tn,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,t.jsx)(eX,{className:["h-3.5 w-3.5 shrink-0 text-zinc-400 transition-transform",tn?"rotate-90":""].join(" ")}),(0,t.jsx)("span",{children:"Favorites"}),!tn&&tj?(0,t.jsxs)("span",{className:"truncate font-normal normal-case tracking-normal text-zinc-400",children:["· ",tj]}):null]}),ty.length>0?(0,t.jsxs)("button",{type:"button",onClick:()=>E(ty),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 (",ty.length,")"]}):null]}),tn?(0,t.jsxs)("div",{className:"mt-3 space-y-4",children:[tg.length>0?(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-[11px] font-medium uppercase tracking-wider text-zinc-400",children:"Artists"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:tg.map(e=>{let r=tf.get(e)??[];return(0,t.jsxs)("div",{className:`flex min-w-0 items-center ${tW} rounded-xl border border-zinc-200 bg-white ${tZ} shadow-sm dark:border-zinc-800 dark:bg-zinc-950/40 dark:shadow-none`,children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:e}),(0,t.jsxs)("p",{className:"text-xs text-zinc-500 dark:text-zinc-400",children:[r.length," track",1===r.length?"":"s"]})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,t.jsx)(p,{className:"rounded-full",filled:I(e),onPress:()=>q(e),label:"Remove artist from favorites"}),(0,t.jsx)("button",{type:"button",onClick:()=>E(r),disabled:0===r.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"})]})]},e)})})]}):null,tk.length>0?(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-[11px] font-medium uppercase tracking-wider text-zinc-400",children:"Albums"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:tk.map(e=>{let[r,n]=e.split("\0"),a=tp.get(e)??[],i=a[0];return(0,t.jsxs)("div",{className:`flex min-w-0 items-center ${tW} rounded-xl border border-zinc-200 bg-white ${tZ} shadow-sm dark:border-zinc-800 dark:bg-zinc-950/40 dark:shadow-none`,children:[(0,t.jsx)(f,{track:i,className:"h-10 w-10 shrink-0 rounded-md"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:r}),(0,t.jsx)("p",{className:"truncate text-xs text-zinc-500 dark:text-zinc-400",children:n}),(0,t.jsxs)("p",{className:"text-[11px] text-zinc-400 dark:text-zinc-500",children:[a.length," track",1===a.length?"":"s"]})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,t.jsx)(p,{className:"rounded-full",filled:U(e),onPress:()=>B(e),label:"Remove album from favorites"}),(0,t.jsx)("button",{type:"button",onClick:()=>E(a),disabled:0===a.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"})]})]},e)})})]}):null,tv.length>0?(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-[11px] font-medium uppercase tracking-wider text-zinc-400",children:"Songs"}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:tv.map(e=>(0,t.jsxs)("div",{className:`flex min-w-0 items-center ${tW} rounded-xl border border-zinc-200 bg-white ${tZ} shadow-sm dark:border-zinc-800 dark:bg-zinc-950/40 dark:shadow-none`,children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:e.title}),(0,t.jsxs)("p",{className:"truncate text-xs text-zinc-500 dark:text-zinc-400",children:[e.artist," · ",e.album]})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] tabular-nums text-zinc-400 dark:text-zinc-500",children:e.durationSec>0?(0,k.formatDuration)(e.durationSec):"—"}),(0,t.jsx)(p,{className:"rounded-full",filled:N(e.id),onPress:()=>S(e),label:"Remove song from favorites"}),(0,t.jsx)("button",{type:"button",onClick:()=>E(e),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"})]})]},e.id))})]}):null]}):null]}):null,tN.length>0||tw.length>0?(0,t.jsxs)("div",{className:"mt-6",children:[(0,t.jsx)("p",{className:"mb-2 text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Suggestions"}),tN.length>0?(0,t.jsx)("div",{className:"mb-3 flex flex-wrap gap-2",children:tN.map(e=>(0,t.jsx)(e$,{entry:e},`${e.source}\u0000${e.query}`))}):null,tw.length>0?(0,t.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:tw.map(e=>(0,t.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>E(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),E(e))},"aria-label":`Add ${e.title} to queue`,className:`flex w-full min-w-0 cursor-pointer items-center text-left ${tW} rounded-xl border border-zinc-200 bg-white ${tZ} 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,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium text-zinc-900 dark:text-zinc-100",children:e.title}),(0,t.jsxs)("p",{className:"truncate text-xs text-zinc-500 dark:text-zinc-400",children:[e.artist," · ",e.album]})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] tabular-nums text-zinc-400 dark:text-zinc-500",children:e.durationSec>0?(0,k.formatDuration)(e.durationSec):"—"}),(0,t.jsx)(p,{className:"rounded-full",filled:N(e.id),onPress:()=>S(e),label:N(e.id)?"Remove song from favorites":"Add song to favorites"})]})]},e.id))}):null]}):null]}):(0,t.jsx)("ul",{className:"divide-y divide-zinc-200 dark:divide-zinc-800",role:"listbox","aria-label":"Track queue",children:e.map((r,n)=>{let i=r.track,s=n===tm,l=e7===r.queueId&&tt!==r.queueId,c=!i.library&&(!!("musicbrainz"===i.source||"youtube"===i.source||i.id.startsWith("musicbrainz:"))||!!i.youtubeQuery?.trim()),o=a.some(e=>e.id===i.id);return(0,t.jsxs)("li",{className:["group/row flex items-center gap-0",s?"bg-accent-50/90 dark:bg-white/6":"",l?"ring-1 ring-accent-400/30":""].join(" "),onDragOver:e=>{tt&&(e.preventDefault(),e7!==r.queueId&&te(r.queueId))},onDrop:t=>{if(t.preventDefault(),tr(null),te(null),!tt||tt===r.queueId)return;let a=e.findIndex(e=>e.queueId===tt);if(a<0)return;let i=t.currentTarget.getBoundingClientRect(),s=t.clientY>i.top+i.height/2?n+1:n;y(a,a<s?s-1:s)},children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":s,onClick:()=>tS(n),draggable:!0,onDragStart:e=>{tr(r.queueId),te(r.queueId),e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",r.queueId)},onDragEnd:()=>{tr(null),te(null)},className:[`flex min-w-0 flex-1 items-center ${tQ} border-l-2 border-transparent ${tH} text-left transition-colors`,s?"border-accent-500 dark:border-accent-400":"hover:bg-zinc-50 dark:hover:bg-zinc-900/60","cursor-grab active:cursor-grabbing",l?"border-accent-500/20 dark:border-accent-400/20":""].join(" "),children:[(0,t.jsx)("span",{className:"w-5 shrink-0 text-right text-[11px] tabular-nums text-zinc-400 dark:text-zinc-500",children:n+1}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium leading-snug text-zinc-900 dark:text-zinc-100",children:i.title}),(0,t.jsxs)("p",{className:"truncate text-xs leading-snug text-zinc-500 dark:text-zinc-400",children:[i.artist," · ",i.album]})]}),(0,t.jsx)("span",{className:"shrink-0 text-[11px] tabular-nums text-zinc-400 dark:text-zinc-500",children:i.durationSec>0?(0,k.formatDuration)(i.durationSec):"—"})]}),(0,t.jsxs)("div",{className:["flex shrink-0 items-center border-l pr-1 pl-0.5",s?"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,t.jsx)(p,{className:"rounded-none",filled:N(i.id),onPress:()=>S(i),label:N(i.id)?"Remove song from favorites":"Add song to favorites"}),(0,t.jsx)(g.default,{triggerLabel:`Actions for ${i.title}`,items:(0,v.default)({track:i,onViewDetails:M,onViewRelatedSongs:R,onSave:c&&!o?()=>L(i):void 0,onRemoveFromLibrary:o?()=>A(i):void 0})}),(0,t.jsx)("button",{type:"button","aria-label":`Remove ${i.title} from queue`,onClick:()=>{let t=es===r.queueId,a=t?e[n+1]?.queueId??e[n-1]?.queueId??null:es;u(r.queueId),el(a),t&&!a&&(eo(!1),eu(0))},className:`shrink-0 ${tK} 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"})]})]},r.queueId)})})})]}):(0,t.jsx)(eT,{})}),(0,t.jsx)(eP,{"aria-label":"Resize queue and player panels",onSessionStart:tI,onSessionMove:tU,onSessionEnd:tq}),(0,t.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,t.jsxs)("div",{className:"mx-auto flex w-full max-w-[280px] shrink-0 flex-col gap-4",children:[(0,t.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:ev?(0,t.jsx)("img",{src:ev,alt:"",className:"absolute inset-0 h-full w-full object-cover",decoding:"async"}):(0,t.jsx)("div",{className:"flex h-full w-full items-center justify-center p-8",children:(0,t.jsx)("span",{className:"select-none text-6xl font-bold tracking-tighter text-accent-800/20 dark:text-zinc-700/90",children:tx?.album?tx.album.charAt(0):"♪"})})}),(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("p",{className:"truncate text-lg font-semibold tracking-tight text-zinc-900 dark:text-zinc-50",children:tx?.title??"—"}),(0,t.jsx)("p",{className:"mt-1 truncate text-sm text-zinc-600 dark:text-zinc-400",children:tx?.artist??""}),(0,t.jsx)("p",{className:"mt-0.5 truncate text-xs text-zinc-500 dark:text-zinc-600",children:tx?.album??""})]})]}),(0,t.jsxs)("div",{className:"shrink-0 space-y-2.5",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs tabular-nums text-zinc-500",children:[(0,t.jsx)("span",{children:(0,k.formatDuration)(ed)}),(0,t.jsx)("span",{children:tC>0?(0,k.formatDuration)(tC):"—"})]}),(0,t.jsx)("div",{className:"group relative h-2 cursor-pointer rounded-full bg-zinc-200 dark:bg-zinc-800",onPointerDown:e=>{let t=e.currentTarget.getBoundingClientRect();t_((e.clientX-t.left)/Math.max(1,t.width));let r=e=>{t_((e.clientX-t.left)/Math.max(1,t.width))},n=()=>{window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",n)};window.addEventListener("pointermove",r),window.addEventListener("pointerup",n)},role:"slider",tabIndex:0,onKeyDown:tF,"aria-valuemin":0,"aria-valuemax":Math.round(tC),"aria-valuenow":Math.round(ed),"aria-label":"Seek",children:(0,t.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:`${tC>0?100*ed/tC:0}%`}})}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("button",{type:"button","aria-label":"Previous track",onClick:()=>tL(),disabled:0===e.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,t.jsx)(eF,{className:"h-6 w-6"})}),(0,t.jsx)("button",{type:"button","aria-label":ec?"Pause":"Play",onClick:()=>eo(e=>!e),disabled:0===e.length||!tx,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:ec?(0,t.jsx)(e_,{className:"h-6 w-6"}):(0,t.jsx)(eV,{className:"h-6 w-6 pl-0.5"})}),(0,t.jsx)("button",{type:"button","aria-label":"Next track",onClick:()=>tE(),disabled:0===e.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,t.jsx)(eG,{className:"h-6 w-6"})})]}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[(0,t.jsx)(eQ,{className:"h-5 w-5 shrink-0 text-zinc-500"}),(0,t.jsx)("input",{type:"range",min:0,max:1,step:.01,value:e1,onChange:e=>{let t=Number(e.target.value);ei?X(t):eb(t)},className:"h-1 w-full min-w-0 cursor-pointer accent-accent-500","aria-label":"Volume"})]})]}),(0,t.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,t.jsxs)("button",{type:"button",onClick:()=>tA(),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"===J?"Repeat off. Click for repeat all.":"all"===J?"Repeat all. Click for repeat one.":"Repeat one. Click for repeat off.",children:[(0,t.jsx)(eW,{dimmed:"off"===J,className:"h-5 w-5"}),"one"===J?(0,t.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,t.jsx)("button",{type:"button",onClick:()=>tM(),"aria-pressed":ee,"aria-label":ee?"Shuffle on":"Shuffle off",className:["flex h-9 w-9 items-center justify-center rounded-full border transition",ee?"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,t.jsx)(eZ,{className:"h-5 w-5"})}),(0,t.jsxs)("label",{className:"flex items-center gap-2 text-xs text-zinc-600 dark:text-zinc-400",children:[(0,t.jsx)("span",{className:"sr-only",children:"Playback speed"}),(0,t.jsx)("span",{"aria-hidden":!0,className:"tabular-nums",children:"Speed"}),(0,t.jsx)("select",{value:et,onChange:e=>Z(Number(e.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:eM.PLAYBACK_RATES.map(e=>(0,t.jsx)("option",{value:e,children:1===e?"1×":`${e}\xd7`},e))})]})]})]})]})]})]})}],79280)}]);
@@ -0,0 +1,3 @@
1
+ @font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0nx0ww8fni_q3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
2
+ @font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.0ee55_hj9qcer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0.qu-9752pffj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.0mao5jbfbduzp.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.0uzt.a6d44yda.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0mvwgmnhv29no.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.09zddjkbdep5a.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
3
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:var(--font-geist-sans);--color-red-50:#fef2f2;--color-red-200:#ffcaca;--color-red-300:#ffa3a3;--color-red-400:#ff6568;--color-red-600:#e40014;--color-red-700:#bf000f;--color-red-800:#9f0712;--color-red-900:#82181a;--color-red-950:#460809;--color-amber-400:#fcbb00;--color-amber-700:#b75000;--color-emerald-400:#00d294;--color-emerald-700:#007956;--color-zinc-50:#fafafa;--color-zinc-100:#f4f4f5;--color-zinc-200:#e4e4e7;--color-zinc-300:#d4d4d8;--color-zinc-400:#9f9fa9;--color-zinc-500:#71717b;--color-zinc-600:#52525c;--color-zinc-700:#3f3f46;--color-zinc-800:#27272a;--color-zinc-900:#18181b;--color-zinc-950:#09090b;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-lg:32rem;--container-xl:36rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}@supports (color:lab(0% 0 0)){:root,:host{--color-red-50:lab(96.5005% 4.18508 1.52328);--color-red-200:lab(86.017% 19.8815 7.75869);--color-red-300:lab(76.5514% 36.422 15.5335);--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-600:lab(48.4493% 77.4328 61.5452);--color-red-700:lab(40.4273% 67.2623 53.7441);--color-red-800:lab(33.7174% 55.8993 41.0293);--color-red-900:lab(28.5139% 44.5539 29.0463);--color-red-950:lab(13.003% 29.04 16.7519);--color-amber-400:lab(80.1641% 16.6016 99.2089);--color-amber-700:lab(47.2709% 42.9082 69.2966);--color-emerald-400:lab(75.0771% -60.7313 19.4147);--color-emerald-700:lab(44.4871% -41.0396 11.0361);--color-zinc-50:lab(98.26% 0 0);--color-zinc-100:lab(96.1634% .0993311 -.364041);--color-zinc-200:lab(90.6853% .399232 -1.45452);--color-zinc-300:lab(84.9837% .601262 -2.17986);--color-zinc-400:lab(65.6464% 1.53497 -5.42429);--color-zinc-500:lab(47.8878% 1.65477 -5.77283);--color-zinc-600:lab(35.1166% 1.78212 -6.1173);--color-zinc-700:lab(26.8019% 1.35387 -4.68303);--color-zinc-800:lab(15.7305% .613764 -2.16959);--color-zinc-900:lab(8.30603% .618205 -2.16572);--color-zinc-950:lab(2.51107% .242703 -.886115)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.-top-0\.5{top:calc(var(--spacing) * -.5)}.top-0{top:calc(var(--spacing) * 0)}.top-2{top:calc(var(--spacing) * 2)}.top-full{top:100%}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-24{bottom:calc(var(--spacing) * 24)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-\[-9999px\]{left:-9999px}.z-10{z-index:10}.z-30{z-index:30}.z-50{z-index:50}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-22{height:calc(var(--spacing) * 22)}.h-\[18px\]{height:18px}.h-\[200px\]{height:200px}.h-full{height:100%}.max-h-\[min\(85vh\,28rem\)\]{max-height:min(85vh,28rem)}.max-h-\[min\(85vh\,32rem\)\]{max-height:min(85vh,32rem)}.max-h-\[min\(85vh\,36rem\)\]{max-height:min(85vh,36rem)}.max-h-\[min\(85vh\,40rem\)\]{max-height:min(85vh,40rem)}.min-h-0{min-height:calc(var(--spacing) * 0)}.w-0{width:calc(var(--spacing) * 0)}.w-1\/3{width:33.3333%}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-22{width:calc(var(--spacing) * 22)}.w-36{width:calc(var(--spacing) * 36)}.w-\[18px\]{width:18px}.w-\[200px\]{width:200px}.w-\[min\(100vw-2rem\,22rem\)\]{width:min(100vw - 2rem,22rem)}.w-full{width:100%}.w-px{width:1px}.max-w-\[8rem\]{max-width:8rem}.max-w-\[280px\]{max-width:280px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-3\.5{min-width:calc(var(--spacing) * 3.5)}.min-w-\[11rem\]{min-width:11rem}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-5{--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-0\.25>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .25) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .25) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-zinc-100>:not(:last-child)){border-color:var(--color-zinc-100)}:where(.divide-zinc-200>:not(:last-child)){border-color:var(--color-zinc-200)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-accent-200\/80{border-color:var(--accent-200)}@supports (color:color-mix(in lab, red, red)){.border-accent-200\/80{border-color:color-mix(in oklab, var(--accent-200) 80%, transparent)}}.border-accent-500,.border-accent-500\/20{border-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.border-accent-500\/20{border-color:color-mix(in oklab, var(--accent-500) 20%, transparent)}}.border-accent-500\/50{border-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.border-accent-500\/50{border-color:color-mix(in oklab, var(--accent-500) 50%, transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-transparent{border-color:#0000}.border-zinc-200{border-color:var(--color-zinc-200)}.border-zinc-200\/90{border-color:#e4e4e7e6}@supports (color:color-mix(in lab, red, red)){.border-zinc-200\/90{border-color:color-mix(in oklab, var(--color-zinc-200) 90%, transparent)}}.border-zinc-300{border-color:var(--color-zinc-300)}.border-t-accent-500{border-top-color:var(--accent-500)}.bg-accent-50\/80{background-color:var(--accent-50)}@supports (color:color-mix(in lab, red, red)){.bg-accent-50\/80{background-color:color-mix(in oklab, var(--accent-50) 80%, transparent)}}.bg-accent-50\/90{background-color:var(--accent-50)}@supports (color:color-mix(in lab, red, red)){.bg-accent-50\/90{background-color:color-mix(in oklab, var(--accent-50) 90%, transparent)}}.bg-accent-500,.bg-accent-500\/15{background-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.bg-accent-500\/15{background-color:color-mix(in oklab, var(--accent-500) 15%, transparent)}}.bg-background{background-color:var(--background)}.bg-red-50{background-color:var(--color-red-50)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-white\/80{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-white\/90{background-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.bg-white\/95{background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.bg-white\/95{background-color:color-mix(in oklab, var(--color-white) 95%, transparent)}}.bg-zinc-50{background-color:var(--color-zinc-50)}.bg-zinc-50\/80{background-color:#fafafacc}@supports (color:color-mix(in lab, red, red)){.bg-zinc-50\/80{background-color:color-mix(in oklab, var(--color-zinc-50) 80%, transparent)}}.bg-zinc-100{background-color:var(--color-zinc-100)}.bg-zinc-200{background-color:var(--color-zinc-200)}.bg-zinc-300{background-color:var(--color-zinc-300)}.bg-zinc-900\/50{background-color:#18181b80}@supports (color:color-mix(in lab, red, red)){.bg-zinc-900\/50{background-color:color-mix(in oklab, var(--color-zinc-900) 50%, transparent)}}.bg-linear-to-br{--tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-br{--tw-gradient-position:to bottom right in oklab}}.bg-linear-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.from-accent-200\/70{--tw-gradient-from:var(--accent-200)}@supports (color:color-mix(in lab, red, red)){.from-accent-200\/70{--tw-gradient-from:color-mix(in oklab, var(--accent-200) 70%, transparent)}}.from-accent-200\/70{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-accent-200\/90{--tw-gradient-from:var(--accent-200)}@supports (color:color-mix(in lab, red, red)){.from-accent-200\/90{--tw-gradient-from:color-mix(in oklab, var(--accent-200) 90%, transparent)}}.from-accent-200\/90{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-accent-600{--tw-gradient-from:var(--accent-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-zinc-100{--tw-gradient-via:var(--color-zinc-100);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-accent-400{--tw-gradient-to:var(--accent-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-zinc-200{--tw-gradient-to:var(--color-zinc-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.object-cover{object-fit:cover}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-0\.5{padding-left:calc(var(--spacing) * .5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-geist-mono)}.font-sans{font-family:var(--font-geist-sans)}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.text-accent-500{color:var(--accent-500)}.text-accent-600{color:var(--accent-600)}.text-accent-700{color:var(--accent-700)}.text-accent-800,.text-accent-800\/20{color:var(--accent-800)}@supports (color:color-mix(in lab, red, red)){.text-accent-800\/20{color:color-mix(in oklab, var(--accent-800) 20%, transparent)}}.text-accent-900,.text-accent-900\/25{color:var(--accent-900)}@supports (color:color-mix(in lab, red, red)){.text-accent-900\/25{color:color-mix(in oklab, var(--accent-900) 25%, transparent)}}.text-amber-700{color:var(--color-amber-700)}.text-emerald-700{color:var(--color-emerald-700)}.text-foreground{color:var(--foreground)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-zinc-400{color:var(--color-zinc-400)}.text-zinc-500{color:var(--color-zinc-500)}.text-zinc-600{color:var(--color-zinc-600)}.text-zinc-700{color:var(--color-zinc-700)}.text-zinc-800{color:var(--color-zinc-800)}.text-zinc-900{color:var(--color-zinc-900)}.text-zinc-950{color:var(--color-zinc-950)}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.decoration-accent-500\/40{-webkit-text-decoration-color:var(--accent-500);-webkit-text-decoration-color:var(--accent-500);-webkit-text-decoration-color:var(--accent-500);text-decoration-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.decoration-accent-500\/40{-webkit-text-decoration-color:color-mix(in oklab, var(--accent-500) 40%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--accent-500) 40%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--accent-500) 40%, transparent);text-decoration-color:color-mix(in oklab, var(--accent-500) 40%, transparent)}}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-accent-500{accent-color:var(--accent-500)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-80{opacity:.8}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-accent-600\/20{--tw-shadow-color:var(--accent-600)}@supports (color:color-mix(in lab, red, red)){.shadow-accent-600\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--accent-600) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-zinc-400\/20{--tw-shadow-color:#9f9fa933}@supports (color:color-mix(in lab, red, red)){.shadow-zinc-400\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-zinc-400) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-zinc-900\/10{--tw-shadow-color:#18181b1a}@supports (color:color-mix(in lab, red, red)){.shadow-zinc-900\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-zinc-900) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-accent-400\/30{--tw-ring-color:var(--accent-400)}@supports (color:color-mix(in lab, red, red)){.ring-accent-400\/30{--tw-ring-color:color-mix(in oklab, var(--accent-400) 30%, transparent)}}.ring-accent-500\/0{--tw-ring-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.ring-accent-500\/0{--tw-ring-color:color-mix(in oklab, var(--accent-500) 0%, transparent)}}.ring-accent-500\/25{--tw-ring-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.ring-accent-500\/25{--tw-ring-color:color-mix(in oklab, var(--accent-500) 25%, transparent)}}.ring-accent-500\/30{--tw-ring-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.ring-accent-500\/30{--tw-ring-color:color-mix(in oklab, var(--accent-500) 30%, transparent)}}.ring-zinc-200\/80{--tw-ring-color:#e4e4e7cc}@supports (color:color-mix(in lab, red, red)){.ring-zinc-200\/80{--tw-ring-color:color-mix(in oklab, var(--color-zinc-200) 80%, transparent)}}.ring-zinc-300\/70{--tw-ring-color:#d4d4d8b3}@supports (color:color-mix(in lab, red, red)){.ring-zinc-300\/70{--tw-ring-color:color-mix(in oklab, var(--color-zinc-300) 70%, transparent)}}.ring-zinc-900\/10{--tw-ring-color:#18181b1a}@supports (color:color-mix(in lab, red, red)){.ring-zinc-900\/10{--tw-ring-color:color-mix(in oklab, var(--color-zinc-900) 10%, transparent)}}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:bg-accent-500\/15:is(:where(.group):hover *){background-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-accent-500\/15:is(:where(.group):hover *){background-color:color-mix(in oklab, var(--accent-500) 15%, transparent)}}}.group-active\:bg-accent-500\/25:is(:where(.group):active *){background-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.group-active\:bg-accent-500\/25:is(:where(.group):active *){background-color:color-mix(in oklab, var(--accent-500) 25%, transparent)}}.placeholder\:text-zinc-400::placeholder{color:var(--color-zinc-400)}.first\:pt-0:first-child{padding-top:calc(var(--spacing) * 0)}@media (hover:hover){.hover\:border-accent-400\/50:hover{border-color:var(--accent-400)}@supports (color:color-mix(in lab, red, red)){.hover\:border-accent-400\/50:hover{border-color:color-mix(in oklab, var(--accent-400) 50%, transparent)}}.hover\:border-zinc-300:hover{border-color:var(--color-zinc-300)}.hover\:bg-accent-50\/50:hover{background-color:var(--accent-50)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent-50\/50:hover{background-color:color-mix(in oklab, var(--accent-50) 50%, transparent)}}.hover\:bg-accent-400:hover{background-color:var(--accent-400)}.hover\:bg-accent-500\/15:hover{background-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent-500\/15:hover{background-color:color-mix(in oklab, var(--accent-500) 15%, transparent)}}.hover\:bg-accent-500\/25:hover{background-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-accent-500\/25:hover{background-color:color-mix(in oklab, var(--accent-500) 25%, transparent)}}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-zinc-50:hover{background-color:var(--color-zinc-50)}.hover\:bg-zinc-100:hover{background-color:var(--color-zinc-100)}.hover\:bg-zinc-200:hover{background-color:var(--color-zinc-200)}.hover\:bg-zinc-200\/80:hover{background-color:#e4e4e7cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-zinc-200\/80:hover{background-color:color-mix(in oklab, var(--color-zinc-200) 80%, transparent)}}.hover\:bg-zinc-300:hover{background-color:var(--color-zinc-300)}.hover\:text-accent-600:hover{color:var(--accent-600)}.hover\:text-accent-700:hover{color:var(--accent-700)}.hover\:text-zinc-700:hover{color:var(--color-zinc-700)}.hover\:text-zinc-800:hover{color:var(--color-zinc-800)}.hover\:text-zinc-900:hover{color:var(--color-zinc-900)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-accent-400:focus{border-color:var(--accent-400)}.focus\:border-accent-500\/50:focus{border-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.focus\:border-accent-500\/50:focus{border-color:color-mix(in oklab, var(--accent-500) 50%, transparent)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-accent-500\/20:focus{--tw-ring-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.focus\:ring-accent-500\/20:focus{--tw-ring-color:color-mix(in oklab, var(--accent-500) 20%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-accent-500\/30:focus-visible{--tw-ring-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-accent-500\/30:focus-visible{--tw-ring-color:color-mix(in oklab, var(--accent-500) 30%, transparent)}}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-white:focus-visible{--tw-ring-offset-color:var(--color-white)}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media not all and (min-width:64rem){.max-lg\:hidden{display:none}.max-lg\:w-full{width:100%}.max-lg\:flex-1{flex:1}.max-lg\:flex-2{flex:2}}@media (min-width:40rem){.sm\:block{display:block}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:max-w-xs{max-width:var(--container-xs)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-\[7rem_1fr\]{grid-template-columns:7rem 1fr}.sm\:flex-row{flex-direction:row}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-center{align-items:center}.sm\:items-end{align-items:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:border-0{border-style:var(--tw-border-style);border-width:0}.sm\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.sm\:bg-transparent{background-color:#0000}.sm\:px-2{padding-inline:calc(var(--spacing) * 2)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.sm\:pt-6{padding-top:calc(var(--spacing) * 6)}.sm\:pb-8{padding-bottom:calc(var(--spacing) * 8)}.sm\:opacity-0{opacity:0}@media (hover:hover){.sm\:group-hover\/row\:opacity-100:is(:where(.group\/row):hover *){opacity:1}}}@media (min-width:48rem){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:64rem){.lg\:h-full{height:100%}.lg\:min-w-0{min-width:calc(var(--spacing) * 0)}.lg\:flex-1{flex:1}.lg\:shrink-0{flex-shrink:0}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.lg\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.lg\:border-zinc-200{border-color:var(--color-zinc-200)}}:where(.dark\:divide-zinc-800:where(.dark,.dark *)>:not(:last-child)){border-color:var(--color-zinc-800)}.dark\:border-accent-400:where(.dark,.dark *),.dark\:border-accent-400\/20:where(.dark,.dark *){border-color:var(--accent-400)}@supports (color:color-mix(in lab, red, red)){.dark\:border-accent-400\/20:where(.dark,.dark *){border-color:color-mix(in oklab, var(--accent-400) 20%, transparent)}}.dark\:border-red-900\/40:where(.dark,.dark *){border-color:#82181a66}@supports (color:color-mix(in lab, red, red)){.dark\:border-red-900\/40:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-red-900) 40%, transparent)}}.dark\:border-red-900\/50:where(.dark,.dark *){border-color:#82181a80}@supports (color:color-mix(in lab, red, red)){.dark\:border-red-900\/50:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-red-900) 50%, transparent)}}.dark\:border-white\/8:where(.dark,.dark *){border-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.dark\:border-white\/8:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-white) 8%, transparent)}}.dark\:border-zinc-600:where(.dark,.dark *){border-color:var(--color-zinc-600)}.dark\:border-zinc-700:where(.dark,.dark *){border-color:var(--color-zinc-700)}.dark\:border-zinc-700\/80:where(.dark,.dark *){border-color:#3f3f46cc}@supports (color:color-mix(in lab, red, red)){.dark\:border-zinc-700\/80:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-zinc-700) 80%, transparent)}}.dark\:border-zinc-800:where(.dark,.dark *){border-color:var(--color-zinc-800)}.dark\:border-zinc-800\/80:where(.dark,.dark *){border-color:#27272acc}@supports (color:color-mix(in lab, red, red)){.dark\:border-zinc-800\/80:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-zinc-800) 80%, transparent)}}.dark\:border-t-accent-400:where(.dark,.dark *){border-top-color:var(--accent-400)}.dark\:bg-accent-400:where(.dark,.dark *){background-color:var(--accent-400)}.dark\:bg-accent-500\/20:where(.dark,.dark *){background-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-accent-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--accent-500) 20%, transparent)}}.dark\:bg-accent-950\/30:where(.dark,.dark *){background-color:var(--accent-950)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-accent-950\/30:where(.dark,.dark *){background-color:color-mix(in oklab, var(--accent-950) 30%, transparent)}}.dark\:bg-red-950\/30:where(.dark,.dark *){background-color:#4608094d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-red-950\/30:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-red-950) 30%, transparent)}}.dark\:bg-red-950\/40:where(.dark,.dark *){background-color:#46080966}@supports (color:color-mix(in lab, red, red)){.dark\:bg-red-950\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-red-950) 40%, transparent)}}.dark\:bg-transparent:where(.dark,.dark *){background-color:#0000}.dark\:bg-white\/6:where(.dark,.dark *){background-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.dark\:bg-white\/6:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-white) 6%, transparent)}}.dark\:bg-zinc-600:where(.dark,.dark *){background-color:var(--color-zinc-600)}.dark\:bg-zinc-700:where(.dark,.dark *){background-color:var(--color-zinc-700)}.dark\:bg-zinc-800:where(.dark,.dark *){background-color:var(--color-zinc-800)}.dark\:bg-zinc-900:where(.dark,.dark *){background-color:var(--color-zinc-900)}.dark\:bg-zinc-900\/30:where(.dark,.dark *){background-color:#18181b4d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-zinc-900\/30:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-zinc-900) 30%, transparent)}}.dark\:bg-zinc-900\/40:where(.dark,.dark *){background-color:#18181b66}@supports (color:color-mix(in lab, red, red)){.dark\:bg-zinc-900\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-zinc-900) 40%, transparent)}}.dark\:bg-zinc-900\/50:where(.dark,.dark *){background-color:#18181b80}@supports (color:color-mix(in lab, red, red)){.dark\:bg-zinc-900\/50:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-zinc-900) 50%, transparent)}}.dark\:bg-zinc-900\/80:where(.dark,.dark *){background-color:#18181bcc}@supports (color:color-mix(in lab, red, red)){.dark\:bg-zinc-900\/80:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-zinc-900) 80%, transparent)}}.dark\:bg-zinc-900\/95:where(.dark,.dark *){background-color:#18181bf2}@supports (color:color-mix(in lab, red, red)){.dark\:bg-zinc-900\/95:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-zinc-900) 95%, transparent)}}.dark\:bg-zinc-950:where(.dark,.dark *){background-color:var(--color-zinc-950)}.dark\:bg-zinc-950\/40:where(.dark,.dark *){background-color:#09090b66}@supports (color:color-mix(in lab, red, red)){.dark\:bg-zinc-950\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-zinc-950) 40%, transparent)}}.dark\:bg-zinc-950\/50:where(.dark,.dark *){background-color:#09090b80}@supports (color:color-mix(in lab, red, red)){.dark\:bg-zinc-950\/50:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-zinc-950) 50%, transparent)}}.dark\:bg-zinc-950\/80:where(.dark,.dark *){background-color:#09090bcc}@supports (color:color-mix(in lab, red, red)){.dark\:bg-zinc-950\/80:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-zinc-950) 80%, transparent)}}.dark\:bg-zinc-950\/90:where(.dark,.dark *){background-color:#09090be6}@supports (color:color-mix(in lab, red, red)){.dark\:bg-zinc-950\/90:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-zinc-950) 90%, transparent)}}.dark\:from-accent-900\/35:where(.dark,.dark *){--tw-gradient-from:var(--accent-900)}@supports (color:color-mix(in lab, red, red)){.dark\:from-accent-900\/35:where(.dark,.dark *){--tw-gradient-from:color-mix(in oklab, var(--accent-900) 35%, transparent)}}.dark\:from-accent-900\/35:where(.dark,.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.dark\:from-accent-900\/40:where(.dark,.dark *){--tw-gradient-from:var(--accent-900)}@supports (color:color-mix(in lab, red, red)){.dark\:from-accent-900\/40:where(.dark,.dark *){--tw-gradient-from:color-mix(in oklab, var(--accent-900) 40%, transparent)}}.dark\:from-accent-900\/40:where(.dark,.dark *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.dark\:via-zinc-800:where(.dark,.dark *){--tw-gradient-via:var(--color-zinc-800);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.dark\:to-zinc-900:where(.dark,.dark *){--tw-gradient-to:var(--color-zinc-900);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.dark\:text-accent-200:where(.dark,.dark *){color:var(--accent-200)}.dark\:text-accent-300:where(.dark,.dark *){color:var(--accent-300)}.dark\:text-accent-400:where(.dark,.dark *){color:var(--accent-400)}.dark\:text-amber-400:where(.dark,.dark *){color:var(--color-amber-400)}.dark\:text-emerald-400:where(.dark,.dark *){color:var(--color-emerald-400)}.dark\:text-red-200:where(.dark,.dark *){color:var(--color-red-200)}.dark\:text-red-300:where(.dark,.dark *){color:var(--color-red-300)}.dark\:text-red-400:where(.dark,.dark *){color:var(--color-red-400)}.dark\:text-zinc-50:where(.dark,.dark *){color:var(--color-zinc-50)}.dark\:text-zinc-100:where(.dark,.dark *){color:var(--color-zinc-100)}.dark\:text-zinc-200:where(.dark,.dark *){color:var(--color-zinc-200)}.dark\:text-zinc-300:where(.dark,.dark *){color:var(--color-zinc-300)}.dark\:text-zinc-400:where(.dark,.dark *){color:var(--color-zinc-400)}.dark\:text-zinc-500:where(.dark,.dark *){color:var(--color-zinc-500)}.dark\:text-zinc-600:where(.dark,.dark *){color:var(--color-zinc-600)}.dark\:text-zinc-600\/90:where(.dark,.dark *){color:#52525ce6}@supports (color:color-mix(in lab, red, red)){.dark\:text-zinc-600\/90:where(.dark,.dark *){color:color-mix(in oklab, var(--color-zinc-600) 90%, transparent)}}.dark\:text-zinc-700\/90:where(.dark,.dark *){color:#3f3f46e6}@supports (color:color-mix(in lab, red, red)){.dark\:text-zinc-700\/90:where(.dark,.dark *){color:color-mix(in oklab, var(--color-zinc-700) 90%, transparent)}}.dark\:shadow-2xl:where(.dark,.dark *){--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.dark\:shadow-none:where(.dark,.dark *){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.dark\:shadow-accent-900\/30:where(.dark,.dark *){--tw-shadow-color:var(--accent-900)}@supports (color:color-mix(in lab, red, red)){.dark\:shadow-accent-900\/30:where(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--accent-900) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:shadow-black\/40:where(.dark,.dark *){--tw-shadow-color:#0006}@supports (color:color-mix(in lab, red, red)){.dark\:shadow-black\/40:where(.dark,.dark *){--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 40%, transparent) var(--tw-shadow-alpha), transparent)}}.dark\:ring-accent-500\/30:where(.dark,.dark *){--tw-ring-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.dark\:ring-accent-500\/30:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--accent-500) 30%, transparent)}}.dark\:ring-accent-500\/40:where(.dark,.dark *){--tw-ring-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.dark\:ring-accent-500\/40:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--accent-500) 40%, transparent)}}.dark\:ring-white\/10:where(.dark,.dark *){--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.dark\:ring-white\/10:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.dark\:ring-zinc-700\/60:where(.dark,.dark *){--tw-ring-color:#3f3f4699}@supports (color:color-mix(in lab, red, red)){.dark\:ring-zinc-700\/60:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-zinc-700) 60%, transparent)}}.dark\:ring-zinc-700\/80:where(.dark,.dark *){--tw-ring-color:#3f3f46cc}@supports (color:color-mix(in lab, red, red)){.dark\:ring-zinc-700\/80:where(.dark,.dark *){--tw-ring-color:color-mix(in oklab, var(--color-zinc-700) 80%, transparent)}}@media (hover:hover){.dark\:hover\:border-accent-500\/30:where(.dark,.dark *):hover{border-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:border-accent-500\/30:where(.dark,.dark *):hover{border-color:color-mix(in oklab, var(--accent-500) 30%, transparent)}}.dark\:hover\:border-zinc-500:where(.dark,.dark *):hover{border-color:var(--color-zinc-500)}.dark\:hover\:border-zinc-600:where(.dark,.dark *):hover{border-color:var(--color-zinc-600)}.dark\:hover\:bg-accent-500\/10:where(.dark,.dark *):hover{background-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent-500\/10:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--accent-500) 10%, transparent)}}.dark\:hover\:bg-accent-950\/20:where(.dark,.dark *):hover{background-color:var(--accent-950)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent-950\/20:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--accent-950) 20%, transparent)}}.dark\:hover\:bg-red-950\/40:where(.dark,.dark *):hover{background-color:#46080966}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-red-950\/40:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-red-950) 40%, transparent)}}.dark\:hover\:bg-zinc-700:where(.dark,.dark *):hover{background-color:var(--color-zinc-700)}.dark\:hover\:bg-zinc-800:where(.dark,.dark *):hover{background-color:var(--color-zinc-800)}.dark\:hover\:bg-zinc-800\/60:where(.dark,.dark *):hover{background-color:#27272a99}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-zinc-800\/60:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-zinc-800) 60%, transparent)}}.dark\:hover\:bg-zinc-800\/80:where(.dark,.dark *):hover{background-color:#27272acc}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-zinc-800\/80:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-zinc-800) 80%, transparent)}}.dark\:hover\:bg-zinc-900\/60:where(.dark,.dark *):hover{background-color:#18181b99}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-zinc-900\/60:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-zinc-900) 60%, transparent)}}.dark\:hover\:text-accent-300:where(.dark,.dark *):hover{color:var(--accent-300)}.dark\:hover\:text-zinc-50:where(.dark,.dark *):hover{color:var(--color-zinc-50)}.dark\:hover\:text-zinc-100:where(.dark,.dark *):hover{color:var(--color-zinc-100)}.dark\:hover\:text-zinc-200:where(.dark,.dark *):hover{color:var(--color-zinc-200)}.dark\:hover\:text-zinc-300:where(.dark,.dark *):hover{color:var(--color-zinc-300)}}.dark\:focus\:border-accent-500\/60:where(.dark,.dark *):focus{border-color:var(--accent-500)}@supports (color:color-mix(in lab, red, red)){.dark\:focus\:border-accent-500\/60:where(.dark,.dark *):focus{border-color:color-mix(in oklab, var(--accent-500) 60%, transparent)}}.dark\:focus-visible\:ring-offset-zinc-900:where(.dark,.dark *):focus-visible{--tw-ring-offset-color:var(--color-zinc-900)}@media (min-width:40rem){.sm\:dark\:bg-transparent:where(.dark,.dark *){background-color:#0000}}@media (min-width:64rem){.lg\:dark\:border-zinc-800:where(.dark,.dark *){border-color:var(--color-zinc-800)}}}:root,[data-accent=amber]{--accent-50:#fffbeb;--accent-200:#fde68a;--accent-300:#fcd34d;--accent-400:#fbbf24;--accent-500:#f59e0b;--accent-600:#d97706;--accent-700:#b45309;--accent-800:#92400e;--accent-900:#78350f;--accent-950:#451a03}[data-accent=orange]{--accent-50:#fff7ed;--accent-200:#fed7aa;--accent-300:#fdba74;--accent-400:#fb923c;--accent-500:#f97316;--accent-600:#ea580c;--accent-700:#c2410c;--accent-800:#9a3412;--accent-900:#7c2d12;--accent-950:#431407}[data-accent=rose]{--accent-50:#fff1f2;--accent-200:#fecdd3;--accent-300:#fda4af;--accent-400:#fb7185;--accent-500:#f43f5e;--accent-600:#e11d48;--accent-700:#be123c;--accent-800:#9f1239;--accent-900:#881337;--accent-950:#4c0519}[data-accent=red]{--accent-50:#fef2f2;--accent-200:#fecaca;--accent-300:#fca5a5;--accent-400:#f87171;--accent-500:#ef4444;--accent-600:#dc2626;--accent-700:#b91c1c;--accent-800:#991b1b;--accent-900:#7f1d1d;--accent-950:#450a0a}[data-accent=violet]{--accent-50:#f5f3ff;--accent-200:#ddd6fe;--accent-300:#c4b5fd;--accent-400:#a78bfa;--accent-500:#8b5cf6;--accent-600:#7c3aed;--accent-700:#6d28d9;--accent-800:#5b21b6;--accent-900:#4c1d95;--accent-950:#2e1065}[data-accent=blue]{--accent-50:#eff6ff;--accent-200:#bfdbfe;--accent-300:#93c5fd;--accent-400:#60a5fa;--accent-500:#3b82f6;--accent-600:#2563eb;--accent-700:#1d4ed8;--accent-800:#1e40af;--accent-900:#1e3a8a;--accent-950:#172554}[data-accent=teal]{--accent-50:#f0fdfa;--accent-200:#99f6e4;--accent-300:#5eead4;--accent-400:#2dd4bf;--accent-500:#14b8a6;--accent-600:#0d9488;--accent-700:#0f766e;--accent-800:#115e59;--accent-900:#134e4a;--accent-950:#042f2e}[data-accent=emerald]{--accent-50:#ecfdf5;--accent-200:#a7f3d0;--accent-300:#6ee7b7;--accent-400:#34d399;--accent-500:#10b981;--accent-600:#059669;--accent-700:#047857;--accent-800:#065f46;--accent-900:#064e3b;--accent-950:#022c22}html{height:100%}:root{--background:#fafafa;--foreground:#171717}.dark{--background:#0a0a0a;--foreground:#ededed}:root{--scrollbar-track:#3f3f4626;--scrollbar-thumb:#a1a1aab3;--scrollbar-thumb-hover:#a1a1aaf2}.dark{--scrollbar-track:#27272ab3;--scrollbar-thumb:#52525be6;--scrollbar-thumb-hover:#52525b}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border:2px solid var(--scrollbar-track);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}body{height:100%;font-family:var(--font-sans), ui-sans-serif, system-ui, sans-serif;margin:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,841,e=>{"use strict";var t=e.i(75397);e.s(["default",0,function(){try{let e=window.localStorage.getItem(t.DEFAULT_BROWSE_VIEW_STORAGE_KEY);if("library"===e||"musicbrainz"===e||"youtube"===e)return e;return"library"}catch{return"library"}}],841)},19900,e=>{"use strict";var t=e.i(54710),a=e.i(34416),r=e.i(70487),i=e.i(841),s=e.i(75397);let l=[{value:"library",label:"Library"},{value:"musicbrainz",label:"MusicBrainz"},{value:"youtube",label:"YouTube"}];e.s(["default",0,function(){let{recentBrowseSearches:e,clearRecentBrowseSearches:n}=(0,r.useLibrary)(),[c,d]=(0,a.useState)("library");(0,a.useEffect)(()=>{queueMicrotask(()=>{d((0,i.default)())})},[]);let o=(0,a.useCallback)(e=>{d(e);try{window.localStorage.setItem(s.DEFAULT_BROWSE_VIEW_STORAGE_KEY,e)}catch{}},[]);return(0,t.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold tracking-tight text-zinc-900 dark:text-zinc-100",children:"Browse"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-zinc-600 dark:text-zinc-400",children:"Default browse tab and recent MusicBrainz / YouTube search history."})]}),(0,t.jsx)("section",{className:"rounded-2xl border border-zinc-200 bg-white p-6 shadow-sm dark:border-zinc-800 dark:bg-zinc-900/40",children:(0,t.jsxs)("label",{className:"block min-w-0",children:[(0,t.jsx)("span",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Default browse view"}),(0,t.jsxs)("p",{className:"mt-2 text-sm leading-relaxed text-zinc-600 dark:text-zinc-400",children:["Applied when you open the home page without a ",(0,t.jsx)("span",{className:"font-mono text-xs",children:"view"})," link in the URL. You can still switch tabs anytime from the player header."]}),(0,t.jsx)("select",{value:c,onChange:e=>o(e.target.value),className:"mt-2 block w-full max-w-xs rounded-lg border border-zinc-300 bg-white px-3 py-2 text-sm text-zinc-900 dark:border-zinc-600 dark:bg-zinc-900 dark:text-zinc-100","aria-label":"Default browse view",children:l.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value))})]})}),(0,t.jsxs)("section",{className:"rounded-2xl border border-zinc-200 bg-white p-6 shadow-sm dark:border-zinc-800 dark:bg-zinc-900/40",children:[(0,t.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Recent searches"}),(0,t.jsxs)("p",{className:"mt-2 text-sm leading-relaxed text-zinc-600 dark:text-zinc-400",children:["Clears recent Library, MusicBrainz, and YouTube search chips shown on the home queue panel (",1===e.length?"1 saved":`${e.length} saved`,")."]}),(0,t.jsx)("button",{type:"button",onClick:()=>n(),disabled:0===e.length,className:"mt-4 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:"Clear recent searches"})]})]})}],19900)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,28116,e=>{"use strict";e.s(["YOUTUBE_API_KEY_CHANGED_EVENT",0,"muzical-youtube-api-key-changed"])},841,e=>{"use strict";var r=e.i(75397);e.s(["default",0,function(){try{let e=window.localStorage.getItem(r.DEFAULT_BROWSE_VIEW_STORAGE_KEY);if("library"===e||"musicbrainz"===e||"youtube"===e)return e;return"library"}catch{return"library"}}],841)},71060,(e,r,t)=>{r.exports=e.r(2052)},62474,e=>{"use strict";var r=e.i(54710),t=e.i(80492);function i(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,className:e.className,children:(0,r.jsx)("path",{d:"M12 7a5 5 0 1 0 0 10 5 5 0 0 0 0-10zM2 13h2v-2H2v2zm18 0h2v-2h-2v2zM11 2v2h2V2h-2zm0 18v2h2v-2h-2zM4.22 19.78l1.42-1.42-1.42-1.42-1.42 1.42 1.42 1.42zm12.72-1.42 1.42 1.42 1.42-1.42-1.42-1.42-1.42 1.42zM19.78 4.22l-1.42 1.42 1.42 1.42 1.42-1.42-1.42-1.42zM7.05 5.64 5.64 4.22 4.22 5.64l1.42 1.42 1.41-1.42z"})})}function a(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,className:e.className,children:(0,r.jsx)("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})})}e.s(["default",0,function(){let{scheme:e,toggleScheme:n}=(0,t.useTheme)(),c="dark"===e;return(0,r.jsx)("button",{type:"button",onClick:n,"aria-label":c?"Switch to light theme":"Switch to dark theme",className:"flex h-9 w-9 shrink-0 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",children:c?(0,r.jsx)(i,{className:"h-[18px] w-[18px]"}):(0,r.jsx)(a,{className:"h-[18px] w-[18px]"})})}])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,89078,e=>{"use strict";var t=e.i(54710),a=e.i(34416),s=e.i(75353);e.s(["default",0,function(){let[e,n]=(0,a.useState)(""),[c,r]=(0,a.useState)(!1);(0,a.useEffect)(()=>{n((0,s.default)())},[]);let l=(0,a.useCallback)(()=>{try{let t=e.trim();t?window.localStorage.setItem(s.LASTFM_API_KEY_STORAGE_KEY,t):window.localStorage.removeItem(s.LASTFM_API_KEY_STORAGE_KEY)}catch{}r(!0),window.setTimeout(()=>r(!1),2e3)},[e]);return(0,t.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold tracking-tight text-zinc-900 dark:text-zinc-100",children:"Last.fm"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-zinc-600 dark:text-zinc-400",children:"Related songs use Last.fm listening data. An API key is required; it is stored only in this browser."})]}),(0,t.jsxs)("section",{className:"rounded-2xl border border-zinc-200 bg-white p-6 shadow-sm dark:border-zinc-800 dark:bg-zinc-900/40",children:[(0,t.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"API key"}),(0,t.jsxs)("p",{className:"mt-2 text-sm leading-relaxed text-zinc-600 dark:text-zinc-400",children:["Create an API account at"," ",(0,t.jsx)("a",{href:"https://www.last.fm/api/account/create",target:"_blank",rel:"noopener noreferrer",className:"font-medium text-accent-700 underline decoration-accent-500/40 underline-offset-2 hover:text-accent-600 dark:text-accent-400",children:"last.fm/api"}),". Use the API key (not the shared secret) for read-only methods like ",(0,t.jsx)("code",{className:"text-xs",children:"track.getSimilar"}),"."]}),(0,t.jsxs)("label",{className:"mt-4 block",children:[(0,t.jsx)("span",{className:"sr-only",children:"Last.fm API key"}),(0,t.jsx)("input",{type:"password",autoComplete:"off",spellCheck:!1,value:e,onChange:e=>n(e.target.value),placeholder:"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",className:"w-full rounded-xl border border-zinc-200 bg-zinc-50 px-4 py-2.5 font-mono text-sm text-zinc-900 outline-none ring-accent-500/30 placeholder:text-zinc-400 focus:border-accent-500/50 focus:ring-2 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100"})]}),(0,t.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-3",children:[(0,t.jsx)("button",{type:"button",onClick:l,className:"rounded-full bg-accent-500 px-4 py-2 text-sm font-medium text-zinc-950 shadow-sm transition hover:bg-accent-400",children:"Save key"}),c?(0,t.jsx)("span",{className:"text-sm text-zinc-500",children:"Saved"}):null]})]})]})}],89078)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,29708,e=>{"use strict";var t=e.i(54710);e.s(["default",0,function(e){return(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-4",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("h2",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:e.title}),(0,t.jsx)("p",{className:"mt-2 text-sm leading-relaxed text-zinc-600 dark:text-zinc-400",children:e.description})]}),(0,t.jsx)("button",{type:"button",role:"switch","aria-checked":e.checked,"aria-label":e.ariaLabel,onClick:()=>e.onChange(!e.checked),className:`relative inline-flex h-7 w-12 shrink-0 cursor-pointer rounded-full border-2 border-transparent p-0.5 transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-500/30 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-zinc-900 ${e.checked?"bg-accent-500":"bg-zinc-300 dark:bg-zinc-600"}`,children:(0,t.jsx)("span",{"aria-hidden":!0,className:`block h-5 w-5 rounded-full bg-white shadow-sm transition-transform ${e.checked?"translate-x-5":"translate-x-0"}`})})]})}])},26554,e=>{"use strict";var t=e.i(54710),r=e.i(34416),a=e.i(70487),i=e.i(21589),s=e.i(81193),n=e.i(29708);let l=[{value:0,label:"Unlimited"},{value:1,label:"1 level"},{value:2,label:"2 levels"},{value:3,label:"3 levels"},{value:5,label:"5 levels"},{value:10,label:"10 levels"}];function d(){let{scanPreferences:e,setScanPreferences:r,logLibraryScanTiming:d,setLogLibraryScanTiming:c,isScanning:o}=(0,a.useLibrary)(),u=t=>{r({...e,...t})};return(0,t.jsxs)("section",{className:"rounded-2xl border border-zinc-200 bg-white p-6 shadow-sm dark:border-zinc-800 dark:bg-zinc-900/40",children:[(0,t.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Scan options"}),(0,t.jsx)("p",{className:"mt-2 text-sm leading-relaxed text-zinc-600 dark:text-zinc-400",children:"Applied on the next rescan. Symlink handling depends on your browser; when enabled, Muzical skips directory cycles it can detect."}),(0,t.jsx)("div",{className:"mt-6 flex flex-col gap-6 sm:flex-row sm:items-end sm:justify-between",children:(0,t.jsxs)("label",{className:"block min-w-0 flex-1",children:[(0,t.jsx)("span",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Scan depth"}),(0,t.jsx)("select",{value:e.maxScanDepth,disabled:o,onChange:e=>u({maxScanDepth:Number.parseInt(e.target.value,10)}),className:"mt-2 block w-full max-w-xs rounded-lg border border-zinc-300 bg-white px-3 py-2 text-sm text-zinc-900 disabled:opacity-50 dark:border-zinc-600 dark:bg-zinc-900 dark:text-zinc-100","aria-label":"Maximum subdirectory scan depth",children:l.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value))})]})}),(0,t.jsx)("div",{className:"mt-6 border-t border-zinc-200 pt-6 dark:border-zinc-800",children:(0,t.jsx)(n.default,{title:"Log scan timing",description:"Write per-file scan duration to the browser console (cached vs parsed). Useful for tuning scan performance.",checked:d,onChange:c,ariaLabel:"Log per-song library scan timing to the console"})}),(0,t.jsx)("div",{className:"mt-6 border-t border-zinc-200 pt-6 dark:border-zinc-800",children:(0,t.jsx)(n.default,{title:"Follow symlinks",description:"Follow directory links when the browser exposes them as folders. May increase scan time.",checked:e.followSymlinks,onChange:e=>u({followSymlinks:e}),ariaLabel:"Follow directory symlinks when scanning"})}),(0,t.jsxs)("div",{className:"mt-6 border-t border-zinc-200 pt-6 dark:border-zinc-800",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"File types"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-zinc-600 dark:text-zinc-400",children:"Only checked extensions are included in library scans."})]}),(0,t.jsx)("button",{type:"button",disabled:o,onClick:()=>{u({enabledExtensions:(0,s.default)().enabledExtensions})},className:"shrink-0 text-xs font-medium text-accent-700 hover:text-accent-600 disabled:opacity-50 dark:text-accent-400 dark:hover:text-accent-300",children:"Enable all"})]}),(0,t.jsx)("ul",{className:"mt-4 grid grid-cols-2 gap-2 sm:grid-cols-3 md:grid-cols-4",role:"group","aria-label":"Audio file extensions to scan",children:i.LIBRARY_AUDIO_EXTENSIONS.map(r=>{let a=e.enabledExtensions.includes(r);return(0,t.jsx)("li",{children:(0,t.jsxs)("label",{className:"flex cursor-pointer items-center gap-2 rounded-lg border border-zinc-200 px-3 py-2 text-sm transition hover:bg-zinc-50 dark:border-zinc-700 dark:hover:bg-zinc-800/60",children:[(0,t.jsx)("input",{type:"checkbox",checked:a,disabled:o,onChange:()=>(t=>{let r=new Set(e.enabledExtensions);if(r.has(t)){if(r.size<=1)return;r.delete(t)}else r.add(t);u({enabledExtensions:[...r].sort()})})(r),className:"h-4 w-4 rounded border-zinc-300 text-accent-500 focus:ring-2 focus:ring-accent-500/20 dark:border-zinc-700 dark:bg-zinc-900"}),(0,t.jsx)("span",{className:"font-mono text-xs text-zinc-800 dark:text-zinc-200",children:r})]})},r)})})]})]})}var c=e.i(99513),o=e.i(34713);function u(e){if(e<=0)return"—";let t=Math.floor(e/3600);if(t>0){let r=Math.floor(e%3600/60);return`${t}h ${r}m`}return(0,o.formatDuration)(e)}function b(e){let a=(0,r.useMemo)(()=>(function(e,t){let r=new Set,a=new Set,i=0;for(let t of e)r.add((0,c.artistDisplayName)(t.artist)),a.add((0,c.albumCompositeKey)(t.album,t.artist)),t.durationSec>0&&(i+=t.durationSec);return{trackCount:e.length,folderCount:t,artistCount:r.size,albumCount:a.size,totalDurationSec:i}})(e.libraryTracks,e.roots.length),[e.libraryTracks,e.roots.length]),i=[{label:"Tracks",value:a.trackCount.toLocaleString()},{label:"Folders",value:a.folderCount.toLocaleString()},{label:"Artists",value:a.artistCount.toLocaleString()},{label:"Albums",value:a.albumCount.toLocaleString()},{label:"Playtime",value:u(a.totalDurationSec)}];return(0,t.jsx)("section",{"aria-label":"Library statistics",className:"grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-5",children:i.map(e=>(0,t.jsxs)("div",{className:"rounded-2xl border border-zinc-200 bg-white px-4 py-3 shadow-sm dark:border-zinc-800 dark:bg-zinc-900/40",children:[(0,t.jsx)("p",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:e.label}),(0,t.jsx)("p",{className:"mt-1 text-lg font-semibold tabular-nums tracking-tight text-zinc-900 dark:text-zinc-100",children:e.value})]},e.label))})}var m=e.i(66951);function x(e){let a=(0,r.useMemo)(()=>(function(e){let t=new Set,r=new Set,a=0,i=0,s=0;for(let n of e)(0,m.default)(n)&&(s+=1,t.add((0,c.artistDisplayName)(n.artist)),r.add((0,c.albumCompositeKey)(n.album,n.artist)),n.durationSec>0&&(a+=n.durationSec),n.youtubeVideoId?.trim()&&(i+=1));return{trackCount:s,artistCount:t.size,albumCount:r.size,totalDurationSec:a,youtubeLinkedCount:i}})(e.libraryTracks),[e.libraryTracks]),i=[{label:"Saved tracks",value:a.trackCount.toLocaleString()},{label:"Artists",value:a.artistCount.toLocaleString()},{label:"Albums",value:a.albumCount.toLocaleString()},{label:"YouTube linked",value:a.youtubeLinkedCount.toLocaleString()},{label:"Playtime",value:u(a.totalDurationSec)}];return(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"MusicBrainz"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-zinc-600 dark:text-zinc-400",children:"Tracks saved from MusicBrainz search. These stream via YouTube and persist across visits."})]}),(0,t.jsx)("section",{"aria-label":"MusicBrainz library statistics",className:"grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-5",children:i.map(e=>(0,t.jsxs)("div",{className:"rounded-2xl border border-zinc-200 bg-white px-4 py-3 shadow-sm dark:border-zinc-800 dark:bg-zinc-900/40",children:[(0,t.jsx)("p",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:e.label}),(0,t.jsx)("p",{className:"mt-1 text-lg font-semibold tabular-nums tracking-tight text-zinc-900 dark:text-zinc-100",children:e.value})]},e.label))}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:(0,t.jsx)("button",{type:"button",disabled:0===a.trackCount||e.disabled,onClick:()=>{if(0===a.trackCount)return;let t=a.trackCount.toLocaleString();window.confirm(`Remove all ${t} saved MusicBrainz track${1===a.trackCount?"":"s"} from your library? This cannot be undone.`)&&e.onRemoveAll()},className:"rounded-full border border-red-200 bg-white px-4 py-2 text-sm font-medium text-red-800 transition hover:bg-red-50 disabled:cursor-not-allowed disabled:opacity-50 dark:border-red-900/50 dark:bg-zinc-900 dark:text-red-300 dark:hover:bg-red-950/40",children:"Remove all MusicBrainz tracks"})})]})}function h(e){return Array.isArray(e)?[...new Set(e.filter(e=>"string"==typeof e&&""!==e.trim()))].sort((e,t)=>e.localeCompare(t,void 0,{sensitivity:"base"})):[]}e.s(["default",0,function(){let{roots:e,libraryTracks:i,isScanning:s,scanError:l,hasDirectoryPicker:c,addLibraryFolder:o,removeLibraryFolder:u,rescanAll:m,autoRescanOnStartup:p,setAutoRescanOnStartup:g,removeAllMusicBrainzFromLibrary:f,favoriteSongIds:k,favoriteArtistNames:z,favoriteAlbumKeys:v,importFavorites:y}=(0,a.useLibrary)(),j=(0,r.useRef)(null),[w,N]=(0,r.useState)(null),S=(0,r.useMemo)(()=>k.length+z.length+v.length,[k,z,v]),C=(0,r.useCallback)(()=>{var e;let t,r,a,i;t=new Blob([JSON.stringify((e={songIds:k,artistNames:z,albumKeys:v},{version:1,exportedAt:new Date().toISOString(),songIds:[...e.songIds],artistNames:[...e.artistNames],albumKeys:[...e.albumKeys]}),null,2)],{type:"application/json"}),r=URL.createObjectURL(t),(a=document.createElement("a")).href=r,i=new Date().toISOString().slice(0,10),a.download=`muzical-favorites-${i}.json`,a.click(),URL.revokeObjectURL(r)},[k,z,v]),L=(0,r.useCallback)(()=>{N(null),j.current?.click()},[]),A=(0,r.useCallback)(e=>{let t=e.target.files?.[0];e.target.value="",t&&t.text().then(e=>{let t=function(e){if(!e||"object"!=typeof e)return null;let t=h(e.songIds),r=h(e.artistNames),a=h(e.albumKeys);return 0===t.length&&0===r.length&&0===a.length?null:{version:1,exportedAt:"string"==typeof e.exportedAt&&""!==e.exportedAt.trim()?e.exportedAt:new Date().toISOString(),songIds:t,artistNames:r,albumKeys:a}}(JSON.parse(e));t?(y(t),N(null)):N("Invalid favorites file. Choose a JSON export from Muzical.")}).catch(()=>{N("Could not read the favorites file.")})},[y]);return(0,t.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold tracking-tight text-zinc-900 dark:text-zinc-100",children:"Library"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-zinc-600 dark:text-zinc-400",children:"Folders are read in the browser via the File System Access API."})]}),(0,t.jsx)(b,{roots:e,libraryTracks:i}),(0,t.jsx)(x,{libraryTracks:i,onRemoveAll:f,disabled:s}),l?(0,t.jsx)("p",{className:"rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-800 dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-200",role:"alert",children:l}):null,(0,t.jsxs)("section",{className:"rounded-2xl border border-zinc-200 bg-white p-6 shadow-sm dark:border-zinc-800 dark:bg-zinc-900/40",children:[(0,t.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Scan directories"}),(0,t.jsx)("p",{className:"mt-2 text-sm leading-relaxed text-zinc-600 dark:text-zinc-400",children:"Pick one or more folders that contain your audio files. Subfolders are scanned. Handles are stored in IndexedDB on this device so you do not have to pick them again on return visits."}),c?null:(0,t.jsx)("p",{className:"mt-3 text-sm text-accent-800 dark:text-accent-300",children:"Folder selection is not available in this environment. Use Chrome or Edge on desktop."}),(0,t.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>o(),disabled:!c||s,className:"rounded-full bg-accent-500 px-4 py-2 text-sm font-medium text-zinc-950 shadow-sm transition hover:bg-accent-400 disabled:cursor-not-allowed disabled:opacity-50",children:"Add folder…"}),(0,t.jsx)("button",{type:"button",onClick:()=>void m(),disabled:0===e.length||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:s?"Scanning…":"Rescan all"})]})]}),(0,t.jsx)(d,{}),(0,t.jsxs)("section",{className:"rounded-2xl border border-zinc-200 bg-white p-6 shadow-sm dark:border-zinc-800 dark:bg-zinc-900/40",children:[(0,t.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Configured folders"}),0===e.length?(0,t.jsx)("p",{className:"mt-4 text-sm text-zinc-600 dark:text-zinc-400",children:"No folders yet. Add a library folder above."}):(0,t.jsx)("ul",{className:"mt-4 divide-y divide-zinc-200 dark:divide-zinc-800",role:"list",children:e.map(e=>(0,t.jsxs)("li",{className:"flex flex-wrap items-center justify-between gap-3 py-4 first:pt-0",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"truncate font-medium text-zinc-900 dark:text-zinc-100",children:e.name}),(0,t.jsxs)("p",{className:"truncate text-xs text-zinc-500",children:["Added ",function(e){try{return new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(new Date(e))}catch{return new Date(e).toLocaleString()}}(e.addedAt)]})]}),(0,t.jsx)("button",{type:"button",onClick:()=>void u(e.id),disabled:s,className:"shrink-0 rounded-full border border-zinc-300 px-3 py-1.5 text-xs font-medium text-zinc-700 transition hover:bg-zinc-100 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-600 dark:text-zinc-300 dark:hover:bg-zinc-800",children:"Remove"})]},e.id))})]}),(0,t.jsxs)("section",{className:"rounded-2xl border border-zinc-200 bg-white p-6 shadow-sm dark:border-zinc-800 dark:bg-zinc-900/40",children:[(0,t.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wider text-zinc-500",children:"Favorites"}),(0,t.jsxs)("p",{className:"mt-2 text-sm leading-relaxed text-zinc-600 dark:text-zinc-400",children:["Back up or restore starred songs, artists, and albums as JSON (stored in IndexedDB on this device,"," ",1===S?"1 entry":`${S} entries`,"). Import replaces your current favorites."]}),(0,t.jsx)("input",{ref:j,type:"file",accept:"application/json,.json",className:"sr-only","aria-hidden":!0,onChange:A}),(0,t.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:C,disabled:0===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:"Export favorites"}),(0,t.jsx)("button",{type:"button",onClick:L,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 dark:border-zinc-600 dark:bg-zinc-800 dark:text-zinc-200 dark:hover:bg-zinc-700",children:"Import favorites"})]}),w?(0,t.jsx)("p",{className:"mt-3 text-sm text-red-700 dark:text-red-300",role:"alert",children:w}):null]}),(0,t.jsx)("section",{className:"rounded-2xl border border-zinc-200 bg-white p-6 shadow-sm dark:border-zinc-800 dark:bg-zinc-900/40",children:(0,t.jsx)(n.default,{title:"Rescan on startup",description:"When enabled, Muzical rescans all configured folders each time you open the app (if the browser already has folder access). When disabled, the last saved catalog loads immediately.",checked:p,onChange:g,ariaLabel:"Rescan library on startup"})})]})}],26554)}]);