@venomousone/rn-videokit 0.1.0

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 (145) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +248 -0
  3. package/lib/module/components/VideoKit.js +347 -0
  4. package/lib/module/components/VideoKit.js.map +1 -0
  5. package/lib/module/components/controls/FullscreenButton.js +38 -0
  6. package/lib/module/components/controls/FullscreenButton.js.map +1 -0
  7. package/lib/module/components/controls/Icon.js +71 -0
  8. package/lib/module/components/controls/Icon.js.map +1 -0
  9. package/lib/module/components/controls/PlayPauseButton.js +33 -0
  10. package/lib/module/components/controls/PlayPauseButton.js.map +1 -0
  11. package/lib/module/components/controls/Scrubber.js +146 -0
  12. package/lib/module/components/controls/Scrubber.js.map +1 -0
  13. package/lib/module/components/controls/SpeedButton.js +96 -0
  14. package/lib/module/components/controls/SpeedButton.js.map +1 -0
  15. package/lib/module/components/controls/TimeDisplay.js +28 -0
  16. package/lib/module/components/controls/TimeDisplay.js.map +1 -0
  17. package/lib/module/components/controls/VolumeButton.js +31 -0
  18. package/lib/module/components/controls/VolumeButton.js.map +1 -0
  19. package/lib/module/components/core/VideoPlayer.js +114 -0
  20. package/lib/module/components/core/VideoPlayer.js.map +1 -0
  21. package/lib/module/components/core/VideoPlayerContext.js +119 -0
  22. package/lib/module/components/core/VideoPlayerContext.js.map +1 -0
  23. package/lib/module/components/core/index.js +5 -0
  24. package/lib/module/components/core/index.js.map +1 -0
  25. package/lib/module/components/index.js +14 -0
  26. package/lib/module/components/index.js.map +1 -0
  27. package/lib/module/components/overlays/BufferingOverlay.js +24 -0
  28. package/lib/module/components/overlays/BufferingOverlay.js.map +1 -0
  29. package/lib/module/components/overlays/DoubleTapSeek.js +95 -0
  30. package/lib/module/components/overlays/DoubleTapSeek.js.map +1 -0
  31. package/lib/module/components/overlays/ErrorOverlay.js +60 -0
  32. package/lib/module/components/overlays/ErrorOverlay.js.map +1 -0
  33. package/lib/module/components/overlays/GestureIndicator.js +118 -0
  34. package/lib/module/components/overlays/GestureIndicator.js.map +1 -0
  35. package/lib/module/components/overlays/LoadingPoster.js +22 -0
  36. package/lib/module/components/overlays/LoadingPoster.js.map +1 -0
  37. package/lib/module/hooks/index.js +6 -0
  38. package/lib/module/hooks/index.js.map +1 -0
  39. package/lib/module/hooks/useVideoBrightness.js +33 -0
  40. package/lib/module/hooks/useVideoBrightness.js.map +1 -0
  41. package/lib/module/hooks/useVideoControls.js +64 -0
  42. package/lib/module/hooks/useVideoControls.js.map +1 -0
  43. package/lib/module/hooks/useVideoOrientation.js +24 -0
  44. package/lib/module/hooks/useVideoOrientation.js.map +1 -0
  45. package/lib/module/hooks/useVideoPlayer.js +59 -0
  46. package/lib/module/hooks/useVideoPlayer.js.map +1 -0
  47. package/lib/module/hooks/useVideoVolume.js +42 -0
  48. package/lib/module/hooks/useVideoVolume.js.map +1 -0
  49. package/lib/module/index.js +7 -0
  50. package/lib/module/index.js.map +1 -0
  51. package/lib/module/package.json +1 -0
  52. package/lib/module/types/index.js +4 -0
  53. package/lib/module/types/index.js.map +1 -0
  54. package/lib/module/utils/clamp.js +8 -0
  55. package/lib/module/utils/clamp.js.map +1 -0
  56. package/lib/module/utils/formatTime.js +12 -0
  57. package/lib/module/utils/formatTime.js.map +1 -0
  58. package/lib/module/utils/index.js +5 -0
  59. package/lib/module/utils/index.js.map +1 -0
  60. package/lib/typescript/package.json +1 -0
  61. package/lib/typescript/src/components/VideoKit.d.ts +3 -0
  62. package/lib/typescript/src/components/VideoKit.d.ts.map +1 -0
  63. package/lib/typescript/src/components/controls/FullscreenButton.d.ts +6 -0
  64. package/lib/typescript/src/components/controls/FullscreenButton.d.ts.map +1 -0
  65. package/lib/typescript/src/components/controls/Icon.d.ts +10 -0
  66. package/lib/typescript/src/components/controls/Icon.d.ts.map +1 -0
  67. package/lib/typescript/src/components/controls/PlayPauseButton.d.ts +2 -0
  68. package/lib/typescript/src/components/controls/PlayPauseButton.d.ts.map +1 -0
  69. package/lib/typescript/src/components/controls/Scrubber.d.ts +7 -0
  70. package/lib/typescript/src/components/controls/Scrubber.d.ts.map +1 -0
  71. package/lib/typescript/src/components/controls/SpeedButton.d.ts +2 -0
  72. package/lib/typescript/src/components/controls/SpeedButton.d.ts.map +1 -0
  73. package/lib/typescript/src/components/controls/TimeDisplay.d.ts +2 -0
  74. package/lib/typescript/src/components/controls/TimeDisplay.d.ts.map +1 -0
  75. package/lib/typescript/src/components/controls/VolumeButton.d.ts +2 -0
  76. package/lib/typescript/src/components/controls/VolumeButton.d.ts.map +1 -0
  77. package/lib/typescript/src/components/core/VideoPlayer.d.ts +14 -0
  78. package/lib/typescript/src/components/core/VideoPlayer.d.ts.map +1 -0
  79. package/lib/typescript/src/components/core/VideoPlayerContext.d.ts +48 -0
  80. package/lib/typescript/src/components/core/VideoPlayerContext.d.ts.map +1 -0
  81. package/lib/typescript/src/components/core/index.d.ts +3 -0
  82. package/lib/typescript/src/components/core/index.d.ts.map +1 -0
  83. package/lib/typescript/src/components/index.d.ts +6 -0
  84. package/lib/typescript/src/components/index.d.ts.map +1 -0
  85. package/lib/typescript/src/components/overlays/BufferingOverlay.d.ts +2 -0
  86. package/lib/typescript/src/components/overlays/BufferingOverlay.d.ts.map +1 -0
  87. package/lib/typescript/src/components/overlays/DoubleTapSeek.d.ts +5 -0
  88. package/lib/typescript/src/components/overlays/DoubleTapSeek.d.ts.map +1 -0
  89. package/lib/typescript/src/components/overlays/ErrorOverlay.d.ts +6 -0
  90. package/lib/typescript/src/components/overlays/ErrorOverlay.d.ts.map +1 -0
  91. package/lib/typescript/src/components/overlays/GestureIndicator.d.ts +9 -0
  92. package/lib/typescript/src/components/overlays/GestureIndicator.d.ts.map +1 -0
  93. package/lib/typescript/src/components/overlays/LoadingPoster.d.ts +6 -0
  94. package/lib/typescript/src/components/overlays/LoadingPoster.d.ts.map +1 -0
  95. package/lib/typescript/src/hooks/index.d.ts +4 -0
  96. package/lib/typescript/src/hooks/index.d.ts.map +1 -0
  97. package/lib/typescript/src/hooks/useVideoBrightness.d.ts +5 -0
  98. package/lib/typescript/src/hooks/useVideoBrightness.d.ts.map +1 -0
  99. package/lib/typescript/src/hooks/useVideoControls.d.ts +11 -0
  100. package/lib/typescript/src/hooks/useVideoControls.d.ts.map +1 -0
  101. package/lib/typescript/src/hooks/useVideoOrientation.d.ts +6 -0
  102. package/lib/typescript/src/hooks/useVideoOrientation.d.ts.map +1 -0
  103. package/lib/typescript/src/hooks/useVideoPlayer.d.ts +7 -0
  104. package/lib/typescript/src/hooks/useVideoPlayer.d.ts.map +1 -0
  105. package/lib/typescript/src/hooks/useVideoVolume.d.ts +6 -0
  106. package/lib/typescript/src/hooks/useVideoVolume.d.ts.map +1 -0
  107. package/lib/typescript/src/index.d.ts +6 -0
  108. package/lib/typescript/src/index.d.ts.map +1 -0
  109. package/lib/typescript/src/types/index.d.ts +96 -0
  110. package/lib/typescript/src/types/index.d.ts.map +1 -0
  111. package/lib/typescript/src/utils/clamp.d.ts +2 -0
  112. package/lib/typescript/src/utils/clamp.d.ts.map +1 -0
  113. package/lib/typescript/src/utils/formatTime.d.ts +2 -0
  114. package/lib/typescript/src/utils/formatTime.d.ts.map +1 -0
  115. package/lib/typescript/src/utils/index.d.ts +3 -0
  116. package/lib/typescript/src/utils/index.d.ts.map +1 -0
  117. package/package.json +191 -0
  118. package/src/components/VideoKit.tsx +415 -0
  119. package/src/components/controls/FullscreenButton.tsx +29 -0
  120. package/src/components/controls/Icon.tsx +71 -0
  121. package/src/components/controls/PlayPauseButton.tsx +25 -0
  122. package/src/components/controls/Scrubber.tsx +157 -0
  123. package/src/components/controls/SpeedButton.tsx +86 -0
  124. package/src/components/controls/TimeDisplay.tsx +21 -0
  125. package/src/components/controls/VolumeButton.tsx +23 -0
  126. package/src/components/core/VideoPlayer.tsx +148 -0
  127. package/src/components/core/VideoPlayerContext.tsx +133 -0
  128. package/src/components/core/index.ts +5 -0
  129. package/src/components/index.ts +25 -0
  130. package/src/components/overlays/BufferingOverlay.tsx +21 -0
  131. package/src/components/overlays/DoubleTapSeek.tsx +91 -0
  132. package/src/components/overlays/ErrorOverlay.tsx +49 -0
  133. package/src/components/overlays/GestureIndicator.tsx +114 -0
  134. package/src/components/overlays/LoadingPoster.tsx +21 -0
  135. package/src/hooks/index.ts +3 -0
  136. package/src/hooks/useVideoBrightness.ts +34 -0
  137. package/src/hooks/useVideoControls.ts +65 -0
  138. package/src/hooks/useVideoOrientation.ts +22 -0
  139. package/src/hooks/useVideoPlayer.ts +69 -0
  140. package/src/hooks/useVideoVolume.ts +36 -0
  141. package/src/index.ts +15 -0
  142. package/src/types/index.ts +137 -0
  143. package/src/utils/clamp.ts +4 -0
  144. package/src/utils/formatTime.ts +9 -0
  145. package/src/utils/index.ts +2 -0
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ import { useEffect } from 'react';
4
+ import Orientation from 'react-native-orientation-locker';
5
+ import { useVideoStore } from "../components/core/VideoPlayerContext.js";
6
+
7
+ /**
8
+ * Locks/unlocks screen orientation in response to fullscreen state.
9
+ * Fullscreen → landscape; exit → portrait.
10
+ */
11
+ export function useVideoOrientation() {
12
+ const isFullscreen = useVideoStore(s => s.isFullscreen);
13
+ useEffect(() => {
14
+ if (isFullscreen) {
15
+ Orientation.lockToLandscape();
16
+ } else {
17
+ Orientation.lockToPortrait();
18
+ }
19
+ return () => {
20
+ Orientation.unlockAllOrientations();
21
+ };
22
+ }, [isFullscreen]);
23
+ }
24
+ //# sourceMappingURL=useVideoOrientation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","Orientation","useVideoStore","useVideoOrientation","isFullscreen","s","lockToLandscape","lockToPortrait","unlockAllOrientations"],"sourceRoot":"../../../src","sources":["hooks/useVideoOrientation.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,OAAOC,WAAW,MAAM,iCAAiC;AACzD,SAASC,aAAa,QAAQ,0CAAuC;;AAErE;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAAA,EAAG;EACpC,MAAMC,YAAY,GAAGF,aAAa,CAAEG,CAAC,IAAKA,CAAC,CAACD,YAAY,CAAC;EAEzDJ,SAAS,CAAC,MAAM;IACd,IAAII,YAAY,EAAE;MAChBH,WAAW,CAACK,eAAe,CAAC,CAAC;IAC/B,CAAC,MAAM;MACLL,WAAW,CAACM,cAAc,CAAC,CAAC;IAC9B;IACA,OAAO,MAAM;MACXN,WAAW,CAACO,qBAAqB,CAAC,CAAC;IACrC,CAAC;EACH,CAAC,EAAE,CAACJ,YAAY,CAAC,CAAC;AACpB","ignoreList":[]}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ import { useCallback } from 'react';
4
+ import { useVideoStore } from "../components/core/VideoPlayerContext.js";
5
+ import { useVideoPlayerContext } from "../components/core/VideoPlayerContext.js";
6
+ /**
7
+ * Headless hook. Use this when you want to build your own UI
8
+ * while delegating all playback state to rn-videokit.
9
+ */
10
+ export function useVideoPlayer() {
11
+ const {
12
+ videoRef
13
+ } = useVideoPlayerContext();
14
+ const status = useVideoStore(s => s.status);
15
+ const currentTime = useVideoStore(s => s.currentTime);
16
+ const duration = useVideoStore(s => s.duration);
17
+ const buffered = useVideoStore(s => s.buffered);
18
+ const muted = useVideoStore(s => s.muted);
19
+ const speed = useVideoStore(s => s.speed);
20
+ const isFullscreen = useVideoStore(s => s.isFullscreen);
21
+ const error = useVideoStore(s => s.error);
22
+ const {
23
+ setMuted,
24
+ setSpeed,
25
+ setFullscreen,
26
+ setStatus
27
+ } = useVideoStore(s => s);
28
+ const play = useCallback(() => {
29
+ setStatus('playing');
30
+ }, [setStatus]);
31
+ const pause = useCallback(() => {
32
+ setStatus('paused');
33
+ }, [setStatus]);
34
+ const seek = useCallback(seconds => {
35
+ videoRef?.current?.seek(seconds);
36
+ }, [videoRef]);
37
+ const enterFullscreen = useCallback(() => setFullscreen(true), [setFullscreen]);
38
+ const exitFullscreen = useCallback(() => setFullscreen(false), [setFullscreen]);
39
+ return {
40
+ // State
41
+ status,
42
+ currentTime,
43
+ duration,
44
+ buffered,
45
+ muted,
46
+ speed,
47
+ isFullscreen,
48
+ error,
49
+ // API
50
+ play,
51
+ pause,
52
+ seek,
53
+ setMuted,
54
+ setSpeed,
55
+ enterFullscreen,
56
+ exitFullscreen
57
+ };
58
+ }
59
+ //# sourceMappingURL=useVideoPlayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useVideoStore","useVideoPlayerContext","useVideoPlayer","videoRef","status","s","currentTime","duration","buffered","muted","speed","isFullscreen","error","setMuted","setSpeed","setFullscreen","setStatus","play","pause","seek","seconds","current","enterFullscreen","exitFullscreen"],"sourceRoot":"../../../src","sources":["hooks/useVideoPlayer.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,aAAa,QAAQ,0CAAuC;AACrE,SAASC,qBAAqB,QAAQ,0CAAuC;AAG7E;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAA,EAAsC;EAClE,MAAM;IAAEC;EAAS,CAAC,GAAGF,qBAAqB,CAAC,CAAC;EAE5C,MAAMG,MAAM,GAAGJ,aAAa,CAAEK,CAAC,IAAKA,CAAC,CAACD,MAAM,CAAC;EAC7C,MAAME,WAAW,GAAGN,aAAa,CAAEK,CAAC,IAAKA,CAAC,CAACC,WAAW,CAAC;EACvD,MAAMC,QAAQ,GAAGP,aAAa,CAAEK,CAAC,IAAKA,CAAC,CAACE,QAAQ,CAAC;EACjD,MAAMC,QAAQ,GAAGR,aAAa,CAAEK,CAAC,IAAKA,CAAC,CAACG,QAAQ,CAAC;EACjD,MAAMC,KAAK,GAAGT,aAAa,CAAEK,CAAC,IAAKA,CAAC,CAACI,KAAK,CAAC;EAC3C,MAAMC,KAAK,GAAGV,aAAa,CAAEK,CAAC,IAAKA,CAAC,CAACK,KAAK,CAAC;EAC3C,MAAMC,YAAY,GAAGX,aAAa,CAAEK,CAAC,IAAKA,CAAC,CAACM,YAAY,CAAC;EACzD,MAAMC,KAAK,GAAGZ,aAAa,CAAEK,CAAC,IAAKA,CAAC,CAACO,KAAK,CAAC;EAE3C,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,aAAa;IAAEC;EAAU,CAAC,GAAGhB,aAAa,CACnEK,CAAC,IAAKA,CACT,CAAC;EAED,MAAMY,IAAI,GAAGlB,WAAW,CAAC,MAAM;IAC7BiB,SAAS,CAAC,SAAS,CAAC;EACtB,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,MAAME,KAAK,GAAGnB,WAAW,CAAC,MAAM;IAC9BiB,SAAS,CAAC,QAAQ,CAAC;EACrB,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,MAAMG,IAAI,GAAGpB,WAAW,CACrBqB,OAAe,IAAK;IACnBjB,QAAQ,EAAEkB,OAAO,EAAEF,IAAI,CAACC,OAAO,CAAC;EAClC,CAAC,EACD,CAACjB,QAAQ,CACX,CAAC;EAED,MAAMmB,eAAe,GAAGvB,WAAW,CACjC,MAAMgB,aAAa,CAAC,IAAI,CAAC,EACzB,CAACA,aAAa,CAChB,CAAC;EACD,MAAMQ,cAAc,GAAGxB,WAAW,CAChC,MAAMgB,aAAa,CAAC,KAAK,CAAC,EAC1B,CAACA,aAAa,CAChB,CAAC;EAED,OAAO;IACL;IACAX,MAAM;IACNE,WAAW;IACXC,QAAQ;IACRC,QAAQ;IACRC,KAAK;IACLC,KAAK;IACLC,YAAY;IACZC,KAAK;IACL;IACAK,IAAI;IACJC,KAAK;IACLC,IAAI;IACJN,QAAQ;IACRC,QAAQ;IACRQ,eAAe;IACfC;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useEffect, useRef } from 'react';
4
+ import { VolumeManager } from 'react-native-volume-manager';
5
+ import { clamp } from "../utils/clamp.js";
6
+ export function useVideoVolume() {
7
+ const currentVolume = useRef(0.5);
8
+ const init = useCallback(async () => {
9
+ try {
10
+ const {
11
+ volume
12
+ } = await VolumeManager.getVolume();
13
+ currentVolume.current = volume;
14
+ } catch (e) {
15
+ console.warn('[VideoKit] volume init failed:', e);
16
+ }
17
+ }, []);
18
+ const adjustVolume = useCallback(async delta => {
19
+ try {
20
+ const next = clamp(currentVolume.current + delta, 0, 1);
21
+ currentVolume.current = next;
22
+ await VolumeManager.setVolume(next);
23
+ } catch (e) {
24
+ console.warn('[VideoKit] volume adjust failed:', e);
25
+ }
26
+ }, []);
27
+ useEffect(() => {
28
+ init();
29
+ const sub = VolumeManager.addVolumeListener(({
30
+ volume
31
+ }) => {
32
+ currentVolume.current = volume;
33
+ });
34
+ return () => sub.remove();
35
+ }, [init]);
36
+ return {
37
+ initVolume: init,
38
+ adjustVolume,
39
+ currentVolume
40
+ };
41
+ }
42
+ //# sourceMappingURL=useVideoVolume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useRef","VolumeManager","clamp","useVideoVolume","currentVolume","init","volume","getVolume","current","e","console","warn","adjustVolume","delta","next","setVolume","sub","addVolumeListener","remove","initVolume"],"sourceRoot":"../../../src","sources":["hooks/useVideoVolume.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACtD,SAASC,aAAa,QAAQ,6BAA6B;AAC3D,SAASC,KAAK,QAAQ,mBAAgB;AAEtC,OAAO,SAASC,cAAcA,CAAA,EAAG;EAC/B,MAAMC,aAAa,GAAGJ,MAAM,CAAS,GAAG,CAAC;EAEzC,MAAMK,IAAI,GAAGP,WAAW,CAAC,YAAY;IACnC,IAAI;MACF,MAAM;QAAEQ;MAAO,CAAC,GAAG,MAAML,aAAa,CAACM,SAAS,CAAC,CAAC;MAClDH,aAAa,CAACI,OAAO,GAAGF,MAAM;IAChC,CAAC,CAAC,OAAOG,CAAC,EAAE;MACVC,OAAO,CAACC,IAAI,CAAC,gCAAgC,EAAEF,CAAC,CAAC;IACnD;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,YAAY,GAAGd,WAAW,CAAC,MAAOe,KAAa,IAAK;IACxD,IAAI;MACF,MAAMC,IAAI,GAAGZ,KAAK,CAACE,aAAa,CAACI,OAAO,GAAGK,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;MACvDT,aAAa,CAACI,OAAO,GAAGM,IAAI;MAC5B,MAAMb,aAAa,CAACc,SAAS,CAACD,IAAI,CAAC;IACrC,CAAC,CAAC,OAAOL,CAAC,EAAE;MACVC,OAAO,CAACC,IAAI,CAAC,kCAAkC,EAAEF,CAAC,CAAC;IACrD;EACF,CAAC,EAAE,EAAE,CAAC;EAENV,SAAS,CAAC,MAAM;IACdM,IAAI,CAAC,CAAC;IACN,MAAMW,GAAG,GAAGf,aAAa,CAACgB,iBAAiB,CAAC,CAAC;MAAEX;IAAO,CAAC,KAAK;MAC1DF,aAAa,CAACI,OAAO,GAAGF,MAAM;IAChC,CAAC,CAAC;IACF,OAAO,MAAMU,GAAG,CAACE,MAAM,CAAC,CAAC;EAC3B,CAAC,EAAE,CAACb,IAAI,CAAC,CAAC;EAEV,OAAO;IAAEc,UAAU,EAAEd,IAAI;IAAEO,YAAY;IAAER;EAAc,CAAC;AAC1D","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ export { VideoKit } from "./components/VideoKit.js";
4
+ export { useVideoPlayer } from "./hooks/useVideoPlayer.js";
5
+ export { useVideoStore } from "./components/core/VideoPlayerContext.js";
6
+ export { VideoPlayerProvider } from "./components/core/VideoPlayerContext.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["VideoKit","useVideoPlayer","useVideoStore","VideoPlayerProvider"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,0BAAuB;AAChD,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,aAAa,QAAQ,yCAAsC;AACpE,SAASC,mBAAmB,QAAQ,yCAAsC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/index.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ export const clamp = (value, min, max) => {
4
+ 'worklet';
5
+
6
+ return Math.min(Math.max(value, min), max);
7
+ };
8
+ //# sourceMappingURL=clamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["clamp","value","min","max","Math"],"sourceRoot":"../../../src","sources":["utils/clamp.ts"],"mappings":";;AAAA,OAAO,MAAMA,KAAK,GAAGA,CAACC,KAAa,EAAEC,GAAW,EAAEC,GAAW,KAAa;EACxE,SAAS;;EACT,OAAOC,IAAI,CAACF,GAAG,CAACE,IAAI,CAACD,GAAG,CAACF,KAAK,EAAEC,GAAG,CAAC,EAAEC,GAAG,CAAC;AAC5C,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ export const formatTime = seconds => {
4
+ const h = Math.floor(seconds / 3600);
5
+ const m = Math.floor(seconds % 3600 / 60);
6
+ const s = Math.floor(seconds % 60);
7
+ if (h > 0) {
8
+ return `${h}:${String(m).padStart(2, '0')}:${String(s).padStart(2, '0')}`;
9
+ }
10
+ return `${m}:${String(s).padStart(2, '0')}`;
11
+ };
12
+ //# sourceMappingURL=formatTime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["formatTime","seconds","h","Math","floor","m","s","String","padStart"],"sourceRoot":"../../../src","sources":["utils/formatTime.ts"],"mappings":";;AAAA,OAAO,MAAMA,UAAU,GAAIC,OAAe,IAAa;EACrD,MAAMC,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACH,OAAO,GAAG,IAAI,CAAC;EACpC,MAAMI,CAAC,GAAGF,IAAI,CAACC,KAAK,CAAEH,OAAO,GAAG,IAAI,GAAI,EAAE,CAAC;EAC3C,MAAMK,CAAC,GAAGH,IAAI,CAACC,KAAK,CAACH,OAAO,GAAG,EAAE,CAAC;EAClC,IAAIC,CAAC,GAAG,CAAC,EAAE;IACT,OAAO,GAAGA,CAAC,IAAIK,MAAM,CAACF,CAAC,CAAC,CAACG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAID,MAAM,CAACD,CAAC,CAAC,CAACE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;EAC3E;EACA,OAAO,GAAGH,CAAC,IAAIE,MAAM,CAACD,CAAC,CAAC,CAACE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AAC7C,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export * from "./clamp.js";
4
+ export * from "./formatTime.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":";;AAAA,cAAc,YAAS;AACvB,cAAc,iBAAc","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,3 @@
1
+ import type { VideoKitProps } from '../types';
2
+ export declare function VideoKit(props: VideoKitProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=VideoKit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoKit.d.ts","sourceRoot":"","sources":["../../../../src/components/VideoKit.tsx"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA+U9C,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAM5C"}
@@ -0,0 +1,6 @@
1
+ interface Props {
2
+ onFullscreenChange?: (isFullscreen: boolean) => void;
3
+ }
4
+ export declare function FullscreenButton({ onFullscreenChange }: Props): import("react/jsx-runtime").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=FullscreenButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FullscreenButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/controls/FullscreenButton.tsx"],"names":[],"mappings":"AAIA,UAAU,KAAK;IACb,kBAAkB,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,EAAE,KAAK,2CAe7D"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ type IconName = 'play' | 'pause' | 'volume' | 'mute' | 'fullscreen' | 'fullscreen-exit';
3
+ interface Props {
4
+ name: IconName;
5
+ size?: number;
6
+ color?: string;
7
+ }
8
+ export declare function Icon({ name, size, color }: Props): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
9
+ export {};
10
+ //# sourceMappingURL=Icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../../src/components/controls/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,KAAK,QAAQ,GACT,MAAM,GACN,OAAO,GACP,QAAQ,GACR,MAAM,GACN,YAAY,GACZ,iBAAiB,CAAC;AAEtB,UAAU,KAAK;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgDD,wBAAgB,IAAI,CAAC,EAAE,IAAI,EAAE,IAAS,EAAE,KAAc,EAAE,EAAE,KAAK,0EAO9D"}
@@ -0,0 +1,2 @@
1
+ export declare function PlayPauseButton(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=PlayPauseButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayPauseButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/controls/PlayPauseButton.tsx"],"names":[],"mappings":"AAIA,wBAAgB,eAAe,4CAe9B"}
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ onScrubStart?: () => void;
3
+ onScrubEnd?: () => void;
4
+ }
5
+ export declare function Scrubber({ onScrubStart, onScrubEnd }: Props): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=Scrubber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scrubber.d.ts","sourceRoot":"","sources":["../../../../../src/components/controls/Scrubber.tsx"],"names":[],"mappings":"AAgBA,UAAU,KAAK;IACb,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,wBAAgB,QAAQ,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,KAAK,2CAiG3D"}
@@ -0,0 +1,2 @@
1
+ export declare function SpeedButton(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=SpeedButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpeedButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/controls/SpeedButton.tsx"],"names":[],"mappings":"AAMA,wBAAgB,WAAW,4CA+C1B"}
@@ -0,0 +1,2 @@
1
+ export declare function TimeDisplay(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=TimeDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeDisplay.d.ts","sourceRoot":"","sources":["../../../../../src/components/controls/TimeDisplay.tsx"],"names":[],"mappings":"AAIA,wBAAgB,WAAW,4CAW1B"}
@@ -0,0 +1,2 @@
1
+ export declare function VolumeButton(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=VolumeButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VolumeButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/controls/VolumeButton.tsx"],"names":[],"mappings":"AAIA,wBAAgB,YAAY,4CAa3B"}
@@ -0,0 +1,14 @@
1
+ import type { VideoSource, VideoProgress } from '../../types';
2
+ interface Props {
3
+ source: VideoSource;
4
+ autoPlay: boolean;
5
+ loop: boolean;
6
+ poster?: string;
7
+ onProgress?: (p: VideoProgress) => void;
8
+ onEnd?: () => void;
9
+ onError?: (e: Error) => void;
10
+ onBuffer?: (buffering: boolean) => void;
11
+ }
12
+ export declare function VideoPlayer({ source, autoPlay, loop, poster, onProgress, onEnd, onError, onBuffer, }: Props): import("react/jsx-runtime").JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=VideoPlayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/VideoPlayer.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE9D,UAAU,KAAK;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAED,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,UAAU,EACV,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE,KAAK,2CAmHP"}
@@ -0,0 +1,48 @@
1
+ import React from 'react';
2
+ import type { VideoRef } from 'react-native-video';
3
+ import type { PlaybackStatus, VideoKitTheme } from '../../types';
4
+ export declare const useVideoTheme: () => VideoKitTheme;
5
+ interface VideoState {
6
+ status: PlaybackStatus;
7
+ currentTime: number;
8
+ duration: number;
9
+ buffered: number;
10
+ muted: boolean;
11
+ speed: number;
12
+ isFullscreen: boolean;
13
+ controlsVisible: boolean;
14
+ error: string | null;
15
+ setStatus: (status: PlaybackStatus) => void;
16
+ setCurrentTime: (t: number) => void;
17
+ setDuration: (d: number) => void;
18
+ setBuffered: (b: number) => void;
19
+ setMuted: (m: boolean) => void;
20
+ setSpeed: (s: number) => void;
21
+ setFullscreen: (f: boolean) => void;
22
+ setControlsVisible: (v: boolean) => void;
23
+ setError: (e: string | null) => void;
24
+ reset: () => void;
25
+ }
26
+ export type VideoStore = ReturnType<typeof createVideoStore>;
27
+ export declare const createVideoStore: () => import("zustand").StoreApi<VideoState>;
28
+ interface VideoPlayerContextValue {
29
+ videoRef: React.RefObject<VideoRef | null>;
30
+ store: VideoStore;
31
+ }
32
+ export declare const VideoPlayerProvider: ({ children, theme, }: {
33
+ children: React.ReactNode;
34
+ theme?: VideoKitTheme;
35
+ }) => import("react/jsx-runtime").JSX.Element;
36
+ export declare const useVideoPlayerContext: () => VideoPlayerContextValue;
37
+ /**
38
+ * Scoped reactive store hook — replaces the old global useVideoStore.
39
+ * Use this everywhere instead of the old import.
40
+ */
41
+ export declare const useVideoStore: <T>(selector: (state: VideoState) => T) => T;
42
+ /**
43
+ * For imperative access (getState / setState) without subscribing.
44
+ * Use in callbacks and gesture handlers.
45
+ */
46
+ export declare const useVideoStoreApi: () => import("zustand").StoreApi<VideoState>;
47
+ export {};
48
+ //# sourceMappingURL=VideoPlayerContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoPlayerContext.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/VideoPlayerContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AAEjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjE,eAAO,MAAM,aAAa,qBAAiC,CAAC;AAI5D,UAAU,UAAU;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5C,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,kBAAkB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACrC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAcD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D,eAAO,MAAM,gBAAgB,8CAaxB,CAAC;AAIN,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC3C,KAAK,EAAE,UAAU,CAAC;CACnB;AAMD,eAAO,MAAM,mBAAmB,GAAI,sBAGjC;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,4CAgBA,CAAC;AAIF,eAAO,MAAM,qBAAqB,+BAOjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,CAAC,KAAK,CAKtE,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,8CAG5B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { useVideoStore } from './VideoPlayerContext';
2
+ export { VideoPlayerProvider, useVideoPlayerContext, } from './VideoPlayerContext';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { VideoPlayer } from './core/VideoPlayer';
2
+ export { VideoKit } from './VideoKit';
3
+ export { useVideoPlayer } from '../hooks/useVideoPlayer';
4
+ export { VideoPlayerProvider, useVideoPlayerContext, useVideoStore, } from './core/VideoPlayerContext';
5
+ export type { VideoKitProps, VideoKitTheme, VideoKitControlsConfig, VideoSource, VideoPlayerAPI, VideoPlayerState, VideoProgress, PlaybackStatus, } from '../types';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,GACd,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EACV,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,cAAc,GACf,MAAM,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function BufferingOverlay(): import("react/jsx-runtime").JSX.Element | null;
2
+ //# sourceMappingURL=BufferingOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BufferingOverlay.d.ts","sourceRoot":"","sources":["../../../../../src/components/overlays/BufferingOverlay.tsx"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,mDAS/B"}
@@ -0,0 +1,5 @@
1
+ export interface DoubleTapSeekHandle {
2
+ show: (side: 'left' | 'right', seconds: number) => void;
3
+ }
4
+ export declare const DoubleTapSeek: import("react").ForwardRefExoticComponent<import("react").RefAttributes<DoubleTapSeekHandle>>;
5
+ //# sourceMappingURL=DoubleTapSeek.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DoubleTapSeek.d.ts","sourceRoot":"","sources":["../../../../../src/components/overlays/DoubleTapSeek.tsx"],"names":[],"mappings":"AAUA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAED,eAAO,MAAM,aAAa,+FAoDxB,CAAC"}
@@ -0,0 +1,6 @@
1
+ interface Props {
2
+ onRetry?: () => void;
3
+ }
4
+ export declare function ErrorOverlay({ onRetry }: Props): import("react/jsx-runtime").JSX.Element | null;
5
+ export {};
6
+ //# sourceMappingURL=ErrorOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorOverlay.d.ts","sourceRoot":"","sources":["../../../../../src/components/overlays/ErrorOverlay.tsx"],"names":[],"mappings":"AAGA,UAAU,KAAK;IACb,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,kDAgB9C"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ export type GestureIndicatorType = 'brightness' | 'volume';
3
+ export interface GestureIndicatorHandle {
4
+ show: (type: GestureIndicatorType, value: number) => void;
5
+ update: (value: number) => void;
6
+ hide: () => void;
7
+ }
8
+ export declare const GestureIndicator: React.ForwardRefExoticComponent<React.RefAttributes<GestureIndicatorHandle>>;
9
+ //# sourceMappingURL=GestureIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GestureIndicator.d.ts","sourceRoot":"","sources":["../../../../../src/components/overlays/GestureIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAS5E,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,QAAQ,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,gBAAgB,8EA6D3B,CAAC"}
@@ -0,0 +1,6 @@
1
+ interface Props {
2
+ uri?: string;
3
+ }
4
+ export declare function LoadingPoster({ uri }: Props): import("react/jsx-runtime").JSX.Element | null;
5
+ export {};
6
+ //# sourceMappingURL=LoadingPoster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingPoster.d.ts","sourceRoot":"","sources":["../../../../../src/components/overlays/LoadingPoster.tsx"],"names":[],"mappings":"AAGA,UAAU,KAAK;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,kDAa3C"}
@@ -0,0 +1,4 @@
1
+ export { useVideoPlayer } from './useVideoPlayer';
2
+ export { useVideoControls } from './useVideoControls';
3
+ export { useVideoOrientation } from './useVideoOrientation';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function useVideoBrightness(): {
2
+ initBrightness: () => void;
3
+ adjustBrightness: (delta: number) => void;
4
+ };
5
+ //# sourceMappingURL=useVideoBrightness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVideoBrightness.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useVideoBrightness.ts"],"names":[],"mappings":"AAOA,wBAAgB,kBAAkB;;8BAWG,MAAM;EAe1C"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Manages controls visibility with an auto-hide timer.
3
+ * Call `showControls()` on any user interaction to reset the timer.
4
+ */
5
+ export declare function useVideoControls(autoHideDelayMs?: number): {
6
+ controlsVisible: boolean;
7
+ showControls: () => void;
8
+ keepControlsVisible: () => void;
9
+ toggleControls: () => void;
10
+ };
11
+ //# sourceMappingURL=useVideoControls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVideoControls.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useVideoControls.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,eAAe,SAAO;;;;;EAsDtD"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Locks/unlocks screen orientation in response to fullscreen state.
3
+ * Fullscreen → landscape; exit → portrait.
4
+ */
5
+ export declare function useVideoOrientation(): void;
6
+ //# sourceMappingURL=useVideoOrientation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVideoOrientation.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useVideoOrientation.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,mBAAmB,SAalC"}
@@ -0,0 +1,7 @@
1
+ import type { VideoPlayerAPI, VideoPlayerState } from '../types';
2
+ /**
3
+ * Headless hook. Use this when you want to build your own UI
4
+ * while delegating all playback state to rn-videokit.
5
+ */
6
+ export declare function useVideoPlayer(): VideoPlayerState & VideoPlayerAPI;
7
+ //# sourceMappingURL=useVideoPlayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVideoPlayer.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useVideoPlayer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,GAAG,cAAc,CA2DlE"}
@@ -0,0 +1,6 @@
1
+ export declare function useVideoVolume(): {
2
+ initVolume: () => Promise<void>;
3
+ adjustVolume: (delta: number) => Promise<void>;
4
+ currentVolume: import("react").RefObject<number>;
5
+ };
6
+ //# sourceMappingURL=useVideoVolume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVideoVolume.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useVideoVolume.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc;;0BAYmB,MAAM;;EAmBtD"}
@@ -0,0 +1,6 @@
1
+ export { VideoKit } from './components/VideoKit';
2
+ export { useVideoPlayer } from './hooks/useVideoPlayer';
3
+ export { useVideoStore } from './components/core/VideoPlayerContext';
4
+ export { VideoPlayerProvider } from './components/core/VideoPlayerContext';
5
+ export type { VideoKitProps, VideoKitTheme, VideoKitControlsConfig, VideoSource, VideoPlayerAPI, VideoPlayerState, VideoProgress, PlaybackStatus, } from './types';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,YAAY,EACV,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,cAAc,GACf,MAAM,SAAS,CAAC"}