@lucaismyname/ginger 0.0.38 → 0.0.41

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 (36) hide show
  1. package/README.md +15 -16
  2. package/dist/client.cjs +1 -1
  3. package/dist/client.js +2 -2
  4. package/dist/context/GingerProvider.d.ts.map +1 -1
  5. package/dist/equalizer/useGingerEqualizer.test.d.ts +2 -0
  6. package/dist/equalizer/useGingerEqualizer.test.d.ts.map +1 -0
  7. package/dist/{ginger-Ca8910_n.js → ginger-CgHqHrrG.js} +309 -304
  8. package/dist/{ginger-Ca8910_n.js.map → ginger-CgHqHrrG.js.map} +1 -1
  9. package/dist/{ginger-DrD8F4HX.cjs → ginger-DFdZGaMi.cjs} +2 -2
  10. package/dist/{ginger-DrD8F4HX.cjs.map → ginger-DFdZGaMi.cjs.map} +1 -1
  11. package/dist/index.cjs +1 -1
  12. package/dist/index.js +2 -2
  13. package/dist/store.test.d.ts +2 -0
  14. package/dist/store.test.d.ts.map +1 -0
  15. package/dist/testing/index.cjs +1 -1
  16. package/dist/testing/index.js +1 -1
  17. package/dist/transcript/index.cjs +7 -7
  18. package/dist/transcript/index.cjs.map +1 -1
  19. package/dist/transcript/index.js +57 -52
  20. package/dist/transcript/index.js.map +1 -1
  21. package/dist/transcript/useGingerTranscriptSync.d.ts.map +1 -1
  22. package/dist/transcript/useGingerTranscriptSync.test.d.ts +2 -0
  23. package/dist/transcript/useGingerTranscriptSync.test.d.ts.map +1 -0
  24. package/dist/{useGingerChapterProgress-TeWWJ8Fd.cjs → useGingerChapterProgress-COLWYX2-.cjs} +2 -2
  25. package/dist/{useGingerChapterProgress-TeWWJ8Fd.cjs.map → useGingerChapterProgress-COLWYX2-.cjs.map} +1 -1
  26. package/dist/{useGingerChapterProgress-Dbwiwnko.js → useGingerChapterProgress-Jj_zfnds.js} +2 -2
  27. package/dist/{useGingerChapterProgress-Dbwiwnko.js.map → useGingerChapterProgress-Jj_zfnds.js.map} +1 -1
  28. package/dist/waveform/index.cjs +1 -1
  29. package/dist/waveform/index.cjs.map +1 -1
  30. package/dist/waveform/index.d.ts +1 -1
  31. package/dist/waveform/index.d.ts.map +1 -1
  32. package/dist/waveform/index.js +129 -129
  33. package/dist/waveform/index.js.map +1 -1
  34. package/dist/waveform/useAudioPeaks.d.ts +14 -1
  35. package/dist/waveform/useAudioPeaks.d.ts.map +1 -1
  36. package/package.json +6 -4
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @lucaismyname/ginger
2
2
 
3
- React audio primitives for music and podcast UIs on the native **`<audio>`** element: a reducer-backed provider, composable **`Ginger.*`** components, and **`useGinger()`** for full control. Many pieces ship sensible defaults (CSS variables, layout helpers); use **`unstyled`** (and related flags below) when you want **behavior and data only**, with your own styling.
3
+ A headless react audio primitive for music and podcast UIs on the native **`<audio>`** element: a reducer-backed provider, composable **`Ginger.*`** components, and **`useGinger()`** for full control. Many pieces ship sensible defaults (CSS variables, layout helpers); use **`unstyled`** (and related flags below) when you want **behavior and data only**, with your own styling.
4
4
 
5
5
  **Peer dependencies:** **`react` ≥ 18** (required). **`react-dom` ≥ 18** is listed as a peer for typical DOM apps; it is **optional** in `peerDependenciesMeta`, so setups that do not use `react-dom` can omit it when appropriate.
6
6
 
@@ -49,15 +49,17 @@ Mount **`<Ginger.Player />`** once inside the same provider tree so the hidden a
49
49
 
50
50
  ## Documentation
51
51
 
52
- - Getting started: [`docs/getting-started.md`](./docs/getting-started.md)
53
- - Testing guide: [`docs/guides/testing.md`](./docs/guides/testing.md)
54
- - Recipes: [`docs/guides/recipes.md`](./docs/guides/recipes.md)
55
- - Accessibility checklist: [`docs/guides/accessibility.md`](./docs/guides/accessibility.md)
56
- - Streaming adapters: [`docs/guides/streaming-adapters.md`](./docs/guides/streaming-adapters.md)
57
- - Components reference: [`docs/reference/components.md`](./docs/reference/components.md)
58
- - Hooks reference: [`docs/reference/hooks.md`](./docs/reference/hooks.md)
59
- - Subpath exports (waveform, EQ, spatial, transcript, remote, …): [`docs/reference/subpaths.md`](./docs/reference/subpaths.md)
60
- - Generated API docs: [`docs/api/index.html`](./docs/api/index.html)
52
+ For docs beyond this README, use the repository links below:
53
+
54
+ - Getting started: [`docs/getting-started.md`](https://github.com/lucaismyname/ginger/blob/main/packages/ginger/docs/getting-started.md)
55
+ - Testing guide: [`docs/guides/testing.md`](https://github.com/lucaismyname/ginger/blob/main/packages/ginger/docs/guides/testing.md)
56
+ - Recipes: [`docs/guides/recipes.md`](https://github.com/lucaismyname/ginger/blob/main/packages/ginger/docs/guides/recipes.md)
57
+ - Accessibility checklist: [`docs/guides/accessibility.md`](https://github.com/lucaismyname/ginger/blob/main/packages/ginger/docs/guides/accessibility.md)
58
+ - Streaming adapters: [`docs/guides/streaming-adapters.md`](https://github.com/lucaismyname/ginger/blob/main/packages/ginger/docs/guides/streaming-adapters.md)
59
+ - Components reference: [`docs/reference/components.md`](https://github.com/lucaismyname/ginger/blob/main/packages/ginger/docs/reference/components.md)
60
+ - Hooks reference: [`docs/reference/hooks.md`](https://github.com/lucaismyname/ginger/blob/main/packages/ginger/docs/reference/hooks.md)
61
+ - Subpath exports (waveform, EQ, spatial, transcript, remote, …): [`docs/reference/subpaths.md`](https://github.com/lucaismyname/ginger/blob/main/packages/ginger/docs/reference/subpaths.md)
62
+ - Generated API docs: [`docs/api/index.html`](https://github.com/lucaismyname/ginger/blob/main/packages/ginger/docs/api/index.html)
61
63
 
62
64
  ## Subpath Exports
63
65
 
@@ -206,15 +208,12 @@ It currently provides capability metadata only and does not alter playback behav
206
208
  ## Release Process
207
209
 
208
210
  - Changelog: [`CHANGELOG.md`](./CHANGELOG.md)
209
- - Release note template: [`../../.github/release-template.md`](../../.github/release-template.md)
211
+ - Release note template: [`.github/release-template.md`](https://github.com/lucaismyname/ginger/blob/main/.github/release-template.md)
210
212
 
211
213
  Before publishing:
212
214
 
213
215
  ```bash
214
- npm run build
215
- npm run test
216
- npm run typecheck
217
- npm run lint
216
+ npm run verify:release
218
217
  npm run docs:api
219
218
  ```
220
219
 
@@ -960,7 +959,7 @@ function FileViz({ url }: { url: string }) {
960
959
  }
961
960
  ```
962
961
 
963
- **`useAudioPeaks`** (same subpath) remains a lightweight helper: a single row of decoded amplitude peaks. Prefer **`useAudioFileAnalysis`** when you need a 2D amplitude grid or spectrogram.
962
+ **`useAudioPeaks`** (same subpath) remains a lightweight helper: a single row of decoded amplitude peaks. For large files, pass `maxBuckets` and `maxSamplesPerBucket` as the third argument to cap compute cost. Prefer **`useAudioFileAnalysis`** when you need a 2D amplitude grid or spectrogram.
964
963
 
965
964
  ## Recipes
966
965
 
package/dist/client.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./ginger-DrD8F4HX.cjs"),s=require("./useGinger-BXgia32v.cjs"),r=require("./useGingerChapterProgress-TeWWJ8Fd.cjs"),i=require("./liveAudioGraph-0cpHD_Ic.cjs"),n=require("./selectors-YXnP8Y8g.cjs"),a=require("./GingerSplitContexts-C7puo0M7.cjs");exports.Chapters=e.Chapters;exports.Ginger=e.Ginger;exports.LyricsSynced=e.LyricsSynced;exports.Pause=e.Pause;exports.Play=e.Play;exports.RepeatGlyph=e.RepeatGlyph;exports.ShuffleIcon=e.ShuffleIcon;exports.SkipBack=e.SkipBack;exports.SkipForward=e.SkipForward;exports.Volume2=e.Volume2;exports.VolumeX=e.VolumeX;exports.Wrapper=e.Wrapper;exports.clampPlaybackRate=e.clampPlaybackRate;exports.clampVolume=e.clampVolume;exports.defaultGingerLocale=e.defaultGingerLocale;exports.parseLrc=e.parseLrc;exports.useGingerChapters=e.useGingerChapters;exports.useGingerLocale=e.useGingerLocale;exports.useGingerLyricsSync=e.useGingerLyricsSync;exports.usePlayPauseBinding=e.usePlayPauseBinding;exports.useSeekBarBinding=e.useSeekBarBinding;exports.useVolumeSlider=e.useVolumeSlider;exports.useGinger=s.useGinger;exports.createGingerStore=r.createGingerStore;exports.useGingerChapterProgress=r.useGingerChapterProgress;exports.useGingerDebugLog=r.useGingerDebugLog;exports.useGingerKeyboardShortcuts=r.useGingerKeyboardShortcuts;exports.useGingerLiveAnalyzer=r.useGingerLiveAnalyzer;exports.useGingerPlaybackHistory=r.useGingerPlaybackHistory;exports.useGingerSleepTimer=r.useGingerSleepTimer;exports.useGingerVolumeFade=r.useGingerVolumeFade;exports.useNextTrackPrefetch=r.useNextTrackPrefetch;exports.useSeekDrag=r.useSeekDrag;exports.attachLiveAnalyser=i.attachLiveAnalyser;exports.detachLiveAnalyser=i.detachLiveAnalyser;exports.setProcessingChain=i.setProcessingChain;exports.derivePlaybackUiState=n.derivePlaybackUiState;exports.gingerStateFromContextValues=a.gingerStateFromContextValues;exports.gingerStateFromContexts=a.gingerStateFromContexts;exports.useGingerMedia=a.useGingerMedia;exports.useGingerPlayback=a.useGingerPlayback;exports.useGingerState=a.useGingerState;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./ginger-DFdZGaMi.cjs"),s=require("./useGinger-BXgia32v.cjs"),r=require("./useGingerChapterProgress-COLWYX2-.cjs"),i=require("./liveAudioGraph-0cpHD_Ic.cjs"),n=require("./selectors-YXnP8Y8g.cjs"),a=require("./GingerSplitContexts-C7puo0M7.cjs");exports.Chapters=e.Chapters;exports.Ginger=e.Ginger;exports.LyricsSynced=e.LyricsSynced;exports.Pause=e.Pause;exports.Play=e.Play;exports.RepeatGlyph=e.RepeatGlyph;exports.ShuffleIcon=e.ShuffleIcon;exports.SkipBack=e.SkipBack;exports.SkipForward=e.SkipForward;exports.Volume2=e.Volume2;exports.VolumeX=e.VolumeX;exports.Wrapper=e.Wrapper;exports.clampPlaybackRate=e.clampPlaybackRate;exports.clampVolume=e.clampVolume;exports.defaultGingerLocale=e.defaultGingerLocale;exports.parseLrc=e.parseLrc;exports.useGingerChapters=e.useGingerChapters;exports.useGingerLocale=e.useGingerLocale;exports.useGingerLyricsSync=e.useGingerLyricsSync;exports.usePlayPauseBinding=e.usePlayPauseBinding;exports.useSeekBarBinding=e.useSeekBarBinding;exports.useVolumeSlider=e.useVolumeSlider;exports.useGinger=s.useGinger;exports.createGingerStore=r.createGingerStore;exports.useGingerChapterProgress=r.useGingerChapterProgress;exports.useGingerDebugLog=r.useGingerDebugLog;exports.useGingerKeyboardShortcuts=r.useGingerKeyboardShortcuts;exports.useGingerLiveAnalyzer=r.useGingerLiveAnalyzer;exports.useGingerPlaybackHistory=r.useGingerPlaybackHistory;exports.useGingerSleepTimer=r.useGingerSleepTimer;exports.useGingerVolumeFade=r.useGingerVolumeFade;exports.useNextTrackPrefetch=r.useNextTrackPrefetch;exports.useSeekDrag=r.useSeekDrag;exports.attachLiveAnalyser=i.attachLiveAnalyser;exports.detachLiveAnalyser=i.detachLiveAnalyser;exports.setProcessingChain=i.setProcessingChain;exports.derivePlaybackUiState=n.derivePlaybackUiState;exports.gingerStateFromContextValues=a.gingerStateFromContextValues;exports.gingerStateFromContexts=a.gingerStateFromContexts;exports.useGingerMedia=a.useGingerMedia;exports.useGingerPlayback=a.useGingerPlayback;exports.useGingerState=a.useGingerState;
2
2
  //# sourceMappingURL=client.cjs.map
package/dist/client.js CHANGED
@@ -1,6 +1,6 @@
1
- import { C as s, G as r, L as i, P as t, a as u, R as n, S as o, b as g, c, V as l, d as p, W as G, e as m, f as y, g as S, p as d, u as f, h, i as P, j as k, k as L, l as b } from "./ginger-Ca8910_n.js";
1
+ import { C as s, G as r, L as i, P as t, a as u, R as n, S as o, b as g, c, V as l, d as p, W as G, e as m, f as y, g as S, p as d, u as f, h, i as P, j as k, k as L, l as b } from "./ginger-CgHqHrrG.js";
2
2
  import { u as C } from "./useGinger-hpp2pAGY.js";
3
- import { c as v, u as B, a as F, b as A, d as R, e as D, f as T, g as W, h as j, i as w } from "./useGingerChapterProgress-Dbwiwnko.js";
3
+ import { c as v, u as B, a as F, b as A, d as R, e as D, f as T, g as W, h as j, i as w } from "./useGingerChapterProgress-Jj_zfnds.js";
4
4
  import { a as H, d as I, s as K } from "./liveAudioGraph-DvPaxBCP.js";
5
5
  import { d as N } from "./selectors-BalBCc7X.js";
6
6
  import { g as X, a as q, u as E, b as J, c as O } from "./GingerSplitContexts-BzBExb95.js";
@@ -1 +1 @@
1
- {"version":3,"file":"GingerProvider.d.ts","sourceRoot":"","sources":["../../src/context/GingerProvider.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAEV,mBAAmB,EAKpB,MAAM,UAAU,CAAC;AAuBlB,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,aAAkB,EAClB,YAAgB,EAChB,mBAA0B,EAC1B,cAAsB,EACtB,iBAAyB,EACzB,mBAAgC,EAChC,aAAoB,EACpB,aAAiB,EACjB,YAAoB,EACpB,mBAAuB,EACvB,eAAe,EACf,MAAM,EACN,YAAoB,EACpB,UAAU,EACV,aAAa,EACb,WAAW,EACX,cAAsB,EACtB,mBAA2B,EAC3B,QAAgB,EAChB,OAAe,EACf,SAAS,EACT,KAAK,EACL,GAAG,EAAE,OAAO,EACZ,2BAA+B,EAC/B,aAAa,EACb,MAAM,EACN,OAAO,EACP,UAAU,EACV,OAAO,EACP,cAAc,EACd,oBAAoB,EACpB,MAAM,GACP,EAAE,mBAAmB,2CA2mBrB"}
1
+ {"version":3,"file":"GingerProvider.d.ts","sourceRoot":"","sources":["../../src/context/GingerProvider.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAEV,mBAAmB,EAKpB,MAAM,UAAU,CAAC;AAuBlB,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,aAAkB,EAClB,YAAgB,EAChB,mBAA0B,EAC1B,cAAsB,EACtB,iBAAyB,EACzB,mBAAgC,EAChC,aAAoB,EACpB,aAAiB,EACjB,YAAoB,EACpB,mBAAuB,EACvB,eAAe,EACf,MAAM,EACN,YAAoB,EACpB,UAAU,EACV,aAAa,EACb,WAAW,EACX,cAAsB,EACtB,mBAA2B,EAC3B,QAAgB,EAChB,OAAe,EACf,SAAS,EACT,KAAK,EACL,GAAG,EAAE,OAAO,EACZ,2BAA+B,EAC/B,aAAa,EACb,MAAM,EACN,OAAO,EACP,UAAU,EACV,OAAO,EACP,cAAc,EACd,oBAAoB,EACpB,MAAM,GACP,EAAE,mBAAmB,2CAinBrB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useGingerEqualizer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGingerEqualizer.test.d.ts","sourceRoot":"","sources":["../../src/equalizer/useGingerEqualizer.test.tsx"],"names":[],"mappings":""}