mega-stream-proxy 0.1.9 → 0.2.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 (49) hide show
  1. package/README.md +14 -49
  2. package/dist/megaFile.js +22 -9
  3. package/dist/{Player/playerAndroid/MegaVideoPlayerAndroid.d.ts → player/MegaVideoPlayer.d.ts} +4 -13
  4. package/dist/player/MegaVideoPlayer.js +307 -0
  5. package/dist/{Player/playerweb → player}/PlayerControls.d.ts +2 -14
  6. package/dist/player/PlayerControls.js +289 -0
  7. package/dist/{Player/playerweb → player}/SubtitleDisplay.d.ts +3 -3
  8. package/dist/{Player/playerweb → player}/SubtitleDisplay.js +1 -1
  9. package/dist/player/index.d.ts +3 -0
  10. package/dist/player/index.js +3 -0
  11. package/dist/{Player/playerweb/MegaVideoPlayer.d.ts → playerweb/MegaVideoPlayerWeb.d.ts} +6 -18
  12. package/dist/{Player/playerweb/MegaVideoPlayer.js → playerweb/MegaVideoPlayerWeb.js} +18 -18
  13. package/dist/{Player/playerAndroid/PlayerControlsAndroid.d.ts → playerweb/PlayerControlsWeb.d.ts} +2 -16
  14. package/dist/playerweb/PlayerControlsWeb.js +289 -0
  15. package/dist/playerweb/SubtitleDisplayWeb.d.ts +15 -0
  16. package/dist/playerweb/SubtitleDisplayWeb.js +32 -0
  17. package/dist/playerweb/index.d.ts +3 -0
  18. package/dist/playerweb/index.js +3 -0
  19. package/dist/proxy/native.js +11 -3
  20. package/expo-module.config.json +3 -0
  21. package/package.json +15 -18
  22. package/src/megaFile.ts +28 -15
  23. package/src/player/MegaVideoPlayer.tsx +474 -0
  24. package/src/{Player/playerweb → player}/PlayerControls.tsx +200 -369
  25. package/src/{Player/playerweb → player}/SubtitleDisplay.tsx +3 -3
  26. package/src/player/index.ts +7 -0
  27. package/src/{Player/playerweb/MegaVideoPlayer.tsx → playerweb/MegaVideoPlayerWeb.tsx} +41 -58
  28. package/src/playerweb/PlayerControlsWeb.tsx +629 -0
  29. package/src/playerweb/SubtitleDisplayWeb.tsx +48 -0
  30. package/src/playerweb/index.ts +3 -0
  31. package/src/proxy/native.ts +10 -3
  32. package/dist/Player/native.d.ts +0 -3
  33. package/dist/Player/native.js +0 -3
  34. package/dist/Player/playerAndroid/MegaVideoPlayerAndroid.js +0 -624
  35. package/dist/Player/playerAndroid/PlayerControlsAndroid.js +0 -370
  36. package/dist/Player/playerAndroid/SubtitleDisplayAndroid.d.ts +0 -21
  37. package/dist/Player/playerAndroid/SubtitleDisplayAndroid.js +0 -55
  38. package/dist/Player/playerAndroid/index.d.ts +0 -3
  39. package/dist/Player/playerAndroid/index.js +0 -3
  40. package/dist/Player/playerweb/PlayerControls.js +0 -346
  41. package/dist/Player/playerweb/index.d.ts +0 -3
  42. package/dist/Player/playerweb/index.js +0 -3
  43. package/dist/Player/web.d.ts +0 -3
  44. package/dist/Player/web.js +0 -3
  45. package/src/Player/playerAndroid/MegaVideoPlayerAndroid.tsx +0 -825
  46. package/src/Player/playerAndroid/PlayerControlsAndroid.tsx +0 -824
  47. package/src/Player/playerAndroid/SubtitleDisplayAndroid.tsx +0 -80
  48. package/src/Player/playerAndroid/index.ts +0 -7
  49. package/src/Player/playerweb/index.ts +0 -3
@@ -1,346 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useMemo, useState } from "react";
3
- import { ActivityIndicator, PanResponder, StyleSheet, Text, TouchableOpacity, View, } from "react-native";
4
- import { Ionicons } from "@expo/vector-icons";
5
- import { SubtitleDisplayWeb } from "./SubtitleDisplay.js";
6
- const fmt = (s) => {
7
- if (!Number.isFinite(s) || s < 0)
8
- s = 0;
9
- const h = Math.floor(s / 3600);
10
- const m = Math.floor((s % 3600) / 60);
11
- const sec = Math.floor(s % 60);
12
- return `${h.toString().padStart(2, "0")}:${m
13
- .toString()
14
- .padStart(2, "0")}:${sec.toString().padStart(2, "0")}`;
15
- };
16
- const clamp01 = (v) => Math.min(1, Math.max(0, v));
17
- export function PlayerControlsWeb(props) {
18
- const { playing, buffering, currentTime, duration, muted, title, visible, subtitlesOn, volume, subtitleTracks, subtitleTrack, onSelectSubtitleTrack, subtitleFontSize, onChangeSubtitleFontSize, loadProgress, introRegion, outroRegion, onSkipIntro, onSkipOutro, resolutions, resolution, onSelectResolution, onToggleVisible, onPlayPause, onSkip, onSeek, onToggleMute, onToggleSubtitles, onVolume, onFullscreen, width, height, cue, enabled, fontSize, } = props;
19
- const hasSubs = (subtitleTracks?.length ?? 0) > 0;
20
- const activeRes = resolution ?? resolutions?.[0] ?? "";
21
- const [trackW, setTrackW] = useState(0);
22
- const [scrubPct, setScrubPct] = useState(null);
23
- const [volW, setVolW] = useState(0);
24
- const [sizeW, setSizeW] = useState(0);
25
- const [settingsOpen, setSettingsOpen] = useState(false);
26
- const pct = duration > 0 ? clamp01(currentTime / duration) : 0;
27
- const volPct = clamp01(volume);
28
- const inIntro = !!introRegion &&
29
- introRegion[1] > introRegion[0] &&
30
- currentTime >= introRegion[0] &&
31
- currentTime <= introRegion[1] &&
32
- !!onSkipIntro;
33
- const inOutro = !!outroRegion &&
34
- outroRegion[1] > outroRegion[0] &&
35
- currentTime >= outroRegion[0] &&
36
- currentTime <= outroRegion[1] &&
37
- !!onSkipOutro;
38
- const pan = useMemo(() => PanResponder.create({
39
- onStartShouldSetPanResponder: () => true,
40
- onMoveShouldSetPanResponder: () => true,
41
- onPanResponderGrant: (e) => setScrubPct(trackW > 0 ? clamp01(e.nativeEvent.locationX / trackW) : 0),
42
- onPanResponderMove: (e) => setScrubPct(trackW > 0 ? clamp01(e.nativeEvent.locationX / trackW) : 0),
43
- onPanResponderRelease: (e) => {
44
- const p = trackW > 0 ? clamp01(e.nativeEvent.locationX / trackW) : 0;
45
- setScrubPct(null);
46
- onSeek(p * duration);
47
- },
48
- }), [trackW, duration, onSeek]);
49
- const volPan = useMemo(() => PanResponder.create({
50
- onStartShouldSetPanResponder: () => true,
51
- onMoveShouldSetPanResponder: () => true,
52
- onPanResponderGrant: (e) => onVolume(volW > 0 ? clamp01(e.nativeEvent.locationX / volW) : 1),
53
- onPanResponderMove: (e) => onVolume(volW > 0 ? clamp01(e.nativeEvent.locationX / volW) : 1),
54
- }), [volW, onVolume]);
55
- const SIZE_MIN = 10;
56
- const SIZE_MAX = 34;
57
- const currentSize = subtitleFontSize ?? 14;
58
- const sizePct = clamp01((currentSize - SIZE_MIN) / (SIZE_MAX - SIZE_MIN));
59
- const sizePan = useMemo(() => PanResponder.create({
60
- onStartShouldSetPanResponder: () => true,
61
- onMoveShouldSetPanResponder: () => true,
62
- onPanResponderGrant: (e) => {
63
- if (!onChangeSubtitleFontSize)
64
- return;
65
- const p = sizeW > 0 ? clamp01(e.nativeEvent.locationX / sizeW) : 0;
66
- onChangeSubtitleFontSize?.(Math.round(SIZE_MIN + p * (SIZE_MAX - SIZE_MIN)));
67
- },
68
- onPanResponderMove: (e) => {
69
- if (!onChangeSubtitleFontSize)
70
- return;
71
- const p = sizeW > 0 ? clamp01(e.nativeEvent.locationX / sizeW) : 0;
72
- onChangeSubtitleFontSize?.(Math.round(SIZE_MIN + p * (SIZE_MAX - SIZE_MIN)));
73
- },
74
- }), [sizeW, onChangeSubtitleFontSize]);
75
- const shownPct = scrubPct ?? pct;
76
- const volIcon = muted || volume === 0
77
- ? "volume-mute"
78
- : volume < 0.5
79
- ? "volume-low"
80
- : "volume-high";
81
- const showSubsSection = hasSubs || !!onChangeSubtitleFontSize;
82
- return (_jsxs(View, { style: [
83
- styles.root,
84
- StyleSheet.absoluteFill,
85
- { width: width, height: height },
86
- ], children: [_jsx(TouchableOpacity, { style: StyleSheet.absoluteFill, activeOpacity: 1, onPress: onToggleVisible }), buffering && (_jsx(View, { style: [StyleSheet.absoluteFill, styles.centerBadge], pointerEvents: "none", children: _jsx(ActivityIndicator, { color: "#e50914", size: "large" }) })), visible && (_jsxs(View, { style: [
87
- StyleSheet.absoluteFill,
88
- { width: "100%", height: "100%", position: "absolute" },
89
- ], pointerEvents: "box-none", children: [_jsx(View, { style: [styles.bar, styles.top], pointerEvents: "box-none", children: !!title && (_jsx(Text, { numberOfLines: 1, style: styles.title, children: title })) }), _jsxs(View, { style: [styles.centerRow, { flex: 1 }], pointerEvents: "box-none", children: [_jsx(TouchableOpacity, { style: styles.skipBtn, onPress: () => onSkip(-10), children: _jsx(Ionicons, { name: "play-back", size: 30, color: "#fff" }) }), _jsx(TouchableOpacity, { style: styles.ppBtn, onPress: onPlayPause, children: _jsx(Ionicons, { name: buffering ? "ellipsis-horizontal" : playing ? "pause" : "play", size: 38, color: "#fff" }) }), _jsx(TouchableOpacity, { style: styles.skipBtn, onPress: () => onSkip(10), children: _jsx(Ionicons, { name: "play-forward", size: 30, color: "#fff" }) })] }), _jsxs(View, { style: [styles.bar, styles.bottom], pointerEvents: "box-none", children: [_jsx(Text, { style: styles.time, children: fmt(scrubPct !== null ? scrubPct * duration : currentTime) }), _jsxs(View, { style: styles.trackWrap, onLayout: (e) => setTrackW(e.nativeEvent.layout.width), ...pan.panHandlers, children: [_jsxs(View, { style: styles.track, children: [loadProgress != null && loadProgress > 0 && (_jsx(View, { style: [
90
- styles.loadLine,
91
- { width: `${clamp01(loadProgress) * 100}%` },
92
- ] })), introRegion &&
93
- duration > 0 &&
94
- introRegion[1] > introRegion[0] && (_jsx(View, { style: [
95
- styles.introHighlight,
96
- {
97
- left: `${clamp01(introRegion[0] / duration) * 100}%`,
98
- width: `${clamp01((introRegion[1] - introRegion[0]) / duration) * 100}%`,
99
- },
100
- ] })), outroRegion &&
101
- duration > 0 &&
102
- outroRegion[1] > outroRegion[0] && (_jsx(View, { style: [
103
- styles.outroHighlight,
104
- {
105
- left: `${clamp01(outroRegion[0] / duration) * 100}%`,
106
- width: `${clamp01((outroRegion[1] - outroRegion[0]) / duration) * 100}%`,
107
- },
108
- ] })), _jsx(View, { style: [styles.fill, { width: `${shownPct * 100}%` }] })] }), _jsx(View, { style: [
109
- styles.thumb,
110
- { left: `${shownPct * 100}%` },
111
- scrubPct === null && styles.thumbIdle,
112
- ] })] }), _jsx(Text, { style: styles.time, children: fmt(duration) }), _jsxs(View, { style: styles.settingsWrap, children: [_jsx(TouchableOpacity, { style: [styles.iconBtn, settingsOpen && styles.iconBtnOn], onPress: () => setSettingsOpen((v) => !v), hitSlop: 6, children: _jsx(Ionicons, { name: "settings-outline", size: 17, color: settingsOpen ? "#7dd3fc" : "#fff" }) }), settingsOpen ? (_jsxs(View, { style: styles.settingsMenu, children: [_jsx(Text, { style: styles.settingsTitle, children: "Settings" }), showSubsSection ? (_jsxs(View, { style: styles.section, children: [_jsxs(View, { style: styles.sectionHead, children: [_jsx(Ionicons, { name: "chatbox-ellipses-outline", size: 15, color: "#9aa0aa" }), _jsx(Text, { style: styles.sectionLabel, children: "Subtitles" }), _jsx(TouchableOpacity, { onPress: onToggleSubtitles, hitSlop: 6, style: { marginLeft: "auto" }, children: _jsx(View, { style: [
113
- styles.switchTrack,
114
- subtitlesOn && styles.switchTrackOn,
115
- ], children: _jsx(View, { style: [
116
- styles.switchThumb,
117
- subtitlesOn && styles.switchThumbOn,
118
- ] }) }) })] }), hasSubs && (_jsx(View, { style: styles.menuList, children: subtitleTracks?.map((lang) => {
119
- const active = lang === subtitleTrack;
120
- return (_jsxs(TouchableOpacity, { style: [
121
- styles.menuItem,
122
- active && styles.menuItemOn,
123
- ], onPress: () => {
124
- setSettingsOpen(false);
125
- onSelectSubtitleTrack?.(lang);
126
- }, children: [_jsx(Text, { style: [
127
- styles.menuItemText,
128
- active && styles.menuItemTextOn,
129
- ], children: lang }), active ? (_jsx(Ionicons, { name: "checkmark", size: 14, color: "#fff" })) : null] }, lang));
130
- }) })), !!onChangeSubtitleFontSize && (_jsxs(View, { style: styles.sliderRow, children: [_jsx(TouchableOpacity, { style: styles.minusBtn, onPress: () => onChangeSubtitleFontSize?.(Math.max(SIZE_MIN, Math.round((subtitleFontSize ?? 14) - 2))), children: _jsx(Ionicons, { name: "remove", size: 16, color: "#fff" }) }), _jsx(View, { style: styles.sliderTrack, onLayout: (e) => setSizeW(e.nativeEvent.layout.width), ...sizePan.panHandlers, children: _jsx(View, { style: [
131
- styles.sliderFill,
132
- { width: `${sizePct * 100}%` },
133
- ] }) }), _jsx(TouchableOpacity, { style: styles.minusBtn, onPress: () => onChangeSubtitleFontSize?.(Math.min(SIZE_MAX, Math.round((subtitleFontSize ?? 14) + 2))), children: _jsx(Ionicons, { name: "add", size: 16, color: "#fff" }) }), _jsxs(Text, { style: styles.sliderValue, children: [currentSize, "px"] })] }))] })) : null, _jsxs(View, { style: styles.section, children: [_jsxs(View, { style: styles.sectionHead, children: [_jsx(Ionicons, { name: "volume-medium-outline", size: 15, color: "#9aa0aa" }), _jsx(Text, { style: styles.sectionLabel, children: "Volume" }), _jsx(TouchableOpacity, { onPress: onToggleMute, hitSlop: 6, style: { marginLeft: "auto" }, children: _jsx(Ionicons, { name: volIcon, size: 17, color: muted ? "#e50914" : "#fff" }) }), _jsx(Text, { style: styles.sliderValue, children: Math.round(volPct * 100) })] }), _jsx(View, { style: styles.sliderRow, children: _jsx(View, { style: styles.sliderTrack, onLayout: (e) => setVolW(e.nativeEvent.layout.width), ...volPan.panHandlers, children: _jsx(View, { style: [
134
- styles.sliderFill,
135
- { width: `${volPct * 100}%` },
136
- ] }) }) })] }), (resolutions?.length ?? 0) > 0 ? (_jsxs(View, { style: styles.section, children: [_jsxs(View, { style: styles.sectionHead, children: [_jsx(Ionicons, { name: "resize-outline", size: 15, color: "#9aa0aa" }), _jsx(Text, { style: styles.sectionLabel, children: "Resolution" })] }), _jsx(View, { style: styles.menuList, children: resolutions?.map((label) => {
137
- const active = label === activeRes;
138
- return (_jsxs(TouchableOpacity, { style: [
139
- styles.menuItem,
140
- active && styles.menuItemOn,
141
- ], onPress: () => {
142
- setSettingsOpen(false);
143
- onSelectResolution?.(label);
144
- }, children: [_jsx(Text, { style: [
145
- styles.menuItemText,
146
- active && styles.menuItemTextOn,
147
- ], children: label }), active ? (_jsx(Ionicons, { name: "checkmark", size: 14, color: "#fff" })) : null] }, label));
148
- }) })] })) : null] })) : null] }), _jsx(TouchableOpacity, { onPress: onFullscreen, hitSlop: 8, children: _jsx(Ionicons, { name: "expand", size: 18, color: "#fff" }) })] })] })), _jsx(SubtitleDisplayWeb, { cue: cue, enabled: enabled, fontSize: fontSize }), visible && inIntro && (_jsx(TouchableOpacity, { style: styles.skipRegionBtn, onPress: onSkipIntro, children: _jsx(Text, { style: styles.skipRegionText, children: "Skip Intro \u203A" }) })), visible && inOutro && (_jsx(TouchableOpacity, { style: styles.skipRegionBtn, onPress: onSkipOutro, children: _jsx(Text, { style: styles.skipRegionText, children: "Skip Outro \u203A" }) }))] }));
149
- }
150
- const styles = StyleSheet.create({
151
- root: { zIndex: 2 },
152
- centerBadge: {
153
- justifyContent: "center",
154
- alignItems: "center",
155
- width: "100%",
156
- height: "100%",
157
- },
158
- bar: {
159
- position: "absolute",
160
- left: 0,
161
- right: 0,
162
- flexDirection: "row",
163
- alignItems: "center",
164
- paddingHorizontal: 12,
165
- backgroundColor: "rgba(0,0,0,0.45)",
166
- gap: 8,
167
- },
168
- top: { top: 0, height: 42 },
169
- bottom: { bottom: 0, height: 44 },
170
- title: { color: "#fff", fontWeight: "700", fontSize: 13, flex: 1 },
171
- centerRow: {
172
- justifyContent: "center",
173
- alignItems: "center",
174
- flexDirection: "row",
175
- gap: 34,
176
- },
177
- ppBtn: {
178
- width: 64,
179
- height: 64,
180
- borderRadius: 32,
181
- backgroundColor: "rgba(229,9,20,0.92)",
182
- justifyContent: "center",
183
- alignItems: "center",
184
- },
185
- skipBtn: { opacity: 0.9 },
186
- time: {
187
- color: "#ddd",
188
- fontSize: 11,
189
- fontVariant: ["tabular-nums"],
190
- minWidth: 58,
191
- },
192
- trackWrap: { flex: 1, paddingVertical: 12, justifyContent: "center" },
193
- track: {
194
- height: 4,
195
- borderRadius: 2,
196
- backgroundColor: "#3a3f47",
197
- overflow: "hidden",
198
- },
199
- fill: { height: 4, borderRadius: 2, backgroundColor: "#e50914" },
200
- loadLine: {
201
- position: "absolute",
202
- left: 0,
203
- top: 0,
204
- height: 4,
205
- borderRadius: 2,
206
- backgroundColor: "rgba(255,255,255,0.35)",
207
- },
208
- introHighlight: {
209
- position: "absolute",
210
- top: 0,
211
- height: 4,
212
- backgroundColor: "rgba(0,229,255,0.55)",
213
- },
214
- outroHighlight: {
215
- position: "absolute",
216
- top: 0,
217
- height: 4,
218
- backgroundColor: "rgba(255,0,200,0.55)",
219
- },
220
- skipRegionBtn: {
221
- position: "absolute",
222
- right: 16,
223
- bottom: 60,
224
- flexDirection: "row",
225
- alignItems: "center",
226
- backgroundColor: "rgba(0,0,0,0.6)",
227
- borderWidth: 1,
228
- borderColor: "rgba(255,255,255,0.25)",
229
- borderRadius: 20,
230
- paddingHorizontal: 14,
231
- paddingVertical: 8,
232
- },
233
- skipRegionText: { color: "#fff", fontWeight: "700", fontSize: 13 },
234
- thumb: {
235
- position: "absolute",
236
- top: 12 - 7 + 2,
237
- marginLeft: -6,
238
- width: 12,
239
- height: 12,
240
- borderRadius: 6,
241
- backgroundColor: "#e50914",
242
- },
243
- thumbIdle: { opacity: 0.85 },
244
- iconBtn: {
245
- width: 26,
246
- height: 26,
247
- borderRadius: 4,
248
- alignItems: "center",
249
- justifyContent: "center",
250
- },
251
- iconBtnOn: { backgroundColor: "rgba(125,211,252,0.18)" },
252
- settingsWrap: { position: "relative", zIndex: 20 },
253
- settingsMenu: {
254
- position: "absolute",
255
- bottom: 30,
256
- right: 0,
257
- zIndex: 30,
258
- width: 250,
259
- maxHeight: 420,
260
- backgroundColor: "#14161c",
261
- borderWidth: 1,
262
- borderColor: "#2a2f3a",
263
- borderRadius: 8,
264
- overflow: "hidden",
265
- paddingBottom: 6,
266
- elevation: 12,
267
- shadowColor: "#000",
268
- shadowOpacity: 0.5,
269
- shadowRadius: 10,
270
- shadowOffset: { width: 0, height: 3 },
271
- },
272
- settingsTitle: {
273
- color: "#9aa0aa",
274
- fontSize: 11,
275
- fontWeight: "800",
276
- textTransform: "uppercase",
277
- letterSpacing: 1,
278
- paddingHorizontal: 12,
279
- paddingTop: 10,
280
- paddingBottom: 6,
281
- borderBottomWidth: 1,
282
- borderBottomColor: "#262a34",
283
- },
284
- section: { paddingHorizontal: 6, paddingTop: 8 },
285
- sectionHead: {
286
- flexDirection: "row",
287
- alignItems: "center",
288
- gap: 6,
289
- paddingHorizontal: 6,
290
- paddingBottom: 2,
291
- },
292
- sectionLabel: { color: "#cbd5e1", fontSize: 12, fontWeight: "700" },
293
- menuList: { paddingVertical: 4 },
294
- menuItem: {
295
- flexDirection: "row",
296
- alignItems: "center",
297
- justifyContent: "space-between",
298
- gap: 10,
299
- paddingHorizontal: 14,
300
- paddingVertical: 6,
301
- borderRadius: 6,
302
- },
303
- menuItemOn: { backgroundColor: "rgba(125,211,252,0.15)" },
304
- menuItemText: { color: "#cbd5e1", fontSize: 13, fontWeight: "600" },
305
- menuItemTextOn: { color: "#7dd3fc", fontWeight: "800" },
306
- sliderRow: {
307
- flexDirection: "row",
308
- alignItems: "center",
309
- gap: 10,
310
- paddingHorizontal: 10,
311
- paddingVertical: 8,
312
- },
313
- minusBtn: {
314
- width: 24,
315
- height: 24,
316
- borderRadius: 4,
317
- alignItems: "center",
318
- justifyContent: "center",
319
- backgroundColor: "#2a2f3a",
320
- },
321
- sliderTrack: { flex: 1, height: 22, justifyContent: "center" },
322
- sliderFill: { height: 4, borderRadius: 2, backgroundColor: "#7dd3fc" },
323
- sliderValue: {
324
- color: "#9aa0aa",
325
- fontSize: 11,
326
- fontWeight: "700",
327
- minWidth: 32,
328
- textAlign: "right",
329
- },
330
- switchTrack: {
331
- width: 34,
332
- height: 20,
333
- borderRadius: 10,
334
- backgroundColor: "#3a3f47",
335
- justifyContent: "center",
336
- paddingHorizontal: 2,
337
- },
338
- switchTrackOn: { backgroundColor: "rgba(229,9,20,0.85)" },
339
- switchThumb: {
340
- width: 16,
341
- height: 16,
342
- borderRadius: 8,
343
- backgroundColor: "#fff",
344
- },
345
- switchThumbOn: { alignSelf: "flex-end" },
346
- });
@@ -1,3 +0,0 @@
1
- export { MegaVideoPlayerWeb, type MegaVideoPlayerWebProps } from "./MegaVideoPlayer.js";
2
- export { PlayerControlsWeb, type PlayerControlsWebProps } from "./PlayerControls.js";
3
- export { SubtitleDisplayWeb, type SubCueShapeWeb } from "./SubtitleDisplay.js";
@@ -1,3 +0,0 @@
1
- export { MegaVideoPlayerWeb } from "./MegaVideoPlayer.js";
2
- export { PlayerControlsWeb } from "./PlayerControls.js";
3
- export { SubtitleDisplayWeb } from "./SubtitleDisplay.js";
@@ -1,3 +0,0 @@
1
- export { MegaVideoPlayerWeb, type MegaVideoPlayerWebProps, } from "./playerweb/MegaVideoPlayer.js";
2
- export { PlayerControlsWeb, type PlayerControlsWebProps, } from "./playerweb/PlayerControls.js";
3
- export { SubtitleDisplayWeb, type SubCueShapeWeb, } from "./playerweb/SubtitleDisplay.js";
@@ -1,3 +0,0 @@
1
- export { MegaVideoPlayerWeb, } from "./playerweb/MegaVideoPlayer.js";
2
- export { PlayerControlsWeb, } from "./playerweb/PlayerControls.js";
3
- export { SubtitleDisplayWeb, } from "./playerweb/SubtitleDisplay.js";