@lucaismyname/ginger 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audio/GingerPlayer.d.ts.map +1 -1
- package/dist/context/GingerProvider.d.ts.map +1 -1
- package/dist/core/playbackReducer.d.ts.map +1 -1
- package/dist/core/playbackReducer.test.d.ts +2 -0
- package/dist/core/playbackReducer.test.d.ts.map +1 -0
- package/dist/core/queue.d.ts +2 -1
- package/dist/core/queue.d.ts.map +1 -1
- package/dist/hooks/useGinger.d.ts +2 -1
- package/dist/hooks/useGinger.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +479 -470
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +18 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GingerPlayer.d.ts","sourceRoot":"","sources":["../../src/audio/GingerPlayer.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"GingerPlayer.d.ts","sourceRoot":"","sources":["../../src/audio/GingerPlayer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAGxF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3D,WAAW,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,aAAa,CAAC,CAAC;CACpE,CAAC;AAQF,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAoB,EAAE,WAAW,EAAE,EAAE,iBAAiB,2CA0GtG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GingerProvider.d.ts","sourceRoot":"","sources":["../../src/context/GingerProvider.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,mBAAmB,EAAmC,MAAM,UAAU,CAAC;AAarF,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,aAAkB,EAClB,YAAgB,EAChB,mBAA0B,EAC1B,cAAsB,EACtB,iBAAyB,EACzB,aAAoB,EACpB,aAAiB,EACjB,YAAoB,EACpB,mBAAuB,EACvB,SAAS,EACT,KAAK,EACL,aAAa,EACb,MAAM,EACN,OAAO,EACP,UAAU,EACV,OAAO,GACR,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"GingerProvider.d.ts","sourceRoot":"","sources":["../../src/context/GingerProvider.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,mBAAmB,EAAmC,MAAM,UAAU,CAAC;AAarF,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,aAAkB,EAClB,YAAgB,EAChB,mBAA0B,EAC1B,cAAsB,EACtB,iBAAyB,EACzB,aAAoB,EACpB,aAAiB,EACjB,YAAoB,EACpB,mBAAuB,EACvB,SAAS,EACT,KAAK,EACL,aAAa,EACb,MAAM,EACN,OAAO,EACP,UAAU,EACV,OAAO,GACR,EAAE,mBAAmB,2CAkNrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playbackReducer.d.ts","sourceRoot":"","sources":["../../src/core/playbackReducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAI7E,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGnD;AAkBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,WAAW,CAyBd;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"playbackReducer.d.ts","sourceRoot":"","sources":["../../src/core/playbackReducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAI7E,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGnD;AAkBD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,WAAW,CAyBd;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,GAAG,WAAW,CA4JnF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playbackReducer.test.d.ts","sourceRoot":"","sources":["../../src/core/playbackReducer.test.ts"],"names":[],"mappings":""}
|
package/dist/core/queue.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Track } from '../types';
|
|
2
2
|
export declare function clampIndex(index: number, length: number): number;
|
|
3
3
|
export declare function shuffleWithAnchor(tracks: Track[], anchorIndex: number): Track[];
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function trackIdentity(track: Track | null | undefined): string;
|
|
5
|
+
export declare function findIndexByTrackIdentity(tracks: Track[], target: Track | null | undefined): number;
|
|
5
6
|
//# sourceMappingURL=queue.d.ts.map
|
package/dist/core/queue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/core/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,KAAK,EAAE,CAU/E;AAED,wBAAgB,
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/core/queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,KAAK,EAAE,CAU/E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAGrE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAKlG"}
|
|
@@ -24,6 +24,7 @@ export declare function useGinger(): {
|
|
|
24
24
|
playTrackAt: (index: number) => void;
|
|
25
25
|
selectTrackAt: (index: number) => void;
|
|
26
26
|
setPlaylistMeta: (meta: import('..').PlaylistMeta | null) => void;
|
|
27
|
-
|
|
27
|
+
audioRef: import('react').MutableRefObject<HTMLAudioElement | null>;
|
|
28
|
+
dispatch: import('react').Dispatch<import('..').GingerAction>;
|
|
28
29
|
};
|
|
29
30
|
//# sourceMappingURL=useGinger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGinger.d.ts","sourceRoot":"","sources":["../../src/hooks/useGinger.ts"],"names":[],"mappings":"AAYA,wBAAgB,SAAS
|
|
1
|
+
{"version":3,"file":"useGinger.d.ts","sourceRoot":"","sources":["../../src/hooks/useGinger.ts"],"names":[],"mappings":"AAYA,wBAAgB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDxB"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),p=require("react"),ue=p.createContext(null);function y(){const e=p.useContext(ue);if(!e)throw new Error("Ginger components must be used within <Ginger.Provider>");return e}function ie(e){const{buffered:r,duration:t}=e;return!(t>0)||r.length===0?0:Math.min(1,r.end(r.length-1)/t)}function Be({className:e,style:r,preload:t="metadata",crossOrigin:n}){var f;const{audioRef:i,dispatch:a,state:u,notifyEnded:l}=y(),c=((f=u.tracks[u.currentIndex])==null?void 0:f.fileUrl)??"";return p.useEffect(()=>{const o=i.current;o&&(o.volume=u.volume,o.muted=u.muted,o.playbackRate=u.playbackRate)},[i,u.volume,u.muted,u.playbackRate]),p.useEffect(()=>{const o=i.current;if(o){if(!c){o.removeAttribute("src");return}o.getAttribute("src")!==c&&(o.src=c,o.load())}},[i,u.currentIndex,u.tracks,c]),s.jsx("audio",{ref:i,className:e,style:r,preload:t,crossOrigin:n,controls:!1,onTimeUpdate:o=>{const d=o.currentTarget;a({type:"MEDIA_TIME_UPDATE",payload:{currentTime:d.currentTime,duration:d.duration,bufferedFraction:ie(d)}})},onLoadedMetadata:o=>{const d=o.currentTarget;a({type:"MEDIA_LOADED_METADATA",payload:{duration:d.duration,bufferedFraction:ie(d)}})},onEnded:()=>l(),onPlay:()=>a({type:"MEDIA_PLAY"}),onPause:()=>a({type:"MEDIA_PAUSE"}),onWaiting:()=>a({type:"MEDIA_WAITING"}),onCanPlay:()=>a({type:"MEDIA_CANPLAY"}),onVolumeChange:o=>{const d=o.currentTarget;a({type:"MEDIA_VOLUME_SYNC",payload:{volume:d.volume,muted:d.muted}})},onError:()=>{var h;const o=i.current,d=(h=o==null?void 0:o.error)==null?void 0:h.code;a({type:"MEDIA_ERROR",payload:{message:d===1?"MEDIA_ERR_ABORTED":d===2?"MEDIA_ERR_NETWORK":d===3?"MEDIA_ERR_DECODE":d===4?"MEDIA_ERR_SRC_NOT_SUPPORTED":"MEDIA_ERR_UNKNOWN"}})}})}function C(e,r){return r<=0?0:Math.max(0,Math.min(r-1,e))}function se(e,r){if(e.length<=1)return[...e];const t=e[r];if(!t)return[...e];const n=e.filter((i,a)=>a!==r);for(let i=n.length-1;i>0;i--){const a=Math.floor(Math.random()*(i+1));[n[i],n[a]]=[n[a],n[i]]}return[t,...n]}function Ve(e,r){const t=e.findIndex(n=>n.fileUrl===r);return t===-1?0:t}function $e(e){const{tracks:r,currentIndex:t,repeatMode:n}=e,i=r.length;return i===0?{kind:"stop",nextIndex:0}:n==="one"?{kind:"replay_same"}:t<i-1?{kind:"advance",nextIndex:t+1}:n==="all"?{kind:"wrap",nextIndex:0}:{kind:"stop",nextIndex:C(t,i)}}function Qe(e){const{tracks:r,currentIndex:t,repeatMode:n}=e,i=r.length;return i===0?0:t<i-1?t+1:n==="all"?0:C(t,i)}function Xe(e){const{tracks:r,currentIndex:t,repeatMode:n}=e,i=r.length;return i===0?0:t>0?t-1:n==="all"?i-1:0}function We(e){return e==="off"?"all":e==="all"?"one":"off"}function qe(e,r){return(e==null?void 0:e.artworkUrl)??r??void 0}function Ke(e,r){return(e==null?void 0:e.album)??r??void 0}function T(e){return e.tracks[e.currentIndex]??null}function le(e){return e.errorMessage?"error":e.tracks.length===0?"idle":e.isBuffering?"loading":e.isPaused?Number.isFinite(e.duration)&&e.duration>0&&e.currentTime>=e.duration-.05?"ended":"paused":"playing"}function S(e){var n;const r=e.duration;if(Number.isFinite(r)&&r>0)return r;const t=(n=e.tracks[e.currentIndex])==null?void 0:n.durationSeconds;return typeof t=="number"&&Number.isFinite(t)&&t>0?t:0}function oe(e){const t=S(e)-e.currentTime;return Number.isFinite(t)?Math.max(0,t):0}function U(e){const r=S(e);return r>0?Math.min(1,Math.max(0,e.currentTime/r)):0}function ce(e){var t;const r=T(e);return qe(r,(t=e.playlistMeta)==null?void 0:t.artworkUrl)}function de(e){var t;const r=T(e);return Ke(r,(t=e.playlistMeta)==null?void 0:t.subtitle)}function v(e,r){function t(n){const{state:i}=y(),u=(r(i)??"").trim(),{className:l,style:c,fallback:f,empty:o,children:d}=n;if(!u){const m=o??f??null;return m?s.jsx("span",{className:l,style:c,children:m}):null}return d?s.jsx("span",{className:l,style:c,children:d(u,i)}):s.jsx("span",{className:l,style:c,children:u})}return t.displayName=e,t}function I(e,r){return v(e,t=>r(T(t)))}const ze=I("Ginger.Current.Title",e=>e==null?void 0:e.title),He=I("Ginger.Current.Artist",e=>e==null?void 0:e.artist),Je=v("Ginger.Current.Album",e=>de(e)),Ze=I("Ginger.Current.Description",e=>e==null?void 0:e.description),er=v("Ginger.Current.Copyright",e=>{var t;const r=T(e);return(r==null?void 0:r.copyright)??((t=e.playlistMeta)==null?void 0:t.copyright)}),rr=I("Ginger.Current.Genre",e=>e==null?void 0:e.genre),tr=I("Ginger.Current.Label",e=>e==null?void 0:e.label),nr=I("Ginger.Current.Isrc",e=>e==null?void 0:e.isrc),ir=I("Ginger.Current.TrackNumber",e=>(e==null?void 0:e.trackNumber)!=null?String(e.trackNumber):void 0);function fe({className:e,style:r,fallback:t,empty:n,children:i,format:a}){var f;const{state:u}=y(),l=(f=T(u))==null?void 0:f.year;if(typeof l!="number"||!Number.isFinite(l)){const o=n??t??null;return o?s.jsx("span",{className:e,style:r,children:o}):null}const c=a?a(l):String(l);return i?s.jsx("span",{className:e,style:r,children:i(c,u)}):s.jsx("span",{className:e,style:r,children:c})}fe.displayName="Ginger.Current.Year";function pe({className:e,style:r,fallback:t,empty:n,children:i,preserveWhitespace:a=!0}){var o;const{state:u}=y(),l=((o=T(u))==null?void 0:o.lyrics)??"",c=a?l.replace(/^\s+|\s+$/g,""):l.trim();if(!c){const d=n??t??null;return d?s.jsx("span",{className:e,style:r,children:d}):null}const f=a?{whiteSpace:"pre-wrap"}:void 0;return i?s.jsx("span",{className:e,style:{...f,...r},children:i(c,u)}):s.jsx("span",{className:e,style:{...f,...r},children:c})}pe.displayName="Ginger.Current.Lyrics";function ge({visible:e=!1,className:r,style:t,fallback:n,empty:i,children:a}){var c;const{state:u}=y();if(!e)return null;const l=((c=T(u))==null?void 0:c.fileUrl)??"";if(!l){const f=i??n??null;return f?s.jsx("span",{className:r,style:t,children:f}):null}return a?s.jsx("span",{className:r,style:t,children:a(l,u)}):s.jsx("span",{className:r,style:t,children:l})}ge.displayName="Ginger.Current.FileUrl";function ye({className:e,style:r,fallback:t,empty:n,sizes:i,loading:a,onError:u,decoding:l,imgStyle:c}){const{state:f}=y(),o=T(f),d=ce(f);if(!d){const h=n??t??null;return h?s.jsx("span",{className:e,style:r,children:h}):null}const m=[o==null?void 0:o.title,o==null?void 0:o.artist].filter(Boolean).join(" — ")||"Artwork";return s.jsx("span",{className:e,style:{display:"inline-block",background:"var(--ginger-artwork-bg, #f3f4f6)",borderRadius:"var(--ginger-artwork-radius, 6px)",overflow:"hidden",...r},children:s.jsx("img",{src:d,alt:m,sizes:i,loading:a,decoding:l,onError:u,style:{display:"block",width:"100%",height:"100%",objectFit:"cover",...c}})})}ye.displayName="Ginger.Current.Artwork";function me({base:e=0,className:r,style:t,fallback:n,empty:i,children:a}){const{state:u}=y();if(u.tracks.length===0){const f=i??n??null;return f?s.jsx("span",{className:r,style:t,children:f}):null}const c=String(u.currentIndex+e);return a?s.jsx("span",{className:r,style:t,children:a(c,u)}):s.jsx("span",{className:r,style:t,children:c})}me.displayName="Ginger.Current.QueueIndex";function xe({className:e,style:r,fallback:t,empty:n,children:i}){const{state:a}=y(),u=String(a.tracks.length);if(a.tracks.length===0){const l=n??t??null;return l?s.jsx("span",{className:e,style:r,children:l}):null}return i?s.jsx("span",{className:e,style:r,children:i(u,a)}):s.jsx("span",{className:e,style:r,children:u})}xe.displayName="Ginger.Current.QueueLength";function be({base:e=0,separator:r=" / ",className:t,style:n,fallback:i,empty:a,children:u}){const{state:l}=y(),c=l.tracks.length;if(c===0){const m=a??i??null;return m?s.jsx("span",{className:t,style:n,children:m}):null}const f=String(l.currentIndex+e),o=String(c),d=`${f}${r}${o}`;return u?s.jsx("span",{className:t,style:n,children:u({index:f,length:o,label:d},l)}):s.jsx("span",{className:t,style:n,children:d})}be.displayName="Ginger.Current.QueuePosition";function ar(e){if(!Number.isFinite(e)||e<0)return"0:00";const r=Math.floor(e%60);return`${Math.floor(e/60)}:${r.toString().padStart(2,"0")}`}function L(e,r,t){const{className:n,style:i,fallback:a,empty:u,children:l,format:c=ar}=t;if(!(e>=0)||!Number.isFinite(e)){const o=u??a??null;return o?s.jsx("span",{className:n,style:i,children:o}):null}const f=c(e);return l?s.jsx("span",{className:n,style:i,children:l(f,r)}):s.jsx("span",{className:n,style:i,children:f})}function he(e){const{state:r}=y();return L(r.currentTime,r,e)}he.displayName="Ginger.Current.Elapsed";function ke(e){const{state:r}=y();return L(S(r),r,e)}ke.displayName="Ginger.Current.Duration";function Pe(e){const{state:r}=y();return L(oe(r),r,e)}Pe.displayName="Ginger.Current.Remaining";function Me({className:e,style:r,fallback:t,empty:n,children:i}){const{state:a}=y(),u=S(a),l=U(a);if(!(u>0)){const c=n??t??null;return c?s.jsx("span",{className:e,style:r,children:c}):null}return i?s.jsx("span",{className:e,style:r,children:i({fraction:l,currentTime:a.currentTime,duration:u},a)}):s.jsx("span",{className:e,style:r,children:`${Math.round(l*100)}%`})}Me.displayName="Ginger.Current.Progress";function Te({className:e,style:r,height:t=4}){const{state:n}=y(),i=`${Math.round(U(n)*100)}%`;return s.jsx("div",{className:e,style:{width:"100%",height:t,background:"var(--ginger-muted-color, #e5e7eb)",borderRadius:999,overflow:"hidden",...r},"aria-hidden":!0,children:s.jsx("div",{style:{width:i,height:"100%",background:"var(--ginger-primary-color, #111827)"}})})}Te.displayName="Ginger.Current.TimeRail";function Ee({className:e,style:r,fallback:t,empty:n,children:i}){const{state:a}=y(),u=le(a);return i?s.jsx("span",{className:e,style:r,children:i(u,a)}):s.jsx("span",{className:e,style:r,children:u})}Ee.displayName="Ginger.Current.PlaybackState";function Ae({className:e,style:r,fallback:t,empty:n,children:i}){const{state:a}=y(),u=a.errorMessage??"";if(!u){const l=n??t??null;return l?s.jsx("span",{className:e,style:r,children:l}):null}return i?s.jsx("span",{className:e,style:r,children:i(u,a)}):s.jsx("span",{className:e,style:r,children:u})}Ae.displayName="Ginger.Current.ErrorMessage";function ve({playLabel:e="Play",pauseLabel:r="Pause",type:t="button",...n}){const{state:i,togglePlayPause:a}=y();return s.jsx("button",{type:t,"aria-label":i.isPaused?"Play":"Pause",onClick:a,...n,children:i.isPaused?e:r})}ve.displayName="Ginger.Control.PlayPause";const ae={off:"Repeat off",all:"Repeat all",one:"Repeat one"};function Ie({type:e="button",...r}){const{state:t,cycleRepeat:n}=y();return s.jsx("button",{type:e,"aria-label":ae[t.repeatMode],onClick:n,...r,children:ae[t.repeatMode]})}Ie.displayName="Ginger.Control.Repeat";function Ce({type:e="button",children:r="Next",...t}){const{next:n}=y();return s.jsx("button",{type:e,"aria-label":"Next track",onClick:n,...t,children:r})}Ce.displayName="Ginger.Control.Next";function Re({type:e="button",children:r="Previous",...t}){const{prev:n}=y();return s.jsx("button",{type:e,"aria-label":"Previous track",onClick:n,...t,children:r})}Re.displayName="Ginger.Control.Previous";function Se({type:e="button",children:r="Shuffle",...t}){const{state:n,toggleShuffle:i}=y();return s.jsx("button",{type:e,"aria-pressed":n.isShuffled,"aria-label":"Shuffle",onClick:i,...t,children:r})}Se.displayName="Ginger.Control.Shuffle";function je({inputStyle:e,style:r,...t}){const{state:n,seek:i}=y(),a=Number.isFinite(n.duration)&&n.duration>0?n.duration:0,u=a>0?n.currentTime:0;return s.jsx("input",{type:"range",min:0,max:a>0?a:1,step:"any",value:Number.isFinite(u)?u:0,"aria-label":"Seek",onChange:l=>i(Number(l.currentTarget.value)),style:{width:"100%",...r,...e},...t})}je.displayName="Ginger.Control.SeekBar";function Ge({inputStyle:e,style:r,...t}){const{state:n,setVolume:i}=y();return s.jsx("input",{type:"range",min:0,max:1,step:"any",value:n.volume,"aria-label":"Volume",onChange:a=>i(Number(a.currentTarget.value)),style:{width:"100%",...r,...e},...t})}Ge.displayName="Ginger.Control.Volume";function _e({muteLabel:e="Mute",unmuteLabel:r="Unmute",type:t="button",...n}){const{state:i,toggleMute:a}=y();return s.jsx("button",{type:t,"aria-pressed":i.muted,"aria-label":i.muted?"Unmute":"Mute",onClick:a,...n,children:i.muted?r:e})}_e.displayName="Ginger.Control.Mute";const ur=[.5,.75,1,1.25,1.5,2];function Ne({rates:e=ur,style:r,...t}){const{state:n,setPlaybackRate:i}=y(),a=p.useMemo(()=>Array.from(new Set([...e,n.playbackRate])).sort((u,l)=>u-l),[e,n.playbackRate]);return s.jsx("select",{"aria-label":"Playback speed",value:String(n.playbackRate),style:r,onChange:u=>i(Number(u.currentTarget.value)),...t,children:a.map(u=>s.jsx("option",{value:String(u),children:u===1?"1× normal":`${u}×`},u))})}Ne.displayName="Ginger.Control.PlaybackRate";const w=p.createContext(null);function sr(){const e=p.useContext(w);if(!e)throw new Error("Ginger.Playlist.Track must be used inside <Ginger.Playlist>");return e}function De({children:e,rowStyle:r,renderTrack:t,playOnSelect:n=!0,style:i,...a}){const{state:u,playTrackAt:l,selectTrackAt:c}=y(),f={listStyle:"none",margin:0,padding:0,fontFamily:"var(--ginger-font-family, system-ui, sans-serif)",fontSize:"var(--ginger-font-size, 14px)",color:"var(--ginger-primary-color, #111827)",...i};return e!==void 0?s.jsx(w.Provider,{value:{playOnSelect:n},children:s.jsx("ul",{style:f,...a,children:e})}):s.jsx(w.Provider,{value:{playOnSelect:n},children:s.jsx("ul",{style:f,...a,children:u.tracks.map((d,m)=>{const h=m===u.currentIndex;return s.jsx("li",{children:s.jsx("button",{type:"button",onClick:()=>{n?l(m):c(m)},style:{width:"100%",textAlign:"left",border:"none",background:h?"rgba(17, 24, 39, 0.06)":"transparent",color:"inherit",font:"inherit",cursor:"pointer",padding:"var(--ginger-playlist-row-padding, 6px 8px)",...r},children:t?t(d,m,h):s.jsxs("span",{children:[d.title,d.artist?` — ${d.artist}`:""]})})},`${d.fileUrl}-${m}`)})})})}De.displayName="Ginger.Playlist";function we({index:e,className:r,style:t,children:n,liProps:i,onClick:a,...u}){const{playOnSelect:l}=sr(),{state:c,playTrackAt:f,selectTrackAt:o}=y(),d=e===c.currentIndex,m=c.tracks[e],h=m!=null?s.jsxs("span",{children:[m.title,m.artist?` — ${m.artist}`:""]}):null;return s.jsx("li",{...i,children:s.jsx("button",{type:"button","aria-current":d?"true":void 0,"data-ginger-active":d||void 0,className:r,style:{width:"100%",textAlign:"left",border:"none",background:d?"rgba(17, 24, 39, 0.06)":"transparent",color:"inherit",font:"inherit",cursor:"pointer",padding:"var(--ginger-playlist-row-padding, 6px 8px)",...t},...u,onClick:A=>{a==null||a(A),!A.defaultPrevented&&(l?f(e):o(e))},children:n??h})})}we.displayName="Ginger.Playlist.Track";const lr=Object.assign(De,{Track:we}),or=v("Ginger.Queue.Title",e=>{var r;return(r=e.playlistMeta)==null?void 0:r.title}),cr=v("Ginger.Queue.Subtitle",e=>{var r;return(r=e.playlistMeta)==null?void 0:r.subtitle}),dr=v("Ginger.Queue.Description",e=>{var r;return(r=e.playlistMeta)==null?void 0:r.description}),fr=v("Ginger.Queue.Copyright",e=>{var r;return(r=e.playlistMeta)==null?void 0:r.copyright});function Ue({className:e,style:r,fallback:t,empty:n,imgStyle:i}){var c,f;const{state:a}=y(),u=(c=a.playlistMeta)==null?void 0:c.artworkUrl;if(!u){const o=n??t??null;return o?s.jsx("span",{className:e,style:r,children:o}):null}const l=((f=a.playlistMeta)==null?void 0:f.title)??"Playlist artwork";return s.jsx("span",{className:e,style:{display:"inline-block",background:"var(--ginger-artwork-bg, #f3f4f6)",borderRadius:"var(--ginger-artwork-radius, 6px)",overflow:"hidden",...r},children:s.jsx("img",{src:u,alt:l,style:{display:"block",width:"100%",height:"100%",objectFit:"cover",...i}})})}Ue.displayName="Ginger.Queue.Artwork";function D(e){return Number.isFinite(e)?Math.min(1,Math.max(0,e)):1}function F(e){return Number.isFinite(e)?Math.min(4,Math.max(.25,e)):1}const R={currentTime:0,duration:0,bufferedFraction:0,isBuffering:!1,errorMessage:null},pr={...R,volume:1,muted:!1,playbackRate:1};function Le(e){const r=[...e.tracks];let t=C(e.currentIndex??0,r.length),n=null,i=r;return e.isShuffled&&r.length>1&&(n=[...r],i=se(r,t),t=0),{tracks:i,currentIndex:t,isPaused:e.isPaused??!0,isShuffled:!!(e.isShuffled&&i.length>1),repeatMode:e.repeatMode??"off",originalTracks:n,playlistMeta:e.playlistMeta??null,...pr,volume:D(e.volume??1),muted:e.muted??!1,playbackRate:F(e.playbackRate??1)}}function gr(e,r){switch(r.type){case"INIT":{const{tracks:t,currentIndex:n,playlistMeta:i,isPaused:a,isShuffled:u,repeatMode:l,volume:c,muted:f,playbackRate:o}=r.payload;return Le({tracks:t,currentIndex:n,playlistMeta:i??null,isPaused:a??!0,isShuffled:u??!1,repeatMode:l??"off",volume:c,muted:f,playbackRate:o})}case"SET_QUEUE":{const{tracks:t,currentIndex:n}=r.payload,i=[...t],a=C(n??e.currentIndex,i.length);return{...e,tracks:i,currentIndex:a,...R}}case"SET_INDEX":{const t=C(r.payload.index,e.tracks.length),n=r.payload.autoPlay,i=n===!0?!1:n===!1?!0:e.isPaused;return{...e,currentIndex:t,...R,isPaused:i}}case"PLAY":return{...e,isPaused:!1};case"PAUSE":return{...e,isPaused:!0};case"TOGGLE_PAUSE":return{...e,isPaused:!e.isPaused};case"SET_REPEAT":return{...e,repeatMode:r.payload};case"CYCLE_REPEAT":return{...e,repeatMode:We(e.repeatMode)};case"TOGGLE_SHUFFLE":{if(e.tracks.length<=1)return{...e,isShuffled:!1,originalTracks:null};if(!e.isShuffled){const u=[...e.tracks],l=se(u,e.currentIndex);return{...e,isShuffled:!0,originalTracks:u,tracks:l,currentIndex:0}}const t=e.originalTracks?[...e.originalTracks]:[...e.tracks],n=e.tracks[e.currentIndex],i=(n==null?void 0:n.fileUrl)??"",a=Ve(t,i);return{...e,isShuffled:!1,originalTracks:null,tracks:t,currentIndex:C(a,t.length)}}case"NEXT":{const t=Qe(e),n=t===e.currentIndex;return{...e,currentIndex:t,...n?{}:R,isPaused:n?e.isPaused:!1}}case"PREV":{const t=Xe(e),n=t===e.currentIndex;return{...e,currentIndex:t,...n?{}:R,isPaused:n?e.isPaused:!1}}case"MEDIA_TIME_UPDATE":return{...e,currentTime:r.payload.currentTime,duration:Number.isFinite(r.payload.duration)?r.payload.duration:e.duration,bufferedFraction:r.payload.bufferedFraction,isBuffering:!1};case"MEDIA_LOADED_METADATA":return{...e,duration:Number.isFinite(r.payload.duration)?r.payload.duration:e.duration,bufferedFraction:r.payload.bufferedFraction,errorMessage:null};case"SET_PLAYLIST_META":return{...e,playlistMeta:r.payload};case"MEDIA_ERROR":return{...e,errorMessage:r.payload.message,isPaused:!0,isBuffering:!1};case"MEDIA_WAITING":return{...e,isBuffering:!0};case"MEDIA_CANPLAY":return{...e,isBuffering:!1,errorMessage:null};case"MEDIA_PLAY":return{...e,isPaused:!1,isBuffering:!1};case"MEDIA_PAUSE":return{...e,isPaused:!0};case"RESET_MEDIA_TIMES":return{...e,currentTime:0,duration:0,bufferedFraction:0};case"SET_VOLUME":return{...e,volume:D(r.payload)};case"SET_MUTED":return{...e,muted:r.payload};case"TOGGLE_MUTE":return{...e,muted:!e.muted};case"SET_PLAYBACK_RATE":return{...e,playbackRate:F(r.payload)};case"MEDIA_VOLUME_SYNC":{const{volume:t,muted:n}=r.payload,i=D(t);return i===e.volume&&n===e.muted?e:{...e,volume:i,muted:n}}default:return e}}const yr={"--ginger-primary-color":"#111827","--ginger-muted-color":"#6b7280","--ginger-font-size":"14px","--ginger-font-family":"system-ui, sans-serif","--ginger-playlist-row-padding":"6px 8px","--ginger-artwork-radius":"6px","--ginger-artwork-bg":"#f3f4f6"};function mr({children:e,initialTracks:r=[],initialIndex:t=0,initialPlaylistMeta:n=null,initialShuffle:i=!1,initialRepeatMode:a="off",initialPaused:u=!0,initialVolume:l=1,initialMuted:c=!1,initialPlaybackRate:f=1,className:o,style:d,onTrackChange:m,onPlay:h,onPause:A,onQueueEnd:j,onError:P}){var ne;const E=p.useRef(null),[x,b]=p.useReducer(gr,void 0,()=>Le({tracks:r,currentIndex:t,playlistMeta:n,isPaused:u,isShuffled:i,repeatMode:a,volume:l,muted:c,playbackRate:f})),O=x.tracks[x.currentIndex]??null;p.useEffect(()=>{m==null||m(O,x.currentIndex)},[O,x.currentIndex,m]),p.useEffect(()=>{x.errorMessage&&(P==null||P(x.errorMessage))},[x.errorMessage,P]);const G=p.useRef(void 0);p.useEffect(()=>{if(G.current===void 0){G.current=x.isPaused;return}G.current!==x.isPaused&&(x.isPaused?A==null||A():h==null||h()),G.current=x.isPaused},[x.isPaused,A,h]);const _=p.useCallback(()=>{var g;b({type:"PLAY"}),(g=E.current)==null||g.play().catch(k=>{b({type:"PAUSE"});const M=k instanceof Error?k.message:"Playback failed";P==null||P(M)})},[P]),N=p.useCallback(()=>{var g;b({type:"PAUSE"}),(g=E.current)==null||g.pause()},[]),Y=p.useCallback(()=>{x.isPaused?_():N()},[N,_,x.isPaused]),B=p.useCallback(g=>{const k=E.current;k&&Number.isFinite(g)&&(k.currentTime=Math.max(0,g))},[]),V=p.useCallback(g=>{b({type:"SET_VOLUME",payload:D(g)})},[]),$=p.useCallback(g=>{b({type:"SET_MUTED",payload:g})},[]),Q=p.useCallback(()=>{b({type:"TOGGLE_MUTE"})},[]),X=p.useCallback(g=>{b({type:"SET_PLAYBACK_RATE",payload:F(g)})},[]),W=p.useCallback(()=>{b({type:"NEXT"})},[]),q=p.useCallback(()=>{b({type:"PREV"})},[]),K=p.useCallback(g=>{b({type:"SET_REPEAT",payload:g})},[]),z=p.useCallback(()=>{b({type:"CYCLE_REPEAT"})},[]),H=p.useCallback(()=>{b({type:"TOGGLE_SHUFFLE"})},[]),J=p.useCallback((g,k)=>{b({type:"SET_QUEUE",payload:{tracks:g,currentIndex:k}})},[]),Z=p.useCallback(g=>{b({type:"SET_INDEX",payload:{index:g,autoPlay:!0}}),queueMicrotask(()=>{var k;(k=E.current)==null||k.play().catch(()=>{})})},[]),ee=p.useCallback(g=>{b({type:"SET_INDEX",payload:{index:g,autoPlay:!1}})},[]),re=p.useCallback(g=>{b({type:"SET_PLAYLIST_META",payload:g})},[]),Fe=(ne=x.tracks[x.currentIndex])==null?void 0:ne.fileUrl;p.useEffect(()=>{const g=E.current;g&&(x.isPaused?g.pause():g.play().catch(k=>{b({type:"PAUSE"});const M=k instanceof Error?k.message:"Playback failed";P==null||P(M)}))},[x.isPaused,Fe,P]);const te=p.useCallback(()=>{const g=$e(x);if(g.kind==="replay_same"){const M=E.current;M&&(M.currentTime=0,M.play().catch(()=>{})),b({type:"PLAY"});return}if(g.kind==="stop"){b({type:"PAUSE"}),j==null||j();return}const k=g.nextIndex;b({type:"SET_INDEX",payload:{index:k,autoPlay:!0}}),queueMicrotask(()=>{var M;(M=E.current)==null||M.play().catch(()=>{})})},[j,x]),Oe=p.useMemo(()=>({state:x,dispatch:b,audioRef:E,notifyEnded:te,play:_,pause:N,togglePlayPause:Y,seek:B,setVolume:V,setMuted:$,toggleMute:Q,setPlaybackRate:X,next:W,prev:q,setRepeatMode:K,cycleRepeat:z,toggleShuffle:H,setQueue:J,playTrackAt:Z,selectTrackAt:ee,setPlaylistMeta:re}),[z,b,W,te,N,_,Z,ee,q,B,$,X,J,K,re,V,x,Q,Y,H]),Ye=p.useMemo(()=>({...yr,...d}),[d]);return s.jsx(ue.Provider,{value:Oe,children:s.jsx("div",{className:o,style:Ye,children:e})})}const xr={Provider:mr,Player:Be,Current:{Title:ze,Artist:He,Album:Je,Description:Ze,Copyright:er,Genre:rr,Label:tr,Isrc:nr,TrackNumber:ir,Year:fe,Lyrics:pe,FileUrl:ge,Artwork:ye,QueueIndex:me,QueueLength:xe,QueuePosition:be,Elapsed:he,Duration:ke,Remaining:Pe,Progress:Me,TimeRail:Te,PlaybackState:Ee,ErrorMessage:Ae},Queue:{Title:or,Subtitle:cr,Description:dr,Copyright:fr,Artwork:Ue},Control:{PlayPause:ve,Repeat:Ie,Next:Ce,Previous:Re,Shuffle:Se,SeekBar:je,Volume:Ge,Mute:_e,PlaybackRate:Ne},Playlist:lr};function br(){const e=y(),{state:r}=e;return p.useMemo(()=>({state:r,currentTrack:T(r),playbackUi:le(r),duration:S(r),remaining:oe(r),progress:U(r),artworkUrl:ce(r),albumLine:de(r),play:e.play,pause:e.pause,togglePlayPause:e.togglePlayPause,seek:e.seek,setVolume:e.setVolume,setMuted:e.setMuted,toggleMute:e.toggleMute,setPlaybackRate:e.setPlaybackRate,next:e.next,prev:e.prev,setRepeatMode:e.setRepeatMode,cycleRepeat:e.cycleRepeat,toggleShuffle:e.toggleShuffle,setQueue:e.setQueue,playTrackAt:e.playTrackAt,selectTrackAt:e.selectTrackAt,setPlaylistMeta:e.setPlaylistMeta,dispatch:e.dispatch}),[e.cycleRepeat,e.dispatch,e.next,e.pause,e.play,e.playTrackAt,e.selectTrackAt,e.prev,e.seek,e.setMuted,e.setPlaybackRate,e.setPlaylistMeta,e.setQueue,e.setRepeatMode,e.setVolume,e.toggleMute,e.togglePlayPause,e.toggleShuffle,r])}exports.Ginger=xr;exports.useGinger=br;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),f=require("react"),le=f.createContext(null);function y(){const e=f.useContext(le);if(!e)throw new Error("Ginger components must be used within <Ginger.Provider>");return e}function ue(e){const{buffered:r,duration:t}=e;return!(t>0)||r.length===0?0:Math.min(1,r.end(r.length-1)/t)}function Ve({className:e,style:r,preload:t="metadata",crossOrigin:n}){var m;const{audioRef:i,dispatch:u,state:a,notifyEnded:o}=y(),c=((m=a.tracks[a.currentIndex])==null?void 0:m.fileUrl)??"",d=f.useRef({currentTime:-1,duration:-1,bufferedFraction:-1}),p=(l,b=!1)=>{const k={currentTime:l.currentTime,duration:l.duration,bufferedFraction:ue(l)},P=d.current,M=Math.abs(k.currentTime-P.currentTime)>=.25||Math.abs(k.duration-P.duration)>=.01||Math.abs(k.bufferedFraction-P.bufferedFraction)>=.01;!b&&!M||(d.current=k,u({type:"MEDIA_TIME_UPDATE",payload:k}))};return f.useEffect(()=>{const l=i.current;l&&(l.volume=a.volume,l.muted=a.muted,l.playbackRate=a.playbackRate)},[i,a.volume,a.muted,a.playbackRate]),f.useEffect(()=>{const l=i.current;if(l){if(!c){l.removeAttribute("src"),d.current={currentTime:-1,duration:-1,bufferedFraction:-1};return}l.getAttribute("src")!==c&&(l.src=c,l.load(),d.current={currentTime:-1,duration:-1,bufferedFraction:-1})}},[i,a.currentIndex,a.tracks,c]),s.jsx("audio",{ref:i,className:e,style:r,preload:t,crossOrigin:n,controls:!1,playsInline:!0,onTimeUpdate:l=>{p(l.currentTarget)},onLoadedMetadata:l=>{const b=l.currentTarget;d.current={currentTime:-1,duration:-1,bufferedFraction:-1},u({type:"MEDIA_LOADED_METADATA",payload:{duration:b.duration,bufferedFraction:ue(b)}})},onSeeking:l=>p(l.currentTarget,!0),onSeeked:l=>p(l.currentTarget,!0),onEnded:()=>o(),onPlay:()=>u({type:"MEDIA_PLAY"}),onPause:()=>u({type:"MEDIA_PAUSE"}),onWaiting:()=>u({type:"MEDIA_WAITING"}),onCanPlay:()=>u({type:"MEDIA_CANPLAY"}),onProgress:l=>p(l.currentTarget,!0),onVolumeChange:l=>{const b=l.currentTarget;u({type:"MEDIA_VOLUME_SYNC",payload:{volume:b.volume,muted:b.muted}})},onError:()=>{var P;const l=i.current,b=(P=l==null?void 0:l.error)==null?void 0:P.code;u({type:"MEDIA_ERROR",payload:{message:b===1?"MEDIA_ERR_ABORTED":b===2?"MEDIA_ERR_NETWORK":b===3?"MEDIA_ERR_DECODE":b===4?"MEDIA_ERR_SRC_NOT_SUPPORTED":"MEDIA_ERR_UNKNOWN"}})}})}function R(e,r){return r<=0?0:Math.max(0,Math.min(r-1,e))}function oe(e,r){if(e.length<=1)return[...e];const t=e[r];if(!t)return[...e];const n=e.filter((i,u)=>u!==r);for(let i=n.length-1;i>0;i--){const u=Math.floor(Math.random()*(i+1));[n[i],n[u]]=[n[u],n[i]]}return[t,...n]}function ae(e){return e?e.id!=null&&e.id!==""?`id:${e.id}`:`file:${e.fileUrl}`:""}function Qe(e,r){const t=ae(r);if(!t)return 0;const n=e.findIndex(i=>ae(i)===t);return n===-1?0:n}function Xe(e){const{tracks:r,currentIndex:t,repeatMode:n}=e,i=r.length;return i===0?{kind:"stop",nextIndex:0}:n==="one"?{kind:"replay_same"}:t<i-1?{kind:"advance",nextIndex:t+1}:n==="all"?{kind:"wrap",nextIndex:0}:{kind:"stop",nextIndex:R(t,i)}}function We(e){const{tracks:r,currentIndex:t,repeatMode:n}=e,i=r.length;return i===0?0:t<i-1?t+1:n==="all"?0:R(t,i)}function Ke(e){const{tracks:r,currentIndex:t,repeatMode:n}=e,i=r.length;return i===0?0:t>0?t-1:n==="all"?i-1:0}function ze(e){return e==="off"?"all":e==="all"?"one":"off"}function qe(e,r){return(e==null?void 0:e.artworkUrl)??r??void 0}function He(e,r){return(e==null?void 0:e.album)??r??void 0}function E(e){return e.tracks[e.currentIndex]??null}function ce(e){return e.errorMessage?"error":e.tracks.length===0?"idle":e.isBuffering?"loading":e.isPaused?Number.isFinite(e.duration)&&e.duration>0&&e.currentTime>=e.duration-.05?"ended":"paused":"playing"}function C(e){var n;const r=e.duration;if(Number.isFinite(r)&&r>0)return r;const t=(n=e.tracks[e.currentIndex])==null?void 0:n.durationSeconds;return typeof t=="number"&&Number.isFinite(t)&&t>0?t:0}function de(e){const t=C(e)-e.currentTime;return Number.isFinite(t)?Math.max(0,t):0}function U(e){const r=C(e);return r>0?Math.min(1,Math.max(0,e.currentTime/r)):0}function fe(e){var t;const r=E(e);return qe(r,(t=e.playlistMeta)==null?void 0:t.artworkUrl)}function pe(e){var t;const r=E(e);return He(r,(t=e.playlistMeta)==null?void 0:t.subtitle)}function A(e,r){function t(n){const{state:i}=y(),a=(r(i)??"").trim(),{className:o,style:c,fallback:d,empty:p,children:m}=n;if(!a){const l=p??d??null;return l?s.jsx("span",{className:o,style:c,children:l}):null}return m?s.jsx("span",{className:o,style:c,children:m(a,i)}):s.jsx("span",{className:o,style:c,children:a})}return t.displayName=e,t}function v(e,r){return A(e,t=>r(E(t)))}const Je=v("Ginger.Current.Title",e=>e==null?void 0:e.title),Ze=v("Ginger.Current.Artist",e=>e==null?void 0:e.artist),er=A("Ginger.Current.Album",e=>pe(e)),rr=v("Ginger.Current.Description",e=>e==null?void 0:e.description),tr=A("Ginger.Current.Copyright",e=>{var t;const r=E(e);return(r==null?void 0:r.copyright)??((t=e.playlistMeta)==null?void 0:t.copyright)}),nr=v("Ginger.Current.Genre",e=>e==null?void 0:e.genre),ir=v("Ginger.Current.Label",e=>e==null?void 0:e.label),ur=v("Ginger.Current.Isrc",e=>e==null?void 0:e.isrc),ar=v("Ginger.Current.TrackNumber",e=>(e==null?void 0:e.trackNumber)!=null?String(e.trackNumber):void 0);function ge({className:e,style:r,fallback:t,empty:n,children:i,format:u}){var d;const{state:a}=y(),o=(d=E(a))==null?void 0:d.year;if(typeof o!="number"||!Number.isFinite(o)){const p=n??t??null;return p?s.jsx("span",{className:e,style:r,children:p}):null}const c=u?u(o):String(o);return i?s.jsx("span",{className:e,style:r,children:i(c,a)}):s.jsx("span",{className:e,style:r,children:c})}ge.displayName="Ginger.Current.Year";function ye({className:e,style:r,fallback:t,empty:n,children:i,preserveWhitespace:u=!0}){var p;const{state:a}=y(),o=((p=E(a))==null?void 0:p.lyrics)??"",c=u?o.replace(/^\s+|\s+$/g,""):o.trim();if(!c){const m=n??t??null;return m?s.jsx("span",{className:e,style:r,children:m}):null}const d=u?{whiteSpace:"pre-wrap"}:void 0;return i?s.jsx("span",{className:e,style:{...d,...r},children:i(c,a)}):s.jsx("span",{className:e,style:{...d,...r},children:c})}ye.displayName="Ginger.Current.Lyrics";function me({visible:e=!1,className:r,style:t,fallback:n,empty:i,children:u}){var c;const{state:a}=y();if(!e)return null;const o=((c=E(a))==null?void 0:c.fileUrl)??"";if(!o){const d=i??n??null;return d?s.jsx("span",{className:r,style:t,children:d}):null}return u?s.jsx("span",{className:r,style:t,children:u(o,a)}):s.jsx("span",{className:r,style:t,children:o})}me.displayName="Ginger.Current.FileUrl";function be({className:e,style:r,fallback:t,empty:n,sizes:i,loading:u,onError:a,decoding:o,imgStyle:c}){const{state:d}=y(),p=E(d),m=fe(d);if(!m){const b=n??t??null;return b?s.jsx("span",{className:e,style:r,children:b}):null}const l=[p==null?void 0:p.title,p==null?void 0:p.artist].filter(Boolean).join(" — ")||"Artwork";return s.jsx("span",{className:e,style:{display:"inline-block",background:"var(--ginger-artwork-bg, transparent)",borderRadius:"var(--ginger-artwork-radius, 0)",overflow:"hidden",...r},children:s.jsx("img",{src:m,alt:l,sizes:i,loading:u,decoding:o,onError:a,style:{display:"block",width:"100%",height:"100%",objectFit:"cover",...c}})})}be.displayName="Ginger.Current.Artwork";function xe({base:e=0,className:r,style:t,fallback:n,empty:i,children:u}){const{state:a}=y();if(a.tracks.length===0){const d=i??n??null;return d?s.jsx("span",{className:r,style:t,children:d}):null}const c=String(a.currentIndex+e);return u?s.jsx("span",{className:r,style:t,children:u(c,a)}):s.jsx("span",{className:r,style:t,children:c})}xe.displayName="Ginger.Current.QueueIndex";function he({className:e,style:r,fallback:t,empty:n,children:i}){const{state:u}=y(),a=String(u.tracks.length);if(u.tracks.length===0){const o=n??t??null;return o?s.jsx("span",{className:e,style:r,children:o}):null}return i?s.jsx("span",{className:e,style:r,children:i(a,u)}):s.jsx("span",{className:e,style:r,children:a})}he.displayName="Ginger.Current.QueueLength";function ke({base:e=0,separator:r=" / ",className:t,style:n,fallback:i,empty:u,children:a}){const{state:o}=y(),c=o.tracks.length;if(c===0){const l=u??i??null;return l?s.jsx("span",{className:t,style:n,children:l}):null}const d=String(o.currentIndex+e),p=String(c),m=`${d}${r}${p}`;return a?s.jsx("span",{className:t,style:n,children:a({index:d,length:p,label:m},o)}):s.jsx("span",{className:t,style:n,children:m})}ke.displayName="Ginger.Current.QueuePosition";function sr(e){if(!Number.isFinite(e)||e<0)return"0:00";const r=Math.floor(e%60);return`${Math.floor(e/60)}:${r.toString().padStart(2,"0")}`}function L(e,r,t){const{className:n,style:i,fallback:u,empty:a,children:o,format:c=sr}=t;if(!(e>=0)||!Number.isFinite(e)){const p=a??u??null;return p?s.jsx("span",{className:n,style:i,children:p}):null}const d=c(e);return o?s.jsx("span",{className:n,style:i,children:o(d,r)}):s.jsx("span",{className:n,style:i,children:d})}function Pe(e){const{state:r}=y();return L(r.currentTime,r,e)}Pe.displayName="Ginger.Current.Elapsed";function Me(e){const{state:r}=y();return L(C(r),r,e)}Me.displayName="Ginger.Current.Duration";function Te(e){const{state:r}=y();return L(de(r),r,e)}Te.displayName="Ginger.Current.Remaining";function Ee({className:e,style:r,fallback:t,empty:n,children:i}){const{state:u}=y(),a=C(u),o=U(u);if(!(a>0)){const c=n??t??null;return c?s.jsx("span",{className:e,style:r,children:c}):null}return i?s.jsx("span",{className:e,style:r,children:i({fraction:o,currentTime:u.currentTime,duration:a},u)}):s.jsx("span",{className:e,style:r,children:`${Math.round(o*100)}%`})}Ee.displayName="Ginger.Current.Progress";function Ae({className:e,style:r,height:t=4}){const{state:n}=y(),i=`${Math.round(U(n)*100)}%`;return s.jsx("div",{className:e,style:{width:"100%",height:t,background:"var(--ginger-muted-color, #e5e7eb)",borderRadius:999,overflow:"hidden",...r},"aria-hidden":!0,children:s.jsx("div",{style:{width:i,height:"100%",background:"var(--ginger-primary-color, #111827)"}})})}Ae.displayName="Ginger.Current.TimeRail";function ve({className:e,style:r,fallback:t,empty:n,children:i}){const{state:u}=y(),a=ce(u);return i?s.jsx("span",{className:e,style:r,children:i(a,u)}):s.jsx("span",{className:e,style:r,children:a})}ve.displayName="Ginger.Current.PlaybackState";function Re({className:e,style:r,fallback:t,empty:n,children:i}){const{state:u}=y(),a=u.errorMessage??"";if(!a){const o=n??t??null;return o?s.jsx("span",{className:e,style:r,children:o}):null}return i?s.jsx("span",{className:e,style:r,children:i(a,u)}):s.jsx("span",{className:e,style:r,children:a})}Re.displayName="Ginger.Current.ErrorMessage";function Ie({playLabel:e="Play",pauseLabel:r="Pause",type:t="button",...n}){const{state:i,togglePlayPause:u}=y();return s.jsx("button",{type:t,"aria-label":i.isPaused?"Play":"Pause",onClick:u,...n,children:i.isPaused?e:r})}Ie.displayName="Ginger.Control.PlayPause";const se={off:"Repeat off",all:"Repeat all",one:"Repeat one"};function Se({type:e="button",...r}){const{state:t,cycleRepeat:n}=y();return s.jsx("button",{type:e,"aria-label":se[t.repeatMode],onClick:n,...r,children:se[t.repeatMode]})}Se.displayName="Ginger.Control.Repeat";function Ce({type:e="button",children:r="Next",...t}){const{next:n}=y();return s.jsx("button",{type:e,"aria-label":"Next track",onClick:n,...t,children:r})}Ce.displayName="Ginger.Control.Next";function je({type:e="button",children:r="Previous",...t}){const{prev:n}=y();return s.jsx("button",{type:e,"aria-label":"Previous track",onClick:n,...t,children:r})}je.displayName="Ginger.Control.Previous";function Ge({type:e="button",children:r="Shuffle",...t}){const{state:n,toggleShuffle:i}=y();return s.jsx("button",{type:e,"aria-pressed":n.isShuffled,"aria-label":"Shuffle",onClick:i,...t,children:r})}Ge.displayName="Ginger.Control.Shuffle";function _e({inputStyle:e,style:r,...t}){const{state:n,seek:i}=y(),u=Number.isFinite(n.duration)&&n.duration>0?n.duration:0,a=u>0?n.currentTime:0;return s.jsx("input",{type:"range",min:0,max:u>0?u:1,step:"any",value:Number.isFinite(a)?a:0,"aria-label":"Seek",onChange:o=>i(Number(o.currentTarget.value)),style:{width:"100%",...r,...e},...t})}_e.displayName="Ginger.Control.SeekBar";function Ne({inputStyle:e,style:r,...t}){const{state:n,setVolume:i}=y();return s.jsx("input",{type:"range",min:0,max:1,step:"any",value:n.volume,"aria-label":"Volume",onChange:u=>i(Number(u.currentTarget.value)),style:{width:"100%",...r,...e},...t})}Ne.displayName="Ginger.Control.Volume";function De({muteLabel:e="Mute",unmuteLabel:r="Unmute",type:t="button",...n}){const{state:i,toggleMute:u}=y();return s.jsx("button",{type:t,"aria-pressed":i.muted,"aria-label":i.muted?"Unmute":"Mute",onClick:u,...n,children:i.muted?r:e})}De.displayName="Ginger.Control.Mute";const lr=[.5,.75,1,1.25,1.5,2];function we({rates:e=lr,style:r,...t}){const{state:n,setPlaybackRate:i}=y(),u=f.useMemo(()=>Array.from(new Set([...e,n.playbackRate])).sort((a,o)=>a-o),[e,n.playbackRate]);return s.jsx("select",{"aria-label":"Playback speed",value:String(n.playbackRate),style:r,onChange:a=>i(Number(a.currentTarget.value)),...t,children:u.map(a=>s.jsx("option",{value:String(a),children:a===1?"1× normal":`${a}×`},a))})}we.displayName="Ginger.Control.PlaybackRate";const w=f.createContext(null);function or(){const e=f.useContext(w);if(!e)throw new Error("Ginger.Playlist.Track must be used inside <Ginger.Playlist>");return e}function Ue({children:e,rowStyle:r,renderTrack:t,playOnSelect:n=!0,style:i,...u}){const{state:a,playTrackAt:o,selectTrackAt:c}=y(),d={listStyle:"none",margin:0,padding:0,fontFamily:"var(--ginger-font-family, system-ui, sans-serif)",fontSize:"var(--ginger-font-size, 14px)",color:"var(--ginger-primary-color, #111827)",...i};return e!==void 0?s.jsx(w.Provider,{value:{playOnSelect:n},children:s.jsx("ul",{style:d,...u,children:e})}):s.jsx(w.Provider,{value:{playOnSelect:n},children:s.jsx("ul",{style:d,...u,children:a.tracks.map((m,l)=>{const b=l===a.currentIndex;return s.jsx("li",{children:s.jsx("button",{type:"button",onClick:()=>{n?o(l):c(l)},style:{width:"100%",textAlign:"left",border:"none",background:b?"rgba(17, 24, 39, 0.06)":"transparent",color:"inherit",font:"inherit",cursor:"pointer",padding:"var(--ginger-playlist-row-padding, 6px 8px)",...r},children:t?t(m,l,b):s.jsxs("span",{children:[m.title,m.artist?` — ${m.artist}`:""]})})},`${m.fileUrl}-${l}`)})})})}Ue.displayName="Ginger.Playlist";function Le({index:e,className:r,style:t,children:n,liProps:i,onClick:u,...a}){const{playOnSelect:o}=or(),{state:c,playTrackAt:d,selectTrackAt:p}=y(),m=e===c.currentIndex,l=c.tracks[e],b=l!=null?s.jsxs("span",{children:[l.title,l.artist?` — ${l.artist}`:""]}):null;return s.jsx("li",{...i,children:s.jsx("button",{type:"button","aria-current":m?"true":void 0,"data-ginger-active":m||void 0,className:r,style:{width:"100%",textAlign:"left",border:"none",background:m?"rgba(17, 24, 39, 0.06)":"transparent",color:"inherit",font:"inherit",cursor:"pointer",padding:"var(--ginger-playlist-row-padding, 6px 8px)",...t},...a,onClick:k=>{u==null||u(k),!k.defaultPrevented&&(o?d(e):p(e))},children:n??b})})}Le.displayName="Ginger.Playlist.Track";const cr=Object.assign(Ue,{Track:Le}),dr=A("Ginger.Queue.Title",e=>{var r;return(r=e.playlistMeta)==null?void 0:r.title}),fr=A("Ginger.Queue.Subtitle",e=>{var r;return(r=e.playlistMeta)==null?void 0:r.subtitle}),pr=A("Ginger.Queue.Description",e=>{var r;return(r=e.playlistMeta)==null?void 0:r.description}),gr=A("Ginger.Queue.Copyright",e=>{var r;return(r=e.playlistMeta)==null?void 0:r.copyright});function Fe({className:e,style:r,fallback:t,empty:n,imgStyle:i}){var c,d;const{state:u}=y(),a=(c=u.playlistMeta)==null?void 0:c.artworkUrl;if(!a){const p=n??t??null;return p?s.jsx("span",{className:e,style:r,children:p}):null}const o=((d=u.playlistMeta)==null?void 0:d.title)??"Playlist artwork";return s.jsx("span",{className:e,style:{display:"inline-block",background:"var(--ginger-artwork-bg, #f3f4f6)",borderRadius:"var(--ginger-artwork-radius, 6px)",overflow:"hidden",...r},children:s.jsx("img",{src:a,alt:o,style:{display:"block",width:"100%",height:"100%",objectFit:"cover",...i}})})}Fe.displayName="Ginger.Queue.Artwork";function D(e){return Number.isFinite(e)?Math.min(1,Math.max(0,e)):1}function F(e){return Number.isFinite(e)?Math.min(4,Math.max(.25,e)):1}const S={currentTime:0,duration:0,bufferedFraction:0,isBuffering:!1,errorMessage:null},yr={...S,volume:1,muted:!1,playbackRate:1};function Oe(e){const r=[...e.tracks];let t=R(e.currentIndex??0,r.length),n=null,i=r;return e.isShuffled&&r.length>1&&(n=[...r],i=oe(r,t),t=0),{tracks:i,currentIndex:t,isPaused:e.isPaused??!0,isShuffled:!!(e.isShuffled&&i.length>1),repeatMode:e.repeatMode??"off",originalTracks:n,playlistMeta:e.playlistMeta??null,...yr,volume:D(e.volume??1),muted:e.muted??!1,playbackRate:F(e.playbackRate??1)}}function mr(e,r){switch(r.type){case"INIT":{const{tracks:t,currentIndex:n,playlistMeta:i,isPaused:u,isShuffled:a,repeatMode:o,volume:c,muted:d,playbackRate:p}=r.payload;return Oe({tracks:t,currentIndex:n,playlistMeta:i??null,isPaused:u??!0,isShuffled:a??!1,repeatMode:o??"off",volume:c,muted:d,playbackRate:p})}case"SET_QUEUE":{const{tracks:t,currentIndex:n}=r.payload,i=[...t],u=R(n??e.currentIndex,i.length);return{...e,tracks:i,currentIndex:u,isShuffled:!1,originalTracks:null,...S}}case"SET_INDEX":{const t=R(r.payload.index,e.tracks.length),n=r.payload.autoPlay,i=n===!0?!1:n===!1?!0:e.isPaused;return{...e,currentIndex:t,...S,isPaused:i}}case"PLAY":return{...e,isPaused:!1};case"PAUSE":return{...e,isPaused:!0};case"TOGGLE_PAUSE":return{...e,isPaused:!e.isPaused};case"SET_REPEAT":return{...e,repeatMode:r.payload};case"CYCLE_REPEAT":return{...e,repeatMode:ze(e.repeatMode)};case"TOGGLE_SHUFFLE":{if(e.tracks.length<=1)return{...e,isShuffled:!1,originalTracks:null};if(!e.isShuffled){const u=[...e.tracks],a=oe(u,e.currentIndex);return{...e,isShuffled:!0,originalTracks:u,tracks:a,currentIndex:0}}const t=e.originalTracks?[...e.originalTracks]:[...e.tracks],n=e.tracks[e.currentIndex],i=Qe(t,n);return{...e,isShuffled:!1,originalTracks:null,tracks:t,currentIndex:R(i,t.length)}}case"NEXT":{const t=We(e),n=t===e.currentIndex;return{...e,currentIndex:t,...n?{}:S,isPaused:n?e.isPaused:!1}}case"PREV":{const t=Ke(e),n=t===e.currentIndex;return{...e,currentIndex:t,...n?{}:S,isPaused:n?e.isPaused:!1}}case"MEDIA_TIME_UPDATE":return{...e,currentTime:r.payload.currentTime,duration:Number.isFinite(r.payload.duration)?r.payload.duration:e.duration,bufferedFraction:r.payload.bufferedFraction,isBuffering:!1};case"MEDIA_LOADED_METADATA":return{...e,duration:Number.isFinite(r.payload.duration)?r.payload.duration:e.duration,bufferedFraction:r.payload.bufferedFraction,errorMessage:null};case"SET_PLAYLIST_META":return{...e,playlistMeta:r.payload};case"MEDIA_ERROR":return{...e,errorMessage:r.payload.message,isPaused:!0,isBuffering:!1};case"MEDIA_WAITING":return{...e,isBuffering:!0};case"MEDIA_CANPLAY":return{...e,isBuffering:!1,errorMessage:null};case"MEDIA_PLAY":return{...e,isPaused:!1,isBuffering:!1};case"MEDIA_PAUSE":return{...e,isPaused:!0};case"RESET_MEDIA_TIMES":return{...e,currentTime:0,duration:0,bufferedFraction:0};case"SET_VOLUME":return{...e,volume:D(r.payload)};case"SET_MUTED":return{...e,muted:r.payload};case"TOGGLE_MUTE":return{...e,muted:!e.muted};case"SET_PLAYBACK_RATE":return{...e,playbackRate:F(r.payload)};case"MEDIA_VOLUME_SYNC":{const{volume:t,muted:n}=r.payload,i=D(t);return i===e.volume&&n===e.muted?e:{...e,volume:i,muted:n}}default:return e}}const br={"--ginger-primary-color":"#111827","--ginger-muted-color":"#6b7280","--ginger-font-size":"14px","--ginger-font-family":"system-ui, sans-serif","--ginger-playlist-row-padding":"6px 8px","--ginger-artwork-radius":"6px","--ginger-artwork-bg":"#f3f4f6"};function xr({children:e,initialTracks:r=[],initialIndex:t=0,initialPlaylistMeta:n=null,initialShuffle:i=!1,initialRepeatMode:u="off",initialPaused:a=!0,initialVolume:o=1,initialMuted:c=!1,initialPlaybackRate:d=1,className:p,style:m,onTrackChange:l,onPlay:b,onPause:k,onQueueEnd:P,onError:M}){var ie;const I=f.useRef(null),[x,h]=f.useReducer(mr,void 0,()=>Oe({tracks:r,currentIndex:t,playlistMeta:n,isPaused:a,isShuffled:i,repeatMode:u,volume:o,muted:c,playbackRate:d})),O=f.useRef(x);f.useEffect(()=>{O.current=x},[x]);const $=x.tracks[x.currentIndex]??null;f.useEffect(()=>{l==null||l($,x.currentIndex)},[$,x.currentIndex,l]),f.useEffect(()=>{x.errorMessage&&(M==null||M(x.errorMessage))},[x.errorMessage,M]);const j=f.useRef(void 0);f.useEffect(()=>{if(j.current===void 0){j.current=x.isPaused;return}j.current!==x.isPaused&&(x.isPaused?k==null||k():b==null||b()),j.current=x.isPaused},[x.isPaused,k,b]);const G=f.useCallback(()=>{h({type:"PLAY"})},[]),_=f.useCallback(()=>{var g;h({type:"PAUSE"}),(g=I.current)==null||g.pause()},[]),Y=f.useCallback(()=>{x.isPaused?G():_()},[_,G,x.isPaused]),B=f.useCallback(g=>{const T=I.current;T&&Number.isFinite(g)&&(T.currentTime=Math.max(0,g))},[]),V=f.useCallback(g=>{h({type:"SET_VOLUME",payload:D(g)})},[]),Q=f.useCallback(g=>{h({type:"SET_MUTED",payload:g})},[]),X=f.useCallback(()=>{h({type:"TOGGLE_MUTE"})},[]),W=f.useCallback(g=>{h({type:"SET_PLAYBACK_RATE",payload:F(g)})},[]),K=f.useCallback(()=>{h({type:"NEXT"})},[]),z=f.useCallback(()=>{h({type:"PREV"})},[]),q=f.useCallback(g=>{h({type:"SET_REPEAT",payload:g})},[]),H=f.useCallback(()=>{h({type:"CYCLE_REPEAT"})},[]),J=f.useCallback(()=>{h({type:"TOGGLE_SHUFFLE"})},[]),Z=f.useCallback((g,T)=>{h({type:"SET_QUEUE",payload:{tracks:g,currentIndex:T}})},[]),ee=f.useCallback(g=>{h({type:"SET_INDEX",payload:{index:g,autoPlay:!0}})},[]),re=f.useCallback(g=>{h({type:"SET_INDEX",payload:{index:g,autoPlay:!1}})},[]),te=f.useCallback(g=>{h({type:"SET_PLAYLIST_META",payload:g})},[]),$e=(ie=x.tracks[x.currentIndex])==null?void 0:ie.fileUrl;f.useEffect(()=>{const g=I.current;g&&(x.isPaused?g.pause():g.play().catch(T=>{h({type:"PAUSE"});const N=T instanceof Error?T.message:"Playback failed";M==null||M(N)}))},[x.isPaused,$e,M]);const ne=f.useCallback(()=>{const g=Xe(O.current);if(g.kind==="replay_same"){const N=I.current;N&&(N.currentTime=0),h({type:"PLAY"});return}if(g.kind==="stop"){h({type:"PAUSE"}),P==null||P();return}const T=g.nextIndex;h({type:"SET_INDEX",payload:{index:T,autoPlay:!0}})},[P]),Ye=f.useMemo(()=>({state:x,dispatch:h,audioRef:I,notifyEnded:ne,play:G,pause:_,togglePlayPause:Y,seek:B,setVolume:V,setMuted:Q,toggleMute:X,setPlaybackRate:W,next:K,prev:z,setRepeatMode:q,cycleRepeat:H,toggleShuffle:J,setQueue:Z,playTrackAt:ee,selectTrackAt:re,setPlaylistMeta:te}),[H,h,K,ne,_,G,ee,re,z,B,Q,W,Z,q,te,V,x,X,Y,J]),Be=f.useMemo(()=>({...br,...m}),[m]);return s.jsx(le.Provider,{value:Ye,children:s.jsx("div",{className:p,style:Be,children:e})})}const hr={Provider:xr,Player:Ve,Current:{Title:Je,Artist:Ze,Album:er,Description:rr,Copyright:tr,Genre:nr,Label:ir,Isrc:ur,TrackNumber:ar,Year:ge,Lyrics:ye,FileUrl:me,Artwork:be,QueueIndex:xe,QueueLength:he,QueuePosition:ke,Elapsed:Pe,Duration:Me,Remaining:Te,Progress:Ee,TimeRail:Ae,PlaybackState:ve,ErrorMessage:Re},Queue:{Title:dr,Subtitle:fr,Description:pr,Copyright:gr,Artwork:Fe},Control:{PlayPause:Ie,Repeat:Se,Next:Ce,Previous:je,Shuffle:Ge,SeekBar:_e,Volume:Ne,Mute:De,PlaybackRate:we},Playlist:cr};function kr(){const e=y(),{state:r}=e;return f.useMemo(()=>({state:r,currentTrack:E(r),playbackUi:ce(r),duration:C(r),remaining:de(r),progress:U(r),artworkUrl:fe(r),albumLine:pe(r),play:e.play,pause:e.pause,togglePlayPause:e.togglePlayPause,seek:e.seek,setVolume:e.setVolume,setMuted:e.setMuted,toggleMute:e.toggleMute,setPlaybackRate:e.setPlaybackRate,next:e.next,prev:e.prev,setRepeatMode:e.setRepeatMode,cycleRepeat:e.cycleRepeat,toggleShuffle:e.toggleShuffle,setQueue:e.setQueue,playTrackAt:e.playTrackAt,selectTrackAt:e.selectTrackAt,setPlaylistMeta:e.setPlaylistMeta,audioRef:e.audioRef,dispatch:e.dispatch}),[e.audioRef,e.cycleRepeat,e.dispatch,e.next,e.pause,e.play,e.playTrackAt,e.selectTrackAt,e.prev,e.seek,e.setMuted,e.setPlaybackRate,e.setPlaylistMeta,e.setQueue,e.setRepeatMode,e.setVolume,e.toggleMute,e.togglePlayPause,e.toggleShuffle,r])}exports.Ginger=hr;exports.useGinger=kr;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|