react-native-inapp-inspector 2.5.13 → 2.5.15

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 (129) hide show
  1. package/README.md +0 -8
  2. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +118 -31
  3. package/dist/commonjs/components/Inspector/ConsoleExportModal.js +1 -1
  4. package/dist/commonjs/components/Inspector/ConsoleTab.js +7 -7
  5. package/dist/commonjs/components/Inspector/FabLauncher.js +3 -3
  6. package/dist/commonjs/components/Inspector/InspectorHeader.js +30 -30
  7. package/dist/commonjs/components/Inspector/MainScreen.js +38 -75
  8. package/dist/commonjs/components/Inspector/NetworkExportModal.js +4 -4
  9. package/dist/commonjs/components/Inspector/NetworkTab.js +51 -51
  10. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.d.ts +1 -0
  11. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.js +17 -16
  12. package/dist/commonjs/components/Inspector/SettingsPanel.js +40 -41
  13. package/dist/commonjs/components/Inspector/SkeletonPlaceholder.d.ts +3 -0
  14. package/dist/commonjs/components/Inspector/SkeletonPlaceholder.js +34 -3
  15. package/dist/commonjs/components/Inspector/TabBar.js +9 -15
  16. package/dist/commonjs/components/LogCard.js +7 -7
  17. package/dist/commonjs/components/SkeletonPlaceholder.d.ts +3 -0
  18. package/dist/commonjs/components/SkeletonPlaceholder.js +34 -3
  19. package/dist/commonjs/constants/telemetryConfig.d.ts +3 -3
  20. package/dist/commonjs/constants/telemetryConfig.js +1 -1
  21. package/dist/commonjs/constants/version.d.ts +1 -1
  22. package/dist/commonjs/constants/version.js +1 -1
  23. package/dist/commonjs/helpers/remoteConfig.js +1 -1
  24. package/dist/commonjs/helpers/shareFormatter.js +14 -14
  25. package/dist/commonjs/index.d.ts +1 -1
  26. package/dist/commonjs/index.js +3 -3
  27. package/dist/commonjs/native/NativeInspector.d.ts +2 -0
  28. package/dist/commonjs/native/NativeInspector.js +1 -1
  29. package/dist/commonjs/native/NativeNetworkInspector.d.ts +2 -0
  30. package/dist/commonjs/styles/AppFonts.d.ts +4 -0
  31. package/dist/commonjs/styles/AppFonts.js +1 -1
  32. package/dist/commonjs/styles/index.d.ts +2 -0
  33. package/dist/commonjs/styles/index.js +1 -1
  34. package/dist/commonjs/types/enums.d.ts +0 -2
  35. package/dist/commonjs/types/enums.js +1 -1
  36. package/dist/commonjs/types/interfaces.d.ts +1 -1
  37. package/dist/esm/components/Inspector/ConsoleExportModal.js +1 -1
  38. package/dist/esm/components/Inspector/ConsoleTab.js +48 -48
  39. package/dist/esm/components/Inspector/FabLauncher.js +42 -42
  40. package/dist/esm/components/Inspector/InspectorHeader.js +50 -50
  41. package/dist/esm/components/Inspector/MainScreen.js +87 -124
  42. package/dist/esm/components/Inspector/NetworkExportModal.js +1 -1
  43. package/dist/esm/components/Inspector/NetworkTab.js +83 -83
  44. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.d.ts +1 -0
  45. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.js +23 -22
  46. package/dist/esm/components/Inspector/SettingsPanel.js +106 -107
  47. package/dist/esm/components/Inspector/SkeletonPlaceholder.d.ts +3 -0
  48. package/dist/esm/components/Inspector/SkeletonPlaceholder.js +42 -11
  49. package/dist/esm/components/Inspector/TabBar.js +35 -41
  50. package/dist/esm/components/LogCard.js +53 -53
  51. package/dist/esm/components/SkeletonPlaceholder.d.ts +3 -0
  52. package/dist/esm/components/SkeletonPlaceholder.js +42 -11
  53. package/dist/esm/constants/telemetryConfig.d.ts +3 -3
  54. package/dist/esm/constants/telemetryConfig.js +1 -1
  55. package/dist/esm/constants/version.d.ts +1 -1
  56. package/dist/esm/constants/version.js +1 -1
  57. package/dist/esm/helpers/remoteConfig.js +1 -1
  58. package/dist/esm/helpers/shareFormatter.js +14 -14
  59. package/dist/esm/index.d.ts +1 -1
  60. package/dist/esm/index.js +8 -8
  61. package/dist/esm/native/NativeInspector.d.ts +2 -0
  62. package/dist/esm/native/NativeInspector.js +1 -1
  63. package/dist/esm/native/NativeNetworkInspector.d.ts +2 -0
  64. package/dist/esm/styles/AppFonts.d.ts +4 -0
  65. package/dist/esm/styles/AppFonts.js +1 -1
  66. package/dist/esm/styles/index.d.ts +2 -0
  67. package/dist/esm/styles/index.js +1 -1
  68. package/dist/esm/types/enums.d.ts +0 -2
  69. package/dist/esm/types/enums.js +1 -1
  70. package/dist/esm/types/interfaces.d.ts +1 -1
  71. package/ios/NetworkInspectorModule.mm +288 -325
  72. package/package.json +1 -1
  73. package/src/native/NativeInspector.ts +30 -0
  74. package/src/native/NativeNetworkInspector.ts +2 -0
  75. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  76. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  77. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  78. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  79. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  80. package/android/.gradle/8.9/gc.properties +0 -0
  81. package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
  82. package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
  83. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  84. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  85. package/android/.gradle/9.2.0/gc.properties +0 -0
  86. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  87. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  88. package/android/.gradle/vcs-1/gc.properties +0 -0
  89. package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
  90. package/dist/commonjs/components/Inspector/BoxModelVisualizer.d.ts +0 -8
  91. package/dist/commonjs/components/Inspector/BoxModelVisualizer.js +0 -76
  92. package/dist/commonjs/components/Inspector/DebuggingTab.d.ts +0 -3
  93. package/dist/commonjs/components/Inspector/DebuggingTab.js +0 -197
  94. package/dist/commonjs/components/Inspector/UiA11yAuditPanel.d.ts +0 -7
  95. package/dist/commonjs/components/Inspector/UiA11yAuditPanel.js +0 -97
  96. package/dist/commonjs/components/Inspector/UiInspectorDetail.d.ts +0 -2
  97. package/dist/commonjs/components/Inspector/UiInspectorDetail.js +0 -485
  98. package/dist/commonjs/components/Inspector/UiInspectorOverlay.d.ts +0 -2
  99. package/dist/commonjs/components/Inspector/UiInspectorOverlay.js +0 -199
  100. package/dist/commonjs/components/Inspector/UiInspectorTab.d.ts +0 -2
  101. package/dist/commonjs/components/Inspector/UiInspectorTab.js +0 -117
  102. package/dist/commonjs/components/Inspector/UiLiveStyleTweaker.d.ts +0 -10
  103. package/dist/commonjs/components/Inspector/UiLiveStyleTweaker.js +0 -148
  104. package/dist/commonjs/components/Inspector/index.d.ts +0 -28
  105. package/dist/commonjs/components/Inspector/index.js +0 -1
  106. package/dist/commonjs/customHooks/uiInspectorManager.d.ts +0 -22
  107. package/dist/commonjs/customHooks/uiInspectorManager.js +0 -1
  108. package/dist/commonjs/helpers/uiInspectorEngine.d.ts +0 -62
  109. package/dist/commonjs/helpers/uiInspectorEngine.js +0 -19
  110. package/dist/esm/components/Inspector/BoxModelVisualizer.d.ts +0 -8
  111. package/dist/esm/components/Inspector/BoxModelVisualizer.js +0 -76
  112. package/dist/esm/components/Inspector/DebuggingTab.d.ts +0 -3
  113. package/dist/esm/components/Inspector/DebuggingTab.js +0 -197
  114. package/dist/esm/components/Inspector/UiA11yAuditPanel.d.ts +0 -7
  115. package/dist/esm/components/Inspector/UiA11yAuditPanel.js +0 -97
  116. package/dist/esm/components/Inspector/UiInspectorDetail.d.ts +0 -2
  117. package/dist/esm/components/Inspector/UiInspectorDetail.js +0 -422
  118. package/dist/esm/components/Inspector/UiInspectorOverlay.d.ts +0 -2
  119. package/dist/esm/components/Inspector/UiInspectorOverlay.js +0 -138
  120. package/dist/esm/components/Inspector/UiInspectorTab.d.ts +0 -2
  121. package/dist/esm/components/Inspector/UiInspectorTab.js +0 -117
  122. package/dist/esm/components/Inspector/UiLiveStyleTweaker.d.ts +0 -10
  123. package/dist/esm/components/Inspector/UiLiveStyleTweaker.js +0 -148
  124. package/dist/esm/components/Inspector/index.d.ts +0 -28
  125. package/dist/esm/components/Inspector/index.js +0 -1
  126. package/dist/esm/customHooks/uiInspectorManager.d.ts +0 -22
  127. package/dist/esm/customHooks/uiInspectorManager.js +0 -1
  128. package/dist/esm/helpers/uiInspectorEngine.d.ts +0 -48
  129. package/dist/esm/helpers/uiInspectorEngine.js +0 -19
@@ -1,57 +1,57 @@
1
- import L,{useMemo as ee}from"react";import{Alert as qe,Linking as _e,Platform as ne,Pressable as Qe,StatusBar as Je,Text as T,TouchableOpacity as Te,useWindowDimensions as Ke,View as S}from"react-native";import Xe from"react-native-linear-gradient";import{useInspector as Ye}from"./InspectorContext";import U 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 se}from"../../constants";import{getStatusColor as de,formatTime as tt,formatTimeShort as Ce,getSize as ze,formatByteSize as it,getAppVersionAndBuild as rt,showToast as O}from"../../helpers";import{triggerNativeHaptic as H}from"../../native/NativeInspector";import{ScreenCapture as N,generateCaptureId as ce}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 Rt,ChevronDownIcon as Ve,ClockIcon as _,SizeIcon as De,AppleIcon as It,AndroidIcon as Mt,NpmIcon as $t,ResetIcon as Bt,InfoCircleIcon as Lt,EyeIcon as Wt}from"../NetworkIcons";import{useTranslation as vt,SUPPORTED_LANGUAGES as Re,getLanguage as Ht}from"../../i18n";const Ot=L.memo(()=>{const{t:k,language:ue}=vt(),{modalHeightPercent:te,appIcon:Pt,selected:R,setSelected:Ie,selectedEvent:B,setSelectedEvent:Me,selectedLog:W,setSelectedLog:$e,selectedReduxSlice:j,setSelectedReduxSlice:Be,selectedReduxAction:Q,setSelectedReduxAction:Le,reduxState:We,reduxLastActionMap:ve,clearAnim:At,runClearAllWithAnimation:Et,settingsPage:P,setSettingsPage:ie,isAboutOpen:re,setIsAboutOpen:he,resetToDefaults:He,closeModal:ge,minimizeInspector:Oe,detailTitle:Pe,activeTab:V,environment:pe,selectedCrash:M,setSelectedCrash:Ae,selectedPush:D,setSelectedPush:Ee,selectedSocket:z,setSelectedSocket:Fe,refreshMediaCount:A,peekMode:oe,setPeekMode:Ue,previewMediaItem:me,setPreviewMediaItem:E}=Ye(),{width:J}=Ke(),e=J<360,G=J<400,[Ft,Ut]=L.useState(!1),[Ne,fe]=L.useState(!1),[je]=L.useState(()=>rt().formatted),be=ee(()=>{const w=ue||Ht();return Re.find(C=>C.code===w)||Re[0]},[ue]),[K,X]=L.useState(!1),[Nt,le]=L.useState(0),F=L.useRef(null);L.useEffect(()=>{N.isRecording().then(w=>{X(w)}).catch(()=>{})},[]),L.useEffect(()=>(K?(le(0),F.current=setInterval(()=>{le(w=>w+1)},1e3)):(F.current&&(clearInterval(F.current),F.current=null),le(0)),()=>{F.current&&clearInterval(F.current)}),[K]);const jt=L.useCallback(async()=>{try{H("light");const w=await N.takeScreenshot({format:"png",quality:.9,hideInspector:!0});if(w){H("success");const C=ce("screenshot",w.format||"png"),v={id:C,type:"image",format:w.format,uri:w.uri,filename:w.uri.split("/").pop()||C,sizeBytes:w.sizeBytes,timestamp:w.timestamp,width:w.width,height:w.height};E(v),A?.().catch(()=>{}),O(k("header.screenshotCaptured"))}else O(k("header.screenshotFailed"))}catch{O(k("header.screenshotError"))}},[A,k]),Gt=L.useCallback(async()=>{try{if(K){H("medium");const w=await N.stopRecording();if(X(!1),w){H("success");const C=ce("video",w.format),v={id:C,type:w.format==="gif"?"gif":"video",format:w.format,uri:w.uri,filename:w.uri.split("/").pop()||C,sizeBytes:w.sizeBytes,timestamp:w.timestamp,durationMs:w.durationMs,width:w.width,height:w.height,hasAudio:w.hasAudio};E(v),A?.().catch(()=>{}),O(k("header.recordingSaved",{duration:(w.durationMs/1e3).toFixed(1)}))}}else H("medium"),await N.startRecording({fps:24,audioSource:"none"})?(X(!0),O(k("header.recordingStarted"))):O(k("header.recordingStartFailed"))}catch{O(k("header.recordingError")),X(!1)}},[K,k]),qt=w=>{const C=Math.floor(w/60),v=w%60;return`${C.toString().padStart(2,"0")}:${v.toString().padStart(2,"0")}`},_t=ee(()=>{const w=(pe||(__DEV__?"DEV":"PROD")).trim(),C=w.toUpperCase();return C==="DEV"||C.includes("DEV")||C==="LOCAL"?{label:w,bg:`${t.emerald500}40`,border:`${t.emerald400}8C`,text:t.mintGreenBorder}:C==="UAT"||C==="QA"||C==="TEST"?{label:w,bg:`${t.amber500}47`,border:`${t.amber400}99`,text:t.amberWarmBorder}:C==="PREPROD"||C==="STAGE"||C==="STAGING"?{label:w,bg:`${t.purple500}47`,border:`${t.purple400}99`,text:t.violetSoftBorder}:{label:w,bg:`${t.rose500}40`,border:`${t.roseBorder}8C`,text:t.errorBorder}},[pe]),Y=V==="apis"&&R!=null||V==="analytics"&&B!=null||V==="logs"&&W!=null||V==="redux"&&(j!=null||Q!=null)||V==="crash"&&M!=null||V==="push"&&D!=null||V==="socket"&&z!=null,Z=P!==null,ae=Y||Z||re,Ge=ee(()=>{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=ee(()=>ne.OS==="ios"?te>=98?J>=390?50:44:0:ne.OS==="android"&&te>=98?Je.currentHeight||24:0,[te,J]),$=e?24:G?25.5:26,Qt=e?36:G?38:40;return<>
2
- <S style={[i.headerGradient,{minHeight:(e?44:48)+ye}]}>
1
+ import L,{useMemo as ee}from"react";import{Alert as qe,Linking as _e,Platform as ne,Pressable as Qe,StatusBar as Je,Text as T,TouchableOpacity as Te,useWindowDimensions as Ke,View as S}from"react-native";import Xe from"react-native-linear-gradient";import{useInspector as Ye}from"./InspectorContext";import U from"../TouchableScale";import{BrandCircleIcon as Ze}from"../BrandCircleIcon";import i from"../../styles";import{AppColors as t}from"../../styles/AppColors";import{AppFonts as R}from"../../styles/AppFonts";import{METHOD_COLORS as et}from"../../constants";import{LIB_VERSION as se}from"../../constants";import{getStatusColor as de,formatTime as tt,formatTimeShort as Ce,getSize as ze,formatByteSize as it,getAppVersionAndBuild as rt,showToast as O}from"../../helpers";import{triggerNativeHaptic as H}from"../../native/NativeInspector";import{ScreenCapture as N,generateCaptureId as ce}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,InfoCircleIcon as Lt,EyeIcon as Wt}from"../NetworkIcons";import{useTranslation as vt,SUPPORTED_LANGUAGES as Ie,getLanguage as Ht}from"../../i18n";const Ot=L.memo(()=>{const{t:V,language:ue}=vt(),{modalHeightPercent:te,appIcon:Pt,selected:I,setSelected:Re,selectedEvent:B,setSelectedEvent:Me,selectedLog:W,setSelectedLog:$e,selectedReduxSlice:j,setSelectedReduxSlice:Be,selectedReduxAction:Q,setSelectedReduxAction:Le,reduxState:We,reduxLastActionMap:ve,clearAnim:At,runClearAllWithAnimation:Et,settingsPage:P,setSettingsPage:ie,isAboutOpen:re,setIsAboutOpen:he,resetToDefaults:He,closeModal:ge,minimizeInspector:Oe,detailTitle:Pe,activeTab:k,environment:pe,selectedCrash:M,setSelectedCrash:Ae,selectedPush:D,setSelectedPush:Ee,selectedSocket:z,setSelectedSocket:Fe,refreshMediaCount:A,peekMode:oe,setPeekMode:Ue,previewMediaItem:me,setPreviewMediaItem:E}=Ye(),{width:J}=Ke(),e=J<360,G=J<400,[Ft,Ut]=L.useState(!1),[Ne,fe]=L.useState(!1),[je]=L.useState(()=>rt().formatted),be=ee(()=>{const w=ue||Ht();return Ie.find(C=>C.code===w)||Ie[0]},[ue]),[K,X]=L.useState(!1),[Nt,le]=L.useState(0),F=L.useRef(null);L.useEffect(()=>{N.isRecording().then(w=>{X(w)}).catch(()=>{})},[]),L.useEffect(()=>(K?(le(0),F.current=setInterval(()=>{le(w=>w+1)},1e3)):(F.current&&(clearInterval(F.current),F.current=null),le(0)),()=>{F.current&&clearInterval(F.current)}),[K]);const jt=L.useCallback(async()=>{try{H("light");const w=await N.takeScreenshot({format:"png",quality:.9,hideInspector:!0});if(w){H("success");const C=ce("screenshot",w.format||"png"),v={id:C,type:"image",format:w.format,uri:w.uri,filename:w.uri.split("/").pop()||C,sizeBytes:w.sizeBytes,timestamp:w.timestamp,width:w.width,height:w.height};E(v),A?.().catch(()=>{}),O(V("header.screenshotCaptured"))}else O(V("header.screenshotFailed"))}catch{O(V("header.screenshotError"))}},[A,V]),Gt=L.useCallback(async()=>{try{if(K){H("medium");const w=await N.stopRecording();if(X(!1),w){H("success");const C=ce("video",w.format),v={id:C,type:w.format==="gif"?"gif":"video",format:w.format,uri:w.uri,filename:w.uri.split("/").pop()||C,sizeBytes:w.sizeBytes,timestamp:w.timestamp,durationMs:w.durationMs,width:w.width,height:w.height,hasAudio:w.hasAudio};E(v),A?.().catch(()=>{}),O(V("header.recordingSaved",{duration:(w.durationMs/1e3).toFixed(1)}))}}else H("medium"),await N.startRecording({fps:24,audioSource:"none"})?(X(!0),O(V("header.recordingStarted"))):O(V("header.recordingStartFailed"))}catch{O(V("header.recordingError")),X(!1)}},[K,V]),qt=w=>{const C=Math.floor(w/60),v=w%60;return`${C.toString().padStart(2,"0")}:${v.toString().padStart(2,"0")}`},_t=ee(()=>{const w=(pe||(__DEV__?"DEV":"PROD")).trim(),C=w.toUpperCase();return C==="DEV"||C.includes("DEV")||C==="LOCAL"?{label:w,bg:`${t.emerald500}40`,border:`${t.emerald400}8C`,text:t.mintGreenBorder}:C==="UAT"||C==="QA"||C==="TEST"?{label:w,bg:`${t.amber500}47`,border:`${t.amber400}99`,text:t.amberWarmBorder}:C==="PREPROD"||C==="STAGE"||C==="STAGING"?{label:w,bg:`${t.purple500}47`,border:`${t.purple400}99`,text:t.violetSoftBorder}:{label:w,bg:`${t.rose500}40`,border:`${t.roseBorder}8C`,text:t.errorBorder}},[pe]),Y=k==="apis"&&I!=null||k==="analytics"&&B!=null||k==="logs"&&W!=null||k==="redux"&&(j!=null||Q!=null)||k==="crash"&&M!=null||k==="push"&&D!=null||k==="socket"&&z!=null,Z=P!==null,ae=Y||Z||re,Ge=ee(()=>{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=ee(()=>ne.OS==="ios"?te>=98?J>=390?50:44:0:ne.OS==="android"&&te>=98?Je.currentHeight||24:0,[te,J]),$=e?28:G?30:32,Qt=e?36:G?38:40;return<>
2
+ <S style={[i.headerGradient,{minHeight:(e?50:54)+ye}]}>
3
3
 
4
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
5
  <S style={{paddingTop:ye,width:"100%"}}>
6
- <S style={[i.header,{width:"100%",justifyContent:"space-between",paddingHorizontal:e?8:10,paddingVertical:5,minHeight:e?44:48}]}>
6
+ <S style={[i.header,{width:"100%",justifyContent:"space-between",paddingHorizontal:e?8:10,paddingVertical:7,minHeight:e?50:54}]}>
7
7
  <S style={{flexDirection:"row",alignItems:"center",gap:e?6:8,flex:Y?void 0:1,flexShrink:Y?0:1,minWidth:0}}>
8
- {ae&&<U onPress={()=>{if(re){he(!1);return}if(Z){ie(P==="main"?null:"main");return}Ie(null),Me(null),$e(null),Be(null),Le(null),Ae(null),Ee(null),Fe(null)}}hitSlop={15}style={{width:e?30:34,height:e?30:34,borderRadius:e?15:17,alignItems:"center",justifyContent:"center",backgroundColor:`${t.white}2E`,borderWidth:1,borderColor:`${t.white}4D`,flexShrink:0}}>
8
+ {ae&&<U onPress={()=>{if(re){he(!1);return}if(Z){ie(P==="main"?null:"main");return}Re(null),Me(null),$e(null),Be(null),Le(null),Ae(null),Ee(null),Fe(null)}}hitSlop={15}style={{width:e?30:34,height:e?30:34,borderRadius:e?15:17,alignItems:"center",justifyContent:"center",backgroundColor:`${t.white}2E`,borderWidth:1,borderColor:`${t.white}4D`,flexShrink:0}}>
9
9
  <S style={{position:"absolute",width:e?38:42,height:e?38:42,borderRadius:21,backgroundColor:`${t.white}1A`}}/>
10
10
  <Vt/>
11
11
  </U>}
12
12
 
13
13
  {re?<S style={{gap:2.5,flex:1,minWidth:0,marginRight:6,justifyContent:"center"}}>
14
14
  <S style={{flexDirection:"row",alignItems:"center",gap:6}}>
15
- <T style={{fontFamily:I.interBold,fontSize:e?14.5:16,lineHeight:e?18:20,color:t.white,letterSpacing:-.2}}numberOfLines={1}>
15
+ <T style={{fontFamily:R.interBold,fontSize:e?14.5:16,lineHeight:e?18:20,color:t.white,letterSpacing:-.2}}numberOfLines={1}>
16
16
  About & Specs
17
17
  </T>
18
18
  <S style={{backgroundColor:`${t.white}26`,paddingHorizontal:e?5:6,paddingVertical:2,borderRadius:8,borderWidth:1,borderColor:`${t.white}20`}}>
19
- <T style={{fontFamily:I.interBold,fontSize:e?8.5:9.5,lineHeight:12,color:t.white}}>
19
+ <T style={{fontFamily:R.interBold,fontSize:e?8.5:9.5,lineHeight:12,color:t.white}}>
20
20
  v{se}
21
21
  </T>
22
22
  </S>
23
23
  </S>
24
- <T style={{fontFamily:I.interRegular,fontSize:e?10:11,lineHeight:e?13.5:14.5,color:`${t.white}CC`,marginTop:.5}}numberOfLines={1}ellipsizeMode="tail">
25
- {k("common.aboutSpecsSubtitle","Package info, runtime specs & diagnostic payload")}
24
+ <T style={{fontFamily:R.interRegular,fontSize:e?10:11,lineHeight:e?13.5:14.5,color:`${t.white}CC`,marginTop:.5}}numberOfLines={1}ellipsizeMode="tail">
25
+ {V("common.aboutSpecsSubtitle","Package info, runtime specs & diagnostic payload")}
26
26
  </T>
27
27
  </S>:Z?<S style={{gap:2.5,flex:1,minWidth:0,marginRight:6,justifyContent:"center"}}>
28
28
  <S style={{flexDirection:"row",alignItems:"center",gap:6}}>
29
- <T style={{fontFamily:I.interBold,fontSize:e?14.5:16,lineHeight:e?19:21,color:t.white,letterSpacing:-.2}}numberOfLines={1}>
29
+ <T style={{fontFamily:R.interBold,fontSize:e?14.5:16,lineHeight:e?19:21,color:t.white,letterSpacing:-.2}}numberOfLines={1}>
30
30
  {Ge}
31
31
  </T>
32
32
  {P==="main"&&<S style={{backgroundColor:`${t.white}26`,paddingHorizontal:e?5:6,paddingVertical:2,borderRadius:8,borderWidth:1,borderColor:`${t.white}20`}}>
33
- <T style={{fontFamily:I.interBold,fontSize:e?8.5:9.5,lineHeight:12,color:t.white}}>
33
+ <T style={{fontFamily:R.interBold,fontSize:e?8.5:9.5,lineHeight:12,color:t.white}}>
34
34
  v{se}
35
35
  </T>
36
36
  </S>}
37
37
  </S>
38
- <T style={{fontFamily:I.interRegular,fontSize:e?10:11,lineHeight:e?14:15,color:`${t.white}CC`,marginTop:2}}numberOfLines={1}ellipsizeMode="tail">
38
+ <T style={{fontFamily:R.interRegular,fontSize:e?10:11,lineHeight:e?14:15,color:`${t.white}CC`,marginTop:2}}numberOfLines={1}ellipsizeMode="tail">
39
39
  {P==="main"?"Manage modules and preferences":"Configure module parameters"}
40
40
  </T>
41
41
  </S>:ae?null:<S style={{flexDirection:"row",alignItems:"center",gap:e?7:8.5,flex:1,minWidth:0,marginRight:6}}>
42
42
  <Ze size={e?38:G?40:42}/>
43
43
  <S style={{gap:3,flex:1,minWidth:0,justifyContent:"center"}}>
44
44
 
45
- <T style={[i.headerTitle,{fontFamily:I.interBold,fontWeight:"700",fontSize:e?12.5:G?13:14,lineHeight:e?17:G?18:19,color:t.white,letterSpacing:-.2,paddingBottom:0}]}numberOfLines={1}ellipsizeMode="tail">
46
- react-native-inapp-inspector
45
+ <T style={[i.headerTitle,{fontFamily:R.interBold,fontWeight:"700",fontSize:e?14:G?15:15.5,lineHeight:e?18:G?19:20,color:t.white,letterSpacing:-.2,paddingBottom:0}]}numberOfLines={1}ellipsizeMode="tail">
46
+ {V("header.title","In-App Inspector")}
47
47
  </T>
48
48
 
49
49
 
50
50
  <S style={{flexDirection:"row",alignItems:"center",gap:4,minWidth:0,marginTop:2,flexWrap:"nowrap",overflow:"hidden"}}>
51
51
 
52
- <U onPress={()=>{H("light"),fe(!0)}}hitSlop={6}accessible={!0}accessibilityRole="button"accessibilityLabel={k("settings.general.selectLanguage","Select Language")}style={{flexDirection:"row",alignItems:"center",backgroundColor:`${t.white}24`,borderRadius:5,paddingHorizontal:5,paddingVertical:1.5,gap:3,borderWidth:1,borderColor:`${t.white}38`,flexShrink:0}}>
52
+ <U onPress={()=>{H("light"),fe(!0)}}hitSlop={6}accessible={!0}accessibilityRole="button"accessibilityLabel={V("settings.general.selectLanguage","Select Language")}style={{flexDirection:"row",alignItems:"center",backgroundColor:`${t.white}24`,borderRadius:5,paddingHorizontal:5,paddingVertical:1.5,gap:3,borderWidth:1,borderColor:`${t.white}38`,flexShrink:0}}>
53
53
  <Ct code={be?.code||"en"}size={9}borderRadius={2}/>
54
- <T style={{fontFamily:I.interBold,fontSize:8,lineHeight:10.5,color:t.white,letterSpacing:.2}}numberOfLines={1}>
54
+ <T style={{fontFamily:R.interBold,fontSize:8,lineHeight:10.5,color:t.white,letterSpacing:.2}}numberOfLines={1}>
55
55
  {be?.code?.toUpperCase()||"EN"}
56
56
  </T>
57
57
  <Ve size={6}color={`${t.white}CC`}/>
@@ -59,8 +59,8 @@ import L,{useMemo as ee}from"react";import{Alert as qe,Linking as _e,Platform as
59
59
 
60
60
 
61
61
  <S style={{flexDirection:"row",alignItems:"center",backgroundColor:`${t.white}1F`,borderRadius:5,paddingHorizontal:5,paddingVertical:1.5,gap:3,borderWidth:1,borderColor:`${t.white}2E`,flexShrink:1,minWidth:0}}>
62
- {ne.OS==="ios"?<It color={`${t.white}E6`}size={8.5}/>:<Mt color={`${t.white}E6`}size={8.5}/>}
63
- <T style={{fontFamily:I.interMedium,fontSize:8,lineHeight:10.5,color:`${t.white}EB`,letterSpacing:.1}}numberOfLines={1}ellipsizeMode="tail">
62
+ {ne.OS==="ios"?<Rt color={`${t.white}E6`}size={8.5}/>:<Mt color={`${t.white}E6`}size={8.5}/>}
63
+ <T style={{fontFamily:R.interMedium,fontSize:8,lineHeight:10.5,color:`${t.white}EB`,letterSpacing:.1}}numberOfLines={1}ellipsizeMode="tail">
64
64
  {je}
65
65
  </T>
66
66
  </S>
@@ -68,7 +68,7 @@ import L,{useMemo as ee}from"react";import{Alert as qe,Linking as _e,Platform as
68
68
 
69
69
  <Qe onPress={()=>{_e.openURL("https://www.npmjs.com/package/react-native-inapp-inspector").catch(()=>{})}}style={{flexDirection:"row",alignItems:"center",backgroundColor:`${t.white}1F`,borderRadius:5,paddingHorizontal:5.5,paddingVertical:1.5,gap:3,borderWidth:1,borderColor:`${t.white}2E`,flexShrink:0}}>
70
70
  <$t size={8.5}color={t.npmRedLight}/>
71
- <T style={{fontFamily:I.interMedium,fontSize:8,lineHeight:10.5,color:`${t.white}EB`,letterSpacing:.1}}>
71
+ <T style={{fontFamily:R.interMedium,fontSize:8,lineHeight:10.5,color:`${t.white}EB`,letterSpacing:.1}}>
72
72
  v{se}
73
73
  </T>
74
74
  </Qe>
@@ -78,11 +78,11 @@ import L,{useMemo as ee}from"react";import{Alert as qe,Linking as _e,Platform as
78
78
  </S>
79
79
 
80
80
  {Y&&<S style={[i.headerCenter,{flex:1,minWidth:0,flexShrink:1,paddingHorizontal:e?3:6,overflow:"hidden"}]}>
81
- {V==="apis"&&R!=null?<S style={i.headerDetailCenter}>
81
+ {k==="apis"&&I!=null?<S style={i.headerDetailCenter}>
82
82
  <S style={i.headerDetailRow}>
83
- <S style={[i.headerMethodBadge,{backgroundColor:et[R.method]??t.grayText,paddingHorizontal:e?5:6,paddingVertical:e?2:3,flexShrink:0}]}>
83
+ <S style={[i.headerMethodBadge,{backgroundColor:et[I.method]??t.grayText,paddingHorizontal:e?5:6,paddingVertical:e?2:3,flexShrink:0}]}>
84
84
  <T style={[i.headerMethodText,{fontSize:e?9:10}]}>
85
- {R.method}
85
+ {I.method}
86
86
  </T>
87
87
  </S>
88
88
  <T style={[i.headerDetailTitle,{fontSize:e?13:14.5,flex:1,minWidth:0,flexShrink:1}]}numberOfLines={1}ellipsizeMode="middle">
@@ -90,26 +90,26 @@ import L,{useMemo as ee}from"react";import{Alert as qe,Linking as _e,Platform as
90
90
  </T>
91
91
  </S>
92
92
  <S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
93
- <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${de(R.status)}26`,borderWidth:1,borderColor:`${de(R.status)}55`}}>
94
- <S style={[i.headerStatusDot,{backgroundColor:de(R.status),width:e?6:7,height:e?6:7}]}/>
95
- <T style={[i.headerSubTitle,{fontFamily:I.interBold,fontSize:e?10:11}]}>
96
- {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:`${de(I.status)}26`,borderWidth:1,borderColor:`${de(I.status)}55`}}>
94
+ <S style={[i.headerStatusDot,{backgroundColor:de(I.status),width:e?6:7,height:e?6:7}]}/>
95
+ <T style={[i.headerSubTitle,{fontFamily:R.interBold,fontSize:e?10:11}]}>
96
+ {I.status===0?"Failed":I.status??"Pending"}
97
97
  </T>
98
98
  </S>
99
99
  <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
100
100
  <_ color={t.white}size={e?10:11}/>
101
101
  <T style={[i.headerSubTitle,{fontSize:e?10:11}]}>
102
- {R.duration!=null?`${R.duration}ms`:"\u2014"}
102
+ {I.duration!=null?`${I.duration}ms`:"\u2014"}
103
103
  </T>
104
104
  </S>
105
- {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
+ {I.response!=null&&<S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
106
106
  <De color={t.white}size={e?10:11}/>
107
107
  <T style={[i.headerSubTitle,{fontSize:e?10:11}]}>
108
- {ze(R.response)}
108
+ {ze(I.response)}
109
109
  </T>
110
110
  </S>}
111
111
  </S>
112
- </S>:V==="analytics"&&B!=null?<S style={i.headerDetailCenter}>
112
+ </S>:k==="analytics"&&B!=null?<S style={i.headerDetailCenter}>
113
113
  <S style={i.headerDetailRow}>
114
114
  <S style={[i.headerMethodBadge,{backgroundColor:B.source==="firebase"?`${t.firebaseOrange}4D`:`${t.purple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3,flexShrink:0}]}>
115
115
  <T style={[i.headerMethodText,{fontSize:e?9:10}]}>
@@ -130,7 +130,7 @@ import L,{useMemo as ee}from"react";import{Alert as qe,Linking as _e,Platform as
130
130
  {B.source}
131
131
  </T>
132
132
  </S>
133
- </S>:V==="logs"&&W!=null?<S style={i.headerDetailCenter}>
133
+ </S>:k==="logs"&&W!=null?<S style={i.headerDetailCenter}>
134
134
  <S style={i.headerDetailRow}>
135
135
  <S style={[i.headerMethodBadge,{backgroundColor:W.type==="error"?`${t.errorColor}4D`:W.type==="warn"?`${t.lightOrange}4D`:`${t.purple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3,flexShrink:0}]}>
136
136
  <T style={[i.headerMethodText,{fontSize:e?9:10}]}>
@@ -151,7 +151,7 @@ import L,{useMemo as ee}from"react";import{Alert as qe,Linking as _e,Platform as
151
151
  </T>
152
152
  </S>
153
153
  </S>
154
- </S>:V==="redux"&&j!=null?(()=>{const w=We?.[j],C=w&&typeof w=="object"?Object.keys(w).length:typeof w<"u"?1:0,v=ze(w),Se=ve[j];return<S style={i.headerDetailCenter}>
154
+ </S>:k==="redux"&&j!=null?(()=>{const w=We?.[j],C=w&&typeof w=="object"?Object.keys(w).length:typeof w<"u"?1:0,v=ze(w),Se=ve[j];return<S style={i.headerDetailCenter}>
155
155
  <S style={i.headerDetailRow}>
156
156
  <S style={[i.headerMethodBadge,{backgroundColor:`${t.purple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3,flexShrink:0}]}>
157
157
  <T style={[i.headerMethodText,{fontSize:e?9:10}]}>
@@ -191,7 +191,7 @@ import L,{useMemo as ee}from"react";import{Alert as qe,Linking as _e,Platform as
191
191
  </S>
192
192
  </>}
193
193
  </S>
194
- </S>})():V==="redux"&&Q!=null?<S style={i.headerDetailCenter}>
194
+ </S>})():k==="redux"&&Q!=null?<S style={i.headerDetailCenter}>
195
195
  <S style={i.headerDetailRow}>
196
196
  <S style={[i.headerMethodBadge,{backgroundColor:`${t.brandPurple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3,flexShrink:0}]}>
197
197
  <T style={[i.headerMethodText,{fontSize:e?9:10}]}>
@@ -208,7 +208,7 @@ import L,{useMemo as ee}from"react";import{Alert as qe,Linking as _e,Platform as
208
208
  {Q.timestamp||"Dispatched"}
209
209
  </T>
210
210
  </S>
211
- </S>:V==="crash"&&M!=null?<S style={i.headerDetailCenter}>
211
+ </S>:k==="crash"&&M!=null?<S style={i.headerDetailCenter}>
212
212
  <S style={i.headerDetailRow}>
213
213
  <S style={[i.headerMethodBadge,{backgroundColor:M.isFatal?t.red600:t.amber600,paddingHorizontal:e?5:6,paddingVertical:e?2:3,flexShrink:0}]}>
214
214
  <T style={[i.headerMethodText,{fontSize:e?9:10}]}>
@@ -233,7 +233,7 @@ import L,{useMemo as ee}from"react";import{Alert as qe,Linking as _e,Platform as
233
233
  </T>
234
234
  </>}
235
235
  </S>
236
- </S>:V==="push"&&D!=null?<S style={i.headerDetailCenter}>
236
+ </S>:k==="push"&&D!=null?<S style={i.headerDetailCenter}>
237
237
  <S style={i.headerDetailRow}>
238
238
  <S style={[i.headerMethodBadge,{backgroundColor:t.brandPurple,paddingHorizontal:e?5:6,paddingVertical:e?2:3,flexShrink:0}]}>
239
239
  <T style={[i.headerMethodText,{fontSize:e?9:10}]}>
@@ -247,7 +247,7 @@ import L,{useMemo as ee}from"react";import{Alert as qe,Linking as _e,Platform as
247
247
  <S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1,maxWidth:"100%"}}>
248
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
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
- <T style={[i.headerSubTitle,{fontFamily:I.interBold,fontSize:e?9.5:10.5}]}>
250
+ <T style={[i.headerSubTitle,{fontFamily:R.interBold,fontSize:e?9.5:10.5}]}>
251
251
  {D.appState?D.appState.toUpperCase():"DELIVERED"}
252
252
  </T>
253
253
  </S>
@@ -258,7 +258,7 @@ import L,{useMemo as ee}from"react";import{Alert as qe,Linking as _e,Platform as
258
258
  </T>
259
259
  </S>
260
260
  </S>
261
- </S>:V==="socket"&&z!=null?<S style={i.headerDetailCenter}>
261
+ </S>:k==="socket"&&z!=null?<S style={i.headerDetailCenter}>
262
262
  <S style={i.headerDetailRow}>
263
263
  <S style={[i.headerMethodBadge,{backgroundColor:z.client==="socket.io"||z.url.includes("/socket.io")?t.violet600:z.url.startsWith("wss://")?t.emerald600:t.blue600,paddingHorizontal:e?5:6,paddingVertical:e?2:3,flexShrink:0}]}>
264
264
  <T style={[i.headerMethodText,{fontSize:e?9:10}]}>
@@ -272,7 +272,7 @@ import L,{useMemo as ee}from"react";import{Alert as qe,Linking as _e,Platform as
272
272
  <S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
273
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`}}>
274
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}]}/>
275
- <T style={[i.headerSubTitle,{fontFamily:I.interBold,fontSize:e?10:11}]}>
275
+ <T style={[i.headerSubTitle,{fontFamily:R.interBold,fontSize:e?10:11}]}>
276
276
  {(z.status||"open").toUpperCase()}
277
277
  </T>
278
278
  </S>
@@ -292,38 +292,38 @@ import L,{useMemo as ee}from"react";import{Alert as qe,Linking as _e,Platform as
292
292
  </S>:null}
293
293
  </S>}
294
294
 
295
- <S style={[i.headerRight,{flexDirection:"row",alignItems:"center",justifyContent:"flex-end",flexShrink:0,marginLeft:6,gap:e?3.5:4.5}]}>
295
+ <S style={[i.headerRight,{flexDirection:"row",alignItems:"center",justifyContent:"flex-end",flexShrink:0,marginLeft:6,gap:e?6:7.5}]}>
296
296
 
297
297
  {Z?<>
298
298
 
299
- <U accessible={!0}accessibilityRole="button"accessibilityLabel={k("about.heroTitle","About & Specs")}onPress={()=>{H("light"),he(!0)}}hitSlop={15}style={[i.closeButtonSquare,{width:$,height:$,borderRadius:e?6:7,backgroundColor:"rgba(255, 255, 255, 0.22)",borderColor:"rgba(255, 255, 255, 0.45)",borderWidth:1}]}>
300
- <Lt color={t.white}size={e?13:15}/>
299
+ <U accessible={!0}accessibilityRole="button"accessibilityLabel={V("about.heroTitle","About & Specs")}onPress={()=>{H("light"),he(!0)}}hitSlop={{top:8,bottom:8,left:2,right:2}}style={[i.closeButtonSquare,{width:$,height:$,borderRadius:e?7:8,backgroundColor:"rgba(255, 255, 255, 0.22)",borderColor:"rgba(255, 255, 255, 0.45)",borderWidth:1}]}>
300
+ <Lt color={t.white}size={e?14:16}/>
301
301
  </U>
302
302
 
303
303
 
304
- <U onPress={()=>{qe.alert("Reset All Settings","This restores all module visibility and UI preferences to defaults. Continue?",[{text:"Cancel",style:"cancel"},{text:"Reset",style:"destructive",onPress:He}])}}hitSlop={15}style={[i.closeButtonSquare,{width:$,height:$,borderRadius:e?6:7,backgroundColor:"rgba(245, 158, 11, 0.26)",borderColor:"rgba(252, 211, 77, 0.45)",borderWidth:1}]}>
305
- <Bt color={t.white}size={e?12:14}/>
304
+ <U onPress={()=>{qe.alert("Reset All Settings","This restores all module visibility and UI preferences to defaults. Continue?",[{text:"Cancel",style:"cancel"},{text:"Reset",style:"destructive",onPress:He}])}}hitSlop={{top:8,bottom:8,left:2,right:2}}style={[i.closeButtonSquare,{width:$,height:$,borderRadius:e?7:8,backgroundColor:"rgba(245, 158, 11, 0.26)",borderColor:"rgba(252, 211, 77, 0.45)",borderWidth:1}]}>
305
+ <Bt color={t.white}size={e?13:15}/>
306
306
  </U>
307
307
  </>:ae?null:<>
308
308
 
309
- <U accessible={!0}accessibilityRole="button"accessibilityLabel={oe?"Disable peek-through":"Enable peek-through"}onPress={()=>{H("light"),Ue(w=>!w)}}hitSlop={15}style={[i.closeButtonSquare,{width:$,height:$,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}]}>
310
- <Wt color={t.white}size={e?12:14}/>
309
+ <U accessible={!0}accessibilityRole="button"accessibilityLabel={oe?"Disable peek-through":"Enable peek-through"}onPress={()=>{H("light"),Ue(w=>!w)}}hitSlop={{top:8,bottom:8,left:2,right:2}}style={[i.closeButtonSquare,{width:$,height:$,borderRadius:e?7:8,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}]}>
310
+ <Wt color={t.white}size={e?13:15}/>
311
311
  </U>
312
312
 
313
313
 
314
- <U accessible={!0}accessibilityRole="button"accessibilityLabel="Settings"onPress={()=>ie("main")}hitSlop={15}style={[i.closeButtonSquare,{width:$,height:$,borderRadius:e?6:7,backgroundColor:"rgba(168, 85, 247, 0.28)",borderColor:"rgba(216, 180, 254, 0.45)",borderWidth:1}]}>
315
- <Dt color={t.white}size={e?12:14}/>
314
+ <U accessible={!0}accessibilityRole="button"accessibilityLabel="Settings"onPress={()=>ie("main")}hitSlop={{top:8,bottom:8,left:2,right:2}}style={[i.closeButtonSquare,{width:$,height:$,borderRadius:e?7:8,backgroundColor:"rgba(168, 85, 247, 0.28)",borderColor:"rgba(216, 180, 254, 0.45)",borderWidth:1}]}>
315
+ <Dt color={t.white}size={e?13:15}/>
316
316
  </U>
317
317
  </>}
318
318
 
319
319
 
320
- <Te testID="inspector.header.minimizeBtn"onPress={Oe||ge}hitSlop={{top:12,bottom:12,left:12,right:12}}activeOpacity={.7}accessibilityRole="button"accessibilityLabel={k("common.minimize","Minimize")}style={[i.closeButtonSquare,{width:$,height:$,borderRadius:e?6:7,backgroundColor:"rgba(56, 189, 248, 0.22)",borderColor:"rgba(125, 211, 252, 0.40)",borderWidth:1}]}>
321
- <Ve size={e?14:16}color={t.white}/>
320
+ <Te testID="inspector.header.minimizeBtn"onPress={Oe||ge}hitSlop={{top:8,bottom:8,left:2,right:2}}activeOpacity={.7}accessibilityRole="button"accessibilityLabel={V("common.minimize","Minimize")}style={[i.closeButtonSquare,{width:$,height:$,borderRadius:e?7:8,backgroundColor:"rgba(56, 189, 248, 0.22)",borderColor:"rgba(125, 211, 252, 0.40)",borderWidth:1}]}>
321
+ <Ve size={e?15:17}color={t.white}/>
322
322
  </Te>
323
323
 
324
324
 
325
- <Te testID="inspector.header.closeBtn"onPress={ge}hitSlop={{top:12,bottom:12,left:12,right:12}}activeOpacity={.7}accessibilityRole="button"accessibilityLabel={k("common.close","Close")}style={[i.closeButtonSquare,{width:$,height:$,borderRadius:e?6:7,backgroundColor:"rgba(244, 63, 94, 0.28)",borderColor:"rgba(251, 113, 133, 0.48)",borderWidth:1}]}>
326
- <Rt size={e?12:14}/>
325
+ <Te testID="inspector.header.closeBtn"onPress={ge}hitSlop={{top:8,bottom:8,left:2,right:2}}activeOpacity={.7}accessibilityRole="button"accessibilityLabel={V("common.close","Close")}style={[i.closeButtonSquare,{width:$,height:$,borderRadius:e?7:8,backgroundColor:"rgba(244, 63, 94, 0.28)",borderColor:"rgba(251, 113, 133, 0.48)",borderWidth:1}]}>
326
+ <It size={e?13:15}/>
327
327
  </Te>
328
328
  </S>
329
329
  </S>
@@ -1,157 +1,120 @@
1
- import se,{useEffect as A,useRef as L}from"react";import{Animated as o,Modal as Se,Platform as q,Pressable as Be,StatusBar as Ce,StyleSheet as T,View as B}from"react-native";import{useInspector as Ve}from"./InspectorContext";import Me from"../ErrorBoundary";import S from"../ModuleErrorBoundary";import Ne from"./FabLauncher";import Re from"./InspectorHeader";import{SecondaryTelemetryStrip as De}from"./SecondaryTelemetryStrip";import Te from"./TabBar";import Ee from"./NetworkTab";import Pe from"./NetworkDetail";import Ae from"./LogDetail";import Le from"./ConsoleTab";import{PerformanceTab as Ie}from"./PerformanceTab";import Oe from"./AnalyticsTab";import Fe from"../AnalyticsDetail";import We from"./ReduxTab";import Ge from"./ReduxDetail";import He from"./CrashTab";import Ye from"./CrashDetail";import Ue from"./PushTab";import _e from"./PushDetail";import $e from"./SocketTab";import Je from"./SocketDetail";import Ke from"./DeviceInfoTab";import Qe from"./StorageTab";import Xe from"./DebuggingTab";import{MediaGalleryTab as Ze}from"./MediaGalleryTab";import So from"./SettingsPanel";import Bo from"./AboutModal";import{SupportPage as Co}from"./SupportPage";import{ConfirmationModal as Vo}from"./ConfirmationModal";import{FloatingCaptureWidget as Mo}from"./FloatingCaptureWidget";import No from"./NpmUpdateToast";import Ro from"./NpmStarPrompt";import Do from"../Toast";import H from"../../styles";import{AppColors as C}from"../../styles/AppColors";import To from"./NavigationTracker";import{isLocalDebugEnvironment as Eo}from"../../helpers";const xo=()=>{const{visible:I,modalAnimationType:V,closeModal:M,modalHeightPercent:O,selected:Y,selectedEvent:F,selectedLog:U,selectedReduxSlice:j,selectedReduxAction:J,selectedCrash:_,selectedPush:W,setSelectedPush:K,selectedSocket:z,setSelectedSocket:Q,settingsPage:v,isAboutOpen:R,setIsAboutOpen:X,isSupportOpen:D,setIsSupportOpen:Z,activeTab:e,isReady:ee,enabled:oe,isDismissed:re,hasNavigationContext:te,setNavState:ae,confirmModal:N,setConfirmModal:ie,peekMode:le,peekOpacity:$}=Ve(),G=e==="apis"&&Y!=null||e==="analytics"&&F!=null||e==="logs"&&U!=null||e==="redux"&&(j!=null||J!=null)||e==="crash"&&_!=null||e==="push"&&W!=null||e==="socket"&&z!=null,E=L(new o.Value(0)).current;A(()=>{v!==null&&(E.setValue(0),o.spring(E,{toValue:1,friction:8,tension:65,useNativeDriver:!1}).start())},[v!==null]);const x=L(new o.Value(0)).current;A(()=>{R&&(x.setValue(0),o.spring(x,{toValue:1,friction:8,tension:65,useNativeDriver:!1}).start())},[R]);const P=L(new o.Value(0)).current;return A(()=>{D&&(P.setValue(0),o.spring(P,{toValue:1,friction:8,tension:65,useNativeDriver:!1}).start())},[D]),<>
2
- {(q.OS==="ios"||q.OS==="android")&&oe&&!re&&!I&&<Ne/>}
3
- <Se visible={I}animationType={V}transparent statusBarTranslucent={!0}onRequestClose={M}>
4
- <Me onClose={M}>
5
- <B style={[H.modalBackdrop,{zIndex:999999,elevation:999999}]}>
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"?$:.3)):1,zIndex:9999999,elevation:999999}]}>
8
- <Ce translucent backgroundColor="transparent"barStyle="light-content"/>
1
+ import{useEffect as O,useRef as F}from"react";import{Animated as N,Modal as Me,Platform as U,Pressable as Ne,StatusBar as Se,StyleSheet as w,View as B}from"react-native";import{useInspector as he}from"./InspectorContext";import Be from"../ErrorBoundary";import M from"../ModuleErrorBoundary";import Ce from"./FabLauncher";import Ee from"./InspectorHeader";import{SecondaryTelemetryStrip as Te}from"./SecondaryTelemetryStrip";import De from"./TabBar";import Ve from"./NetworkTab";import Pe from"./NetworkDetail";import Re from"./LogDetail";import Ae from"./ConsoleTab";import{PerformanceTab as Ie}from"./PerformanceTab";import Le from"./AnalyticsTab";import Oe from"../AnalyticsDetail";import Fe from"./ReduxTab";import He from"./ReduxDetail";import We from"./CrashTab";import Ye from"./CrashDetail";import Ge from"./PushTab";import Ue from"./PushDetail";import $e from"./SocketTab";import Je from"./SocketDetail";import Ke from"./DeviceInfoTab";import Qe from"./StorageTab";import{MediaGalleryTab as Xe}from"./MediaGalleryTab";import Ze from"./SettingsPanel";import _e from"./AboutModal";import{SupportPage as Mo}from"./SupportPage";import{ConfirmationModal as No}from"./ConfirmationModal";import{FloatingCaptureWidget as So}from"./FloatingCaptureWidget";import Bo from"./SkeletonPlaceholder";import Co from"./NpmUpdateToast";import Eo from"./NpmStarPrompt";import To from"../Toast";import z from"../../styles";import{AppColors as v}from"../../styles/AppColors";import Do from"./NavigationTracker";const Vo=()=>{const{visible:H,modalAnimationType:$,closeModal:x,modalHeightPercent:P,selected:W,selectedEvent:R,selectedLog:Y,selectedReduxSlice:j,selectedReduxAction:J,selectedCrash:q,selectedPush:A,setSelectedPush:K,selectedSocket:I,setSelectedSocket:Q,settingsPage:C,isAboutOpen:k,setIsAboutOpen:X,isSupportOpen:E,setIsSupportOpen:Z,activeTab:e,isReady:_,enabled:ee,isDismissed:oe,hasNavigationContext:re,setNavState:te,confirmModal:S,setConfirmModal:ae,peekMode:le,peekOpacity:G}=he(),L=e==="apis"&&W!=null||e==="analytics"&&R!=null||e==="logs"&&Y!=null||e==="redux"&&(j!=null||J!=null)||e==="crash"&&q!=null||e==="push"&&A!=null||e==="socket"&&I!=null,T=F(new N.Value(0)).current;O(()=>{C!==null&&(T.setValue(0),N.spring(T,{toValue:1,friction:8,tension:65,useNativeDriver:!0}).start())},[C!==null]);const D=F(new N.Value(0)).current;O(()=>{k&&(D.setValue(0),N.spring(D,{toValue:1,friction:8,tension:65,useNativeDriver:!0}).start())},[k]);const V=F(new N.Value(0)).current;return O(()=>{E&&(V.setValue(0),N.spring(V,{toValue:1,friction:8,tension:65,useNativeDriver:!0}).start())},[E]),<>
2
+ {(U.OS==="ios"||U.OS==="android")&&ee&&!oe&&!H&&<Ce/>}
3
+ <Me visible={H}animationType={$}transparent statusBarTranslucent={!0}onRequestClose={x}>
4
+ <Be onClose={x}>
5
+ <B style={[z.modalBackdrop,{zIndex:999999,elevation:999999}]}>
6
+ <Ne style={z.modalBackdropPressable}onPress={x}accessible={!0}accessibilityRole="button"accessibilityLabel="Dismiss Inspector"accessibilityHint="Double tap to dismiss the inspector modal"/>
7
+ <B accessible={!1}accessibilityViewIsModal={!0}style={[z.modalContentCard,{height:`${P}%`,borderTopLeftRadius:P>=100?0:20,borderTopRightRadius:P>=100?0:20,opacity:le?Math.max(.05,Math.min(1,typeof G=="number"?G:.3)):1,zIndex:9999999,elevation:999999}]}>
8
+ <Se translucent backgroundColor="transparent"barStyle="light-content"/>
9
9
 
10
- <Re/>
11
- {!G&&v===null&&!R&&!D&&<De/>}
10
+ <Ee/>
11
+ {!L&&C===null&&!k&&!E&&<Te/>}
12
12
 
13
- <B style={{flex:1,overflow:"hidden",backgroundColor:C.grayBackground}}>
13
+ <B style={{flex:1,overflow:"hidden",backgroundColor:v.grayBackground}}>
14
14
 
15
- <B style={{flex:1}}pointerEvents={G||v!==null||R||D?"none":"auto"}>
16
- <Te/>
17
- {ee?<B style={{flex:1}}>
18
- {e==="apis"&&<S moduleName="Network API Monitor">
19
- <Ee/>
20
- </S>}
21
- {e==="logs"&&<S moduleName="Console Logs Monitor">
22
- <Le/>
23
- </S>}
24
- {e==="perf"&&<S moduleName="Performance & FPS Profiler">
15
+ <B style={{flex:1}}pointerEvents={L||C!==null||k||E?"none":"auto"}>
16
+ <De/>
17
+ {_?<B style={{flex:1}}>
18
+ {e==="apis"&&<M moduleName="Network API Monitor">
19
+ <Ve/>
20
+ </M>}
21
+ {e==="logs"&&<M moduleName="Console Logs Monitor">
22
+ <Ae/>
23
+ </M>}
24
+ {e==="perf"&&<M moduleName="Performance & FPS Profiler">
25
25
  <Ie/>
26
- </S>}
27
- {e==="analytics"&&<S moduleName="Analytics Event Tracker">
28
- <Oe/>
29
- </S>}
30
- {e==="redux"&&<S moduleName="Redux State Inspector">
26
+ </M>}
27
+ {e==="analytics"&&<M moduleName="Analytics Event Tracker">
28
+ <Le/>
29
+ </M>}
30
+ {e==="redux"&&<M moduleName="Redux State Inspector">
31
+ <Fe/>
32
+ </M>}
33
+ {e==="crash"&&<M moduleName="Crash Reporter">
31
34
  <We/>
32
- </S>}
33
- {e==="crash"&&<S moduleName="Crash Reporter">
34
- <He/>
35
- </S>}
36
- {e==="push"&&<S moduleName="Push Notifications">
37
- <Ue/>
38
- </S>}
39
- {e==="socket"&&<S moduleName="WebSocket & Socket.IO">
35
+ </M>}
36
+ {e==="push"&&<M moduleName="Push Notifications">
37
+ <Ge/>
38
+ </M>}
39
+ {e==="socket"&&<M moduleName="WebSocket & Socket.IO">
40
40
  <$e/>
41
- </S>}
42
- {e==="device"&&<S moduleName="Device Diagnostics">
41
+ </M>}
42
+ {e==="device"&&<M moduleName="Device Diagnostics">
43
43
  <Ke/>
44
- </S>}
45
- {e==="storage"&&<S moduleName="Storage Inspector">
44
+ </M>}
45
+ {e==="storage"&&<M moduleName="Storage Inspector">
46
46
  <Qe/>
47
- </S>}
48
- {e==="media"&&<S moduleName="Media Gallery">
49
- <Ze/>
50
- </S>}
51
- {q.OS==="android"&&Eo()&&e==="debugging"&&<S moduleName="Debugging Utilities">
52
- <Xe/>
53
- </S>}
54
- </B>:<Po/>}
47
+ </M>}
48
+ {e==="media"&&<M moduleName="Media Gallery">
49
+ <Xe/>
50
+ </M>}
51
+ </B>:<Bo tab={e}/>}
55
52
  </B>
56
53
 
57
54
 
58
- {G&&<B style={[T.absoluteFill,{backgroundColor:C.contentBg,zIndex:10}]}>
59
- {e==="apis"&&Y!=null&&<S moduleName="Network Request Details">
55
+ {L&&<B style={[w.absoluteFill,{backgroundColor:v.contentBg,zIndex:10}]}>
56
+ {e==="apis"&&W!=null&&<M moduleName="Network Request Details">
60
57
  <Pe/>
61
- </S>}
62
- {e==="analytics"&&F!=null&&<S moduleName="Analytics Event Details">
63
- <Fe event={F}/>
64
- </S>}
65
- {e==="logs"&&U!=null&&<S moduleName="Console Log Details">
66
- <Ae/>
67
- </S>}
68
- {e==="redux"&&<S moduleName="Redux Action & State Details">
69
- <Ge/>
70
- </S>}
71
- {e==="crash"&&_!=null&&<S moduleName="Crash Log Details">
58
+ </M>}
59
+ {e==="analytics"&&R!=null&&<M moduleName="Analytics Event Details">
60
+ <Oe event={R}/>
61
+ </M>}
62
+ {e==="logs"&&Y!=null&&<M moduleName="Console Log Details">
63
+ <Re/>
64
+ </M>}
65
+ {e==="redux"&&<M moduleName="Redux Action & State Details">
66
+ <He/>
67
+ </M>}
68
+ {e==="crash"&&q!=null&&<M moduleName="Crash Log Details">
72
69
  <Ye/>
73
- </S>}
74
- {e==="push"&&W!=null&&<S moduleName="Push Notification Details">
75
- <_e item={W}onClose={()=>K(null)}/>
76
- </S>}
77
- {e==="socket"&&z!=null&&<S moduleName="WebSocket & Socket.IO Details">
78
- <Je item={z}onClose={()=>Q(null)}/>
79
- </S>}
70
+ </M>}
71
+ {e==="push"&&A!=null&&<M moduleName="Push Notification Details">
72
+ <Ue item={A}onClose={()=>K(null)}/>
73
+ </M>}
74
+ {e==="socket"&&I!=null&&<M moduleName="WebSocket & Socket.IO Details">
75
+ <Je item={I}onClose={()=>Q(null)}/>
76
+ </M>}
80
77
  </B>}
81
78
 
82
79
 
83
- {v!==null&&<o.View style={[T.absoluteFill,{backgroundColor:C.grayBackground,opacity:E,transform:[{translateY:E.interpolate({inputRange:[0,1],outputRange:[24,0]})}]}]}>
84
- <S moduleName="Settings Panel">
85
- <So/>
86
- </S>
87
- </o.View>}
80
+ {C!==null&&<N.View style={[w.absoluteFill,{backgroundColor:v.grayBackground,opacity:T,transform:[{translateY:T.interpolate({inputRange:[0,1],outputRange:[24,0]})}]}]}>
81
+ <M moduleName="Settings Panel">
82
+ <Ze/>
83
+ </M>
84
+ </N.View>}
88
85
 
89
86
 
90
- {R&&<o.View style={[T.absoluteFill,{backgroundColor:C.primaryLight,opacity:x,transform:[{translateY:x.interpolate({inputRange:[0,1],outputRange:[24,0]})}]}]}>
91
- <S moduleName="About & Diagnostics">
92
- <Bo onClose={()=>X(!1)}/>
93
- </S>
94
- </o.View>}
87
+ {k&&<N.View style={[w.absoluteFill,{backgroundColor:v.primaryLight,opacity:D,transform:[{translateY:D.interpolate({inputRange:[0,1],outputRange:[24,0]})}]}]}>
88
+ <M moduleName="About & Diagnostics">
89
+ <_e onClose={()=>X(!1)}/>
90
+ </M>
91
+ </N.View>}
95
92
 
96
93
 
97
- {D&&<o.View style={[T.absoluteFill,{backgroundColor:C.primaryLight,opacity:P,transform:[{translateY:P.interpolate({inputRange:[0,1],outputRange:[24,0]})}]}]}>
98
- <S moduleName="Support & Community">
99
- <Co onClose={()=>Z(!1)}/>
100
- </S>
101
- </o.View>}
94
+ {E&&<N.View style={[w.absoluteFill,{backgroundColor:v.primaryLight,opacity:V,transform:[{translateY:V.interpolate({inputRange:[0,1],outputRange:[24,0]})}]}]}>
95
+ <M moduleName="Support & Community">
96
+ <Mo onClose={()=>Z(!1)}/>
97
+ </M>
98
+ </N.View>}
102
99
  </B>
103
100
 
104
101
 
105
- <Do/>
102
+ <To/>
106
103
 
107
104
 
108
- <No/>
105
+ <Co/>
109
106
 
110
107
 
111
- <Ro/>
108
+ <Eo/>
112
109
 
113
110
 
114
- <Mo/>
111
+ <So/>
115
112
 
116
113
 
117
- <Vo visible={N.visible}title={N.title}message={N.message}confirmText={N.confirmText}cancelText={N.cancelText}isDestructive={!0}icon="trash"onConfirm={N.onConfirm}onCancel={()=>ie(ne=>({...ne,visible:!1}))}/>
114
+ <No visible={S.visible}title={S.title}message={S.message}confirmText={S.confirmText}cancelText={S.cancelText}isDestructive={!0}icon="trash"onConfirm={S.onConfirm}onCancel={()=>ae(ie=>({...ie,visible:!1}))}/>
118
115
  </B>
119
116
  </B>
120
- </Me>
121
- {te&&<To onStateChange={ae}/>}
122
- </Se>
123
- </>},Po=se.memo(function(){const V=L(new o.Value(.35)).current;return A(()=>{const M=o.loop(o.sequence([o.timing(V,{toValue:.85,duration:750,useNativeDriver:!1}),o.timing(V,{toValue:.35,duration:750,useNativeDriver:!1})]));return M.start(),()=>M.stop()},[V]),<B style={k.container}>
124
-
125
- <B style={k.toolbarSkeleton}>
126
- <o.View style={[k.searchBarSkeleton,{opacity:V}]}/>
127
- <B style={k.actionButtonsRow}>
128
- <o.View style={[k.iconButtonSkeleton,{opacity:V}]}/>
129
- <o.View style={[k.iconButtonSkeleton,{opacity:V}]}/>
130
- </B>
131
- </B>
132
-
133
-
134
- <B style={k.chipStripSkeleton}>
135
- <o.View style={[k.chipSkeleton,{width:48,opacity:V}]}/>
136
- <o.View style={[k.chipSkeleton,{width:68,opacity:V}]}/>
137
- <o.View style={[k.chipSkeleton,{width:76,opacity:V}]}/>
138
- <o.View style={[k.chipSkeleton,{width:58,opacity:V}]}/>
139
- </B>
140
-
141
-
142
- {[0,1,2,3].map(M=><o.View key={`skeleton_card_${M}`}style={[k.cardSkeleton,{opacity:V}]}>
143
- <B style={k.cardTopRow}>
144
- <B style={k.badgeGroup}>
145
- <B style={k.statusBadgeSkeleton}/>
146
- <B style={k.methodBadgeSkeleton}/>
147
- </B>
148
- <B style={k.timeSkeleton}/>
149
- </B>
150
- <B style={k.urlLineLong}/>
151
- <B style={k.urlLineShort}/>
152
- <B style={k.cardBottomRow}>
153
- <B style={k.metaPillSkeleton}/>
154
- <B style={k.metaPillSkeleton}/>
155
- </B>
156
- </o.View>)}
157
- </B>}),k=T.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:C.graySurface,borderWidth:1,borderColor:C.dividerColor},actionButtonsRow:{flexDirection:"row",gap:6},iconButtonSkeleton:{width:36,height:36,borderRadius:8,backgroundColor:C.graySurface,borderWidth:1,borderColor:C.dividerColor},chipStripSkeleton:{flexDirection:"row",gap:6,marginBottom:10},chipSkeleton:{height:24,borderRadius:6,backgroundColor:C.graySurface,borderWidth:1,borderColor:C.dividerColor},cardSkeleton:{backgroundColor:C.primaryLight,borderRadius:10,padding:12,marginBottom:8,borderWidth:1,borderColor:C.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:C.graySurface},methodBadgeSkeleton:{width:44,height:18,borderRadius:4,backgroundColor:C.graySurface},timeSkeleton:{width:48,height:12,borderRadius:4,backgroundColor:C.graySurface},urlLineLong:{height:13,borderRadius:4,backgroundColor:C.graySurface,marginBottom:5,width:"90%"},urlLineShort:{height:11,borderRadius:4,backgroundColor:C.graySurface,marginBottom:8,width:"55%"},cardBottomRow:{flexDirection:"row",gap:8,marginTop:2},metaPillSkeleton:{width:52,height:14,borderRadius:4,backgroundColor:C.graySurface}});export default xo;
117
+ </Be>
118
+ {re&&<Do onStateChange={te}/>}
119
+ </Me>
120
+ </>};export default Vo;