react-native-inapp-inspector 2.3.24 → 2.3.25
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/commonjs/components/AnalyticsDetail.js +8 -8
- package/dist/commonjs/components/AnalyticsEventCard.js +11 -8
- package/dist/commonjs/components/AppHeaderLogo.js +1 -1
- package/dist/commonjs/components/BrandSquareIcon.js +12 -12
- package/dist/commonjs/components/ConsoleLogCard.d.ts +1 -0
- package/dist/commonjs/components/ConsoleLogCard.js +92 -80
- package/dist/commonjs/components/EndOfListFooter.d.ts +5 -1
- package/dist/commonjs/components/EndOfListFooter.js +27 -5
- package/dist/commonjs/components/Inspector/AnalyticsTab.js +30 -298
- package/dist/commonjs/components/Inspector/ConsoleTab.js +38 -93
- package/dist/commonjs/components/Inspector/CrashDetail.js +12 -12
- package/dist/commonjs/components/Inspector/CrashTab.js +43 -33
- package/dist/commonjs/components/Inspector/DebuggingTab.js +9 -9
- package/dist/commonjs/components/Inspector/DeviceInfoTab.js +54 -52
- package/dist/commonjs/components/Inspector/InspectorHeader.js +1 -1
- package/dist/commonjs/components/Inspector/MainScreen.js +23 -25
- package/dist/commonjs/components/Inspector/MediaGalleryTab.js +1 -1
- package/dist/commonjs/components/Inspector/MediaPreviewModal.js +3 -3
- package/dist/commonjs/components/Inspector/NetworkTab.js +31 -31
- package/dist/commonjs/components/Inspector/NpmStarPrompt.js +3 -3
- package/dist/commonjs/components/Inspector/NpmUpdateToast.js +21 -22
- package/dist/commonjs/components/Inspector/ReduxTab.js +110 -97
- package/dist/commonjs/components/Inspector/SettingsPanel.js +48 -100
- package/dist/commonjs/components/Inspector/StorageTab.js +56 -52
- package/dist/commonjs/components/Inspector/TabBar.js +29 -26
- package/dist/commonjs/components/JsonViewer.js +169 -164
- package/dist/commonjs/components/LogCard.js +34 -38
- package/dist/commonjs/components/LogSyntaxHighlighter.js +3 -3
- package/dist/commonjs/components/SegmentedTabs.d.ts +4 -1
- package/dist/commonjs/components/SegmentedTabs.js +8 -8
- package/dist/commonjs/constants/index.js +1 -1
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/networkLogger.js +1 -2
- package/dist/commonjs/helpers/index.d.ts +6 -0
- package/dist/commonjs/helpers/index.js +4 -4
- package/dist/commonjs/helpers/memoryManager.d.ts +0 -1
- package/dist/commonjs/helpers/memoryManager.js +1 -1
- package/dist/commonjs/helpers/remoteConfig.js +1 -1
- package/dist/commonjs/helpers/settingsStore.js +1 -1
- package/dist/commonjs/i18n/index.d.ts +35 -0
- package/dist/commonjs/i18n/index.js +1 -1
- package/dist/commonjs/i18n/locales/ar.json +1 -0
- package/dist/commonjs/i18n/locales/de.json +1 -0
- package/dist/commonjs/i18n/locales/en.json +1 -1
- package/dist/commonjs/i18n/locales/es.json +1 -0
- package/dist/commonjs/i18n/locales/fr.json +1 -0
- package/dist/commonjs/i18n/locales/hi.json +1 -0
- package/dist/commonjs/i18n/locales/ja.json +1 -0
- package/dist/commonjs/i18n/locales/ko.json +1 -0
- package/dist/commonjs/i18n/locales/pt.json +1 -0
- package/dist/commonjs/i18n/locales/ru.json +1 -0
- package/dist/commonjs/i18n/locales/zh.json +1 -0
- package/dist/commonjs/index.d.ts +2 -4
- package/dist/commonjs/index.js +2 -2
- package/dist/commonjs/styles/AppColors.d.ts +40 -0
- package/dist/commonjs/styles/AppColors.js +1 -1
- package/dist/commonjs/styles/index.js +1 -1
- package/dist/commonjs/types/enums.d.ts +0 -20
- package/dist/commonjs/types/enums.js +1 -1
- package/dist/esm/components/AnalyticsDetail.js +75 -75
- package/dist/esm/components/AnalyticsEventCard.js +20 -17
- package/dist/esm/components/AppHeaderLogo.js +5 -5
- package/dist/esm/components/BrandSquareIcon.js +39 -39
- package/dist/esm/components/ConsoleLogCard.d.ts +1 -0
- package/dist/esm/components/ConsoleLogCard.js +98 -86
- package/dist/esm/components/EndOfListFooter.d.ts +5 -1
- package/dist/esm/components/EndOfListFooter.js +36 -14
- package/dist/esm/components/Inspector/AnalyticsTab.js +47 -315
- package/dist/esm/components/Inspector/ConsoleTab.js +61 -116
- package/dist/esm/components/Inspector/CrashDetail.js +49 -49
- package/dist/esm/components/Inspector/CrashTab.js +75 -65
- package/dist/esm/components/Inspector/DebuggingTab.js +31 -31
- package/dist/esm/components/Inspector/DeviceInfoTab.js +146 -144
- package/dist/esm/components/Inspector/InspectorHeader.js +5 -5
- package/dist/esm/components/Inspector/MainScreen.js +51 -53
- package/dist/esm/components/Inspector/MediaGalleryTab.js +1 -1
- package/dist/esm/components/Inspector/MediaPreviewModal.js +31 -31
- package/dist/esm/components/Inspector/NetworkTab.js +63 -63
- package/dist/esm/components/Inspector/NpmStarPrompt.js +42 -42
- package/dist/esm/components/Inspector/NpmUpdateToast.js +45 -46
- package/dist/esm/components/Inspector/ReduxTab.js +163 -150
- package/dist/esm/components/Inspector/SettingsPanel.js +136 -188
- package/dist/esm/components/Inspector/StorageTab.js +88 -84
- package/dist/esm/components/Inspector/TabBar.js +37 -34
- package/dist/esm/components/JsonViewer.js +173 -168
- package/dist/esm/components/LogCard.js +38 -42
- package/dist/esm/components/LogSyntaxHighlighter.js +1 -1
- package/dist/esm/components/SegmentedTabs.d.ts +4 -1
- package/dist/esm/components/SegmentedTabs.js +8 -8
- package/dist/esm/constants/index.js +1 -1
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/networkLogger.js +1 -2
- package/dist/esm/helpers/index.d.ts +6 -0
- package/dist/esm/helpers/index.js +4 -4
- package/dist/esm/helpers/memoryManager.d.ts +0 -1
- package/dist/esm/helpers/memoryManager.js +1 -1
- package/dist/esm/helpers/remoteConfig.js +1 -1
- package/dist/esm/helpers/settingsStore.js +1 -1
- package/dist/esm/i18n/index.d.ts +35 -0
- package/dist/esm/i18n/index.js +1 -1
- package/dist/esm/i18n/locales/ar.json +1 -0
- package/dist/esm/i18n/locales/de.json +1 -0
- package/dist/esm/i18n/locales/en.json +1 -1
- package/dist/esm/i18n/locales/es.json +1 -0
- package/dist/esm/i18n/locales/fr.json +1 -0
- package/dist/esm/i18n/locales/hi.json +1 -0
- package/dist/esm/i18n/locales/ja.json +1 -0
- package/dist/esm/i18n/locales/ko.json +1 -0
- package/dist/esm/i18n/locales/pt.json +1 -0
- package/dist/esm/i18n/locales/ru.json +1 -0
- package/dist/esm/i18n/locales/zh.json +1 -0
- package/dist/esm/index.d.ts +2 -4
- package/dist/esm/index.js +5 -5
- package/dist/esm/styles/AppColors.d.ts +40 -0
- package/dist/esm/styles/AppColors.js +1 -1
- package/dist/esm/styles/index.js +1 -1
- package/dist/esm/types/enums.d.ts +0 -20
- package/dist/esm/types/enums.js +1 -1
- package/package.json +1 -15
- package/dist/commonjs/bundle.d.ts +0 -2
- package/dist/commonjs/bundle.js +0 -1
- package/dist/commonjs/components/Inspector/BundleTab.d.ts +0 -48
- package/dist/commonjs/components/Inspector/BundleTab.js +0 -1297
- package/dist/commonjs/components/Inspector/PerformanceTab.d.ts +0 -27
- package/dist/commonjs/components/Inspector/PerformanceTab.js +0 -454
- package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +0 -115
- package/dist/commonjs/customHooks/bundleAnalyzer.js +0 -1
- package/dist/commonjs/customHooks/performanceTracker.d.ts +0 -144
- package/dist/commonjs/customHooks/performanceTracker.js +0 -63
- package/dist/commonjs/performance.d.ts +0 -2
- package/dist/commonjs/performance.js +0 -1
- package/dist/esm/bundle.d.ts +0 -2
- package/dist/esm/bundle.js +0 -1
- package/dist/esm/components/Inspector/BundleTab.d.ts +0 -48
- package/dist/esm/components/Inspector/BundleTab.js +0 -1297
- package/dist/esm/components/Inspector/PerformanceTab.d.ts +0 -27
- package/dist/esm/components/Inspector/PerformanceTab.js +0 -454
- package/dist/esm/customHooks/bundleAnalyzer.d.ts +0 -115
- package/dist/esm/customHooks/bundleAnalyzer.js +0 -1
- package/dist/esm/customHooks/performanceTracker.d.ts +0 -144
- package/dist/esm/customHooks/performanceTracker.js +0 -63
- package/dist/esm/performance.d.ts +0 -2
- package/dist/esm/performance.js +0 -1
|
@@ -1,86 +1,84 @@
|
|
|
1
|
-
import
|
|
2
|
-
{(
|
|
3
|
-
<
|
|
4
|
-
<
|
|
5
|
-
<S style={
|
|
6
|
-
<
|
|
7
|
-
<S style={[
|
|
8
|
-
<
|
|
1
|
+
import J,{useEffect as M,useRef as I}from"react";import{Animated as k,Modal as K,Platform as E,Pressable as Q,StatusBar as X,StyleSheet as D,View as S}from"react-native";import{useInspector as Z}from"./InspectorContext";import Se from"../ErrorBoundary";import Ve from"./FabLauncher";import Ce from"./InspectorHeader";import Re from"./TabBar";import Be from"./NetworkTab";import Te from"./NetworkDetail";import De from"./LogDetail";import Ae from"./ConsoleTab";import Le from"./AnalyticsTab";import Ne from"../AnalyticsDetail";import Pe from"./ReduxTab";import Me from"./ReduxDetail";import Ie from"./CrashTab";import Ee from"./CrashDetail";import Fe from"./DeviceInfoTab";import Oe from"./StorageTab";import We from"./DebuggingTab";import{MediaGalleryTab as Ge}from"./MediaGalleryTab";import He from"./SettingsPanel";import Ye from"./AboutModal";import _e from"./NpmUpdateToast";import $e from"./NpmStarPrompt";import Ue from"../Toast";import F from"../../styles";import{AppColors as V}from"../../styles/AppColors";import Je from"./NavigationTracker";import{isLocalDebugEnvironment as Ke}from"../../helpers";const Qe=()=>{const{visible:A,isMinimized:C,modalAnimationType:R,closeModal:L,modalHeightPercent:N,selected:O,selectedEvent:P,selectedLog:W,selectedReduxSlice:H,selectedReduxAction:q,selectedCrash:z,settingsPage:B,isAboutOpen:v,setIsAboutOpen:Y,activeTab:w,isReady:_,enabled:$,useNativeFab:Ze,hasNavigationContext:j,setNavState:U}=Z(),G=w==="apis"&&O!=null||w==="analytics"&&P!=null||w==="logs"&&W!=null||w==="redux"&&(H!=null||q!=null)||w==="crash"&&z!=null,T=I(new k.Value(0)).current;M(()=>{B!==null&&(T.setValue(0),k.spring(T,{toValue:1,friction:8,tension:65,useNativeDriver:!1}).start())},[B!==null]);const x=I(new k.Value(0)).current;return M(()=>{v&&(x.setValue(0),k.spring(x,{toValue:1,friction:8,tension:65,useNativeDriver:!1}).start())},[v]),<>
|
|
2
|
+
{(E.OS==="ios"||E.OS==="android")&&$&&!A&&<Ve/>}
|
|
3
|
+
<K visible={A}animationType={R}transparent statusBarTranslucent={!0}onRequestClose={L}>
|
|
4
|
+
<Se onClose={L}>
|
|
5
|
+
<S style={F.modalBackdrop}>
|
|
6
|
+
<Q style={F.modalBackdropPressable}onPress={L}/>
|
|
7
|
+
<S style={[F.modalContentCard,{height:`${N}%`,borderTopLeftRadius:N>=100?0:20,borderTopRightRadius:N>=100?0:20}]}>
|
|
8
|
+
<X translucent backgroundColor="transparent"barStyle="light-content"/>
|
|
9
9
|
|
|
10
|
-
<
|
|
10
|
+
<Ce/>
|
|
11
11
|
|
|
12
12
|
<S style={{flex:1}}>
|
|
13
13
|
|
|
14
|
-
<S style={{flex:1}}pointerEvents={
|
|
15
|
-
<
|
|
16
|
-
{
|
|
17
|
-
{
|
|
18
|
-
{
|
|
19
|
-
{
|
|
20
|
-
{
|
|
21
|
-
{
|
|
22
|
-
{
|
|
23
|
-
{
|
|
24
|
-
{
|
|
25
|
-
{
|
|
26
|
-
|
|
27
|
-
{I.OS==="android"&&Qe()&&t==="debugging"&&<Ge/>}
|
|
28
|
-
</S>:<Ze/>}
|
|
14
|
+
<S style={{flex:1}}pointerEvents={G||B!==null||v?"none":"auto"}>
|
|
15
|
+
<Re/>
|
|
16
|
+
{_?<S style={{flex:1}}>
|
|
17
|
+
{w==="apis"&&<Be/>}
|
|
18
|
+
{w==="logs"&&<Ae/>}
|
|
19
|
+
{w==="analytics"&&<Le/>}
|
|
20
|
+
{w==="redux"&&<Pe/>}
|
|
21
|
+
{w==="crash"&&<Ie/>}
|
|
22
|
+
{w==="device"&&<Fe/>}
|
|
23
|
+
{w==="storage"&&<Oe/>}
|
|
24
|
+
{w==="media"&&<Ge/>}
|
|
25
|
+
{E.OS==="android"&&Ke()&&w==="debugging"&&<We/>}
|
|
26
|
+
</S>:<Xe/>}
|
|
29
27
|
</S>
|
|
30
28
|
|
|
31
29
|
|
|
32
|
-
{
|
|
33
|
-
{
|
|
34
|
-
{
|
|
35
|
-
{
|
|
36
|
-
{
|
|
37
|
-
{
|
|
30
|
+
{G&&<S style={[D.absoluteFill,{backgroundColor:V.contentBg,zIndex:10}]}>
|
|
31
|
+
{w==="apis"&&O!=null&&<Te/>}
|
|
32
|
+
{w==="analytics"&&P!=null&&<Ne event={P}/>}
|
|
33
|
+
{w==="logs"&&W!=null&&<De/>}
|
|
34
|
+
{w==="redux"&&<Me/>}
|
|
35
|
+
{w==="crash"&&z!=null&&<Ee/>}
|
|
38
36
|
</S>}
|
|
39
37
|
|
|
40
38
|
|
|
41
|
-
{
|
|
42
|
-
<
|
|
43
|
-
</
|
|
39
|
+
{B!==null&&<k.View style={[D.absoluteFill,{backgroundColor:V.grayBackground,opacity:T,transform:[{translateY:T.interpolate({inputRange:[0,1],outputRange:[24,0]})}]}]}>
|
|
40
|
+
<He/>
|
|
41
|
+
</k.View>}
|
|
44
42
|
|
|
45
43
|
|
|
46
|
-
{
|
|
47
|
-
<
|
|
48
|
-
</
|
|
44
|
+
{v&&<k.View style={[D.absoluteFill,{backgroundColor:V.primaryLight,opacity:x,transform:[{translateY:x.interpolate({inputRange:[0,1],outputRange:[24,0]})}]}]}>
|
|
45
|
+
<Ye onClose={()=>Y(!1)}/>
|
|
46
|
+
</k.View>}
|
|
49
47
|
</S>
|
|
50
48
|
|
|
51
49
|
|
|
52
|
-
<
|
|
50
|
+
<Ue/>
|
|
53
51
|
|
|
54
52
|
|
|
55
|
-
|
|
53
|
+
<_e/>
|
|
56
54
|
|
|
57
55
|
|
|
58
|
-
|
|
56
|
+
<$e/>
|
|
59
57
|
</S>
|
|
60
58
|
</S>
|
|
61
|
-
</
|
|
62
|
-
{
|
|
63
|
-
</
|
|
64
|
-
</>},
|
|
59
|
+
</Se>
|
|
60
|
+
{j&&<Je onStateChange={U}/>}
|
|
61
|
+
</K>
|
|
62
|
+
</>},Xe=J.memo(function(){const C=I(new k.Value(.35)).current;return M(()=>{const R=k.loop(k.sequence([k.timing(C,{toValue:.85,duration:750,useNativeDriver:!1}),k.timing(C,{toValue:.35,duration:750,useNativeDriver:!1})]));return R.start(),()=>R.stop()},[C]),<S style={e.container}>
|
|
65
63
|
|
|
66
64
|
<S style={e.toolbarSkeleton}>
|
|
67
|
-
<
|
|
65
|
+
<k.View style={[e.searchBarSkeleton,{opacity:C}]}/>
|
|
68
66
|
<S style={e.actionButtonsRow}>
|
|
69
|
-
<
|
|
70
|
-
<
|
|
67
|
+
<k.View style={[e.iconButtonSkeleton,{opacity:C}]}/>
|
|
68
|
+
<k.View style={[e.iconButtonSkeleton,{opacity:C}]}/>
|
|
71
69
|
</S>
|
|
72
70
|
</S>
|
|
73
71
|
|
|
74
72
|
|
|
75
73
|
<S style={e.chipStripSkeleton}>
|
|
76
|
-
<
|
|
77
|
-
<
|
|
78
|
-
<
|
|
79
|
-
<
|
|
74
|
+
<k.View style={[e.chipSkeleton,{width:48,opacity:C}]}/>
|
|
75
|
+
<k.View style={[e.chipSkeleton,{width:68,opacity:C}]}/>
|
|
76
|
+
<k.View style={[e.chipSkeleton,{width:76,opacity:C}]}/>
|
|
77
|
+
<k.View style={[e.chipSkeleton,{width:58,opacity:C}]}/>
|
|
80
78
|
</S>
|
|
81
79
|
|
|
82
80
|
|
|
83
|
-
{[0,1,2,3].map(
|
|
81
|
+
{[0,1,2,3].map(R=><k.View key={`skeleton_card_${R}`}style={[e.cardSkeleton,{opacity:C}]}>
|
|
84
82
|
<S style={e.cardTopRow}>
|
|
85
83
|
<S style={e.badgeGroup}>
|
|
86
84
|
<S style={e.statusBadgeSkeleton}/>
|
|
@@ -94,5 +92,5 @@ import U,{useEffect as P,useRef as M}from"react";import{Animated as w,Modal as J
|
|
|
94
92
|
<S style={e.metaPillSkeleton}/>
|
|
95
93
|
<S style={e.metaPillSkeleton}/>
|
|
96
94
|
</S>
|
|
97
|
-
</
|
|
98
|
-
</S>}),e=
|
|
95
|
+
</k.View>)}
|
|
96
|
+
</S>}),e=D.create({container:{flex:1,paddingHorizontal:12,paddingTop:8},toolbarSkeleton:{flexDirection:"row",alignItems:"center",gap:8,marginBottom:8},searchBarSkeleton:{flex:1,height:36,borderRadius:8,backgroundColor:V.graySurface,borderWidth:1,borderColor:V.dividerColor},actionButtonsRow:{flexDirection:"row",gap:6},iconButtonSkeleton:{width:36,height:36,borderRadius:8,backgroundColor:V.graySurface,borderWidth:1,borderColor:V.dividerColor},chipStripSkeleton:{flexDirection:"row",gap:6,marginBottom:10},chipSkeleton:{height:24,borderRadius:6,backgroundColor:V.graySurface,borderWidth:1,borderColor:V.dividerColor},cardSkeleton:{backgroundColor:V.primaryLight,borderRadius:10,padding:12,marginBottom:8,borderWidth:1,borderColor:V.dividerColor},cardTopRow:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginBottom:8},badgeGroup:{flexDirection:"row",alignItems:"center",gap:6},statusBadgeSkeleton:{width:38,height:18,borderRadius:4,backgroundColor:V.graySurface},methodBadgeSkeleton:{width:44,height:18,borderRadius:4,backgroundColor:V.graySurface},timeSkeleton:{width:48,height:12,borderRadius:4,backgroundColor:V.graySurface},urlLineLong:{height:13,borderRadius:4,backgroundColor:V.graySurface,marginBottom:5,width:"90%"},urlLineShort:{height:11,borderRadius:4,backgroundColor:V.graySurface,marginBottom:8,width:"55%"},cardBottomRow:{flexDirection:"row",gap:8,marginTop:2},metaPillSkeleton:{width:52,height:14,borderRadius:4,backgroundColor:V.graySurface}});export default Qe;
|
|
@@ -162,4 +162,4 @@ import{useState as W,useEffect as He,useMemo as te,useCallback as oe}from"react"
|
|
|
162
162
|
|
|
163
163
|
|
|
164
164
|
<Ze item={Q}visible={!!Q}onClose={()=>j(null)}onDelete={K}onConvertToGif={Pe}/>
|
|
165
|
-
</C>};const{width:it}=je.get("window"),rt=(it-36)/2,o=Ne.create({container:{flex:1,backgroundColor:e.slate850},filterBar:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:12,paddingVertical:9,borderBottomWidth:1,borderBottomColor:e.borderGlassLight,gap:8},chipGroup:{flexDirection:"row",alignItems:"center",gap:6,flexShrink:1},chip:{flexDirection:"row",alignItems:"center",gap:4.5,paddingHorizontal:8,paddingVertical:4.5,borderRadius:6,backgroundColor:e.whiteAlpha06,borderWidth:1,borderColor:e.whiteAlpha10},chipActive:{backgroundColor:`${e.sky400}2E`,borderColor:e.sky400},chipText:{fontFamily:B.interMedium,fontSize:11,color:e.slate400},chipTextActive:{fontFamily:B.interBold,color:e.sky400},subBar:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:12,paddingVertical:7,backgroundColor:`${e.slate900}99`,borderBottomWidth:1,borderBottomColor:e.borderGlassLight,gap:8},resultCountWrapper:{flexDirection:"row",alignItems:"center",flexShrink:1},resultCountText:{fontFamily:B.interMedium,fontSize:11,color:e.slate400},resultCountTextSelected:{fontFamily:B.interSemiBold,color:e.sky400},actionsGroup:{flexDirection:"row",alignItems:"center",gap:6},viewToggleContainer:{flexDirection:"row",alignItems:"center",backgroundColor:e.whiteAlpha06,borderRadius:6,padding:2,borderWidth:1,borderColor:e.whiteAlpha10},viewToggleBtn:{paddingHorizontal:7,paddingVertical:4,borderRadius:4,alignItems:"center",justifyContent:"center"},viewToggleBtnActive:{backgroundColor:`${e.violet600}80`},deleteBtn:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.red500}26`,borderWidth:1,borderColor:`${e.red500}80`},deleteBtnText:{fontFamily:B.interBold,fontSize:10.5,color:e.red500},clearBtn:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.red500}1F`,borderWidth:1,borderColor:`${e.red500}4D`},clearBtnText:{fontFamily:B.interMedium,fontSize:10.5,color:e.red500},listContent:{padding:12,gap:10},columnWrapper:{gap:12},card:{width:rt,backgroundColor:e.slate800,borderRadius:8,borderWidth:1,borderColor:e.borderGlassLight,overflow:"hidden"},cardSelected:{borderColor:e.violet600,borderWidth:1.5},thumbnailContainer:{width:"100%",height:110,backgroundColor:e.slate850,position:"relative"},thumbnail:{width:"100%",height:"100%"},thumbnailFallback:{width:"100%",height:"100%",alignItems:"center",justifyContent:"center",backgroundColor:e.slate900},checkbox:{position:"absolute",top:6,left:6,width:22,height:22,borderRadius:5,borderWidth:1.5,borderColor:"rgba(255, 255, 255, 0.65)",backgroundColor:"rgba(15, 23, 42, 0.65)",alignItems:"center",justifyContent:"center",zIndex:10},checkboxSelected:{backgroundColor:e.violet600,borderColor:e.violet600},miniPlayCircle:{position:"absolute",top:"50%",left:"50%",width:32,height:32,marginTop:-16,marginLeft:-16,borderRadius:16,backgroundColor:`${e.sky400}D9`,alignItems:"center",justifyContent:"center",paddingLeft:2,shadowColor:
|
|
165
|
+
</C>};const{width:it}=je.get("window"),rt=(it-36)/2,o=Ne.create({container:{flex:1,backgroundColor:e.slate850},filterBar:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:12,paddingVertical:9,borderBottomWidth:1,borderBottomColor:e.borderGlassLight,gap:8},chipGroup:{flexDirection:"row",alignItems:"center",gap:6,flexShrink:1},chip:{flexDirection:"row",alignItems:"center",gap:4.5,paddingHorizontal:8,paddingVertical:4.5,borderRadius:6,backgroundColor:e.whiteAlpha06,borderWidth:1,borderColor:e.whiteAlpha10},chipActive:{backgroundColor:`${e.sky400}2E`,borderColor:e.sky400},chipText:{fontFamily:B.interMedium,fontSize:11,color:e.slate400},chipTextActive:{fontFamily:B.interBold,color:e.sky400},subBar:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:12,paddingVertical:7,backgroundColor:`${e.slate900}99`,borderBottomWidth:1,borderBottomColor:e.borderGlassLight,gap:8},resultCountWrapper:{flexDirection:"row",alignItems:"center",flexShrink:1},resultCountText:{fontFamily:B.interMedium,fontSize:11,color:e.slate400},resultCountTextSelected:{fontFamily:B.interSemiBold,color:e.sky400},actionsGroup:{flexDirection:"row",alignItems:"center",gap:6},viewToggleContainer:{flexDirection:"row",alignItems:"center",backgroundColor:e.whiteAlpha06,borderRadius:6,padding:2,borderWidth:1,borderColor:e.whiteAlpha10},viewToggleBtn:{paddingHorizontal:7,paddingVertical:4,borderRadius:4,alignItems:"center",justifyContent:"center"},viewToggleBtnActive:{backgroundColor:`${e.violet600}80`},deleteBtn:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.red500}26`,borderWidth:1,borderColor:`${e.red500}80`},deleteBtnText:{fontFamily:B.interBold,fontSize:10.5,color:e.red500},clearBtn:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.red500}1F`,borderWidth:1,borderColor:`${e.red500}4D`},clearBtnText:{fontFamily:B.interMedium,fontSize:10.5,color:e.red500},listContent:{padding:12,gap:10},columnWrapper:{gap:12},card:{width:rt,backgroundColor:e.slate800,borderRadius:8,borderWidth:1,borderColor:e.borderGlassLight,overflow:"hidden"},cardSelected:{borderColor:e.violet600,borderWidth:1.5},thumbnailContainer:{width:"100%",height:110,backgroundColor:e.slate850,position:"relative"},thumbnail:{width:"100%",height:"100%"},thumbnailFallback:{width:"100%",height:"100%",alignItems:"center",justifyContent:"center",backgroundColor:e.slate900},checkbox:{position:"absolute",top:6,left:6,width:22,height:22,borderRadius:5,borderWidth:1.5,borderColor:"rgba(255, 255, 255, 0.65)",backgroundColor:"rgba(15, 23, 42, 0.65)",alignItems:"center",justifyContent:"center",zIndex:10},checkboxSelected:{backgroundColor:e.violet600,borderColor:e.violet600},miniPlayCircle:{position:"absolute",top:"50%",left:"50%",width:32,height:32,marginTop:-16,marginLeft:-16,borderRadius:16,backgroundColor:`${e.sky400}D9`,alignItems:"center",justifyContent:"center",paddingLeft:2,shadowColor:e.black,shadowOffset:{width:0,height:2},shadowOpacity:.4,shadowRadius:4,elevation:4},typeBadge:{position:"absolute",top:6,right:6,flexDirection:"row",alignItems:"center",gap:3,backgroundColor:e.badgeGlassDark,paddingHorizontal:5,paddingVertical:2,borderRadius:4,borderWidth:1,borderColor:e.borderGlassMedium},typeBadgeText:{fontFamily:B.interBold,fontSize:9,color:e.slate200},cardInfo:{padding:8,gap:3},cardTitle:{fontFamily:B.interMedium,fontSize:11.5,color:e.white},cardMetaRow:{flexDirection:"row",alignItems:"center",gap:4},cardMeta:{fontFamily:B.interRegular,fontSize:10,color:e.slate400},cardMetaDot:{fontSize:10,color:e.whiteAlpha30},listRow:{flexDirection:"row",alignItems:"center",backgroundColor:e.slate800,borderRadius:8,borderWidth:1,borderColor:e.borderGlassLight,padding:8,gap:10},listRowSelected:{borderColor:e.violet600,borderWidth:1.5,backgroundColor:`${e.violet600}14`},listCheckbox:{width:20,height:20,borderRadius:4,borderWidth:1.5,borderColor:"rgba(255, 255, 255, 0.65)",backgroundColor:"rgba(15, 23, 42, 0.65)",alignItems:"center",justifyContent:"center"},listThumbContainer:{width:46,height:46,borderRadius:6,backgroundColor:e.slate850,overflow:"hidden",position:"relative"},listThumb:{width:"100%",height:"100%"},listThumbFallback:{width:"100%",height:"100%",alignItems:"center",justifyContent:"center",backgroundColor:e.slate900},listMiniPlay:{position:"absolute",top:"50%",left:"50%",width:20,height:20,marginTop:-10,marginLeft:-10,borderRadius:10,backgroundColor:`${e.sky400}D9`,alignItems:"center",justifyContent:"center",paddingLeft:1},listInfo:{flex:1,gap:4,minWidth:0},listTitle:{fontFamily:B.interMedium,fontSize:12,color:e.white},listMetaRow:{flexDirection:"row",alignItems:"center",gap:6,flexWrap:"wrap"},listBadge:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:e.badgeGlassDark,paddingHorizontal:4,paddingVertical:1.5,borderRadius:4,borderWidth:1,borderColor:e.borderGlassMedium},listBadgeText:{fontFamily:B.interBold,fontSize:8.5,color:e.slate200},gridCopyBtn:{padding:3,borderRadius:4,backgroundColor:e.whiteAlpha08},listActionsRow:{flexDirection:"row",alignItems:"center",gap:6},listCopyBtn:{padding:6,borderRadius:6,backgroundColor:e.whiteAlpha10,borderWidth:1,borderColor:e.whiteAlpha15},listShareBtn:{padding:6,borderRadius:6,backgroundColor:`${e.sky400}18`,borderWidth:1,borderColor:`${e.sky400}40`},listDeleteBtn:{padding:6,borderRadius:6,backgroundColor:`${e.red500}14`,borderWidth:1,borderColor:`${e.red500}33`},copySelectedBtn:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:e.whiteAlpha10,borderWidth:1,borderColor:e.whiteAlpha20},copySelectedBtnText:{fontFamily:B.interSemiBold,fontSize:10.5,color:e.slate200},shareSelectedBtn:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.sky400}20`,borderWidth:1,borderColor:`${e.sky400}60`},shareSelectedBtnText:{fontFamily:B.interBold,fontSize:10.5,color:e.sky400}});
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import{useState as
|
|
1
|
+
import{useState as z}from"react";import{Alert as Ve,Image as _,Modal as Me,Platform as V,Share as ee,StyleSheet as oe,Text as T,TouchableOpacity as A,View as C}from"react-native";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as S}from"../../styles/AppFonts";import R from"../TouchableScale";import{ChevronDownIcon as De,CopyIcon as L,ExpandCollapseIcon as We,FilmIcon as E,GifIcon as H,ImageIcon as Le,PauseIcon as Ee,PlayIcon as Ce,RepeatIcon as He,ShareIcon as Te,TrashIcon as Ue}from"../NetworkIcons";import{ScreenCapture as Ne}from"../../capture";import{copyImageOrMediaToClipboard as qe,formatBytes as Se}from"../../helpers";import{showToast as G}from"../../helpers/toast";import{useTranslation as Je}from"../../i18n";export const MediaPreviewModal=({item:t,visible:ve,onClose:M,onDelete:Ie,onConvertToGif:D})=>{const{t:r}=Je(),[U,N]=z(!1),[Ae,q]=z(!1),[P,Pe]=z(!1),[J,K]=z(!1),[Q,ze]=z("1.0x"),[$,Be]=z(!0),[W,Re]=z(.4);if(!t)return null;const O=()=>{t?.uri&&qe(t.uri,t.type==="image"?"Image":"Media")},X=async()=>{try{K(!0),await Ne.playVideo(t.uri)}catch{G(r("mediaGallery.playError","Unable to play video"))}finally{K(!1)}},$e=()=>{Ve.alert(r("mediaGallery.deleteTitle"),r("mediaGallery.deleteMessage",{filename:t.filename}),[{text:r("common.cancel"),style:"cancel"},{text:r("mediaGallery.delete"),style:"destructive",onPress:()=>{Ie(t),M()}}])},Fe=async()=>{if(D){N(!0);try{await D(t),G(r("mediaGallery.convertedSuccess"))}catch{G(r("mediaGallery.convertFailed"))}finally{N(!1)}}},Y=async()=>{try{const v=t.uri.startsWith("file://")||t.uri.startsWith("content://")||t.uri.startsWith("http")?t.uri:`file://${t.uri}`,Oe=V.select({ios:{url:v,title:t.filename},default:{title:t.filename,message:t.filename,url:v}});(await ee.share(Oe)).action===ee.sharedAction&&G(r("mediaGallery.shareSuccess","Shared successfully"))}catch(v){v?.message!=="User did not share"&&G(r("mediaGallery.shareUnavailable","Sharing not available on this device"))}},I=t.type==="video",F=t.type==="gif",B=t.durationMs?(t.durationMs/1e3).toFixed(1):null,Ge=B?`00:${Number(B)<10?"0":""}${B}`:"00:05.0",Z=!0;return<Me visible={ve}transparent={!0}animationType="fade"onRequestClose={M}>
|
|
2
2
|
<C style={o.overlay}>
|
|
3
3
|
|
|
4
4
|
<C style={o.header}>
|
|
5
|
-
<
|
|
6
|
-
<C style={[o.badge,{borderColor:
|
|
7
|
-
{
|
|
8
|
-
<T style={[o.badgeText,{color:
|
|
5
|
+
<A activeOpacity={.8}onPress={O}style={o.headerLeft}>
|
|
6
|
+
<C style={[o.badge,{borderColor:I?`${e.sky400}80`:F?`${e.warningAmber}80`:`${e.emerald500}80`,backgroundColor:I?`${e.sky400}20`:F?`${e.warningAmber}20`:`${e.emerald500}20`}]}>
|
|
7
|
+
{I?<E size={13}color={e.sky400}/>:F?<H size={13}color={e.warningAmber}/>:<Le size={13}color={e.emerald500}/>}
|
|
8
|
+
<T style={[o.badgeText,{color:I?e.sky400:F?e.warningAmber:e.emerald500}]}>
|
|
9
9
|
{t.format.toUpperCase()}
|
|
10
10
|
</T>
|
|
11
11
|
</C>
|
|
@@ -17,7 +17,7 @@ import{useState as P}from"react";import{Alert as Ve,Image as _,Modal as De,Platf
|
|
|
17
17
|
{Se(t.sizeBytes)} • {new Date(t.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}
|
|
18
18
|
</T>
|
|
19
19
|
</C>
|
|
20
|
-
</
|
|
20
|
+
</A>
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
<C style={o.headerRight}>
|
|
@@ -33,20 +33,20 @@ import{useState as P}from"react";import{Alert as Ve,Image as _,Modal as De,Platf
|
|
|
33
33
|
<Ue size={14}color={e.red500}/>
|
|
34
34
|
</R>
|
|
35
35
|
|
|
36
|
-
<
|
|
37
|
-
<We size={14}isExpanded={
|
|
38
|
-
</
|
|
36
|
+
<A accessible={!0}accessibilityRole="button"accessibilityLabel={P?r("mediaGallery.collapse","Exit Fullscreen"):r("mediaGallery.expand","Expand Fullscreen")}onPress={()=>Pe(!P)}style={[o.headerIconBtn,P&&{backgroundColor:`${e.sky400}30`,borderColor:`${e.sky400}70`}]}hitSlop={{top:10,bottom:10,left:10,right:10}}>
|
|
37
|
+
<We size={14}isExpanded={P}color={P?e.sky400:e.white}/>
|
|
38
|
+
</A>
|
|
39
39
|
|
|
40
|
-
<
|
|
41
|
-
<
|
|
42
|
-
</
|
|
40
|
+
<A accessible={!0}accessibilityRole="button"accessibilityLabel={r("mediaGallery.minimize","Minimize")}onPress={M}style={o.headerIconBtn}hitSlop={{top:10,bottom:10,left:10,right:10}}>
|
|
41
|
+
<De size={15}color={e.white}/>
|
|
42
|
+
</A>
|
|
43
43
|
</C>
|
|
44
44
|
</C>
|
|
45
45
|
|
|
46
46
|
|
|
47
|
-
<C style={[o.stage,
|
|
48
|
-
<
|
|
49
|
-
{
|
|
47
|
+
<C style={[o.stage,P&&o.stageExpanded,!Z&&{paddingBottom:V.OS==="ios"?34:16}]}>
|
|
48
|
+
<A activeOpacity={I?.9:1}onPress={I?X:void 0}style={[o.previewCard,P&&o.previewCardExpanded]}>
|
|
49
|
+
{I?t.thumbnailUri&&!Ae?<>
|
|
50
50
|
<_ source={{uri:t.thumbnailUri}}style={o.image}resizeMode="contain"onError={()=>q(!0)}/>
|
|
51
51
|
<C style={o.videoImageOverlay}/>
|
|
52
52
|
</>:<C style={o.videoFallbackBackdrop}>
|
|
@@ -58,7 +58,7 @@ import{useState as P}from"react";import{Alert as Ve,Image as _,Modal as De,Platf
|
|
|
58
58
|
</C>:<_ source={{uri:t.uri}}style={o.image}resizeMode="contain"onError={()=>q(!0)}/>}
|
|
59
59
|
|
|
60
60
|
|
|
61
|
-
{
|
|
61
|
+
{I&&<C style={o.centerPlayOverlay}>
|
|
62
62
|
<C style={o.centerPlayCircle}>
|
|
63
63
|
<Ce size={28}color={e.white}/>
|
|
64
64
|
</C>
|
|
@@ -68,7 +68,7 @@ import{useState as P}from"react";import{Alert as Ve,Image as _,Modal as De,Platf
|
|
|
68
68
|
</C>}
|
|
69
69
|
|
|
70
70
|
|
|
71
|
-
{
|
|
71
|
+
{I&&<C style={o.videoBadgeOverlay}>
|
|
72
72
|
<C style={o.playPill}>
|
|
73
73
|
<E size={12}color={e.sky400}/>
|
|
74
74
|
<T style={o.playPillText}>
|
|
@@ -86,56 +86,56 @@ import{useState as P}from"react";import{Alert as Ve,Image as _,Modal as De,Platf
|
|
|
86
86
|
</C>}
|
|
87
87
|
|
|
88
88
|
|
|
89
|
-
<
|
|
89
|
+
<A activeOpacity={.8}onPress={O}style={o.floatingMetaBadge}>
|
|
90
90
|
<L size={11}color={e.sky400}/>
|
|
91
91
|
<T style={o.floatingMetaText}>
|
|
92
92
|
{t.width&&t.height?`${t.width} \xD7 ${t.height} \u2022 `:""}
|
|
93
93
|
{Se(t.sizeBytes)}
|
|
94
94
|
</T>
|
|
95
|
-
</
|
|
96
|
-
</
|
|
95
|
+
</A>
|
|
96
|
+
</A>
|
|
97
97
|
</C>
|
|
98
98
|
|
|
99
99
|
|
|
100
|
-
{
|
|
100
|
+
{I&&<C style={o.videoControlsPanel}>
|
|
101
101
|
|
|
102
102
|
<C style={o.progressSection}>
|
|
103
103
|
<T style={o.timeLabel}>
|
|
104
104
|
00:0{Math.floor(W*(Number(B)||5))}
|
|
105
105
|
</T>
|
|
106
|
-
<
|
|
106
|
+
<A activeOpacity={.8}onPress={()=>Re(v=>v>=.9?.1:v+.3)}style={o.progressTrack}>
|
|
107
107
|
<C style={[o.progressFill,{width:`${Math.max(10,Math.min(100,W*100))}%`}]}/>
|
|
108
108
|
<C style={[o.scrubberThumb,{left:`${Math.max(8,Math.min(96,W*100))}%`}]}/>
|
|
109
|
-
</
|
|
109
|
+
</A>
|
|
110
110
|
<T style={o.timeLabel}>{Ge}</T>
|
|
111
111
|
</C>
|
|
112
112
|
|
|
113
113
|
|
|
114
114
|
<C style={o.controlsRow}>
|
|
115
115
|
|
|
116
|
-
<
|
|
116
|
+
<A onPress={X}style={o.controlActionPill}>
|
|
117
117
|
{J?<Ee size={14}color={e.sky400}/>:<Ce size={14}color={e.sky400}/>}
|
|
118
118
|
<T style={[o.controlActionText,{color:e.sky400}]}>
|
|
119
119
|
{J?r("mediaGallery.pause","Pause"):r("mediaGallery.play","Play")}
|
|
120
120
|
</T>
|
|
121
|
-
</
|
|
121
|
+
</A>
|
|
122
122
|
|
|
123
123
|
|
|
124
124
|
<C style={o.speedGroup}>
|
|
125
|
-
{["1.0x","1.5x","2.0x"].map(v=><
|
|
125
|
+
{["1.0x","1.5x","2.0x"].map(v=><A key={v}onPress={()=>ze(v)}style={[o.speedBtn,Q===v&&o.speedBtnActive]}>
|
|
126
126
|
<T style={[o.speedText,Q===v&&o.speedTextActive]}>
|
|
127
127
|
{v}
|
|
128
128
|
</T>
|
|
129
|
-
</
|
|
129
|
+
</A>)}
|
|
130
130
|
</C>
|
|
131
131
|
|
|
132
132
|
|
|
133
|
-
<
|
|
133
|
+
<A onPress={()=>Be(!$)}style={[o.loopPill,$&&o.loopPillActive]}>
|
|
134
134
|
<He size={12}color={$?e.sky400:e.whiteAlpha60}/>
|
|
135
135
|
<T style={[o.loopText,$&&o.loopTextActive]}>
|
|
136
136
|
{$?"Loop: ON":"Loop: OFF"}
|
|
137
137
|
</T>
|
|
138
|
-
</
|
|
138
|
+
</A>
|
|
139
139
|
</C>
|
|
140
140
|
</C>}
|
|
141
141
|
|
|
@@ -148,7 +148,7 @@ import{useState as P}from"react";import{Alert as Ve,Image as _,Modal as De,Platf
|
|
|
148
148
|
</T>
|
|
149
149
|
</R>
|
|
150
150
|
|
|
151
|
-
{
|
|
151
|
+
{D&&I&&<R onPress={Fe}disabled={U}style={[o.actionBtn,{backgroundColor:`${e.warningAmber}22`,borderColor:`${e.warningAmber}70`}]}>
|
|
152
152
|
<H size={15}color={e.warningAmber}/>
|
|
153
153
|
<T style={[o.actionText,{color:e.warningAmber}]}>
|
|
154
154
|
{r(U?"mediaGallery.converting":"mediaGallery.convertToGif")}
|
|
@@ -163,4 +163,4 @@ import{useState as P}from"react";import{Alert as Ve,Image as _,Modal as De,Platf
|
|
|
163
163
|
</R>
|
|
164
164
|
</C>}
|
|
165
165
|
</C>
|
|
166
|
-
</
|
|
166
|
+
</Me>};const o=oe.create({overlay:{flex:1,backgroundColor:e.mediaModalBg,justifyContent:"space-between"},header:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:16,paddingTop:V.OS==="ios"?52:20,paddingBottom:14,borderBottomWidth:1,borderBottomColor:e.borderGlassLight,backgroundColor:e.headerGlassDark},headerLeft:{flexDirection:"row",alignItems:"center",gap:10,flex:1,minWidth:0,marginRight:10},headerRight:{flexDirection:"row",alignItems:"center",gap:8},badge:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:8,paddingVertical:4,borderRadius:6,borderWidth:1},badgeText:{fontFamily:S.interBold,fontSize:10.5,letterSpacing:.4},title:{fontFamily:S.interSemiBold,fontSize:13.5,color:e.white},subtitle:{fontFamily:S.interRegular,fontSize:11,color:e.whiteAlpha60,marginTop:1},headerActionBtn:{width:32,height:32,borderRadius:16,backgroundColor:e.whiteAlpha12,borderWidth:1,borderColor:e.whiteAlpha20,alignItems:"center",justifyContent:"center"},headerShareBtn:{width:32,height:32,borderRadius:16,backgroundColor:`${e.sky400}20`,borderWidth:1,borderColor:`${e.sky400}60`,alignItems:"center",justifyContent:"center"},headerDeleteBtn:{width:32,height:32,borderRadius:16,backgroundColor:`${e.red500}20`,borderWidth:1,borderColor:`${e.red500}60`,alignItems:"center",justifyContent:"center"},headerIconBtn:{width:32,height:32,borderRadius:16,backgroundColor:e.whiteAlpha12,borderWidth:1,borderColor:e.whiteAlpha20,alignItems:"center",justifyContent:"center"},stage:{flex:1,alignItems:"center",justifyContent:"center",paddingHorizontal:10,paddingTop:10,paddingBottom:10},stageExpanded:{paddingHorizontal:0,paddingTop:0,paddingBottom:0},previewCard:{flex:1,width:"100%",borderRadius:14,overflow:"hidden",backgroundColor:e.mediaDarkTile,borderWidth:1,borderColor:e.borderGlassLight,alignItems:"center",justifyContent:"center",position:"relative"},previewCardExpanded:{borderRadius:0,borderWidth:0},image:{width:"100%",height:"100%"},videoImageOverlay:{...oe.absoluteFillObject,backgroundColor:"rgba(5, 7, 13, 0.25)"},videoFallbackBackdrop:{flex:1,width:"100%",backgroundColor:e.mediaPlayerBg,alignItems:"center",justifyContent:"center",gap:8},videoFallbackGlow:{position:"absolute",width:140,height:140,borderRadius:70,backgroundColor:`${e.sky400}18`},videoFallbackTitle:{fontFamily:S.interSemiBold,fontSize:15,color:e.white,marginTop:8},videoFallbackSubtitle:{fontFamily:S.interRegular,fontSize:12,color:e.whiteAlpha60},centerPlayOverlay:{position:"absolute",alignItems:"center",justifyContent:"center",gap:8},centerPlayCircle:{width:64,height:64,borderRadius:32,backgroundColor:`${e.sky400}E0`,alignItems:"center",justifyContent:"center",paddingLeft:3,shadowColor:e.sky400,shadowOffset:{width:0,height:4},shadowOpacity:.5,shadowRadius:10,elevation:8},centerPlayText:{fontFamily:S.interSemiBold,fontSize:13,color:e.white,letterSpacing:.3,textShadowColor:"rgba(0,0,0,0.7)",textShadowOffset:{width:0,height:1},textShadowRadius:3},videoBadgeOverlay:{position:"absolute",bottom:12,left:12},playPill:{flexDirection:"row",alignItems:"center",gap:6,backgroundColor:`${e.slate900}D9`,paddingHorizontal:10,paddingVertical:5,borderRadius:16,borderWidth:1,borderColor:e.whiteAlpha20},playPillText:{fontFamily:S.interSemiBold,fontSize:11,color:e.white,letterSpacing:.3},floatingMetaBadge:{position:"absolute",bottom:10,backgroundColor:`${e.slate900}D9`,paddingHorizontal:10,paddingVertical:4.5,borderRadius:8,borderWidth:1,borderColor:e.whiteAlpha15,alignItems:"center",justifyContent:"center"},floatingMetaText:{fontFamily:S.interMedium,fontSize:10.5,color:e.slate200,letterSpacing:.2},videoControlsPanel:{paddingHorizontal:16,paddingTop:8,paddingBottom:6,backgroundColor:e.headerGlassDark,borderTopWidth:1,borderTopColor:e.borderGlassLight,gap:8},progressSection:{flexDirection:"row",alignItems:"center",gap:10},timeLabel:{fontFamily:S.interMedium,fontSize:11,color:e.whiteAlpha60,minWidth:42},progressTrack:{flex:1,height:6,borderRadius:3,backgroundColor:e.whiteAlpha15,justifyContent:"center",position:"relative"},progressFill:{height:"100%",borderRadius:3,backgroundColor:e.sky400},scrubberThumb:{position:"absolute",width:12,height:12,borderRadius:6,backgroundColor:e.white,borderWidth:2,borderColor:e.sky400,top:-3,marginLeft:-6},controlsRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:2},controlActionPill:{flexDirection:"row",alignItems:"center",gap:5,paddingHorizontal:10,paddingVertical:5,borderRadius:6,backgroundColor:`${e.sky400}18`,borderWidth:1,borderColor:`${e.sky400}50`},controlActionText:{fontFamily:S.interSemiBold,fontSize:11.5},speedGroup:{flexDirection:"row",alignItems:"center",backgroundColor:e.whiteAlpha08,borderRadius:6,borderWidth:1,borderColor:e.whiteAlpha12,padding:2,gap:2},speedBtn:{paddingHorizontal:7,paddingVertical:3,borderRadius:4},speedBtnActive:{backgroundColor:`${e.sky400}30`},speedText:{fontFamily:S.interMedium,fontSize:10.5,color:e.whiteAlpha60},speedTextActive:{color:e.sky400,fontFamily:S.interBold},loopPill:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:8,paddingVertical:5,borderRadius:6,backgroundColor:e.whiteAlpha08,borderWidth:1,borderColor:e.whiteAlpha12},loopPillActive:{backgroundColor:`${e.sky400}18`,borderColor:`${e.sky400}50`},loopText:{fontFamily:S.interMedium,fontSize:10.5,color:e.whiteAlpha60},loopTextActive:{color:e.sky400,fontFamily:S.interSemiBold},footer:{flexDirection:"row",alignItems:"center",justifyContent:"center",flexWrap:"wrap",gap:8,paddingHorizontal:16,paddingTop:8,paddingBottom:V.OS==="ios"?34:16,borderTopWidth:1,borderTopColor:e.borderGlassLight,backgroundColor:e.headerGlassDark},actionBtn:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:16,paddingVertical:9,borderRadius:8,backgroundColor:e.whiteAlpha08,borderWidth:1,borderColor:e.whiteAlpha15},actionText:{fontFamily:S.interMedium,fontSize:12,color:e.white}});
|