@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,96 @@
1
+ import type { StyleProp, ViewStyle } from 'react-native';
2
+ import type { VideoSrc } from 'react-native-video';
3
+ export type VideoSource = VideoSrc | {
4
+ uri: string;
5
+ headers?: Record<string, string>;
6
+ } | number;
7
+ export interface VideoKitTheme {
8
+ /** Primary accent color (scrubber thumb, active icons). Default: '#ffffff' */
9
+ accentColor?: string;
10
+ /** Controls tint (icons, time text). Default: '#ffffff' */
11
+ controlsTint?: string;
12
+ /** Overlay background. Default: 'rgba(0,0,0,0.45)' */
13
+ overlayColor?: string;
14
+ /** Scrubber track height. Default: 3 */
15
+ trackHeight?: number;
16
+ }
17
+ export interface VideoKitControlsConfig {
18
+ /** Show play/pause button. Default: true */
19
+ playPause?: boolean;
20
+ /** Show scrubber. Default: true */
21
+ scrubber?: boolean;
22
+ /** Show time display (current / duration). Default: true */
23
+ time?: boolean;
24
+ /** Show mute/volume button. Default: true */
25
+ volume?: boolean;
26
+ /** Show fullscreen button. Default: true */
27
+ fullscreen?: boolean;
28
+ /** Show playback speed button. Default: true */
29
+ speed?: boolean;
30
+ }
31
+ export type PlaybackStatus = 'idle' | 'loading' | 'buffering' | 'playing' | 'paused' | 'error';
32
+ export interface VideoProgress {
33
+ currentTime: number;
34
+ playableDuration: number;
35
+ seekableDuration: number;
36
+ }
37
+ export interface VideoKitProps {
38
+ /** Video source — URI object or local require(). Required. */
39
+ source: VideoSource;
40
+ /** Poster image shown before first frame. */
41
+ poster?: string;
42
+ /** Start playing on mount. Default: false */
43
+ autoPlay?: boolean;
44
+ /** Loop playback. Default: false */
45
+ loop?: boolean;
46
+ /** Mute audio. Default: false */
47
+ muted?: boolean;
48
+ /** Called every 250 ms while playing. */
49
+ onProgress?: (progress: VideoProgress) => void;
50
+ /** Called when playback reaches the end. */
51
+ onEnd?: () => void;
52
+ /** Called when fullscreen toggle is triggered. */
53
+ onFullscreenChange?: (isFullscreen: boolean) => void;
54
+ /** Called when an error occurs. */
55
+ onError?: (error: Error) => void;
56
+ /** Called when buffering state changes. */
57
+ onBuffer?: (isBuffering: boolean) => void;
58
+ /** Fine-grained control over which controls render. */
59
+ controls?: VideoKitControlsConfig | boolean;
60
+ /** Visual theming overrides. */
61
+ theme?: VideoKitTheme;
62
+ /** Duration in ms before controls auto-hide. Default: 3000 */
63
+ autoHideDelay?: number;
64
+ /** Seek amount in seconds for double-tap. Default: 10 */
65
+ doubleTapSeekSeconds?: number;
66
+ /** Container style. */
67
+ style?: StyleProp<ViewStyle>;
68
+ /** Test ID for E2E. */
69
+ testID?: string;
70
+ safeAreaInsets?: {
71
+ top?: number;
72
+ bottom?: number;
73
+ left?: number;
74
+ right?: number;
75
+ };
76
+ }
77
+ export interface VideoPlayerAPI {
78
+ play: () => void;
79
+ pause: () => void;
80
+ seek: (seconds: number) => void;
81
+ setMuted: (muted: boolean) => void;
82
+ setSpeed: (rate: number) => void;
83
+ enterFullscreen: () => void;
84
+ exitFullscreen: () => void;
85
+ }
86
+ export interface VideoPlayerState {
87
+ status: PlaybackStatus;
88
+ currentTime: number;
89
+ duration: number;
90
+ buffered: number;
91
+ muted: boolean;
92
+ speed: number;
93
+ isFullscreen: boolean;
94
+ error: string | null;
95
+ }
96
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const clamp: (value: number, min: number, max: number) => number;
2
+ //# sourceMappingURL=clamp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clamp.d.ts","sourceRoot":"","sources":["../../../../src/utils/clamp.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAG/D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const formatTime: (seconds: number) => string;
2
+ //# sourceMappingURL=formatTime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatTime.d.ts","sourceRoot":"","sources":["../../../../src/utils/formatTime.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,KAAG,MAQ5C,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './clamp';
2
+ export * from './formatTime';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
package/package.json ADDED
@@ -0,0 +1,191 @@
1
+ {
2
+ "name": "@venomousone/rn-videokit",
3
+ "version": "0.1.0",
4
+ "description": "A gesture-driven, composable video player kit for React Native",
5
+ "main": "./lib/module/index.js",
6
+ "types": "./lib/typescript/src/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "source": "./src/index.ts",
10
+ "types": "./lib/typescript/src/index.d.ts",
11
+ "default": "./lib/module/index.js"
12
+ },
13
+ "./package.json": "./package.json"
14
+ },
15
+ "files": [
16
+ "src",
17
+ "lib",
18
+ "android",
19
+ "ios",
20
+ "cpp",
21
+ "*.podspec",
22
+ "react-native.config.js",
23
+ "!ios/build",
24
+ "!android/build",
25
+ "!android/gradle",
26
+ "!android/gradlew",
27
+ "!android/gradlew.bat",
28
+ "!android/local.properties",
29
+ "!**/__tests__",
30
+ "!**/__fixtures__",
31
+ "!**/__mocks__",
32
+ "!**/.*"
33
+ ],
34
+ "scripts": {
35
+ "example": "yarn workspace rn-videokit-example",
36
+ "clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
37
+ "prepare": "bob build",
38
+ "typecheck": "tsc",
39
+ "release": "release-it --only-version",
40
+ "test": "jest",
41
+ "lint": "eslint \"**/*.{js,ts,tsx}\""
42
+ },
43
+ "keywords": [
44
+ "react-native",
45
+ "video",
46
+ "video-player",
47
+ "reanimated",
48
+ "gesture-handler",
49
+ "ios",
50
+ "android"
51
+ ],
52
+ "repository": {
53
+ "type": "git",
54
+ "url": "git+https://github.com/mureyvenom/rn-videokit.git"
55
+ },
56
+ "author": "mureyvenom <holuwamurewa@gmail.com> (https://github.com/mureyvenom)",
57
+ "license": "MIT",
58
+ "bugs": {
59
+ "url": "https://github.com/mureyvenom/rn-videokit/issues"
60
+ },
61
+ "homepage": "https://github.com/mureyvenom/rn-videokit#readme",
62
+ "publishConfig": {
63
+ "registry": "https://registry.npmjs.org/"
64
+ },
65
+ "devDependencies": {
66
+ "@commitlint/config-conventional": "20.5.0",
67
+ "@eslint/compat": "2.0.3",
68
+ "@eslint/eslintrc": "3.3.5",
69
+ "@eslint/js": "10.0.1",
70
+ "@jest/globals": "30.0.0",
71
+ "@react-native/babel-preset": "0.85.0",
72
+ "@react-native/eslint-config": "0.85.0",
73
+ "@react-native/jest-preset": "0.85.0",
74
+ "@reeq/react-native-device-brightness": "2.0.2",
75
+ "@release-it/conventional-changelog": "10.0.6",
76
+ "@types/react": "19.2.0",
77
+ "commitlint": "20.5.0",
78
+ "del-cli": "7.0.0",
79
+ "eslint": "9.39.4",
80
+ "eslint-config-prettier": "10.1.8",
81
+ "eslint-plugin-ft-flow": "3.0.11",
82
+ "eslint-plugin-prettier": "5.5.5",
83
+ "jest": "30.3.0",
84
+ "lefthook": "2.1.4",
85
+ "prettier": "3.8.1",
86
+ "react": "19.2.3",
87
+ "react-native": "0.85.0",
88
+ "react-native-builder-bob": "0.41.0",
89
+ "react-native-gesture-handler": "2.16.2",
90
+ "react-native-orientation-locker": "1.7.0",
91
+ "react-native-reanimated": "4.3.0",
92
+ "react-native-svg": "15.15.4",
93
+ "react-native-video": "6.3.0",
94
+ "react-native-volume-manager": "2.0.8",
95
+ "react-native-worklets": "0.8.3",
96
+ "release-it": "19.2.4",
97
+ "turbo": "2.8.21",
98
+ "typescript": "6.0.2"
99
+ },
100
+ "peerDependencies": {
101
+ "@reeq/react-native-device-brightness": "2.0.2",
102
+ "react": "*",
103
+ "react-native": "*",
104
+ "react-native-gesture-handler": "2.16.2",
105
+ "react-native-orientation-locker": "1.7.0",
106
+ "react-native-reanimated": "4.3.0",
107
+ "react-native-svg": "15.15.4",
108
+ "react-native-video": "6.3.0",
109
+ "react-native-volume-manager": "2.0.8",
110
+ "react-native-worklets": "0.8.3"
111
+ },
112
+ "peerDependenciesMeta": {
113
+ "react-native-safe-area-context": {
114
+ "optional": true
115
+ }
116
+ },
117
+ "workspaces": [
118
+ "example"
119
+ ],
120
+ "packageManager": "yarn@4.11.0",
121
+ "react-native-builder-bob": {
122
+ "source": "src",
123
+ "output": "lib",
124
+ "targets": [
125
+ [
126
+ "module",
127
+ {
128
+ "esm": true
129
+ }
130
+ ],
131
+ [
132
+ "typescript",
133
+ {
134
+ "project": "tsconfig.build.json"
135
+ }
136
+ ]
137
+ ]
138
+ },
139
+ "release-it": {
140
+ "git": {
141
+ "commitMessage": "chore: release ${version}",
142
+ "tagName": "v${version}"
143
+ },
144
+ "npm": {
145
+ "publish": true
146
+ },
147
+ "github": {
148
+ "release": true
149
+ },
150
+ "plugins": {
151
+ "@release-it/conventional-changelog": {
152
+ "preset": {
153
+ "name": "angular"
154
+ }
155
+ }
156
+ }
157
+ },
158
+ "commitlint": {
159
+ "extends": [
160
+ "@commitlint/config-conventional"
161
+ ]
162
+ },
163
+ "jest": {
164
+ "preset": "@react-native/jest-preset",
165
+ "modulePathIgnorePatterns": [
166
+ "<rootDir>/example/node_modules",
167
+ "<rootDir>/lib/"
168
+ ]
169
+ },
170
+ "prettier": {
171
+ "quoteProps": "consistent",
172
+ "singleQuote": true,
173
+ "tabWidth": 2,
174
+ "trailingComma": "es5",
175
+ "useTabs": false
176
+ },
177
+ "create-react-native-library": {
178
+ "type": "library",
179
+ "languages": "js",
180
+ "tools": [
181
+ "release-it",
182
+ "lefthook",
183
+ "jest",
184
+ "eslint"
185
+ ],
186
+ "version": "0.62.0"
187
+ },
188
+ "dependencies": {
189
+ "zustand": "5.0.13"
190
+ }
191
+ }