react-native-inapp-inspector 2.4.2 → 2.5.1

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 (221) 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/src/main/java/com/inappinspector/NetworkInspectorModule.kt +523 -2
  17. package/dist/commonjs/capture.d.ts +2 -0
  18. package/dist/commonjs/capture.js +1 -1
  19. package/dist/commonjs/components/AnalyticsDetail.js +23 -23
  20. package/dist/commonjs/components/AnalyticsEventCard.js +1 -1
  21. package/dist/commonjs/components/AnalyticsGraph.js +44 -44
  22. package/dist/commonjs/components/AnimatedBrandOwl.js +32 -32
  23. package/dist/commonjs/components/AppHeaderLogo.js +6 -6
  24. package/dist/commonjs/components/BrandCircleIcon.js +28 -28
  25. package/dist/commonjs/components/BrandSquareIcon.js +33 -33
  26. package/dist/commonjs/components/ConsoleLogCard.js +1 -1
  27. package/dist/commonjs/components/Inspector/AnalyticsTab.js +2 -2
  28. package/dist/commonjs/components/Inspector/ConfirmationModal.js +23 -25
  29. package/dist/commonjs/components/Inspector/ConsoleTab.js +5 -5
  30. package/dist/commonjs/components/Inspector/CrashTab.js +44 -11
  31. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +1 -1
  32. package/dist/commonjs/components/Inspector/FabLauncher.js +30 -25
  33. package/dist/commonjs/components/Inspector/FloatingCaptureWidget.d.ts +3 -0
  34. package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +54 -0
  35. package/dist/commonjs/components/Inspector/GlobalCrashScreenModal.d.ts +11 -0
  36. package/dist/commonjs/components/Inspector/GlobalCrashScreenModal.js +234 -0
  37. package/dist/commonjs/components/Inspector/InspectorHeader.js +137 -127
  38. package/dist/commonjs/components/Inspector/LanguageSelectorModal.d.ts +1 -1
  39. package/dist/commonjs/components/Inspector/LanguageSelectorModal.js +114 -32
  40. package/dist/commonjs/components/Inspector/MainScreen.js +26 -19
  41. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +38 -35
  42. package/dist/commonjs/components/Inspector/MediaPreviewModal.d.ts +36 -0
  43. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +345 -123
  44. package/dist/commonjs/components/Inspector/NetworkTab.js +14 -14
  45. package/dist/commonjs/components/Inspector/PushCard.js +1 -1
  46. package/dist/commonjs/components/Inspector/PushDetail.js +9 -9
  47. package/dist/commonjs/components/Inspector/PushTab.js +3 -3
  48. package/dist/commonjs/components/Inspector/ReduxTab.js +9 -7
  49. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.d.ts +2 -0
  50. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.js +43 -0
  51. package/dist/commonjs/components/Inspector/SettingsPanel.js +102 -73
  52. package/dist/commonjs/components/Inspector/SocketCard.js +1 -1
  53. package/dist/commonjs/components/Inspector/SocketDetail.js +73 -63
  54. package/dist/commonjs/components/Inspector/SocketTab.js +4 -4
  55. package/dist/commonjs/components/Inspector/StorageTab.js +10 -10
  56. package/dist/commonjs/components/Inspector/SupportModal.js +2 -2
  57. package/dist/commonjs/components/Inspector/SupportPage.js +1 -1
  58. package/dist/commonjs/components/JsonViewer.js +47 -45
  59. package/dist/commonjs/components/LogCard.js +22 -20
  60. package/dist/commonjs/components/ModuleErrorBoundary.js +5 -5
  61. package/dist/commonjs/components/NetworkIcons.d.ts +27 -0
  62. package/dist/commonjs/components/NetworkIcons.js +103 -5
  63. package/dist/commonjs/constants/telemetryConfig.d.ts +3 -3
  64. package/dist/commonjs/constants/telemetryConfig.js +1 -1
  65. package/dist/commonjs/constants/version.d.ts +1 -1
  66. package/dist/commonjs/constants/version.js +1 -1
  67. package/dist/commonjs/crash.d.ts +1 -1
  68. package/dist/commonjs/crash.js +1 -1
  69. package/dist/commonjs/customHooks/crashHandler.d.ts +2 -1
  70. package/dist/commonjs/customHooks/crashHandler.js +7 -7
  71. package/dist/commonjs/editor.d.ts +13 -0
  72. package/dist/commonjs/editor.js +1 -0
  73. package/dist/commonjs/helpers/index.d.ts +1 -0
  74. package/dist/commonjs/helpers/index.js +1 -1
  75. package/dist/commonjs/helpers/settingsStore.js +1 -1
  76. package/dist/commonjs/helpers/telemetry.js +1 -1
  77. package/dist/commonjs/i18n/index.js +1 -1
  78. package/dist/commonjs/i18n/locales/ar.json +1 -1
  79. package/dist/commonjs/i18n/locales/bn.json +1 -1
  80. package/dist/commonjs/i18n/locales/de.json +1 -1
  81. package/dist/commonjs/i18n/locales/en.json +1 -1
  82. package/dist/commonjs/i18n/locales/es.json +1 -1
  83. package/dist/commonjs/i18n/locales/fr.json +1 -1
  84. package/dist/commonjs/i18n/locales/gu.json +1 -1
  85. package/dist/commonjs/i18n/locales/hi.json +1 -1
  86. package/dist/commonjs/i18n/locales/id.json +1 -1
  87. package/dist/commonjs/i18n/locales/it.json +1 -1
  88. package/dist/commonjs/i18n/locales/ja.json +1 -1
  89. package/dist/commonjs/i18n/locales/kn.json +1 -1
  90. package/dist/commonjs/i18n/locales/ko.json +1 -1
  91. package/dist/commonjs/i18n/locales/ml.json +1 -1
  92. package/dist/commonjs/i18n/locales/mr.json +1 -1
  93. package/dist/commonjs/i18n/locales/nl.json +1 -1
  94. package/dist/commonjs/i18n/locales/pa.json +1 -1
  95. package/dist/commonjs/i18n/locales/pl.json +1 -1
  96. package/dist/commonjs/i18n/locales/pt.json +1 -1
  97. package/dist/commonjs/i18n/locales/ru.json +1 -1
  98. package/dist/commonjs/i18n/locales/ta.json +1 -1
  99. package/dist/commonjs/i18n/locales/te.json +1 -1
  100. package/dist/commonjs/i18n/locales/tr.json +1 -1
  101. package/dist/commonjs/i18n/locales/vi.json +1 -1
  102. package/dist/commonjs/i18n/locales/zh.json +1 -1
  103. package/dist/commonjs/index.d.ts +4 -1
  104. package/dist/commonjs/index.js +3 -3
  105. package/dist/commonjs/native/NativeInspector.d.ts +3 -0
  106. package/dist/commonjs/native/NativeInspector.js +1 -1
  107. package/dist/commonjs/native/NativeNetworkInspector.d.ts +4 -0
  108. package/dist/commonjs/styles/AppColors.d.ts +42 -2
  109. package/dist/commonjs/styles/AppColors.js +1 -1
  110. package/dist/commonjs/styles/common.js +1 -1
  111. package/dist/commonjs/styles/index.d.ts +7 -0
  112. package/dist/commonjs/styles/index.js +1 -1
  113. package/dist/commonjs/types/editor.d.ts +96 -0
  114. package/dist/commonjs/types/editor.js +1 -0
  115. package/dist/commonjs/types/interfaces.d.ts +21 -0
  116. package/dist/esm/capture.d.ts +2 -0
  117. package/dist/esm/capture.js +1 -1
  118. package/dist/esm/components/AnalyticsDetail.js +31 -31
  119. package/dist/esm/components/AnalyticsEventCard.js +1 -1
  120. package/dist/esm/components/AnalyticsGraph.js +74 -74
  121. package/dist/esm/components/AnimatedBrandOwl.js +114 -114
  122. package/dist/esm/components/AppHeaderLogo.js +7 -7
  123. package/dist/esm/components/BrandCircleIcon.js +70 -70
  124. package/dist/esm/components/BrandSquareIcon.js +61 -61
  125. package/dist/esm/components/ConsoleLogCard.js +1 -1
  126. package/dist/esm/components/Inspector/AnalyticsTab.js +14 -14
  127. package/dist/esm/components/Inspector/ConfirmationModal.js +23 -25
  128. package/dist/esm/components/Inspector/ConsoleTab.js +17 -17
  129. package/dist/esm/components/Inspector/CrashTab.js +202 -169
  130. package/dist/esm/components/Inspector/DeviceInfoTab.js +75 -75
  131. package/dist/esm/components/Inspector/FabLauncher.js +56 -51
  132. package/dist/esm/components/Inspector/FloatingCaptureWidget.d.ts +3 -0
  133. package/dist/esm/components/Inspector/FloatingCaptureWidget.js +54 -0
  134. package/dist/esm/components/Inspector/GlobalCrashScreenModal.d.ts +11 -0
  135. package/dist/esm/components/Inspector/GlobalCrashScreenModal.js +234 -0
  136. package/dist/esm/components/Inspector/InspectorHeader.js +162 -152
  137. package/dist/esm/components/Inspector/LanguageSelectorModal.d.ts +1 -1
  138. package/dist/esm/components/Inspector/LanguageSelectorModal.js +140 -58
  139. package/dist/esm/components/Inspector/MainScreen.js +61 -54
  140. package/dist/esm/components/Inspector/MediaGalleryTab.js +55 -52
  141. package/dist/esm/components/Inspector/MediaPreviewModal.d.ts +36 -0
  142. package/dist/esm/components/Inspector/MediaPreviewModal.js +345 -123
  143. package/dist/esm/components/Inspector/NetworkTab.js +74 -74
  144. package/dist/esm/components/Inspector/PushCard.js +1 -1
  145. package/dist/esm/components/Inspector/PushDetail.js +18 -18
  146. package/dist/esm/components/Inspector/PushTab.js +1 -1
  147. package/dist/esm/components/Inspector/ReduxTab.js +18 -16
  148. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.d.ts +2 -0
  149. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.js +43 -0
  150. package/dist/esm/components/Inspector/SettingsPanel.js +224 -195
  151. package/dist/esm/components/Inspector/SocketCard.js +8 -8
  152. package/dist/esm/components/Inspector/SocketDetail.js +106 -96
  153. package/dist/esm/components/Inspector/SocketTab.js +18 -18
  154. package/dist/esm/components/Inspector/StorageTab.js +47 -47
  155. package/dist/esm/components/Inspector/SupportModal.js +64 -64
  156. package/dist/esm/components/Inspector/SupportPage.js +5 -5
  157. package/dist/esm/components/JsonViewer.js +51 -49
  158. package/dist/esm/components/LogCard.js +41 -39
  159. package/dist/esm/components/ModuleErrorBoundary.js +10 -10
  160. package/dist/esm/components/NetworkIcons.d.ts +27 -0
  161. package/dist/esm/components/NetworkIcons.js +101 -3
  162. package/dist/esm/constants/telemetryConfig.d.ts +3 -3
  163. package/dist/esm/constants/telemetryConfig.js +1 -1
  164. package/dist/esm/constants/version.d.ts +1 -1
  165. package/dist/esm/constants/version.js +1 -1
  166. package/dist/esm/crash.d.ts +1 -1
  167. package/dist/esm/crash.js +1 -1
  168. package/dist/esm/customHooks/crashHandler.d.ts +2 -1
  169. package/dist/esm/customHooks/crashHandler.js +7 -7
  170. package/dist/esm/editor.d.ts +13 -0
  171. package/dist/esm/editor.js +1 -0
  172. package/dist/esm/helpers/index.d.ts +1 -0
  173. package/dist/esm/helpers/index.js +4 -4
  174. package/dist/esm/helpers/settingsStore.js +1 -1
  175. package/dist/esm/helpers/telemetry.js +1 -1
  176. package/dist/esm/i18n/index.js +1 -1
  177. package/dist/esm/i18n/locales/ar.json +1 -1
  178. package/dist/esm/i18n/locales/bn.json +1 -1
  179. package/dist/esm/i18n/locales/de.json +1 -1
  180. package/dist/esm/i18n/locales/en.json +1 -1
  181. package/dist/esm/i18n/locales/es.json +1 -1
  182. package/dist/esm/i18n/locales/fr.json +1 -1
  183. package/dist/esm/i18n/locales/gu.json +1 -1
  184. package/dist/esm/i18n/locales/hi.json +1 -1
  185. package/dist/esm/i18n/locales/id.json +1 -1
  186. package/dist/esm/i18n/locales/it.json +1 -1
  187. package/dist/esm/i18n/locales/ja.json +1 -1
  188. package/dist/esm/i18n/locales/kn.json +1 -1
  189. package/dist/esm/i18n/locales/ko.json +1 -1
  190. package/dist/esm/i18n/locales/ml.json +1 -1
  191. package/dist/esm/i18n/locales/mr.json +1 -1
  192. package/dist/esm/i18n/locales/nl.json +1 -1
  193. package/dist/esm/i18n/locales/pa.json +1 -1
  194. package/dist/esm/i18n/locales/pl.json +1 -1
  195. package/dist/esm/i18n/locales/pt.json +1 -1
  196. package/dist/esm/i18n/locales/ru.json +1 -1
  197. package/dist/esm/i18n/locales/ta.json +1 -1
  198. package/dist/esm/i18n/locales/te.json +1 -1
  199. package/dist/esm/i18n/locales/tr.json +1 -1
  200. package/dist/esm/i18n/locales/vi.json +1 -1
  201. package/dist/esm/i18n/locales/zh.json +1 -1
  202. package/dist/esm/index.d.ts +4 -1
  203. package/dist/esm/index.js +5 -5
  204. package/dist/esm/native/NativeInspector.d.ts +3 -0
  205. package/dist/esm/native/NativeInspector.js +1 -1
  206. package/dist/esm/native/NativeNetworkInspector.d.ts +4 -0
  207. package/dist/esm/styles/AppColors.d.ts +42 -2
  208. package/dist/esm/styles/AppColors.js +1 -1
  209. package/dist/esm/styles/common.js +1 -1
  210. package/dist/esm/styles/index.d.ts +7 -0
  211. package/dist/esm/styles/index.js +1 -1
  212. package/dist/esm/types/editor.d.ts +96 -0
  213. package/dist/esm/types/editor.js +1 -0
  214. package/dist/esm/types/interfaces.d.ts +21 -0
  215. package/editor.d.ts +1 -0
  216. package/editor.js +1 -0
  217. package/ios/NetworkInspectorModule.mm +429 -0
  218. package/package.json +10 -1
  219. package/react-native-inapp-inspector.podspec +1 -1
  220. package/src/native/NativeInspector.ts +57 -4
  221. package/src/native/NativeNetworkInspector.ts +4 -0
@@ -1,14 +1,14 @@
1
- import H,{useMemo as ne}from"react";import{Alert as we,Animated as se,Linking as Qe,Platform as de,Pressable as Se,StatusBar as Je,Text as C,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 P from"../TouchableScale";import Ze from"../AppHeaderLogo";import i from"../../styles";import{AppColors as t}from"../../styles/AppColors";import{AppFonts as D}from"../../styles/AppFonts";import{METHOD_COLORS as et}from"../../constants";import{LIB_VERSION as ce}from"../../constants";import{getStatusColor as ge,getAppName as tt,formatTime as it,formatTimeShort as rt,getSize as xe,getAppVersionAndBuild as ot}from"../../helpers";import{triggerNativeHaptic as j}from"../../native/NativeInspector";import{ScreenCapture as W}from"../../capture";import{showToast as O}from"../../helpers/toast";import{UpdateAvailableModal as St}from"./UpdateAvailableModal";import{MediaPreviewModal as Tt}from"./MediaPreviewModal";import{WhiteBackNavigation as Ct,TrashIcon as Vt,SettingsIcon as Dt,CloseWhite as Rt,ChevronDownIcon as It,ClockIcon as Z,SizeIcon as $t,AppleIcon as Mt,AndroidIcon as Ht,NpmIcon as At,ResetIcon as Bt,BoltIcon as Pt,InfoCircleIcon as Ot,CameraIcon as Lt,VideoCameraIcon as Et}from"../NetworkIcons";import{useTranslation as Wt}from"../../i18n";const Ft=H.memo(()=>{const{t:V}=Wt(),{modalHeightPercent:ee,appIcon:Ce,selected:I,setSelected:ze,selectedEvent:M,setSelectedEvent:Ve,selectedLog:A,setSelectedLog:De,selectedReduxSlice:F,setSelectedReduxSlice:Re,selectedReduxAction:_,setSelectedReduxAction:Ie,reduxState:ke,reduxLastActionMap:$e,updateAvailable:te,latestNpmVersion:Me,clearAnim:he,activePulseAnim:He,unreadPulseAnim:Ae,runClearAllWithAnimation:ve,settingsPage:L,setSettingsPage:ie,isAboutOpen:re,setIsAboutOpen:ue,resetToDefaults:Be,closeModal:pe,minimizeInspector:Pe,detailTitle:Oe,activeTab:k,environment:me,selectedCrash:$,setSelectedCrash:Le,selectedPush:R,setSelectedPush:Ee,refreshMediaCount:U}=Ye(),{width:G}=Ke(),e=G<360,q=G<400,[We,oe]=H.useState(!1),[Fe]=H.useState(()=>ot().formatted),[v,Q]=H.useState(!1),[Ue,ae]=H.useState(0),E=H.useRef(null);H.useEffect(()=>{W.isRecording().then(T=>{Q(T)}).catch(()=>{})},[]),H.useEffect(()=>(v?(ae(0),E.current=setInterval(()=>{ae(T=>T+1)},1e3)):(E.current&&(clearInterval(E.current),E.current=null),ae(0)),()=>{E.current&&clearInterval(E.current)}),[v]);const[fe,N]=H.useState(null),Ne=H.useCallback(async()=>{try{j("light");const T=await W.takeScreenshot({format:"png",quality:.9,hideInspector:!0});if(T){j("success");const z={id:`screenshot_${T.timestamp}.png`,type:"image",format:T.format,uri:T.uri,filename:T.uri.split("/").pop()||`screenshot_${T.timestamp}.png`,sizeBytes:T.sizeBytes,timestamp:T.timestamp,width:T.width,height:T.height};N(z),U?.().catch(()=>{}),O(V("header.screenshotCaptured"))}else O(V("header.screenshotFailed"))}catch{O(V("header.screenshotError"))}},[U,V]),je=H.useCallback(async()=>{try{if(v){j("medium");const T=await W.stopRecording();if(Q(!1),T){j("success");const z={id:`video_${T.timestamp}.${T.format}`,type:T.format==="gif"?"gif":"video",format:T.format,uri:T.uri,filename:T.uri.split("/").pop()||`video_${T.timestamp}.${T.format}`,sizeBytes:T.sizeBytes,timestamp:T.timestamp,durationMs:T.durationMs,width:T.width,height:T.height,hasAudio:T.hasAudio};N(z),U?.().catch(()=>{}),O(V("header.recordingSaved",{duration:(T.durationMs/1e3).toFixed(1)}))}}else j("medium"),await W.startRecording({fps:24,audioSource:"none"})?(Q(!0),O(V("header.recordingStarted"))):O(V("header.recordingStartFailed"))}catch{O(V("header.recordingError")),Q(!1)}},[v,V]),_e=T=>{const z=Math.floor(T/60),le=T%60;return`${z.toString().padStart(2,"0")}:${le.toString().padStart(2,"0")}`},J=ne(()=>{const T=(me||(__DEV__?"DEV":"PROD")).trim(),z=T.toUpperCase();return z==="DEV"||z.includes("DEV")||z==="LOCAL"?{label:T,bg:`${t.emerald500}40`,border:`${t.emerald400}8C`,text:t.mintGreenBorder}:z==="UAT"||z==="QA"||z==="TEST"?{label:T,bg:`${t.amber500}47`,border:`${t.amber400}99`,text:t.amberWarmBorder}:z==="PREPROD"||z==="STAGE"||z==="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}},[me]),K=k==="apis"&&I!=null||k==="analytics"&&M!=null||k==="logs"&&A!=null||k==="redux"&&(F!=null||_!=null)||k==="crash"&&$!=null||k==="push"&&R!=null,X=L!==null,Y=K||X||re,Ge=ne(()=>{switch(L){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"}},[L]),be=ne(()=>de.OS==="ios"?ee>=98?G>=390?50:44:0:de.OS==="android"&&ee>=98?Je.currentHeight||24:0,[ee,G]),B=e?28:q?30:32,qe=e?48:q?52:56;return<>
2
- <S style={[i.headerGradient,{minHeight:(e?62:66)+be}]}>
1
+ import $,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as Ye,Platform as de,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 _ 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 ce}from"../../constants";import{getStatusColor as ue,formatTime as zt,formatTimeShort as Ce,getSize as xe,formatByteSize as Vt,getAppVersionAndBuild as Dt,showToast as H}from"../../helpers";import{triggerNativeHaptic as A}from"../../native/NativeInspector";import{ScreenCapture as E}from"../../capture";import{UpdateAvailableModal as Rt}from"./UpdateAvailableModal";import{MediaPreviewModal as It}from"./MediaPreviewModal";import{LanguageSelectorModal as Mt}from"./LanguageSelectorModal";import{WhiteBackNavigation as $t,SettingsIcon as Bt,CloseWhite as Lt,ChevronDownIcon as Ve,ClockIcon as G,SizeIcon as De,AppleIcon as Ht,AndroidIcon as At,NpmIcon as Ot,ResetIcon as Pt,BoltIcon as Et,EyeIcon as Wt}from"../NetworkIcons";import{useTranslation as Ft,SUPPORTED_LANGUAGES as ke,getLanguage as Ut}from"../../i18n";const Nt=$.memo(()=>{const{t:I,language:ge}=Ft(),{modalHeightPercent:ee,appIcon:_t,selected:R,setSelected:Re,selectedEvent:B,setSelectedEvent:Ie,selectedLog:L,setSelectedLog:Me,selectedReduxSlice:W,setSelectedReduxSlice:$e,selectedReduxAction:q,setSelectedReduxAction:Be,reduxState:Le,reduxLastActionMap:ve,updateAvailable:te,latestNpmVersion:He,clearAnim:jt,activePulseAnim:Ae,unreadPulseAnim:Oe,runClearAllWithAnimation:Gt,settingsPage:O,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:_e,refreshMediaCount:F,peekMode:oe,setPeekMode:je}=Tt(),{width:Q}=et(),e=Q<360,U=Q<400,[Ge,ae]=$.useState(!1),[qe,me]=$.useState(!1),[Qe]=$.useState(()=>Dt().formatted),fe=Z(()=>{const T=ge||Ut();return ke.find(x=>x.code===T)||ke[0]},[ge]),[J,K]=$.useState(!1),[qt,le]=$.useState(0),P=$.useRef(null);$.useEffect(()=>{E.isRecording().then(T=>{K(T)}).catch(()=>{})},[]),$.useEffect(()=>(J?(le(0),P.current=setInterval(()=>{le(T=>T+1)},1e3)):(P.current&&(clearInterval(P.current),P.current=null),le(0)),()=>{P.current&&clearInterval(P.current)}),[J]);const[be,N]=$.useState(null),Qt=$.useCallback(async()=>{try{A("light");const T=await E.takeScreenshot({format:"png",quality:.9,hideInspector:!0});if(T){A("success");const x={id:`screenshot_${T.timestamp}.png`,type:"image",format:T.format,uri:T.uri,filename:T.uri.split("/").pop()||`screenshot_${T.timestamp}.png`,sizeBytes:T.sizeBytes,timestamp:T.timestamp,width:T.width,height:T.height};N(x),F?.().catch(()=>{}),H(I("header.screenshotCaptured"))}else H(I("header.screenshotFailed"))}catch{H(I("header.screenshotError"))}},[F,I]),Jt=$.useCallback(async()=>{try{if(J){A("medium");const T=await E.stopRecording();if(K(!1),T){A("success");const x={id:`video_${T.timestamp}.${T.format}`,type:T.format==="gif"?"gif":"video",format:T.format,uri:T.uri,filename:T.uri.split("/").pop()||`video_${T.timestamp}.${T.format}`,sizeBytes:T.sizeBytes,timestamp:T.timestamp,durationMs:T.durationMs,width:T.width,height:T.height,hasAudio:T.hasAudio};N(x),F?.().catch(()=>{}),H(I("header.recordingSaved",{duration:(T.durationMs/1e3).toFixed(1)}))}}else A("medium"),await E.startRecording({fps:24,audioSource:"none"})?(K(!0),H(I("header.recordingStarted"))):H(I("header.recordingStartFailed"))}catch{H(I("header.recordingError")),K(!1)}},[J,I]),Kt=T=>{const x=Math.floor(T/60),se=T%60;return`${x.toString().padStart(2,"0")}:${se.toString().padStart(2,"0")}`},Xt=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"&&B!=null||V==="logs"&&L!=null||V==="redux"&&(W!=null||q!=null)||V==="crash"&&M!=null||V==="push"&&k!=null||V==="socket"&&z!=null,Y=O!==null,ne=X||Y||re,Je=Z(()=>{switch(O){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"}},[O]),ye=Z(()=>de.OS==="ios"?ee>=98?Q>=390?50:44:0:de.OS==="android"&&ee>=98?Ze.currentHeight||24:0,[ee,Q]),v=e?25:U?26.5:27,Yt=e?36:U?38:40;return<>
2
+ <S style={[i.headerGradient,{minHeight:(e?44:48)+ye}]}>
3
3
 
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:be,width:"100%"}}>
6
- <S style={[i.header,{width:"100%",justifyContent:"space-between",paddingHorizontal:e?12:16,paddingVertical:e?8:10,minHeight:e?52:56}]}>
7
- <S style={{flexDirection:"row",alignItems:"center",gap:e?8:10,flex:K?void 0:1,flexShrink:K?0:1,minWidth:0}}>
8
- {Y&&<P onPress={()=>{if(re){ue(!1);return}if(X){ie(L==="main"?null:"main");return}ze(null),Ve(null),De(null),Re(null),Ie(null),Le(null),Ee(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`}}>
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%"}}>
6
+ <S style={[i.header,{width:"100%",justifyContent:"space-between",paddingHorizontal:e?10:12,paddingVertical:5.5,minHeight:e?44:48}]}>
7
+ <S style={{flexDirection:"row",alignItems:"center",gap:e?7:8,flex:X?void 0:1,flexShrink:X?0:1,minWidth:0}}>
8
+ {ne&&<_ onPress={()=>{if(re){Pe(!1);return}if(Y){ie(O==="main"?null:"main");return}Re(null),Ie(null),Me(null),$e(null),Be(null),Ue(null),Ne(null),_e(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
- <Ct/>
11
- </P>}
10
+ <$t/>
11
+ </_>}
12
12
 
13
13
  {re?<S style={{gap:3,flex:1,minWidth:0,justifyContent:"center"}}>
14
14
  <S style={{flexDirection:"row",alignItems:"center",gap:6}}>
@@ -24,139 +24,148 @@ import H,{useMemo as ne}from"react";import{Alert as we,Animated as se,Linking as
24
24
  <C style={{fontFamily:D.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
- </S>:X?<S style={{gap:3,flex:1,minWidth:0,justifyContent:"center"}}>
27
+ </S>:Y?<S style={{gap:3,flex:1,minWidth:0,justifyContent:"center"}}>
28
28
  <S style={{flexDirection:"row",alignItems:"center",gap:6}}>
29
29
  <C style={{fontFamily:D.interBold,fontSize:e?15:16.5,lineHeight:e?19:21,color:t.white,letterSpacing:-.2}}numberOfLines={1}>
30
- {Ge}
30
+ {Je}
31
31
  </C>
32
- {L==="main"&&<S style={{backgroundColor:`${t.white}26`,paddingHorizontal:e?5:6,paddingVertical:2,borderRadius:8,borderWidth:1,borderColor:`${t.white}20`}}>
32
+ {O==="main"&&<S style={{backgroundColor:`${t.white}26`,paddingHorizontal:e?5:6,paddingVertical:2,borderRadius:8,borderWidth:1,borderColor:`${t.white}20`}}>
33
33
  <C style={{fontFamily:D.interBold,fontSize:e?8.5:9.5,lineHeight:12,color:t.white}}>
34
34
  v{ce}
35
35
  </C>
36
36
  </S>}
37
37
  </S>
38
38
  <C style={{fontFamily:D.interRegular,fontSize:e?10:11,lineHeight:e?14:15,color:`${t.white}CC`,marginTop:1}}numberOfLines={1}>
39
- {L==="main"?"Manage modules and preferences":"Configure module parameters"}
39
+ {O==="main"?"Manage modules and preferences":"Configure module parameters"}
40
40
  </C>
41
- </S>:Y?null:<S style={{flexDirection:"row",alignItems:"center",gap:e?10:12,flex:1,minWidth:0,marginRight:4}}>
42
- <Ze size={qe}customIcon={Ce}/>
43
- <S style={{gap:4,flex:1,minWidth:0,justifyContent:"center"}}>
44
- <S style={{flexDirection:"row",alignItems:"center",gap:e?6:7,minWidth:0}}>
45
- <C style={[i.headerTitle,{fontSize:e?15:q?16:17,lineHeight:e?20:q?22:23,flexShrink:1,paddingBottom:0}]}numberOfLines={1}ellipsizeMode="tail">
46
- {tt()}
47
- </C>
48
- <S style={[i.envBadge,{backgroundColor:J.bg,borderColor:J.border,flexShrink:0,paddingHorizontal:e?6:7,paddingVertical:2.5,borderRadius:6,marginBottom:0}]}>
49
- <C style={[i.envBadgeText,{color:J.text,fontSize:e?9:10,lineHeight:13}]}>
50
- {J.label}
51
- </C>
52
- </S>
53
- {te&&<Se hitSlop={10}onPress={()=>oe(!0)}style={{flexDirection:"row",alignItems:"center",backgroundColor:t.warningAmber,borderRadius:6,paddingHorizontal:e?5:6.5,paddingVertical:2.5,gap:3.5,shadowColor:t.warningAmber,shadowOffset:{width:0,height:1.5},shadowOpacity:.35,shadowRadius:3,elevation:3,flexShrink:0}}>
54
- <se.View style={{width:5,height:5,borderRadius:2.5,backgroundColor:t.white,opacity:He,transform:[{scale:Ae}]}}/>
55
- {!e&&<C style={{fontFamily:D.interBold,fontSize:8.5,lineHeight:11,color:t.white,letterSpacing:.3}}>
56
- UPDATE
57
- </C>}
58
- <Pt size={e?8:9}color={t.white}/>
59
- </Se>}
60
- </S>
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:U?46:48}/>
43
+ <S style={{gap:3,flex:1,minWidth:0,justifyContent:"center"}}>
44
+
45
+ <C style={[i.headerTitle,{fontFamily:D.interBold,fontWeight:"700",fontSize:e?13:U?13.5:14.5,lineHeight:e?17:U?18:19.5,color:t.white,letterSpacing:-.2,paddingBottom:0}]}numberOfLines={1}ellipsizeMode="tail">
46
+ react-native-inapp-inspector
47
+ </C>
61
48
 
62
49
 
63
- <S style={{flexDirection:"row",alignItems:"center",gap:e?5:6,minWidth:0,marginTop:2}}>
64
- <S style={{flexDirection:"row",alignItems:"center",backgroundColor:`${t.white}1F`,borderRadius:6,paddingHorizontal:e?6:7,paddingVertical:3,gap:4,borderWidth:1,borderColor:`${t.white}2E`,flexShrink:1,minWidth:0}}>
65
- {de.OS==="ios"?<Mt color={`${t.white}E6`}size={e?9.5:10.5}/>:<Ht color={`${t.white}E6`}size={e?9.5:10.5}/>}
66
- <C style={{fontFamily:D.interMedium,fontSize:e?9:10,lineHeight:13,color:`${t.white}EB`,letterSpacing:.1}}numberOfLines={1}ellipsizeMode="tail">
67
- {Fe}
50
+ <S style={{flexDirection:"row",alignItems:"center",gap:4.5,minWidth:0,marginTop:1.5}}>
51
+
52
+ <_ onPress={()=>{A("light"),me(!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
+ <C style={{fontSize:9,lineHeight:11}}>
54
+ {fe?.flag||"\u{1F310}"}
55
+ </C>
56
+ <C style={{fontFamily:D.interBold,fontSize:8.5,lineHeight:11,color:t.white,letterSpacing:.2}}numberOfLines={1}>
57
+ {fe?.code?.toUpperCase()||"EN"}
58
+ </C>
59
+ <Ve size={6.5}color={`${t.white}CC`}/>
60
+ </_>
61
+
62
+
63
+ <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}}>
64
+ {de.OS==="ios"?<Ht color={`${t.white}E6`}size={9}/>:<At color={`${t.white}E6`}size={9}/>}
65
+ <C style={{fontFamily:D.interMedium,fontSize:8.5,lineHeight:11,color:`${t.white}EB`,letterSpacing:.1}}numberOfLines={1}ellipsizeMode="tail">
66
+ {Qe}
68
67
  </C>
69
68
  </S>
70
69
 
71
- <Se onPress={()=>{te?oe(!0):Qe.openURL("https://www.npmjs.com/package/react-native-inapp-inspector").catch(()=>{})}}style={{flexDirection:"row",alignItems:"center",backgroundColor:`${t.white}1F`,borderRadius:6,paddingHorizontal:e?6:7,paddingVertical:3,gap:4,borderWidth:1,borderColor:`${t.white}2E`,flexShrink:0}}>
72
- <At size={e?9.5:10.5}color={t.npmRedLight}/>
73
- <C style={{fontFamily:D.interMedium,fontSize:e?9:10,lineHeight:13,color:`${t.white}EB`,letterSpacing:.1}}numberOfLines={1}>
70
+
71
+ <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}}>
72
+ <Ot size={9}color={t.npmRedLight}/>
73
+ <C style={{fontFamily:D.interMedium,fontSize:8.5,lineHeight:11,color:`${t.white}EB`,letterSpacing:.1}}>
74
74
  v{ce}
75
75
  </C>
76
- {te&&<C style={{fontFamily:D.interBold,fontSize:8.5,color:t.warningAmber}}>
76
+ {te&&<C style={{fontFamily:D.interBold,fontSize:8,color:t.warningAmber}}>
77
77
  ●
78
78
  </C>}
79
79
  </Se>
80
+
81
+
82
+ {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}}>
83
+ <Xe.View style={{width:4.5,height:4.5,borderRadius:2.25,backgroundColor:t.white,opacity:Ae,transform:[{scale:Oe}]}}/>
84
+ {!e&&<C style={{fontFamily:D.interBold,fontSize:8,lineHeight:10,color:t.white,letterSpacing:.3}}>
85
+ UPDATE
86
+ </C>}
87
+ <Et size={e?7.5:8.5}color={t.white}/>
88
+ </Se>}
80
89
  </S>
81
90
  </S>
82
91
  </S>}
83
92
  </S>
84
93
 
85
- {K&&<S style={[i.headerCenter,{paddingHorizontal:e?2:6}]}>
86
- {k==="apis"&&I!=null?<S style={i.headerDetailCenter}>
94
+ {X&&<S style={[i.headerCenter,{paddingHorizontal:e?2:6}]}>
95
+ {V==="apis"&&R!=null?<S style={i.headerDetailCenter}>
87
96
  <S style={i.headerDetailRow}>
88
- <S style={[i.headerMethodBadge,{backgroundColor:et[I.method]??t.grayText,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
97
+ <S style={[i.headerMethodBadge,{backgroundColor:xt[R.method]??t.grayText,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
89
98
  <C style={[i.headerMethodText,{fontSize:e?9:10}]}>
90
- {I.method}
99
+ {R.method}
91
100
  </C>
92
101
  </S>
93
102
  <C style={[i.headerDetailTitle,{fontSize:e?13.5:15}]}numberOfLines={1}ellipsizeMode="middle">
94
- {Oe}
103
+ {Fe}
95
104
  </C>
96
105
  </S>
97
106
  <S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
98
- <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${ge(I.status)}26`,borderWidth:1,borderColor:`${ge(I.status)}55`}}>
99
- <S style={[i.headerStatusDot,{backgroundColor:ge(I.status),width:e?6:7,height:e?6:7}]}/>
107
+ <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${ue(R.status)}26`,borderWidth:1,borderColor:`${ue(R.status)}55`}}>
108
+ <S style={[i.headerStatusDot,{backgroundColor:ue(R.status),width:e?6:7,height:e?6:7}]}/>
100
109
  <C style={[i.headerSubTitle,{fontFamily:D.interBold,fontSize:e?10:11}]}>
101
- {I.status===0?"Failed":I.status??"Pending"}
110
+ {R.status===0?"Failed":R.status??"Pending"}
102
111
  </C>
103
112
  </S>
104
113
  <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
105
- <Z color={t.white}size={e?10:11}/>
114
+ <G color={t.white}size={e?10:11}/>
106
115
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
107
- {I.duration!=null?`${I.duration}ms`:"\u2014"}
116
+ {R.duration!=null?`${R.duration}ms`:"\u2014"}
108
117
  </C>
109
118
  </S>
110
- {I.response!=null&&<S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
111
- <$t color={t.white}size={e?10:11}/>
119
+ {R.response!=null&&<S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
120
+ <De color={t.white}size={e?10:11}/>
112
121
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
113
- {xe(I.response)}
122
+ {xe(R.response)}
114
123
  </C>
115
124
  </S>}
116
125
  </S>
117
- </S>:k==="analytics"&&M!=null?<S style={i.headerDetailCenter}>
126
+ </S>:V==="analytics"&&B!=null?<S style={i.headerDetailCenter}>
118
127
  <S style={i.headerDetailRow}>
119
- <S style={[i.headerMethodBadge,{backgroundColor:M.source==="firebase"?`${t.firebaseOrange}4D`:`${t.purple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
128
+ <S style={[i.headerMethodBadge,{backgroundColor:B.source==="firebase"?`${t.firebaseOrange}4D`:`${t.purple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
120
129
  <C style={[i.headerMethodText,{fontSize:e?9:10}]}>
121
- {M.source==="firebase"?"FB":"MAN"}
130
+ {B.source==="firebase"?"FB":"MAN"}
122
131
  </C>
123
132
  </S>
124
133
  <C style={[i.headerDetailTitle,{fontSize:e?13.5:15}]}numberOfLines={1}ellipsizeMode="middle">
125
- #{M.id!=null?M.id+1:1}{" "}
126
- {M.name}
134
+ #{B.id!=null?B.id+1:1}{" "}
135
+ {B.name}
127
136
  </C>
128
137
  </S>
129
138
  <S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
130
- <S style={[i.headerStatusDot,{backgroundColor:M.source==="firebase"?t.firebaseOrange:t.purple,width:e?6:7,height:e?6:7}]}/>
139
+ <S style={[i.headerStatusDot,{backgroundColor:B.source==="firebase"?t.firebaseOrange:t.purple,width:e?6:7,height:e?6:7}]}/>
131
140
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
132
- {Object.keys(M.params).length} param
133
- {Object.keys(M.params).length!==1?"s":""}
141
+ {Object.keys(B.params).length} param
142
+ {Object.keys(B.params).length!==1?"s":""}
134
143
  {" \xB7 "}
135
- {M.source}
144
+ {B.source}
136
145
  </C>
137
146
  </S>
138
- </S>:k==="logs"&&A!=null?<S style={i.headerDetailCenter}>
147
+ </S>:V==="logs"&&L!=null?<S style={i.headerDetailCenter}>
139
148
  <S style={i.headerDetailRow}>
140
- <S style={[i.headerMethodBadge,{backgroundColor:A.type==="error"?`${t.errorColor}4D`:A.type==="warn"?`${t.lightOrange}4D`:`${t.purple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
149
+ <S style={[i.headerMethodBadge,{backgroundColor:L.type==="error"?`${t.errorColor}4D`:L.type==="warn"?`${t.lightOrange}4D`:`${t.purple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
141
150
  <C style={[i.headerMethodText,{fontSize:e?9:10}]}>
142
- {A.type.toUpperCase()}
151
+ {L.type.toUpperCase()}
143
152
  </C>
144
153
  </S>
145
154
  <C style={[i.headerDetailTitle,{fontSize:e?13.5:15}]}numberOfLines={1}ellipsizeMode="middle">
146
- #{A.id!=null?A.id+1:1}{" "}
155
+ #{L.id!=null?L.id+1:1}{" "}
147
156
  console.
148
- {A.sourceMethod||A.type||"log"}
157
+ {L.sourceMethod||L.type||"log"}
149
158
  </C>
150
159
  </S>
151
160
  <S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
152
161
  <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
153
- <Z color={t.white}size={e?10:11}/>
162
+ <G color={t.white}size={e?10:11}/>
154
163
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
155
- {it(A.timestamp)}
164
+ {zt(L.timestamp)}
156
165
  </C>
157
166
  </S>
158
167
  </S>
159
- </S>:k==="redux"&&F!=null?(()=>{const T=ke?.[F],z=T&&typeof T=="object"?Object.keys(T).length:typeof T<"u"?1:0,le=xe(T),ye=$e[F];return<S style={i.headerDetailCenter}>
168
+ </S>:V==="redux"&&W!=null?(()=>{const T=Le?.[W],x=T&&typeof T=="object"?Object.keys(T).length:typeof T<"u"?1:0,se=xe(T),we=ve[W];return<S style={i.headerDetailCenter}>
160
169
  <S style={i.headerDetailRow}>
161
170
  <S style={[i.headerMethodBadge,{backgroundColor:`${t.purple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
162
171
  <C style={[i.headerMethodText,{fontSize:e?9:10}]}>
@@ -164,7 +173,7 @@ import H,{useMemo as ne}from"react";import{Alert as we,Animated as se,Linking as
164
173
  </C>
165
174
  </S>
166
175
  <C style={[i.headerDetailTitle,{fontSize:e?13.5:15}]}numberOfLines={1}ellipsizeMode="middle">
167
- {F}
176
+ {W}
168
177
  </C>
169
178
  </S>
170
179
  <S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
@@ -176,27 +185,27 @@ import H,{useMemo as ne}from"react";import{Alert as we,Animated as se,Linking as
176
185
  •
177
186
  </C>
178
187
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
179
- {z} keys
188
+ {x} keys
180
189
  </C>
181
190
  <C style={[i.headerSubTitle,{opacity:.6,fontSize:e?10:11}]}>
182
191
  •
183
192
  </C>
184
193
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
185
- {le}
194
+ {se}
186
195
  </C>
187
- {ye?.timestamp&&<>
196
+ {we?.timestamp&&<>
188
197
  <C style={[i.headerSubTitle,{opacity:.6,fontSize:e?10:11}]}>
189
198
  •
190
199
  </C>
191
200
  <S style={{flexDirection:"row",alignItems:"center",gap:3}}>
192
- <Z color={t.white}size={e?9:10}/>
201
+ <G color={t.white}size={e?9:10}/>
193
202
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
194
- {ye.timestamp}
203
+ {we.timestamp}
195
204
  </C>
196
205
  </S>
197
206
  </>}
198
207
  </S>
199
- </S>})():k==="redux"&&_!=null?<S style={i.headerDetailCenter}>
208
+ </S>})():V==="redux"&&q!=null?<S style={i.headerDetailCenter}>
200
209
  <S style={i.headerDetailRow}>
201
210
  <S style={[i.headerMethodBadge,{backgroundColor:`${t.brandPurple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
202
211
  <C style={[i.headerMethodText,{fontSize:e?9:10}]}>
@@ -204,134 +213,135 @@ import H,{useMemo as ne}from"react";import{Alert as we,Animated as se,Linking as
204
213
  </C>
205
214
  </S>
206
215
  <C style={[i.headerDetailTitle,{fontSize:e?13.5:15}]}numberOfLines={1}ellipsizeMode="middle">
207
- {_.type}
216
+ {q.type}
208
217
  </C>
209
218
  </S>
210
219
  <S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
211
220
  <S style={[i.headerStatusDot,{backgroundColor:t.purple,width:e?6:7,height:e?6:7}]}/>
212
221
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
213
- {_.timestamp||"Dispatched"}
222
+ {q.timestamp||"Dispatched"}
214
223
  </C>
215
224
  </S>
216
- </S>:k==="crash"&&$!=null?<S style={i.headerDetailCenter}>
225
+ </S>:V==="crash"&&M!=null?<S style={i.headerDetailCenter}>
217
226
  <S style={i.headerDetailRow}>
218
- <S style={[i.headerMethodBadge,{backgroundColor:$.isFatal?t.red600:t.amber600,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
227
+ <S style={[i.headerMethodBadge,{backgroundColor:M.isFatal?t.red600:t.amber600,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
219
228
  <C style={[i.headerMethodText,{fontSize:e?9:10}]}>
220
- {$.isFatal?"FATAL":$.type.toUpperCase()}
229
+ {M.isFatal?"FATAL":M.type.toUpperCase()}
221
230
  </C>
222
231
  </S>
223
232
  <C style={[i.headerDetailTitle,{fontSize:e?13.5:15}]}numberOfLines={1}ellipsizeMode="middle">
224
- {$.name||$.message}
233
+ {M.name||M.message}
225
234
  </C>
226
235
  </S>
227
236
  <S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
228
- <S style={[i.headerStatusDot,{backgroundColor:$.isFatal?t.red600:t.amber500,width:e?6:7,height:e?6:7}]}/>
237
+ <S style={[i.headerStatusDot,{backgroundColor:M.isFatal?t.red600:t.amber500,width:e?6:7,height:e?6:7}]}/>
229
238
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
230
- {$.timeStr||new Date($.timestamp).toLocaleTimeString()}
239
+ {M.timeStr||new Date(M.timestamp).toLocaleTimeString()}
231
240
  </C>
232
- {$.deviceInfo?.platform&&<>
241
+ {M.deviceInfo?.platform&&<>
233
242
  <C style={[i.headerSubTitle,{opacity:.6,fontSize:e?10:11}]}>
234
243
  •
235
244
  </C>
236
245
  <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
237
- {$.deviceInfo.platform.toUpperCase()}
246
+ {M.deviceInfo.platform.toUpperCase()}
238
247
  </C>
239
248
  </>}
240
249
  </S>
241
- </S>:k==="push"&&R!=null?<S style={i.headerDetailCenter}>
250
+ </S>:V==="push"&&k!=null?<S style={i.headerDetailCenter}>
242
251
  <S style={i.headerDetailRow}>
243
252
  <S style={[i.headerMethodBadge,{backgroundColor:t.brandPurple,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
244
253
  <C style={[i.headerMethodText,{fontSize:e?9:10}]}>
245
- {(R.source||"PUSH").toUpperCase()}
254
+ {(k.source||"PUSH").toUpperCase()}
246
255
  </C>
247
256
  </S>
248
257
  <C style={[i.headerDetailTitle,{fontSize:e?13:14.5,flex:1,minWidth:0}]}numberOfLines={1}ellipsizeMode="tail">
249
- {R.title||R.body||"Push Notification"}
258
+ {k.title||k.body||"Push Notification"}
250
259
  </C>
251
260
  </S>
252
261
  <S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1,maxWidth:"100%"}}>
253
- <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2,borderRadius:20,backgroundColor:`${R.appState==="foreground"?t.greenColor:R.appState==="background"?t.amber500:t.brandPurple}26`,borderWidth:1,borderColor:`${R.appState==="foreground"?t.greenColor:R.appState==="background"?t.amber500:t.brandPurple}55`}}>
254
- <S style={[i.headerStatusDot,{backgroundColor:R.appState==="foreground"?t.greenColor:R.appState==="background"?t.amber500:t.brandPurple,width:e?6:7,height:e?6:7}]}/>
262
+ <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`}}>
263
+ <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}]}/>
255
264
  <C style={[i.headerSubTitle,{fontFamily:D.interBold,fontSize:e?9.5:10.5}]}>
256
- {R.appState?R.appState.toUpperCase():"DELIVERED"}
265
+ {k.appState?k.appState.toUpperCase():"DELIVERED"}
257
266
  </C>
258
267
  </S>
259
268
  <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2,borderRadius:20,backgroundColor:`${t.white}29`}}>
260
- <Z color={t.white}size={e?9.5:10.5}/>
269
+ <G color={t.white}size={e?9.5:10.5}/>
261
270
  <C style={[i.headerSubTitle,{fontSize:e?9.5:10.5}]}>
262
- {rt(R.timestamp)}
271
+ {Ce(k.timestamp)}
272
+ </C>
273
+ </S>
274
+ </S>
275
+ </S>:V==="socket"&&z!=null?<S style={i.headerDetailCenter}>
276
+ <S style={i.headerDetailRow}>
277
+ <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}]}>
278
+ <C style={[i.headerMethodText,{fontSize:e?9:10}]}>
279
+ {z.client==="socket.io"||z.url.includes("/socket.io")?"SIO":z.url.startsWith("wss://")?"WSS":"WS"}
280
+ </C>
281
+ </S>
282
+ <C style={[i.headerDetailTitle,{fontSize:e?13.5:15}]}numberOfLines={1}ellipsizeMode="middle">
283
+ {z.url}
284
+ </C>
285
+ </S>
286
+ <S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
287
+ <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`}}>
288
+ <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}]}/>
289
+ <C style={[i.headerSubTitle,{fontFamily:D.interBold,fontSize:e?10:11}]}>
290
+ {(z.status||"open").toUpperCase()}
291
+ </C>
292
+ </S>
293
+ <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
294
+ <G color={t.white}size={e?10:11}/>
295
+ <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
296
+ {z.duration!=null?`${z.duration}ms`:Ce(z.startTime)}
297
+ </C>
298
+ </S>
299
+ <S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
300
+ <De color={t.white}size={e?10:11}/>
301
+ <C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
302
+ {z.frames?.length||0} frames · {Vt((z.totalBytesSent||0)+(z.totalBytesReceived||0))}
263
303
  </C>
264
304
  </S>
265
305
  </S>
266
306
  </S>:null}
267
307
  </S>}
268
308
 
269
- <S style={[i.headerRight,{flexDirection:"row",alignItems:"center",justifyContent:"flex-end",flexShrink:0,gap:e?4:6}]}>
309
+ <S style={[i.headerRight,{flexDirection:"row",alignItems:"center",justifyContent:"flex-end",flexShrink:0,gap:e?4:5}]}>
270
310
 
271
- <Te onPress={Pe||pe}hitSlop={{top:12,bottom:12,left:12,right:12}}activeOpacity={.7}accessibilityRole="button"accessibilityLabel={V("common.minimize","Minimize")}style={[i.closeButtonSquare,{width:B,height:B,borderRadius:e?6:7,backgroundColor:"rgba(56, 189, 248, 0.22)",borderColor:"rgba(125, 211, 252, 0.40)",borderWidth:1}]}>
272
- <It size={e?14:16}color={t.white}/>
273
- </Te>
311
+ {Y?<_ 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}]}>
312
+ <Pt color={t.white}size={e?12:14}/>
313
+ </_>:ne?null:<>
314
+
315
+ <_ accessible={!0}accessibilityRole="button"accessibilityLabel={oe?"Disable peek-through":"Enable peek-through"}onPress={()=>{A("light"),je(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}]}>
316
+ <Wt color={t.white}size={e?12:14}/>
317
+ </_>
274
318
 
275
-
276
- {X?<P onPress={()=>{we.alert("Reset All Settings","This restores all module visibility and UI preferences to defaults. Continue?",[{text:"Cancel",style:"cancel"},{text:"Reset",style:"destructive",onPress:Be}])}}hitSlop={15}style={[i.closeButtonSquare,{width:B,height:B,borderRadius:e?6:7,backgroundColor:"rgba(245, 158, 11, 0.26)",borderColor:"rgba(252, 211, 77, 0.45)",borderWidth:1}]}>
277
- <Bt color={t.white}size={e?12:14}/>
278
- </P>:Y?null:<P accessible={!0}accessibilityRole="button"accessibilityLabel="Settings"onPress={()=>ie("main")}hitSlop={15}style={[i.closeButtonSquare,{width:B,height:B,borderRadius:e?6:7,backgroundColor:"rgba(168, 85, 247, 0.28)",borderColor:"rgba(216, 180, 254, 0.45)",borderWidth:1}]}>
279
- <Dt color={t.white}size={e?12:14}/>
280
- </P>}
319
+
320
+ <_ 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}]}>
321
+ <Bt color={t.white}size={e?12:14}/>
322
+ </_>
323
+ </>}
281
324
 
282
325
 
283
- <Te onPress={pe}hitSlop={{top:12,bottom:12,left:12,right:12}}activeOpacity={.7}accessibilityRole="button"accessibilityLabel={V("common.close","Close")}style={[i.closeButtonSquare,{width:B,height:B,borderRadius:e?6:7,backgroundColor:"rgba(244, 63, 94, 0.28)",borderColor:"rgba(251, 113, 133, 0.48)",borderWidth:1}]}>
284
- <Rt size={e?12:14}/>
326
+ <Te 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}]}>
327
+ <Ve size={e?14:16}color={t.white}/>
285
328
  </Te>
286
- </S>
287
- </S>
288
-
289
-
290
- {!Y&&<S style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:e?10:14,paddingBottom:e?8:10,paddingTop:2,gap:6}}>
291
- <S style={{flexDirection:"row",alignItems:"center",gap:6}}>
292
-
293
- <P onPress={Ne}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:`${t.white}24`,paddingHorizontal:e?9:11,paddingVertical:e?5:6,borderRadius:7,borderWidth:1,borderColor:`${t.white}33`}}>
294
- <Lt size={e?12:13}color={t.white}/>
295
- <C style={{fontFamily:D.interSemiBold,fontSize:e?10.5:11.5,lineHeight:e?13:14,color:t.white}}>
296
- {V("header.photo")}
297
- </C>
298
- </P>
299
329
 
300
330
 
301
- <P onPress={je}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:v?`${t.red500}33`:`${t.white}24`,paddingHorizontal:e?9:11,paddingVertical:e?5:6,borderRadius:7,borderWidth:1,borderColor:v?t.red500:`${t.white}33`}}>
302
- {v?<se.View style={{width:6,height:6,borderRadius:3,backgroundColor:t.red500}}/>:<Et size={e?12:13}color={t.white}/>}
303
- <C style={{fontFamily:D.interSemiBold,fontSize:e?10.5:11.5,lineHeight:e?13:14,color:v?t.red300:t.white}}>
304
- {v?`${V("header.rec")} ${_e(Ue)}`:V("header.record")}
305
- </C>
306
- </P>
331
+ <Te 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}]}>
332
+ <Lt size={e?12:14}/>
333
+ </Te>
307
334
  </S>
308
-
309
- <S style={{flexDirection:"row",alignItems:"center",gap:6}}>
310
-
311
- <P accessible={!0}accessibilityRole="button"accessibilityLabel={V("common.clearAll")}onPress={()=>{we.alert(V("header.clearEverythingTitle"),V("header.clearEverythingMessage"),[{text:V("common.cancel"),style:"cancel"},{text:V("common.clearAll"),onPress:ve,style:"destructive"}])}}hitSlop={10}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:`${t.white}24`,paddingHorizontal:e?9:11,paddingVertical:e?5:6,borderRadius:7,borderWidth:1,borderColor:`${t.white}33`}}>
312
- <se.View style={{transform:[{rotate:he.interpolate({inputRange:[0,1],outputRange:["0deg","-25deg"]})},{scale:he.interpolate({inputRange:[0,.5,1],outputRange:[1,1.25,1]})}]}}>
313
- <Vt color={t.white}size={e?12:13}/>
314
- </se.View>
315
- <C style={{fontFamily:D.interSemiBold,fontSize:e?10.5:11.5,lineHeight:e?13:14,color:t.white}}>
316
- {V("common.clearAll")}
317
- </C>
318
- </P>
319
-
320
-
321
- <P accessible={!0}accessibilityRole="button"accessibilityLabel={V("header.about")}onPress={()=>{ue(!0)}}hitSlop={10}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:`${t.white}24`,paddingHorizontal:e?9:11,paddingVertical:e?5:6,borderRadius:7,borderWidth:1,borderColor:`${t.white}33`}}>
322
- <Ot color={t.white}size={e?12:13}/>
323
- <C style={{fontFamily:D.interSemiBold,fontSize:e?10.5:11.5,lineHeight:e?13:14,color:t.white}}>
324
- {V("header.about")}
325
- </C>
326
- </P>
327
- </S>
328
- </S>}
335
+ </S>
329
336
  </S>
330
337
  </S>
331
338
 
332
339
 
333
- <St visible={We}latestVersion={Me}onClose={()=>oe(!1)}/>
340
+ <Rt visible={Ge}latestVersion={He}onClose={()=>ae(!1)}/>
341
+
342
+
343
+ <Mt visible={qe}onClose={()=>me(!1)}/>
334
344
 
335
345
 
336
- <Tt item={fe}visible={!!fe}onClose={()=>N(null)}onDelete={async T=>{await W.deleteMedia(T.uri),U?.().catch(()=>{}),N(null)}}onConvertToGif={async T=>{const z=await W.convertToGif(T.uri,{fps:12,width:480});z&&(U?.().catch(()=>{}),N({id:`anim_${z.timestamp}.gif`,type:"gif",format:"gif",uri:z.uri,filename:z.uri.split("/").pop()||`anim_${z.timestamp}.gif`,sizeBytes:z.sizeBytes,timestamp:z.timestamp,durationMs:z.durationMs}))}}/>
337
- </>});export default Ft;
346
+ <It item={be}visible={!!be}onClose={()=>N(null)}onDelete={async T=>{await E.deleteMedia(T.uri),F?.().catch(()=>{}),N(null)}}onConvertToGif={async T=>{const x=await E.convertToGif(T.uri,{fps:12,width:480});x&&(F?.().catch(()=>{}),N({id:`anim_${x.timestamp}.gif`,type:"gif",format:"gif",uri:x.uri,filename:x.uri.split("/").pop()||`anim_${x.timestamp}.gif`,sizeBytes:x.sizeBytes,timestamp:x.timestamp,durationMs:x.durationMs}))}}/>
347
+ </>});export default Nt;
@@ -12,4 +12,4 @@ interface LanguageSelectorModalProps {
12
12
  onClose: () => void;
13
13
  }
14
14
  export declare const LanguageSelectorModal: React.MemoExoticComponent<({ visible, onClose }: LanguageSelectorModalProps) => React.JSX.Element>;
15
- export {};
15
+ export default LanguageSelectorModal;