import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{Pn as t,ct as n,ki as r,sn as i}from"./lucide-icons-BjbcRgLk.js";import{t as a}from"./jsx-runtime-By8HlURe.js";import{u as o}from"./esm-CRVqHnq2.js";import{r as s}from"./sanitizeUrl-Bk5f35GN.js";import{r as c}from"./react-intl-DZWxPhxo.js";import{n as l}from"./encryptedFile-DKFYUsvG.js";import{t as u}from"./utils-BFSTDHdM.js";import{t as d}from"./button-PfnADMEc.js";import{a as f,t as p}from"./imeta-AKViBfwk.js";var m=e(r(),1),h=(0,m.createContext)(void 0);function g(){let e=(0,m.useContext)(h);if(!e)throw Error(`useAudioPlayer must be used within AudioPlayerProvider`);return e}var _={status:`ready`};function v(e){let{currentTrack:t,loadState:n}=g();return t?.id===e?n:_}var y=a();function b({trackId:e,className:r}){let a=v(e),{decryptAnyway:o}=g();if(a.status===`ready`)return null;let s=a.status===`too-large`?t:a.status===`unsupported`?n:i;return(0,y.jsxs)(`div`,{className:u(`flex flex-wrap items-center gap-2 text-xs text-muted-foreground`,r),children:[a.status===`decrypting`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(i,{className:`size-3.5 shrink-0 motion-safe:animate-pulse`,"aria-hidden":!0}),(0,y.jsx)(`span`,{children:(0,y.jsx)(c,{id:`audioPlayer.decrypting`,defaultMessage:`Decrypting…`})})]}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(s,{className:`size-3.5 shrink-0`,"aria-hidden":!0}),(0,y.jsx)(`span`,{children:a.status===`too-large`?(0,y.jsx)(c,{id:`audioPlayer.tooLarge`,defaultMessage:`This track is {size}. Decrypting it may use a lot of memory.`,values:{size:f(a.byteSize)}}):a.status===`unsupported`?(0,y.jsx)(c,{id:`audioPlayer.unsupported`,defaultMessage:`This track uses an encryption method Ditto doesn't support.`}):(0,y.jsx)(c,{id:`audioPlayer.failed`,defaultMessage:`This track couldn't be decrypted.`})})]}),a.status===`too-large`&&(0,y.jsx)(d,{variant:`outline`,size:`sm`,className:`h-6 rounded-full px-2.5 text-xs`,onClick:e=>{e.stopPropagation(),e.preventDefault(),o()},children:(0,y.jsx)(c,{id:`audioPlayer.decryptAnyway`,defaultMessage:`Decrypt anyway`})})]})}function x(e,t){return e.find(([e])=>e===t)?.[1]}function S(e){let t=p(e);return t?{url:t.url,thumbnail:t.thumbnail,duration:t.duration,blurhash:t.blurhash,format:t.mime,encryption:t.encryption}:{}}function C(e){let t=x(e.tags,`title`)??x(e.tags,`subject`)??(e.content.slice(0,80)||`Untitled`),n=x(e.tags,`artist`)??x(e.tags,`creator`)??``,r=x(e.tags,`album`),i=S(e.tags),a=s(i.url),o=a??s(x(e.tags,`url`))??s(x(e.tags,`media`));if(!o)return null;let c=i.duration??x(e.tags,`duration`),u=c?parseFloat(c):void 0,d=o===a?i.encryption:void 0,f=s(i.thumbnail),p=f??s(x(e.tags,`image`))??s(x(e.tags,`thumb`));return{title:t,artist:n,url:o,encryption:d,artwork:p,artworkEncryption:p&&p===f&&i.encryption?l(i.encryption):void 0,album:r,duration:u&&isFinite(u)?u:void 0,videoUrl:s(x(e.tags,`video`)),format:i.format??x(e.tags,`m`)}}function w(e){return{title:x(e.tags,`title`)??x(e.tags,`d`)??`Untitled Playlist`,description:e.content||``,artwork:s(x(e.tags,`image`))??s(x(e.tags,`thumb`)),trackRefs:e.tags.filter(([e])=>e===`a`||e===`e`).map(([,e])=>e),isAlbum:e.tags.filter(([e])=>e===`t`).map(([,e])=>e?.toLowerCase()).includes(`album`),released:x(e.tags,`released`),label:x(e.tags,`label`)}}function T(e){let t=x(e.tags,`d`)??``;return`/`+o.naddrEncode({kind:e.kind,pubkey:e.pubkey,identifier:t})}function E(e,t){return{id:e.id,title:t.title,artist:t.artist,url:t.url,encryption:t.encryption,artwork:t.artwork,artworkEncryption:t.artworkEncryption,duration:t.duration,path:T(e)}}export{v as a,b as i,C as n,h as o,E as r,g as s,w as t};