react-native-inapp-inspector 2.5.8 → 2.5.9

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/android/.gradle/8.9/checksums/checksums.lock +0 -0
  2. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  3. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  4. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  5. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  6. package/android/.gradle/8.9/gc.properties +0 -0
  7. package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
  8. package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
  9. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  10. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  11. package/android/.gradle/9.2.0/gc.properties +0 -0
  12. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  13. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  14. package/android/.gradle/vcs-1/gc.properties +0 -0
  15. package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
  16. package/android/build/reports/problems/problems-report.html +659 -0
  17. package/dist/commonjs/components/BrandCircleIcon.js +8 -3
  18. package/dist/commonjs/components/Inspector/FabLauncher.js +8 -8
  19. package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +4 -4
  20. package/dist/commonjs/components/Inspector/InspectorHeader.js +30 -45
  21. package/dist/commonjs/components/Inspector/MainScreen.js +1 -1
  22. package/dist/commonjs/components/Inspector/NpmUpdateToast.js +5 -5
  23. package/dist/commonjs/constants/telemetryConfig.d.ts +3 -3
  24. package/dist/commonjs/constants/telemetryConfig.js +1 -1
  25. package/dist/commonjs/constants/version.d.ts +1 -1
  26. package/dist/commonjs/constants/version.js +1 -1
  27. package/dist/commonjs/customHooks/networkLogger.d.ts +1 -17
  28. package/dist/commonjs/customHooks/networkLogger.js +1 -1
  29. package/dist/commonjs/index.js +1 -1
  30. package/dist/commonjs/styles/index.d.ts +3 -0
  31. package/dist/commonjs/styles/index.js +1 -1
  32. package/dist/commonjs/types/interfaces.d.ts +4 -2
  33. package/dist/esm/components/BrandCircleIcon.js +9 -4
  34. package/dist/esm/components/Inspector/FabLauncher.js +1 -1
  35. package/dist/esm/components/Inspector/FloatingCaptureWidget.js +9 -9
  36. package/dist/esm/components/Inspector/InspectorHeader.js +75 -90
  37. package/dist/esm/components/Inspector/MainScreen.js +1 -1
  38. package/dist/esm/components/Inspector/NpmUpdateToast.js +18 -18
  39. package/dist/esm/constants/telemetryConfig.d.ts +3 -3
  40. package/dist/esm/constants/telemetryConfig.js +1 -1
  41. package/dist/esm/constants/version.d.ts +1 -1
  42. package/dist/esm/constants/version.js +1 -1
  43. package/dist/esm/customHooks/networkLogger.d.ts +1 -17
  44. package/dist/esm/customHooks/networkLogger.js +1 -1
  45. package/dist/esm/index.js +4 -4
  46. package/dist/esm/styles/index.d.ts +3 -0
  47. package/dist/esm/styles/index.js +1 -1
  48. package/dist/esm/types/interfaces.d.ts +4 -2
  49. package/package.json +1 -1
@@ -1,15 +1,15 @@
1
- import{useCallback as Z,useEffect as G,useRef as v,useState as j}from"react";import{Animated as n,Dimensions as Pe,PanResponder as De,Platform as N,StyleSheet as ee,Text as W,View as S}from"react-native";import Se from"react-native-linear-gradient";import{useInspector as Fe}from"./InspectorContext";import $ from"../TouchableScale";import{GripVerticalIcon as Be,ScreenshotCaptureIcon as Le,ScreenRecordIcon as Ae}from"../NetworkIcons";import{ScreenCapture as C,generateCaptureId as q}from"../../capture";import{triggerNativeHaptic as D}from"../../native/NativeInspector";import{showToast as b}from"../../helpers/toast";import{AppColors as i}from"../../styles/AppColors";import{AppFonts as ve}from"../../styles/AppFonts";import{useTranslation as Oe}from"../../i18n";import{MediaPreviewModal as Ee}from"./MediaPreviewModal";export const FloatingCaptureWidget=()=>{const{refreshMediaCount:x,captureFps:X,captureScale:Y,captureBitrate:B,captureMaxDurationSeconds:H,captureAudioMode:U,activeTab:be,settingsPage:xe,peekMode:Ge,previewMediaItem:z,setPreviewMediaItem:T}=Fe(),{t:s}=Oe(),[M,V]=j(!1),[Ie,L]=j(!1),[Re,A]=j(0),I=v(null),k=v(new n.Value(1)).current,F=v(new n.Value(0)).current,a=v(new n.ValueXY({x:0,y:0})).current,R=v({x:0,y:0});G(()=>{const e=a.x.addListener(o=>R.current.x=o.value),t=a.y.addListener(o=>R.current.y=o.value);return()=>{a.x.removeListener(e),a.y.removeListener(t)}},[a]);const P=v(!1),Ce=v(De.create({onStartShouldSetPanResponder:()=>!0,onStartShouldSetPanResponderCapture:()=>!1,onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>2||Math.abs(t.dy)>2,onMoveShouldSetPanResponderCapture:(e,t)=>Math.abs(t.dx)>4||Math.abs(t.dy)>4,onPanResponderGrant:()=>{P.current=!0,a.setOffset({x:R.current.x,y:R.current.y}),a.setValue({x:0,y:0})},onPanResponderMove:n.event([null,{dx:a.x,dy:a.y}],{useNativeDriver:!1}),onPanResponderTerminationRequest:()=>!1,onShouldBlockNativeResponder:()=>!0,onPanResponderRelease:()=>{a.flattenOffset(),setTimeout(()=>{P.current=!1},100);const{width:e,height:t}=Pe.get("window"),o=e/2-20,J=-o,K=20,Q=-(t-140),O=R.current.x,E=R.current.y;if(O<J||O>o||E<Q||E>K){const Ve=Math.min(Math.max(O,J),o),ke=Math.min(Math.max(E,Q),K);n.spring(a,{toValue:{x:Ve,y:ke},friction:7,tension:50,useNativeDriver:!1}).start()}},onPanResponderTerminate:()=>{a.flattenOffset(),P.current=!1}})).current;G(()=>{C.isRecording().then(e=>{V(e)}).catch(()=>{})},[]),G(()=>{let e=null;return M?(A(0),I.current=setInterval(()=>{A(t=>t+1)},1e3),e=n.loop(n.sequence([n.timing(k,{toValue:1.15,duration:500,useNativeDriver:!0}),n.timing(k,{toValue:1,duration:500,useNativeDriver:!0})])),e.start()):(I.current&&(clearInterval(I.current),I.current=null),A(0),k.setValue(1)),()=>{I.current&&clearInterval(I.current),e&&e.stop()}},[M,k]);const Te=Z(async()=>{if(!P.current)try{D("light"),L(!0),await new Promise(t=>setTimeout(t,60));const e=await C.takeScreenshot({format:"png",quality:.9,hideInspector:!1});if(L(!1),n.sequence([n.timing(F,{toValue:.65,duration:70,useNativeDriver:!0}),n.timing(F,{toValue:0,duration:200,useNativeDriver:!0})]).start(),e){D("success");const t=q("screenshot",e.format||"png"),o={id:t,type:"image",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,width:e.width,height:e.height};T(o),x?.().catch(()=>{}),b(s("header.screenshotCaptured","Screenshot captured"))}else b(s("header.screenshotFailed","Failed to capture screenshot"))}catch{L(!1),b(s("header.screenshotError","Error capturing screenshot"))}},[x,F,s]),_=Z(async()=>{if(!P.current)try{if(M){D("medium");const e=await C.stopRecording();if(V(!1),e){D("success");const t=q("video",e.format),o={id:t,type:e.format==="gif"?"gif":"video",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,durationMs:e.durationMs,width:e.width,height:e.height,hasAudio:e.hasAudio,thumbnailUri:e.thumbnailUri};T(o),x?.().catch(()=>{}),b(s("header.recordingSaved",{duration:(e.durationMs/1e3).toFixed(1),defaultValue:`Recording saved (${(e.durationMs/1e3).toFixed(1)}s)`}))}}else D("medium"),V(!0),await C.startRecording({fps:X,scale:Y,audioSource:U,bitrate:B>0?B:void 0,maxDurationSeconds:H})?b(s("header.recordingStarted","Recording started")):(V(!1),b(s("header.recordingStartFailed","Failed to start recording")))}catch{b(s("header.recordingError","Error during screen recording")),V(!1)}},[M,X,Y,B,H,U,x,s]),Me=e=>{const t=Math.floor(e/60),o=e%60;return`${t<10?"0":""}${t}:${o<10?"0":""}${o}`};return be==="media"||xe==="media"?null:<>
1
+ import{useCallback as Z,useEffect as G,useRef as b,useState as j}from"react";import{Animated as n,Dimensions as De,PanResponder as Fe,Platform as N,StyleSheet as ee,Text as W,View as S}from"react-native";import Se from"react-native-linear-gradient";import{useInspector as Be}from"./InspectorContext";import $ from"../TouchableScale";import{GripVerticalIcon as Le,ScreenshotCaptureIcon as Ae,ScreenRecordIcon as Oe}from"../NetworkIcons";import{ScreenCapture as C,generateCaptureId as q}from"../../capture";import{triggerNativeHaptic as D}from"../../native/NativeInspector";import{showToast as v}from"../../helpers/toast";import{AppColors as i}from"../../styles/AppColors";import{AppFonts as be}from"../../styles/AppFonts";import{useTranslation as Ee}from"../../i18n";import{MediaPreviewModal as Ge}from"./MediaPreviewModal";export const FloatingCaptureWidget=()=>{const{refreshMediaCount:x,captureFps:X,captureScale:Y,captureBitrate:B,captureMaxDurationSeconds:H,captureAudioMode:U,activeTab:ve,settingsPage:xe,peekMode:je,previewMediaItem:z,setPreviewMediaItem:T,isUpdatePopupVisible:Ie}=Be(),{t:s}=Ee(),[M,V]=j(!1),[Re,L]=j(!1),[Ce,A]=j(0),I=b(null),k=b(new n.Value(1)).current,F=b(new n.Value(0)).current,a=b(new n.ValueXY({x:0,y:0})).current,R=b({x:0,y:0});G(()=>{const e=a.x.addListener(o=>R.current.x=o.value),t=a.y.addListener(o=>R.current.y=o.value);return()=>{a.x.removeListener(e),a.y.removeListener(t)}},[a]);const P=b(!1),Te=b(Fe.create({onStartShouldSetPanResponder:()=>!0,onStartShouldSetPanResponderCapture:()=>!1,onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>2||Math.abs(t.dy)>2,onMoveShouldSetPanResponderCapture:(e,t)=>Math.abs(t.dx)>4||Math.abs(t.dy)>4,onPanResponderGrant:()=>{P.current=!0,a.setOffset({x:R.current.x,y:R.current.y}),a.setValue({x:0,y:0})},onPanResponderMove:n.event([null,{dx:a.x,dy:a.y}],{useNativeDriver:!1}),onPanResponderTerminationRequest:()=>!1,onShouldBlockNativeResponder:()=>!0,onPanResponderRelease:()=>{a.flattenOffset(),setTimeout(()=>{P.current=!1},100);const{width:e,height:t}=De.get("window"),o=e/2-20,J=-o,K=20,Q=-(t-140),O=R.current.x,E=R.current.y;if(O<J||O>o||E<Q||E>K){const ke=Math.min(Math.max(O,J),o),Pe=Math.min(Math.max(E,Q),K);n.spring(a,{toValue:{x:ke,y:Pe},friction:7,tension:50,useNativeDriver:!1}).start()}},onPanResponderTerminate:()=>{a.flattenOffset(),P.current=!1}})).current;G(()=>{C.isRecording().then(e=>{V(e)}).catch(()=>{})},[]),G(()=>{let e=null;return M?(A(0),I.current=setInterval(()=>{A(t=>t+1)},1e3),e=n.loop(n.sequence([n.timing(k,{toValue:1.15,duration:500,useNativeDriver:!0}),n.timing(k,{toValue:1,duration:500,useNativeDriver:!0})])),e.start()):(I.current&&(clearInterval(I.current),I.current=null),A(0),k.setValue(1)),()=>{I.current&&clearInterval(I.current),e&&e.stop()}},[M,k]);const Me=Z(async()=>{if(!P.current)try{D("light"),L(!0),await new Promise(t=>setTimeout(t,60));const e=await C.takeScreenshot({format:"png",quality:.9,hideInspector:!1});if(L(!1),n.sequence([n.timing(F,{toValue:.65,duration:70,useNativeDriver:!0}),n.timing(F,{toValue:0,duration:200,useNativeDriver:!0})]).start(),e){D("success");const t=q("screenshot",e.format||"png"),o={id:t,type:"image",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,width:e.width,height:e.height};T(o),x?.().catch(()=>{}),v(s("header.screenshotCaptured","Screenshot captured"))}else v(s("header.screenshotFailed","Failed to capture screenshot"))}catch{L(!1),v(s("header.screenshotError","Error capturing screenshot"))}},[x,F,s]),_=Z(async()=>{if(!P.current)try{if(M){D("medium");const e=await C.stopRecording();if(V(!1),e){D("success");const t=q("video",e.format),o={id:t,type:e.format==="gif"?"gif":"video",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,durationMs:e.durationMs,width:e.width,height:e.height,hasAudio:e.hasAudio,thumbnailUri:e.thumbnailUri};T(o),x?.().catch(()=>{}),v(s("header.recordingSaved",{duration:(e.durationMs/1e3).toFixed(1),defaultValue:`Recording saved (${(e.durationMs/1e3).toFixed(1)}s)`}))}}else D("medium"),V(!0),await C.startRecording({fps:X,scale:Y,audioSource:U,bitrate:B>0?B:void 0,maxDurationSeconds:H})?v(s("header.recordingStarted","Recording started")):(V(!1),v(s("header.recordingStartFailed","Failed to start recording")))}catch{v(s("header.recordingError","Error during screen recording")),V(!1)}},[M,X,Y,B,H,U,x,s]),Ve=e=>{const t=Math.floor(e/60),o=e%60;return`${t<10?"0":""}${t}:${o<10?"0":""}${o}`};return ve==="media"||xe==="media"||Ie?null:<>
2
2
 
3
3
  <n.View pointerEvents="none"style={[r.flashOverlay,{opacity:F}]}/>
4
4
 
5
- {!Ie&&!z&&<n.View{...Ce.panHandlers}style={[r.container,{transform:a.getTranslateTransform()}]}>
5
+ {!Re&&!z&&<n.View{...Te.panHandlers}style={[r.container,{transform:a.getTranslateTransform()}]}>
6
6
 
7
7
  {M?<S style={r.recordingShadowWrapper}>
8
8
  <$ onPress={_}style={r.recordingPillWrapper}>
9
9
  <Se colors={[i.rose600,i.rose700]}start={{x:0,y:0}}end={{x:1,y:0}}style={r.recordingPill}>
10
10
  <n.View style={[r.recordingDot,{transform:[{scale:k}]}]}/>
11
11
  <W style={r.recordingText}>
12
- REC {Me(Re)}
12
+ REC {Ve(Ce)}
13
13
  </W>
14
14
  <S style={r.stopIconBadge}>
15
15
  <S style={r.stopIconSquare}/>
@@ -19,9 +19,9 @@ import{useCallback as Z,useEffect as G,useRef as v,useState as j}from"react";imp
19
19
  </S>:<S style={r.dockShadowWrapper}>
20
20
  <Se colors={[i.navy900,i.navy800,i.navy900]}start={{x:0,y:0}}end={{x:1,y:0}}style={r.dockBar}>
21
21
 
22
- <$ onPress={Te}style={r.menuItemBtn}accessible={!0}accessibilityLabel="Take Screenshot">
22
+ <$ onPress={Me}style={r.menuItemBtn}accessible={!0}accessibilityLabel="Take Screenshot">
23
23
  <S style={[r.menuItemIconCircle,{backgroundColor:`${i.sky400}38`}]}>
24
- <Le size={14}color={i.sky400}/>
24
+ <Ae size={14}color={i.sky400}/>
25
25
  </S>
26
26
  <W style={r.menuItemText}>
27
27
  {s("header.screenshot","Screenshot")}
@@ -34,7 +34,7 @@ import{useCallback as Z,useEffect as G,useRef as v,useState as j}from"react";imp
34
34
 
35
35
  <$ onPress={_}style={r.menuItemBtn}accessible={!0}accessibilityLabel={s("header.recordScreen","Record Screen")}>
36
36
  <S style={[r.menuItemIconCircle,{backgroundColor:`${i.rose500}3D`}]}>
37
- <Ae size={14}color={i.rose400}/>
37
+ <Oe size={14}color={i.rose400}/>
38
38
  </S>
39
39
  <W style={r.menuItemText}>
40
40
  {s("header.record","Record")}
@@ -43,12 +43,12 @@ import{useCallback as Z,useEffect as G,useRef as v,useState as j}from"react";imp
43
43
 
44
44
 
45
45
  <S style={r.dragGripArea}>
46
- <Be size={14}color="rgba(255, 255, 255, 0.55)"/>
46
+ <Le size={14}color="rgba(255, 255, 255, 0.55)"/>
47
47
  </S>
48
48
  </Se>
49
49
  </S>}
50
50
  </n.View>}
51
51
 
52
52
 
53
- <Ee item={z}visible={!!z}onClose={()=>T(null)}onDelete={async e=>{await C.deleteMedia(e.uri),x?.().catch(()=>{}),T(null)}}onConvertToGif={async e=>{const t=await C.convertToGif(e.uri,{fps:12,width:480});if(t){x?.().catch(()=>{});const o=q("anim","gif");T({id:o,type:"gif",format:"gif",uri:t.uri,filename:t.uri.split("/").pop()||o,sizeBytes:t.sizeBytes,timestamp:t.timestamp,durationMs:t.durationMs})}}}/>
54
- </>};const r=ee.create({flashOverlay:{...ee.absoluteFillObject,backgroundColor:i.white,zIndex:999999},container:{position:"absolute",bottom:N.OS==="ios"?22:16,alignSelf:"center",alignItems:"center",justifyContent:"center",zIndex:999999,elevation:999999},dockShadowWrapper:{borderRadius:24,backgroundColor:"#0D1120",...N.select({ios:{shadowColor:i.black,shadowOffset:{width:0,height:6},shadowOpacity:.45,shadowRadius:14},android:{elevation:16}})},dockBar:{flexDirection:"row",alignItems:"center",borderRadius:24,overflow:"hidden"},dragGripArea:{paddingLeft:6,paddingRight:12,paddingVertical:10,alignItems:"center",justifyContent:"center"},dockDivider:{width:1,height:18,backgroundColor:"rgba(255, 255, 255, 0.14)"},menuItemBtn:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:7,paddingVertical:8.5,paddingHorizontal:12},menuItemIconCircle:{width:24,height:24,borderRadius:12,alignItems:"center",justifyContent:"center"},menuItemText:{fontFamily:ve.interSemiBold,fontSize:12,color:i.white,letterSpacing:.1},recordingShadowWrapper:{borderRadius:22,alignItems:"center",justifyContent:"center",...N.select({ios:{shadowColor:"#E11D48",shadowOffset:{width:0,height:4},shadowOpacity:.5,shadowRadius:12},android:{elevation:14}})},recordingPillWrapper:{borderRadius:22,overflow:"hidden"},recordingPill:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:8,height:38,paddingHorizontal:14,borderRadius:22,borderWidth:1.5,borderColor:"rgba(255, 255, 255, 0.45)"},recordingDot:{width:8,height:8,borderRadius:4,backgroundColor:"#FFFFFF"},recordingText:{fontFamily:ve.interBold,fontSize:12,color:i.white,letterSpacing:.4},stopIconBadge:{width:18,height:18,borderRadius:9,backgroundColor:"rgba(255, 255, 255, 0.28)",alignItems:"center",justifyContent:"center",marginLeft:3},stopIconSquare:{width:6,height:6,borderRadius:1.5,backgroundColor:i.white}});export default FloatingCaptureWidget;
53
+ <Ge item={z}visible={!!z}onClose={()=>T(null)}onDelete={async e=>{await C.deleteMedia(e.uri),x?.().catch(()=>{}),T(null)}}onConvertToGif={async e=>{const t=await C.convertToGif(e.uri,{fps:12,width:480});if(t){x?.().catch(()=>{});const o=q("anim","gif");T({id:o,type:"gif",format:"gif",uri:t.uri,filename:t.uri.split("/").pop()||o,sizeBytes:t.sizeBytes,timestamp:t.timestamp,durationMs:t.durationMs})}}}/>
54
+ </>};const r=ee.create({flashOverlay:{...ee.absoluteFillObject,backgroundColor:i.white,zIndex:999999},container:{position:"absolute",bottom:N.OS==="ios"?22:16,alignSelf:"center",alignItems:"center",justifyContent:"center",zIndex:999999,elevation:999999},dockShadowWrapper:{borderRadius:24,backgroundColor:"#0D1120",...N.select({ios:{shadowColor:i.black,shadowOffset:{width:0,height:6},shadowOpacity:.45,shadowRadius:14},android:{elevation:16}})},dockBar:{flexDirection:"row",alignItems:"center",borderRadius:24,overflow:"hidden"},dragGripArea:{paddingLeft:6,paddingRight:12,paddingVertical:10,alignItems:"center",justifyContent:"center"},dockDivider:{width:1,height:18,backgroundColor:"rgba(255, 255, 255, 0.14)"},menuItemBtn:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:7,paddingVertical:8.5,paddingHorizontal:12},menuItemIconCircle:{width:24,height:24,borderRadius:12,alignItems:"center",justifyContent:"center"},menuItemText:{fontFamily:be.interSemiBold,fontSize:12,color:i.white,letterSpacing:.1},recordingShadowWrapper:{borderRadius:22,alignItems:"center",justifyContent:"center",...N.select({ios:{shadowColor:"#E11D48",shadowOffset:{width:0,height:4},shadowOpacity:.5,shadowRadius:12},android:{elevation:14}})},recordingPillWrapper:{borderRadius:22,overflow:"hidden"},recordingPill:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:8,height:38,paddingHorizontal:14,borderRadius:22,borderWidth:1.5,borderColor:"rgba(255, 255, 255, 0.45)"},recordingDot:{width:8,height:8,borderRadius:4,backgroundColor:"#FFFFFF"},recordingText:{fontFamily:be.interBold,fontSize:12,color:i.white,letterSpacing:.4},stopIconBadge:{width:18,height:18,borderRadius:9,backgroundColor:"rgba(255, 255, 255, 0.28)",alignItems:"center",justifyContent:"center",marginLeft:3},stopIconSquare:{width:6,height:6,borderRadius:1.5,backgroundColor:i.white}});export default FloatingCaptureWidget;
@@ -1,123 +1,111 @@
1
- import B,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as Ye,Platform as se,Pressable as Se,StatusBar as Ze,Text as C,TouchableOpacity as Te,useWindowDimensions as et,View as S}from"react-native";import St from"react-native-linear-gradient";import{useInspector as Tt}from"./InspectorContext";import G from"../TouchableScale";import{BrandCircleIcon as Ct}from"../BrandCircleIcon";import i from"../../styles";import{AppColors as t}from"../../styles/AppColors";import{AppFonts as D}from"../../styles/AppFonts";import{METHOD_COLORS as xt}from"../../constants";import{LIB_VERSION as de}from"../../constants";import{getStatusColor as ce,formatTime as zt,formatTimeShort as Ce,getSize as xe,formatByteSize as Vt,getAppVersionAndBuild as Dt,showToast as H}from"../../helpers";import{triggerNativeHaptic as O}from"../../native/NativeInspector";import{ScreenCapture as W,generateCaptureId as ue}from"../../capture";import{UpdateAvailableModal as Rt}from"./UpdateAvailableModal";import{MediaPreviewModal as It}from"./MediaPreviewModal";import{LanguageSelectorModal as Mt}from"./LanguageSelectorModal";import Bt from"../CountryFlag";import{WhiteBackNavigation as $t,SettingsIcon as Lt,CloseWhite as At,ChevronDownIcon as Ve,ClockIcon as _,SizeIcon as De,AppleIcon as Ht,AndroidIcon as Ot,NpmIcon as Pt,ResetIcon as Et,BoltIcon as Wt,EyeIcon as Ft}from"../NetworkIcons";import{useTranslation as Ut,SUPPORTED_LANGUAGES as ke,getLanguage as Nt}from"../../i18n";const jt=B.memo(()=>{const{t:I,language:ge}=Ut(),{modalHeightPercent:ee,appIcon:Gt,selected:R,setSelected:Re,selectedEvent:$,setSelectedEvent:Ie,selectedLog:L,setSelectedLog:Me,selectedReduxSlice:F,setSelectedReduxSlice:Be,selectedReduxAction:q,setSelectedReduxAction:$e,reduxState:Le,reduxLastActionMap:ve,updateAvailable:te,latestNpmVersion:Ae,clearAnim:_t,activePulseAnim:He,unreadPulseAnim:Oe,runClearAllWithAnimation:qt,settingsPage:P,setSettingsPage:ie,isAboutOpen:re,setIsAboutOpen:Pe,resetToDefaults:Ee,closeModal:he,minimizeInspector:We,detailTitle:Fe,activeTab:V,environment:pe,selectedCrash:M,setSelectedCrash:Ue,selectedPush:k,setSelectedPush:Ne,selectedSocket:z,setSelectedSocket:je,refreshMediaCount:U,peekMode:oe,setPeekMode:Ge,previewMediaItem:me,setPreviewMediaItem:N}=Tt(),{width:Q}=et(),e=Q<360,j=Q<400,[_e,ae]=B.useState(!1),[Qt,Jt]=B.useState(!1),[qe,fe]=B.useState(!1),[Qe]=B.useState(()=>Dt().formatted),be=Z(()=>{const T=ge||Nt();return ke.find(x=>x.code===T)||ke[0]},[ge]),[J,K]=B.useState(!1),[Kt,le]=B.useState(0),E=B.useRef(null);B.useEffect(()=>{W.isRecording().then(T=>{K(T)}).catch(()=>{})},[]),B.useEffect(()=>(J?(le(0),E.current=setInterval(()=>{le(T=>T+1)},1e3)):(E.current&&(clearInterval(E.current),E.current=null),le(0)),()=>{E.current&&clearInterval(E.current)}),[J]);const Xt=B.useCallback(async()=>{try{O("light");const T=await W.takeScreenshot({format:"png",quality:.9,hideInspector:!0});if(T){O("success");const x=ue("screenshot",T.format||"png"),A={id:x,type:"image",format:T.format,uri:T.uri,filename:T.uri.split("/").pop()||x,sizeBytes:T.sizeBytes,timestamp:T.timestamp,width:T.width,height:T.height};N(A),U?.().catch(()=>{}),H(I("header.screenshotCaptured"))}else H(I("header.screenshotFailed"))}catch{H(I("header.screenshotError"))}},[U,I]),Yt=B.useCallback(async()=>{try{if(J){O("medium");const T=await W.stopRecording();if(K(!1),T){O("success");const x=ue("video",T.format),A={id:x,type:T.format==="gif"?"gif":"video",format:T.format,uri:T.uri,filename:T.uri.split("/").pop()||x,sizeBytes:T.sizeBytes,timestamp:T.timestamp,durationMs:T.durationMs,width:T.width,height:T.height,hasAudio:T.hasAudio};N(A),U?.().catch(()=>{}),H(I("header.recordingSaved",{duration:(T.durationMs/1e3).toFixed(1)}))}}else O("medium"),await W.startRecording({fps:24,audioSource:"none"})?(K(!0),H(I("header.recordingStarted"))):H(I("header.recordingStartFailed"))}catch{H(I("header.recordingError")),K(!1)}},[J,I]),Zt=T=>{const x=Math.floor(T/60),A=T%60;return`${x.toString().padStart(2,"0")}:${A.toString().padStart(2,"0")}`},ei=Z(()=>{const T=(pe||(__DEV__?"DEV":"PROD")).trim(),x=T.toUpperCase();return x==="DEV"||x.includes("DEV")||x==="LOCAL"?{label:T,bg:`${t.emerald500}40`,border:`${t.emerald400}8C`,text:t.mintGreenBorder}:x==="UAT"||x==="QA"||x==="TEST"?{label:T,bg:`${t.amber500}47`,border:`${t.amber400}99`,text:t.amberWarmBorder}:x==="PREPROD"||x==="STAGE"||x==="STAGING"?{label:T,bg:`${t.purple500}47`,border:`${t.purple400}99`,text:t.violetSoftBorder}:{label:T,bg:`${t.rose500}40`,border:`${t.roseBorder}8C`,text:t.errorBorder}},[pe]),X=V==="apis"&&R!=null||V==="analytics"&&$!=null||V==="logs"&&L!=null||V==="redux"&&(F!=null||q!=null)||V==="crash"&&M!=null||V==="push"&&k!=null||V==="socket"&&z!=null,Y=P!==null,ne=X||Y||re,Je=Z(()=>{switch(P){case"apis":return"APIs (Network)";case"logs":return"Console Logs";case"crash":return"Crash Protection";case"analytics":return"Analytics Logger";case"redux":return"Redux Inspector";case"media":return"Screencast (Media)";case"push":return"Push Notifications";default:return"Settings & Modules"}},[P]),ye=Z(()=>se.OS==="ios"?ee>=98?Q>=390?50:44:0:se.OS==="android"&&ee>=98?Ze.currentHeight||24:0,[ee,Q]),v=e?25:j?26.5:27,ti=e?36:j?38:40;return<>
2
- <S style={[i.headerGradient,{minHeight:(e?44:48)+ye}]}>
1
+ import B,{useMemo as Z}from"react";import{Alert as _e,Linking as qe,Platform as le,Pressable as Qe,StatusBar as Je,Text as C,TouchableOpacity as Se,useWindowDimensions as Ke,View as S}from"react-native";import Xe from"react-native-linear-gradient";import{useInspector as Ye}from"./InspectorContext";import G from"../TouchableScale";import{BrandCircleIcon as Ze}from"../BrandCircleIcon";import i from"../../styles";import{AppColors as t}from"../../styles/AppColors";import{AppFonts as I}from"../../styles/AppFonts";import{METHOD_COLORS as et}from"../../constants";import{LIB_VERSION as ne}from"../../constants";import{getStatusColor as se,formatTime as tt,formatTimeShort as Te,getSize as Ce,formatByteSize as it,getAppVersionAndBuild as rt,showToast as v}from"../../helpers";import{triggerNativeHaptic as P}from"../../native/NativeInspector";import{ScreenCapture as E,generateCaptureId as de}from"../../capture";import{MediaPreviewModal as St}from"./MediaPreviewModal";import{LanguageSelectorModal as Tt}from"./LanguageSelectorModal";import Ct from"../CountryFlag";import{WhiteBackNavigation as Vt,SettingsIcon as Dt,CloseWhite as It,ChevronDownIcon as Ve,ClockIcon as _,SizeIcon as De,AppleIcon as Rt,AndroidIcon as Mt,NpmIcon as $t,ResetIcon as Bt,EyeIcon as Lt}from"../NetworkIcons";import{useTranslation as Ht,SUPPORTED_LANGUAGES as ke,getLanguage as Ot}from"../../i18n";const vt=B.memo(()=>{const{t:R,language:ce}=Ht(),{modalHeightPercent:ee,appIcon:Pt,selected:k,setSelected:Ie,selectedEvent:$,setSelectedEvent:Re,selectedLog:L,setSelectedLog:Me,selectedReduxSlice:F,setSelectedReduxSlice:$e,selectedReduxAction:q,setSelectedReduxAction:Be,reduxState:Le,reduxLastActionMap:He,clearAnim:At,runClearAllWithAnimation:Wt,settingsPage:A,setSettingsPage:te,isAboutOpen:ie,setIsAboutOpen:Oe,resetToDefaults:ve,closeModal:ue,minimizeInspector:Pe,detailTitle:Ae,activeTab:V,environment:ge,selectedCrash:M,setSelectedCrash:We,selectedPush:D,setSelectedPush:Ee,selectedSocket:z,setSelectedSocket:Fe,refreshMediaCount:U,peekMode:re,setPeekMode:Ue,previewMediaItem:he,setPreviewMediaItem:N}=Ye(),{width:Q}=Ke(),e=Q<360,j=Q<400,[Et,Ft]=B.useState(!1),[Ne,pe]=B.useState(!1),[je]=B.useState(()=>rt().formatted),me=Z(()=>{const T=ce||Ot();return ke.find(x=>x.code===T)||ke[0]},[ce]),[J,K]=B.useState(!1),[Ut,oe]=B.useState(0),W=B.useRef(null);B.useEffect(()=>{E.isRecording().then(T=>{K(T)}).catch(()=>{})},[]),B.useEffect(()=>(J?(oe(0),W.current=setInterval(()=>{oe(T=>T+1)},1e3)):(W.current&&(clearInterval(W.current),W.current=null),oe(0)),()=>{W.current&&clearInterval(W.current)}),[J]);const Nt=B.useCallback(async()=>{try{P("light");const T=await E.takeScreenshot({format:"png",quality:.9,hideInspector:!0});if(T){P("success");const x=de("screenshot",T.format||"png"),O={id:x,type:"image",format:T.format,uri:T.uri,filename:T.uri.split("/").pop()||x,sizeBytes:T.sizeBytes,timestamp:T.timestamp,width:T.width,height:T.height};N(O),U?.().catch(()=>{}),v(R("header.screenshotCaptured"))}else v(R("header.screenshotFailed"))}catch{v(R("header.screenshotError"))}},[U,R]),jt=B.useCallback(async()=>{try{if(J){P("medium");const T=await E.stopRecording();if(K(!1),T){P("success");const x=de("video",T.format),O={id:x,type:T.format==="gif"?"gif":"video",format:T.format,uri:T.uri,filename:T.uri.split("/").pop()||x,sizeBytes:T.sizeBytes,timestamp:T.timestamp,durationMs:T.durationMs,width:T.width,height:T.height,hasAudio:T.hasAudio};N(O),U?.().catch(()=>{}),v(R("header.recordingSaved",{duration:(T.durationMs/1e3).toFixed(1)}))}}else P("medium"),await E.startRecording({fps:24,audioSource:"none"})?(K(!0),v(R("header.recordingStarted"))):v(R("header.recordingStartFailed"))}catch{v(R("header.recordingError")),K(!1)}},[J,R]),Gt=T=>{const x=Math.floor(T/60),O=T%60;return`${x.toString().padStart(2,"0")}:${O.toString().padStart(2,"0")}`},_t=Z(()=>{const T=(ge||(__DEV__?"DEV":"PROD")).trim(),x=T.toUpperCase();return x==="DEV"||x.includes("DEV")||x==="LOCAL"?{label:T,bg:`${t.emerald500}40`,border:`${t.emerald400}8C`,text:t.mintGreenBorder}:x==="UAT"||x==="QA"||x==="TEST"?{label:T,bg:`${t.amber500}47`,border:`${t.amber400}99`,text:t.amberWarmBorder}:x==="PREPROD"||x==="STAGE"||x==="STAGING"?{label:T,bg:`${t.purple500}47`,border:`${t.purple400}99`,text:t.violetSoftBorder}:{label:T,bg:`${t.rose500}40`,border:`${t.roseBorder}8C`,text:t.errorBorder}},[ge]),X=V==="apis"&&k!=null||V==="analytics"&&$!=null||V==="logs"&&L!=null||V==="redux"&&(F!=null||q!=null)||V==="crash"&&M!=null||V==="push"&&D!=null||V==="socket"&&z!=null,Y=A!==null,ae=X||Y||ie,Ge=Z(()=>{switch(A){case"apis":return"APIs (Network)";case"logs":return"Console Logs";case"crash":return"Crash Protection";case"analytics":return"Analytics Logger";case"redux":return"Redux Inspector";case"media":return"Screencast (Media)";case"push":return"Push Notifications";default:return"Settings & Modules"}},[A]),fe=Z(()=>le.OS==="ios"?ee>=98?Q>=390?50:44:0:le.OS==="android"&&ee>=98?Je.currentHeight||24:0,[ee,Q]),H=e?25:j?26.5:27,qt=e?36:j?38:40;return<>
2
+ <S style={[i.headerGradient,{minHeight:(e?44:48)+fe}]}>
3
3
 
4
- <St colors={[t.indigo600,t.violet600]}start={{x:0,y:0}}end={{x:1,y:1}}style={{position:"absolute",top:0,left:0,right:0,bottom:0,borderTopLeftRadius:20,borderTopRightRadius:20}}pointerEvents="none"/>
5
- <S style={{paddingTop:ye,width:"100%"}}>
4
+ <Xe colors={[t.indigo600,t.violet600]}start={{x:0,y:0}}end={{x:1,y:1}}style={{position:"absolute",top:0,left:0,right:0,bottom:0,borderTopLeftRadius:20,borderTopRightRadius:20}}pointerEvents="none"/>
5
+ <S style={{paddingTop:fe,width:"100%"}}>
6
6
  <S style={[i.header,{width:"100%",justifyContent:"space-between",paddingHorizontal:e?10:12,paddingVertical:5.5,minHeight:e?44:48}]}>
7
7
  <S style={{flexDirection:"row",alignItems:"center",gap:e?7:8,flex:X?void 0:1,flexShrink:X?0:1,minWidth:0}}>
8
- {ne&&<G onPress={()=>{if(re){Pe(!1);return}if(Y){ie(P==="main"?null:"main");return}Re(null),Ie(null),Me(null),Be(null),$e(null),Ue(null),Ne(null),je(null)}}hitSlop={15}style={{width:e?32:36,height:e?32:36,borderRadius:e?16:18,alignItems:"center",justifyContent:"center",backgroundColor:`${t.white}2E`,borderWidth:1,borderColor:`${t.white}4D`}}>
8
+ {ae&&<G onPress={()=>{if(ie){Oe(!1);return}if(Y){te(A==="main"?null:"main");return}Ie(null),Re(null),Me(null),$e(null),Be(null),We(null),Ee(null),Fe(null)}}hitSlop={15}style={{width:e?32:36,height:e?32:36,borderRadius:e?16:18,alignItems:"center",justifyContent:"center",backgroundColor:`${t.white}2E`,borderWidth:1,borderColor:`${t.white}4D`}}>
9
9
  <S style={{position:"absolute",width:e?40:44,height:e?40:44,borderRadius:22,backgroundColor:`${t.white}1A`}}/>
10
- <$t/>
10
+ <Vt/>
11
11
  </G>}
12
12
 
13
- {re?<S style={{gap:3,flex:1,minWidth:0,justifyContent:"center"}}>
13
+ {ie?<S style={{gap:3,flex:1,minWidth:0,justifyContent:"center"}}>
14
14
  <S style={{flexDirection:"row",alignItems:"center",gap:6}}>
15
- <C style={{fontFamily:D.interBold,fontSize:e?15:16.5,lineHeight:e?19:21,color:t.white,letterSpacing:-.2}}numberOfLines={1}>
15
+ <C style={{fontFamily:I.interBold,fontSize:e?15:16.5,lineHeight:e?19:21,color:t.white,letterSpacing:-.2}}numberOfLines={1}>
16
16
  About & Specs
17
17
  </C>
18
18
  <S style={{backgroundColor:`${t.white}26`,paddingHorizontal:e?5:6,paddingVertical:2,borderRadius:8,borderWidth:1,borderColor:`${t.white}20`}}>
19
- <C style={{fontFamily:D.interBold,fontSize:e?8.5:9.5,lineHeight:12,color:t.white}}>
20
- v{de}
19
+ <C style={{fontFamily:I.interBold,fontSize:e?8.5:9.5,lineHeight:12,color:t.white}}>
20
+ v{ne}
21
21
  </C>
22
22
  </S>
23
23
  </S>
24
- <C style={{fontFamily:D.interRegular,fontSize:e?10:11,lineHeight:e?14:15,color:`${t.white}CC`,marginTop:1}}numberOfLines={1}>
24
+ <C style={{fontFamily:I.interRegular,fontSize:e?10:11,lineHeight:e?14:15,color:`${t.white}CC`,marginTop:1}}numberOfLines={1}>
25
25
  Package info, runtime specs & diagnostic payload
26
26
  </C>
27
27
  </S>:Y?<S style={{gap:3,flex:1,minWidth:0,justifyContent:"center"}}>
28
28
  <S style={{flexDirection:"row",alignItems:"center",gap:6}}>
29
- <C style={{fontFamily:D.interBold,fontSize:e?15:16.5,lineHeight:e?19:21,color:t.white,letterSpacing:-.2}}numberOfLines={1}>
30
- {Je}
29
+ <C style={{fontFamily:I.interBold,fontSize:e?15:16.5,lineHeight:e?19:21,color:t.white,letterSpacing:-.2}}numberOfLines={1}>
30
+ {Ge}
31
31
  </C>
32
- {P==="main"&&<S style={{backgroundColor:`${t.white}26`,paddingHorizontal:e?5:6,paddingVertical:2,borderRadius:8,borderWidth:1,borderColor:`${t.white}20`}}>
33
- <C style={{fontFamily:D.interBold,fontSize:e?8.5:9.5,lineHeight:12,color:t.white}}>
34
- v{de}
32
+ {A==="main"&&<S style={{backgroundColor:`${t.white}26`,paddingHorizontal:e?5:6,paddingVertical:2,borderRadius:8,borderWidth:1,borderColor:`${t.white}20`}}>
33
+ <C style={{fontFamily:I.interBold,fontSize:e?8.5:9.5,lineHeight:12,color:t.white}}>
34
+ v{ne}
35
35
  </C>
36
36
  </S>}
37
37
  </S>
38
- <C style={{fontFamily:D.interRegular,fontSize:e?10:11,lineHeight:e?14:15,color:`${t.white}CC`,marginTop:1}}numberOfLines={1}>
39
- {P==="main"?"Manage modules and preferences":"Configure module parameters"}
38
+ <C style={{fontFamily:I.interRegular,fontSize:e?10:11,lineHeight:e?14:15,color:`${t.white}CC`,marginTop:1}}numberOfLines={1}>
39
+ {A==="main"?"Manage modules and preferences":"Configure module parameters"}
40
40
  </C>
41
- </S>:ne?null:<S style={{flexDirection:"row",alignItems:"center",gap:e?8:10,flex:1,minWidth:0,marginRight:4}}>
42
- <Ct size={e?44:j?46:48}/>
41
+ </S>:ae?null:<S style={{flexDirection:"row",alignItems:"center",gap:e?8:10,flex:1,minWidth:0,marginRight:4}}>
42
+ <Ze size={e?44:j?46:48}/>
43
43
  <S style={{gap:3,flex:1,minWidth:0,justifyContent:"center"}}>
44
44
 
45
- <C style={[i.headerTitle,{fontFamily:D.interBold,fontWeight:"700",fontSize:e?13:j?13.5:14.5,lineHeight:e?17:j?18:19.5,color:t.white,letterSpacing:-.2,paddingBottom:0}]}numberOfLines={1}ellipsizeMode="tail">
45
+ <C style={[i.headerTitle,{fontFamily:I.interBold,fontWeight:"700",fontSize:e?13:j?13.5:14.5,lineHeight:e?17:j?18:19.5,color:t.white,letterSpacing:-.2,paddingBottom:0}]}numberOfLines={1}ellipsizeMode="tail">
46
46
  react-native-inapp-inspector
47
47
  </C>
48
48
 
49
49
 
50
50
  <S style={{flexDirection:"row",alignItems:"center",gap:4.5,minWidth:0,marginTop:1.5}}>
51
51
 
52
- <G onPress={()=>{O("light"),fe(!0)}}hitSlop={6}accessible={!0}accessibilityRole="button"accessibilityLabel={I("settings.general.selectLanguage","Select Language")}style={{flexDirection:"row",alignItems:"center",backgroundColor:`${t.white}24`,borderRadius:5,paddingHorizontal:5.5,paddingVertical:2,gap:3.5,borderWidth:1,borderColor:`${t.white}38`,flexShrink:0}}>
53
- <Bt code={be?.code||"en"}size={9.5}borderRadius={2}/>
54
- <C style={{fontFamily:D.interBold,fontSize:8.5,lineHeight:11,color:t.white,letterSpacing:.2}}numberOfLines={1}>
55
- {be?.code?.toUpperCase()||"EN"}
52
+ <G onPress={()=>{P("light"),pe(!0)}}hitSlop={6}accessible={!0}accessibilityRole="button"accessibilityLabel={R("settings.general.selectLanguage","Select Language")}style={{flexDirection:"row",alignItems:"center",backgroundColor:`${t.white}24`,borderRadius:5,paddingHorizontal:5.5,paddingVertical:2,gap:3.5,borderWidth:1,borderColor:`${t.white}38`,flexShrink:0}}>
53
+ <Ct code={me?.code||"en"}size={9.5}borderRadius={2}/>
54
+ <C style={{fontFamily:I.interBold,fontSize:8.5,lineHeight:11,color:t.white,letterSpacing:.2}}numberOfLines={1}>
55
+ {me?.code?.toUpperCase()||"EN"}
56
56
  </C>
57
57
  <Ve size={6.5}color={`${t.white}CC`}/>
58
58
  </G>
59
59
 
60
60
 
61
61
  <S style={{flexDirection:"row",alignItems:"center",backgroundColor:`${t.white}1F`,borderRadius:5,paddingHorizontal:5.5,paddingVertical:2,gap:3.5,borderWidth:1,borderColor:`${t.white}2E`,flexShrink:1,minWidth:0}}>
62
- {se.OS==="ios"?<Ht color={`${t.white}E6`}size={9}/>:<Ot color={`${t.white}E6`}size={9}/>}
63
- <C style={{fontFamily:D.interMedium,fontSize:8.5,lineHeight:11,color:`${t.white}EB`,letterSpacing:.1}}numberOfLines={1}ellipsizeMode="tail">
64
- {Qe}
62
+ {le.OS==="ios"?<Rt color={`${t.white}E6`}size={9}/>:<Mt color={`${t.white}E6`}size={9}/>}
63
+ <C style={{fontFamily:I.interMedium,fontSize:8.5,lineHeight:11,color:`${t.white}EB`,letterSpacing:.1}}numberOfLines={1}ellipsizeMode="tail">
64
+ {je}
65
65
  </C>
66
66
  </S>
67
67
 
68
68
 
69
- <Se onPress={()=>{te?ae(!0):Ye.openURL("https://www.npmjs.com/package/react-native-inapp-inspector").catch(()=>{})}}style={{flexDirection:"row",alignItems:"center",backgroundColor:`${t.white}1F`,borderRadius:5,paddingHorizontal:6,paddingVertical:2,gap:3.5,borderWidth:1,borderColor:`${t.white}2E`,flexShrink:0}}>
70
- <Pt size={9}color={t.npmRedLight}/>
71
- <C style={{fontFamily:D.interMedium,fontSize:8.5,lineHeight:11,color:`${t.white}EB`,letterSpacing:.1}}>
72
- v{de}
69
+ <Qe onPress={()=>{qe.openURL("https://www.npmjs.com/package/react-native-inapp-inspector").catch(()=>{})}}style={{flexDirection:"row",alignItems:"center",backgroundColor:`${t.white}1F`,borderRadius:5,paddingHorizontal:6,paddingVertical:2,gap:3.5,borderWidth:1,borderColor:`${t.white}2E`,flexShrink:0}}>
70
+ <$t size={9}color={t.npmRedLight}/>
71
+ <C style={{fontFamily:I.interMedium,fontSize:8.5,lineHeight:11,color:`${t.white}EB`,letterSpacing:.1}}>
72
+ v{ne}
73
73
  </C>
74
- {te&&<C style={{fontFamily:D.interBold,fontSize:8,color:t.warningAmber}}>
75
- ●
76
- </C>}
77
- </Se>
78
-
79
-
80
- {te&&<Se hitSlop={10}onPress={()=>ae(!0)}style={{flexDirection:"row",alignItems:"center",backgroundColor:t.warningAmber,borderRadius:5,paddingHorizontal:4.5,paddingVertical:1.5,gap:3,shadowColor:t.warningAmber,shadowOffset:{width:0,height:1.5},shadowOpacity:.35,shadowRadius:3,elevation:3,flexShrink:0}}>
81
- <Xe.View style={{width:4.5,height:4.5,borderRadius:2.25,backgroundColor:t.white,opacity:He,transform:[{scale:Oe}]}}/>
82
- {!e&&<C style={{fontFamily:D.interBold,fontSize:8,lineHeight:10,color:t.white,letterSpacing:.3}}>
83
- UPDATE
84
- </C>}
85
- <Wt size={e?7.5:8.5}color={t.white}/>
86
- </Se>}
74
+ </Qe>
87
75
  </S>
88
76
  </S>
89
77
  </S>}
90
78
  </S>
91
79
 
92
80
  {X&&<S style={[i.headerCenter,{paddingHorizontal:e?2:6}]}>
93
- {V==="apis"&&R!=null?<S style={i.headerDetailCenter}>
81
+ {V==="apis"&&k!=null?<S style={i.headerDetailCenter}>
94
82
  <S style={i.headerDetailRow}>
95
- <S style={[i.headerMethodBadge,{backgroundColor:xt[R.method]??t.grayText,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
83
+ <S style={[i.headerMethodBadge,{backgroundColor:et[k.method]??t.grayText,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
96
84
  <C style={[i.headerMethodText,{fontSize:e?9:10}]}>
97
- {R.method}
85
+ {k.method}
98
86
  </C>
99
87
  </S>
100
88
  <C style={[i.headerDetailTitle,{fontSize:e?13.5:15}]}numberOfLines={1}ellipsizeMode="middle">
101
- {Fe}
89
+ {Ae}
102
90
  </C>
103
91
  </S>
104
92
  <S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
105
- <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${ce(R.status)}26`,borderWidth:1,borderColor:`${ce(R.status)}55`}}>
106
- <S style={[i.headerStatusDot,{backgroundColor:ce(R.status),width:e?6:7,height:e?6:7}]}/>
107
- <C style={[i.headerSubTitle,{fontFamily:D.interBold,fontSize:e?10:11}]}>
108
- {R.status===0?"Failed":R.status??"Pending"}
93
+ <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${se(k.status)}26`,borderWidth:1,borderColor:`${se(k.status)}55`}}>
94
+ <S style={[i.headerStatusDot,{backgroundColor:se(k.status),width:e?6:7,height:e?6:7}]}/>
95
+ <C style={[i.headerSubTitle,{fontFamily:I.interBold,fontSize:e?10:11}]}>
96
+ {k.status===0?"Failed":k.status??"Pending"}
109
97
  </C>
110
98
  </S>
111
99
  <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
112
100
  <_ color={t.white}size={e?10:11}/>
113
101
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
114
- {R.duration!=null?`${R.duration}ms`:"\u2014"}
102
+ {k.duration!=null?`${k.duration}ms`:"\u2014"}
115
103
  </C>
116
104
  </S>
117
- {R.response!=null&&<S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
105
+ {k.response!=null&&<S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
118
106
  <De color={t.white}size={e?10:11}/>
119
107
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
120
- {xe(R.response)}
108
+ {Ce(k.response)}
121
109
  </C>
122
110
  </S>}
123
111
  </S>
@@ -159,11 +147,11 @@ import B,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
159
147
  <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
160
148
  <_ color={t.white}size={e?10:11}/>
161
149
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
162
- {zt(L.timestamp)}
150
+ {tt(L.timestamp)}
163
151
  </C>
164
152
  </S>
165
153
  </S>
166
- </S>:V==="redux"&&F!=null?(()=>{const T=Le?.[F],x=T&&typeof T=="object"?Object.keys(T).length:typeof T<"u"?1:0,A=xe(T),we=ve[F];return<S style={i.headerDetailCenter}>
154
+ </S>:V==="redux"&&F!=null?(()=>{const T=Le?.[F],x=T&&typeof T=="object"?Object.keys(T).length:typeof T<"u"?1:0,O=Ce(T),be=He[F];return<S style={i.headerDetailCenter}>
167
155
  <S style={i.headerDetailRow}>
168
156
  <S style={[i.headerMethodBadge,{backgroundColor:`${t.purple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
169
157
  <C style={[i.headerMethodText,{fontSize:e?9:10}]}>
@@ -189,16 +177,16 @@ import B,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
189
177
  •
190
178
  </C>
191
179
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
192
- {A}
180
+ {O}
193
181
  </C>
194
- {we?.timestamp&&<>
182
+ {be?.timestamp&&<>
195
183
  <C style={[i.headerSubTitle,{opacity:.6,fontSize:e?10:11}]}>
196
184
  •
197
185
  </C>
198
186
  <S style={{flexDirection:"row",alignItems:"center",gap:3}}>
199
187
  <_ color={t.white}size={e?9:10}/>
200
188
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
201
- {we.timestamp}
189
+ {be.timestamp}
202
190
  </C>
203
191
  </S>
204
192
  </>}
@@ -245,28 +233,28 @@ import B,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
245
233
  </C>
246
234
  </>}
247
235
  </S>
248
- </S>:V==="push"&&k!=null?<S style={i.headerDetailCenter}>
236
+ </S>:V==="push"&&D!=null?<S style={i.headerDetailCenter}>
249
237
  <S style={i.headerDetailRow}>
250
238
  <S style={[i.headerMethodBadge,{backgroundColor:t.brandPurple,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
251
239
  <C style={[i.headerMethodText,{fontSize:e?9:10}]}>
252
- {(k.source||"PUSH").toUpperCase()}
240
+ {(D.source||"PUSH").toUpperCase()}
253
241
  </C>
254
242
  </S>
255
243
  <C style={[i.headerDetailTitle,{fontSize:e?13:14.5,flex:1,minWidth:0}]}numberOfLines={1}ellipsizeMode="tail">
256
- {k.title||k.body||"Push Notification"}
244
+ {D.title||D.body||"Push Notification"}
257
245
  </C>
258
246
  </S>
259
247
  <S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1,maxWidth:"100%"}}>
260
- <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2,borderRadius:20,backgroundColor:`${k.appState==="foreground"?t.greenColor:k.appState==="background"?t.amber500:t.brandPurple}26`,borderWidth:1,borderColor:`${k.appState==="foreground"?t.greenColor:k.appState==="background"?t.amber500:t.brandPurple}55`}}>
261
- <S style={[i.headerStatusDot,{backgroundColor:k.appState==="foreground"?t.greenColor:k.appState==="background"?t.amber500:t.brandPurple,width:e?6:7,height:e?6:7}]}/>
262
- <C style={[i.headerSubTitle,{fontFamily:D.interBold,fontSize:e?9.5:10.5}]}>
263
- {k.appState?k.appState.toUpperCase():"DELIVERED"}
248
+ <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2,borderRadius:20,backgroundColor:`${D.appState==="foreground"?t.greenColor:D.appState==="background"?t.amber500:t.brandPurple}26`,borderWidth:1,borderColor:`${D.appState==="foreground"?t.greenColor:D.appState==="background"?t.amber500:t.brandPurple}55`}}>
249
+ <S style={[i.headerStatusDot,{backgroundColor:D.appState==="foreground"?t.greenColor:D.appState==="background"?t.amber500:t.brandPurple,width:e?6:7,height:e?6:7}]}/>
250
+ <C style={[i.headerSubTitle,{fontFamily:I.interBold,fontSize:e?9.5:10.5}]}>
251
+ {D.appState?D.appState.toUpperCase():"DELIVERED"}
264
252
  </C>
265
253
  </S>
266
254
  <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2,borderRadius:20,backgroundColor:`${t.white}29`}}>
267
255
  <_ color={t.white}size={e?9.5:10.5}/>
268
256
  <C style={[i.headerSubTitle,{fontSize:e?9.5:10.5}]}>
269
- {Ce(k.timestamp)}
257
+ {Te(D.timestamp)}
270
258
  </C>
271
259
  </S>
272
260
  </S>
@@ -284,20 +272,20 @@ import B,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
284
272
  <S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
285
273
  <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${z.status==="open"?t.greenColor:z.status==="connecting"?t.amber600:z.status==="error"?t.errorColor:t.slate500}26`,borderWidth:1,borderColor:`${z.status==="open"?t.greenColor:z.status==="connecting"?t.amber600:z.status==="error"?t.errorColor:t.slate500}55`}}>
286
274
  <S style={[i.headerStatusDot,{backgroundColor:z.status==="open"?t.greenColor:z.status==="connecting"?t.amber600:z.status==="error"?t.errorColor:t.slate500,width:e?6:7,height:e?6:7}]}/>
287
- <C style={[i.headerSubTitle,{fontFamily:D.interBold,fontSize:e?10:11}]}>
275
+ <C style={[i.headerSubTitle,{fontFamily:I.interBold,fontSize:e?10:11}]}>
288
276
  {(z.status||"open").toUpperCase()}
289
277
  </C>
290
278
  </S>
291
279
  <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
292
280
  <_ color={t.white}size={e?10:11}/>
293
281
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
294
- {z.duration!=null?`${z.duration}ms`:Ce(z.startTime)}
282
+ {z.duration!=null?`${z.duration}ms`:Te(z.startTime)}
295
283
  </C>
296
284
  </S>
297
285
  <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
298
286
  <De color={t.white}size={e?10:11}/>
299
287
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
300
- {z.frames?.length||0} frames · {Vt((z.totalBytesSent||0)+(z.totalBytesReceived||0))}
288
+ {z.frames?.length||0} frames · {it((z.totalBytesSent||0)+(z.totalBytesReceived||0))}
301
289
  </C>
302
290
  </S>
303
291
  </S>
@@ -306,40 +294,37 @@ import B,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
306
294
 
307
295
  <S style={[i.headerRight,{flexDirection:"row",alignItems:"center",justifyContent:"flex-end",flexShrink:0,gap:e?4:5}]}>
308
296
 
309
- {Y?<G onPress={()=>{Ke.alert("Reset All Settings","This restores all module visibility and UI preferences to defaults. Continue?",[{text:"Cancel",style:"cancel"},{text:"Reset",style:"destructive",onPress:Ee}])}}hitSlop={15}style={[i.closeButtonSquare,{width:v,height:v,borderRadius:e?6:7,backgroundColor:"rgba(245, 158, 11, 0.26)",borderColor:"rgba(252, 211, 77, 0.45)",borderWidth:1}]}>
310
- <Et color={t.white}size={e?12:14}/>
311
- </G>:ne?null:<>
297
+ {Y?<G onPress={()=>{_e.alert("Reset All Settings","This restores all module visibility and UI preferences to defaults. Continue?",[{text:"Cancel",style:"cancel"},{text:"Reset",style:"destructive",onPress:ve}])}}hitSlop={15}style={[i.closeButtonSquare,{width:H,height:H,borderRadius:e?6:7,backgroundColor:"rgba(245, 158, 11, 0.26)",borderColor:"rgba(252, 211, 77, 0.45)",borderWidth:1}]}>
298
+ <Bt color={t.white}size={e?12:14}/>
299
+ </G>:ae?null:<>
312
300
 
313
- <G accessible={!0}accessibilityRole="button"accessibilityLabel={oe?"Disable peek-through":"Enable peek-through"}onPress={()=>{O("light"),Ge(T=>!T)}}hitSlop={15}style={[i.closeButtonSquare,{width:v,height:v,borderRadius:e?6:7,backgroundColor:oe?"rgba(6, 182, 212, 0.38)":"rgba(6, 182, 212, 0.18)",borderColor:oe?"rgba(103, 232, 249, 0.65)":"rgba(103, 232, 249, 0.35)",borderWidth:1}]}>
314
- <Ft color={t.white}size={e?12:14}/>
301
+ <G accessible={!0}accessibilityRole="button"accessibilityLabel={re?"Disable peek-through":"Enable peek-through"}onPress={()=>{P("light"),Ue(T=>!T)}}hitSlop={15}style={[i.closeButtonSquare,{width:H,height:H,borderRadius:e?6:7,backgroundColor:re?"rgba(6, 182, 212, 0.38)":"rgba(6, 182, 212, 0.18)",borderColor:re?"rgba(103, 232, 249, 0.65)":"rgba(103, 232, 249, 0.35)",borderWidth:1}]}>
302
+ <Lt color={t.white}size={e?12:14}/>
315
303
  </G>
316
304
 
317
305
 
318
- <G accessible={!0}accessibilityRole="button"accessibilityLabel="Settings"onPress={()=>ie("main")}hitSlop={15}style={[i.closeButtonSquare,{width:v,height:v,borderRadius:e?6:7,backgroundColor:"rgba(168, 85, 247, 0.28)",borderColor:"rgba(216, 180, 254, 0.45)",borderWidth:1}]}>
319
- <Lt color={t.white}size={e?12:14}/>
306
+ <G accessible={!0}accessibilityRole="button"accessibilityLabel="Settings"onPress={()=>te("main")}hitSlop={15}style={[i.closeButtonSquare,{width:H,height:H,borderRadius:e?6:7,backgroundColor:"rgba(168, 85, 247, 0.28)",borderColor:"rgba(216, 180, 254, 0.45)",borderWidth:1}]}>
307
+ <Dt color={t.white}size={e?12:14}/>
320
308
  </G>
321
309
  </>}
322
310
 
323
311
 
324
- <Te testID="inspector.header.minimizeBtn"onPress={We||he}hitSlop={{top:12,bottom:12,left:12,right:12}}activeOpacity={.7}accessibilityRole="button"accessibilityLabel={I("common.minimize","Minimize")}style={[i.closeButtonSquare,{width:v,height:v,borderRadius:e?6:7,backgroundColor:"rgba(56, 189, 248, 0.22)",borderColor:"rgba(125, 211, 252, 0.40)",borderWidth:1}]}>
312
+ <Se testID="inspector.header.minimizeBtn"onPress={Pe||ue}hitSlop={{top:12,bottom:12,left:12,right:12}}activeOpacity={.7}accessibilityRole="button"accessibilityLabel={R("common.minimize","Minimize")}style={[i.closeButtonSquare,{width:H,height:H,borderRadius:e?6:7,backgroundColor:"rgba(56, 189, 248, 0.22)",borderColor:"rgba(125, 211, 252, 0.40)",borderWidth:1}]}>
325
313
  <Ve size={e?14:16}color={t.white}/>
326
- </Te>
314
+ </Se>
327
315
 
328
316
 
329
- <Te testID="inspector.header.closeBtn"onPress={he}hitSlop={{top:12,bottom:12,left:12,right:12}}activeOpacity={.7}accessibilityRole="button"accessibilityLabel={I("common.close","Close")}style={[i.closeButtonSquare,{width:v,height:v,borderRadius:e?6:7,backgroundColor:"rgba(244, 63, 94, 0.28)",borderColor:"rgba(251, 113, 133, 0.48)",borderWidth:1}]}>
330
- <At size={e?12:14}/>
331
- </Te>
317
+ <Se testID="inspector.header.closeBtn"onPress={ue}hitSlop={{top:12,bottom:12,left:12,right:12}}activeOpacity={.7}accessibilityRole="button"accessibilityLabel={R("common.close","Close")}style={[i.closeButtonSquare,{width:H,height:H,borderRadius:e?6:7,backgroundColor:"rgba(244, 63, 94, 0.28)",borderColor:"rgba(251, 113, 133, 0.48)",borderWidth:1}]}>
318
+ <It size={e?12:14}/>
319
+ </Se>
332
320
  </S>
333
321
  </S>
334
322
  </S>
335
323
  </S>
336
324
 
337
325
 
338
- <Rt visible={_e}latestVersion={Ae}onClose={()=>ae(!1)}/>
339
-
340
-
341
- <Mt visible={qe}onClose={()=>fe(!1)}/>
326
+ <Tt visible={Ne}onClose={()=>pe(!1)}/>
342
327
 
343
328
 
344
- <It item={me}visible={!!me}onClose={()=>N(null)}onDelete={async T=>{await W.deleteMedia(T.uri),U?.().catch(()=>{}),N(null)}}onConvertToGif={async T=>{const x=await W.convertToGif(T.uri,{fps:12,width:480});if(x){U?.().catch(()=>{});const A=ue("anim","gif");N({id:A,type:"gif",format:"gif",uri:x.uri,filename:x.uri.split("/").pop()||A,sizeBytes:x.sizeBytes,timestamp:x.timestamp,durationMs:x.durationMs})}}}/>
345
- </>});export default jt;
329
+ <St item={he}visible={!!he}onClose={()=>N(null)}onDelete={async T=>{await E.deleteMedia(T.uri),U?.().catch(()=>{}),N(null)}}onConvertToGif={async T=>{const x=await E.convertToGif(T.uri,{fps:12,width:480});if(x){U?.().catch(()=>{});const O=de("anim","gif");N({id:O,type:"gif",format:"gif",uri:x.uri,filename:x.uri.split("/").pop()||O,sizeBytes:x.sizeBytes,timestamp:x.timestamp,durationMs:x.durationMs})}}}/>
330
+ </>});export default vt;
@@ -4,7 +4,7 @@ import se,{useEffect as P,useRef as L}from"react";import{Animated as o,Modal as
4
4
  <Me onClose={M}>
5
5
  <B style={[H.modalBackdrop,{zIndex:999999,elevation:999999}]}>
6
6
  <Be style={H.modalBackdropPressable}onPress={M}/>
7
- <B style={[H.modalContentCard,{height:`${O}%`,borderTopLeftRadius:O>=100?0:20,borderTopRightRadius:O>=100?0:20,opacity:le?Math.max(.05,Math.min(1,typeof $=="number"?$:.1)):1,zIndex:9999999,elevation:999999}]}>
7
+ <B style={[H.modalContentCard,{height:`${O}%`,borderTopLeftRadius:O>=100?0:20,borderTopRightRadius:O>=100?0:20,opacity:le?Math.max(.05,Math.min(1,typeof $=="number"?$:.3)):1,zIndex:9999999,elevation:999999}]}>
8
8
  <Ce translucent backgroundColor="transparent"barStyle="light-content"/>
9
9
 
10
10
  <Re/>
@@ -1,19 +1,19 @@
1
- import{useState as N,useEffect as G,useRef as R}from"react";import{Animated as r,Linking as J,StyleSheet as K,Text as S,TouchableOpacity as P,View as T}from"react-native";import B,{Path as C}from"react-native-svg";import{useInspector as Q}from"./InspectorContext";import{LIB_VERSION as X}from"../../constants";import{NpmIcon as Z}from"../NetworkIcons";import{copyToClipboard as ee}from"../../helpers";import{showToast as te}from"../../helpers/toast";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as oe}from"../../styles/AppFonts";import{useTranslation as ie}from"../../i18n";const Ce=({size:t=13,color:i=e.slate400})=><B width={t}height={t}viewBox="0 0 24 24"fill="none">
1
+ import{useState as N,useEffect as J,useRef as B}from"react";import{Animated as r,Linking as K,StyleSheet as Q,Text as S,TouchableOpacity as _,View as T}from"react-native";import I,{Path as C}from"react-native-svg";import{useInspector as X}from"./InspectorContext";import{LIB_VERSION as Z}from"../../constants";import{NpmIcon as Ce}from"../NetworkIcons";import{copyToClipboard as Ve}from"../../helpers";import{showToast as xe}from"../../helpers/toast";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as Te}from"../../styles/AppFonts";import{useTranslation as Se}from"../../i18n";const Le=({size:t=13,color:i=e.slate400})=><I width={t}height={t}viewBox="0 0 24 24"fill="none">
2
2
  <C d="M18 6L6 18M6 6l12 12"stroke={i}strokeWidth="2.4"strokeLinecap="round"strokeLinejoin="round"/>
3
- </B>,Ve=({size:t=11,color:i=e.slate400})=><B width={t}height={t}viewBox="0 0 24 24"fill="none">
3
+ </I>,Re=({size:t=11,color:i=e.slate400})=><I width={t}height={t}viewBox="0 0 24 24"fill="none">
4
4
  <C d="M8 4v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2z"stroke={i}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
5
5
  <C d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"stroke={i}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
6
- </B>,Te=({size:t=11,color:i=e.greenColor})=><B width={t}height={t}viewBox="0 0 24 24"fill="none">
6
+ </I>,Be=({size:t=11,color:i=e.greenColor})=><I width={t}height={t}viewBox="0 0 24 24"fill="none">
7
7
  <C d="M20 6L9 17l-5-5"stroke={i}strokeWidth="2.4"strokeLinecap="round"strokeLinejoin="round"/>
8
- </B>,Se=({size:t=11,color:i=e.white})=><B width={t}height={t}viewBox="0 0 24 24"fill="none">
8
+ </I>,Ie=({size:t=11,color:i=e.white})=><I width={t}height={t}viewBox="0 0 24 24"fill="none">
9
9
  <C d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"stroke={i}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
10
10
  <C d="M15 3h6v6"stroke={i}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
11
11
  <C d="M10 14L21 3"stroke={i}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
12
- </B>,H=7e3;export const NpmUpdateToast=()=>{const{t}=ie(),{updateAvailable:i,latestNpmVersion:V,showUpdateToast:O}=Q(),[_,U]=N(!1),[F,j]=N(!1),[W,E]=N(!1),I=R(new r.Value(60)).current,D=R(new r.Value(0)).current,z=R(new r.Value(1)).current,A=R(null);G(()=>(O&&i&&V&&!_&&(j(!0),r.parallel([r.spring(I,{toValue:0,friction:8,tension:40,useNativeDriver:!0}),r.timing(D,{toValue:1,duration:250,useNativeDriver:!0})]).start(),z.setValue(1),r.timing(z,{toValue:0,duration:H,useNativeDriver:!1}).start(),A.current=setTimeout(()=>{M()},H)),()=>{A.current&&clearTimeout(A.current)}),[O,i,V,_]);const M=()=>{r.parallel([r.timing(D,{toValue:0,duration:180,useNativeDriver:!0}),r.timing(I,{toValue:60,duration:180,useNativeDriver:!0})]).start(()=>{j(!1),U(!0)})},$=()=>{ee("npm install react-native-inapp-inspector@latest","Install Command"),E(!0),te(t("about.copiedInstallCommand","Copied npm install command!")),setTimeout(()=>{E(!1)},2e3)},Y=()=>{J.openURL("https://www.npmjs.com/package/react-native-inapp-inspector").catch(()=>{}),M()};if(typeof __DEV__>"u"||!__DEV__||!O||!F||!i||!V)return null;const q=z.interpolate({inputRange:[0,1],outputRange:["0%","100%"]});return<r.View style={[o.container,{opacity:D,transform:[{translateY:I}]}]}>
12
+ </I>,U=7e3;export const NpmUpdateToast=()=>{const{t}=Se(),{updateAvailable:i,latestNpmVersion:V,showUpdateToast:O,setIsUpdatePopupVisible:R}=X(),[j,F]=N(!1),[$,E]=N(!1),[W,H]=N(!1),D=B(new r.Value(60)).current,P=B(new r.Value(0)).current,z=B(new r.Value(1)).current,A=B(null);J(()=>(O&&i&&V&&!j&&(E(!0),R?.(!0),r.parallel([r.spring(D,{toValue:0,friction:8,tension:40,useNativeDriver:!0}),r.timing(P,{toValue:1,duration:250,useNativeDriver:!0})]).start(),z.setValue(1),r.timing(z,{toValue:0,duration:U,useNativeDriver:!1}).start(),A.current=setTimeout(()=>{M()},U)),()=>{A.current&&clearTimeout(A.current),R?.(!1)}),[O,i,V,j,R]);const M=()=>{r.parallel([r.timing(P,{toValue:0,duration:180,useNativeDriver:!0}),r.timing(D,{toValue:60,duration:180,useNativeDriver:!0})]).start(()=>{E(!1),F(!0),R?.(!1)})},Y=()=>{Ve("npm install react-native-inapp-inspector@latest","Install Command"),H(!0),xe(t("about.copiedInstallCommand","Copied npm install command!")),setTimeout(()=>{H(!1)},2e3)},q=()=>{K.openURL("https://www.npmjs.com/package/react-native-inapp-inspector").catch(()=>{}),M()};if(typeof __DEV__>"u"||!__DEV__||!O||!$||!i||!V)return null;const G=z.interpolate({inputRange:[0,1],outputRange:["0%","100%"]});return<r.View style={[o.container,{opacity:P,transform:[{translateY:D}]}]}>
13
13
  <T style={o.contentRow}>
14
14
 
15
15
  <T style={o.npmIconContainer}>
16
- <Z size={15}color={e.npmRed}/>
16
+ <Ce size={15}color={e.npmRed}/>
17
17
  </T>
18
18
 
19
19
  <T style={o.textContainer}>
@@ -24,32 +24,32 @@ import{useState as N,useEffect as G,useRef as R}from"react";import{Animated as r
24
24
  </T>
25
25
  </T>
26
26
  <S style={o.subtitleText}>
27
- {t("header.updateAvailable",{latestVersion:V,currentVersion:X,defaultValue:`react-native-inapp-inspector v${V} is available on NPM.`})}
27
+ {t("header.updateAvailable",{latestVersion:V,currentVersion:Z,defaultValue:`react-native-inapp-inspector v${V} is available on NPM.`})}
28
28
  </S>
29
29
  </T>
30
30
 
31
31
 
32
- <P style={o.copyButton}onPress={$}activeOpacity={.7}hitSlop={{top:8,bottom:8,left:4,right:4}}>
33
- {W?<Te size={11}color={e.greenColor}/>:<Ve size={11}color={e.slate400}/>}
32
+ <_ style={o.copyButton}onPress={Y}activeOpacity={.7}hitSlop={{top:8,bottom:8,left:4,right:4}}>
33
+ {W?<Be size={11}color={e.greenColor}/>:<Re size={11}color={e.slate400}/>}
34
34
  <S style={[o.copyButtonText,W&&{color:e.greenColor}]}>
35
35
  {W?t("common.copied","Copied"):t("header.copyCommand","Copy")}
36
36
  </S>
37
- </P>
37
+ </_>
38
38
 
39
39
 
40
- <P style={o.actionButton}onPress={Y}activeOpacity={.8}hitSlop={{top:8,bottom:8,left:4,right:4}}>
40
+ <_ style={o.actionButton}onPress={q}activeOpacity={.8}hitSlop={{top:8,bottom:8,left:4,right:4}}>
41
41
  <S style={o.actionButtonText}>{t("header.viewNpm","View")}</S>
42
- <Se size={10}color={e.white}/>
43
- </P>
42
+ <Ie size={10}color={e.white}/>
43
+ </_>
44
44
 
45
45
 
46
- <P style={o.closeButton}onPress={M}activeOpacity={.7}hitSlop={{top:10,bottom:10,left:10,right:10}}>
47
- <Ce size={12}color={e.slate400}/>
48
- </P>
46
+ <_ style={o.closeButton}onPress={M}activeOpacity={.7}hitSlop={{top:10,bottom:10,left:10,right:10}}>
47
+ <Le size={12}color={e.slate400}/>
48
+ </_>
49
49
  </T>
50
50
 
51
51
 
52
52
  <T style={o.progressBarTrack}>
53
- <r.View style={[o.progressBarFill,{width:q}]}/>
53
+ <r.View style={[o.progressBarFill,{width:G}]}/>
54
54
  </T>
55
- </r.View>};const L={fontFamily:oe.interRegular},o=K.create({container:{position:"absolute",bottom:24,left:14,right:14,backgroundColor:e.slate900,borderRadius:16,borderWidth:1,borderColor:e.slate700,shadowColor:e.black,shadowOffset:{width:0,height:12},shadowOpacity:.4,shadowRadius:24,elevation:24,overflow:"hidden",zIndex:99999},contentRow:{flexDirection:"row",alignItems:"center",paddingVertical:11,paddingHorizontal:12,gap:8},npmIconContainer:{width:32,height:32,borderRadius:9,backgroundColor:e.white,justifyContent:"center",alignItems:"center",borderWidth:1,borderColor:e.slate200,flexShrink:0,shadowColor:e.black,shadowOffset:{width:0,height:1},shadowOpacity:.15,shadowRadius:2,elevation:2},textContainer:{flex:1,minWidth:0},titleRow:{flexDirection:"row",alignItems:"center",gap:5},titleText:{fontSize:12.5,fontWeight:"700",color:e.slate50,letterSpacing:-.2,...L},versionPill:{backgroundColor:`${e.offerPurple}33`,paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:5,borderWidth:1,borderColor:`${e.violet500}80`},versionPillText:{fontSize:10,fontWeight:"700",color:e.purpleLightMuted,...L},subtitleText:{fontSize:10.5,color:e.slate400,marginTop:1,...L},copyButton:{flexDirection:"row",alignItems:"center",gap:3.5,backgroundColor:e.slate800,paddingVertical:5.5,paddingHorizontal:8,borderRadius:7,borderWidth:1,borderColor:e.slate700,flexShrink:0},copyButtonText:{fontSize:10.5,fontWeight:"600",color:e.slate400,...L},actionButton:{flexDirection:"row",alignItems:"center",gap:3.5,backgroundColor:e.offerPurple,paddingVertical:5.5,paddingHorizontal:9,borderRadius:7,flexShrink:0,shadowColor:e.offerPurple,shadowOffset:{width:0,height:2},shadowOpacity:.35,shadowRadius:4,elevation:3},actionButtonText:{fontSize:11,fontWeight:"700",color:e.white,...L},closeButton:{width:22,height:22,borderRadius:11,backgroundColor:e.slate800,justifyContent:"center",alignItems:"center",flexShrink:0},progressBarTrack:{height:2.5,width:"100%",backgroundColor:e.slate800},progressBarFill:{height:"100%",backgroundColor:e.violet500}});export default NpmUpdateToast;
55
+ </r.View>};const L={fontFamily:Te.interRegular},o=Q.create({container:{position:"absolute",bottom:24,left:14,right:14,backgroundColor:e.slate900,borderRadius:16,borderWidth:1,borderColor:e.slate700,shadowColor:e.black,shadowOffset:{width:0,height:12},shadowOpacity:.4,shadowRadius:24,elevation:24,overflow:"hidden",zIndex:99999},contentRow:{flexDirection:"row",alignItems:"center",paddingVertical:11,paddingHorizontal:12,gap:8},npmIconContainer:{width:32,height:32,borderRadius:9,backgroundColor:e.white,justifyContent:"center",alignItems:"center",borderWidth:1,borderColor:e.slate200,flexShrink:0,shadowColor:e.black,shadowOffset:{width:0,height:1},shadowOpacity:.15,shadowRadius:2,elevation:2},textContainer:{flex:1,minWidth:0},titleRow:{flexDirection:"row",alignItems:"center",gap:5},titleText:{fontSize:12.5,fontWeight:"700",color:e.slate50,letterSpacing:-.2,...L},versionPill:{backgroundColor:`${e.offerPurple}33`,paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:5,borderWidth:1,borderColor:`${e.violet500}80`},versionPillText:{fontSize:10,fontWeight:"700",color:e.purpleLightMuted,...L},subtitleText:{fontSize:10.5,color:e.slate400,marginTop:1,...L},copyButton:{flexDirection:"row",alignItems:"center",gap:3.5,backgroundColor:e.slate800,paddingVertical:5.5,paddingHorizontal:8,borderRadius:7,borderWidth:1,borderColor:e.slate700,flexShrink:0},copyButtonText:{fontSize:10.5,fontWeight:"600",color:e.slate400,...L},actionButton:{flexDirection:"row",alignItems:"center",gap:3.5,backgroundColor:e.offerPurple,paddingVertical:5.5,paddingHorizontal:9,borderRadius:7,flexShrink:0,shadowColor:e.offerPurple,shadowOffset:{width:0,height:2},shadowOpacity:.35,shadowRadius:4,elevation:3},actionButtonText:{fontSize:11,fontWeight:"700",color:e.white,...L},closeButton:{width:22,height:22,borderRadius:11,backgroundColor:e.slate800,justifyContent:"center",alignItems:"center",flexShrink:0},progressBarTrack:{height:2.5,width:"100%",backgroundColor:e.slate800},progressBarFill:{height:"100%",backgroundColor:e.violet500}});export default NpmUpdateToast;
@@ -1,3 +1,3 @@
1
- export declare const ENC_MID = "";
2
- export declare const ENC_SEC = "";
3
- export declare const TELEMETRY_SALT = "";
1
+ export declare const ENC_MID = "df8ace0290a695bd05986213";
2
+ export declare const ENC_SEC = "db93cb0186b1f7bb0ba63a0d0a64997586849455ce37";
3
+ export declare const TELEMETRY_SALT = "rn-inapp-inspector-telemetry-v1";
@@ -1 +1 @@
1
- export const ENC_MID="",ENC_SEC="",TELEMETRY_SALT="";
1
+ export const ENC_MID="df8ace0290a695bd05986213",ENC_SEC="db93cb0186b1f7bb0ba63a0d0a64997586849455ce37",TELEMETRY_SALT="rn-inapp-inspector-telemetry-v1";
@@ -1 +1 @@
1
- export declare const LIB_VERSION = "2.5.8";
1
+ export declare const LIB_VERSION = "2.5.9";
@@ -1 +1 @@
1
- export const LIB_VERSION="2.5.8";
1
+ export const LIB_VERSION="2.5.9";