react-native-inapp-inspector 2.5.11 → 2.5.13

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 (412) hide show
  1. package/README.ar.md +0 -8
  2. package/README.de.md +0 -8
  3. package/README.es.md +0 -8
  4. package/README.fr.md +0 -8
  5. package/README.hi.md +0 -8
  6. package/README.ja.md +0 -8
  7. package/README.ko.md +0 -8
  8. package/README.md +54 -26
  9. package/README.pt-BR.md +0 -8
  10. package/README.ru.md +0 -8
  11. package/README.zh-CN.md +0 -8
  12. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  13. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  14. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  15. package/android/.gradle/buildOutputCleanup/cache.properties +2 -2
  16. package/android/src/main/AndroidManifest.xml +11 -0
  17. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +379 -19
  18. package/android/src/main/res/xml/inappinspector_file_paths.xml +7 -0
  19. package/dist/commonjs/components/ConsoleLogCard.js +32 -26
  20. package/dist/commonjs/components/Inspector/AboutModal.js +1 -4
  21. package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +47 -49
  22. package/dist/commonjs/components/Inspector/BoxModelVisualizer.d.ts +8 -0
  23. package/dist/commonjs/components/Inspector/BoxModelVisualizer.js +76 -0
  24. package/dist/commonjs/components/Inspector/ConsoleExportModal.js +51 -51
  25. package/dist/commonjs/components/Inspector/ConsoleTab.js +19 -14
  26. package/dist/commonjs/components/Inspector/CrashTab.js +17 -17
  27. package/dist/commonjs/components/Inspector/DebuggingTab.js +24 -24
  28. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +2 -2
  29. package/dist/commonjs/components/Inspector/FabLauncher.js +2 -2
  30. package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +2 -2
  31. package/dist/commonjs/components/Inspector/InspectorHeader.js +15 -15
  32. package/dist/commonjs/components/Inspector/MainScreen.js +9 -6
  33. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +187 -90
  34. package/dist/commonjs/components/Inspector/MediaPreviewModal.d.ts +1 -0
  35. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +222 -222
  36. package/dist/commonjs/components/Inspector/NetworkDetail.js +11 -8
  37. package/dist/commonjs/components/Inspector/NetworkExportModal.d.ts +10 -0
  38. package/dist/commonjs/components/Inspector/NetworkExportModal.js +333 -0
  39. package/dist/commonjs/components/Inspector/NetworkTab.js +48 -42
  40. package/dist/commonjs/components/Inspector/NpmStarPrompt.js +11 -12
  41. package/dist/commonjs/components/Inspector/PerformanceTab.d.ts +2 -0
  42. package/dist/commonjs/components/Inspector/PerformanceTab.js +652 -0
  43. package/dist/commonjs/components/Inspector/ReduxDetail.js +17 -19
  44. package/dist/commonjs/components/Inspector/ReduxTab.js +5 -5
  45. package/dist/commonjs/components/Inspector/SettingsPanel.js +259 -255
  46. package/dist/commonjs/components/Inspector/SocketCard.js +2 -2
  47. package/dist/commonjs/components/Inspector/SupportPage.js +5 -5
  48. package/dist/commonjs/components/Inspector/TabBar.js +17 -16
  49. package/dist/commonjs/components/Inspector/UiA11yAuditPanel.d.ts +7 -0
  50. package/dist/commonjs/components/Inspector/UiA11yAuditPanel.js +97 -0
  51. package/dist/commonjs/components/Inspector/UiInspectorDetail.d.ts +2 -0
  52. package/dist/commonjs/components/Inspector/UiInspectorDetail.js +485 -0
  53. package/dist/commonjs/components/Inspector/UiInspectorOverlay.d.ts +2 -0
  54. package/dist/commonjs/components/Inspector/UiInspectorOverlay.js +199 -0
  55. package/dist/commonjs/components/Inspector/UiInspectorTab.d.ts +2 -0
  56. package/dist/commonjs/components/Inspector/UiInspectorTab.js +117 -0
  57. package/dist/commonjs/components/Inspector/UiLiveStyleTweaker.d.ts +10 -0
  58. package/dist/commonjs/components/Inspector/UiLiveStyleTweaker.js +148 -0
  59. package/dist/commonjs/components/Inspector/index.d.ts +28 -0
  60. package/dist/commonjs/components/Inspector/index.js +1 -0
  61. package/dist/commonjs/components/LogCard.js +15 -10
  62. package/dist/commonjs/components/NetworkIcons.d.ts +6 -0
  63. package/dist/commonjs/components/NetworkIcons.js +35 -3
  64. package/dist/commonjs/constants/index.d.ts +1 -0
  65. package/dist/commonjs/constants/index.js +1 -1
  66. package/dist/commonjs/constants/version.d.ts +1 -1
  67. package/dist/commonjs/constants/version.js +1 -1
  68. package/dist/commonjs/customHooks/crashHandler.d.ts +1 -1
  69. package/dist/commonjs/customHooks/crashHandler.js +6 -6
  70. package/dist/commonjs/customHooks/uiInspectorManager.d.ts +22 -0
  71. package/dist/commonjs/customHooks/uiInspectorManager.js +1 -0
  72. package/dist/commonjs/helpers/index.d.ts +3 -0
  73. package/dist/commonjs/helpers/index.js +6 -6
  74. package/dist/commonjs/helpers/performanceSampler.d.ts +88 -0
  75. package/dist/commonjs/helpers/performanceSampler.js +1 -0
  76. package/dist/commonjs/helpers/remoteConfig.d.ts +0 -2
  77. package/dist/commonjs/helpers/remoteConfig.js +1 -1
  78. package/dist/commonjs/helpers/searchQueryParser.d.ts +1 -0
  79. package/dist/commonjs/helpers/searchQueryParser.js +7 -5
  80. package/dist/commonjs/helpers/shareFormatter.d.ts +16 -0
  81. package/dist/commonjs/helpers/shareFormatter.js +16 -9
  82. package/dist/commonjs/helpers/uiInspectorEngine.d.ts +62 -0
  83. package/dist/commonjs/helpers/uiInspectorEngine.js +19 -0
  84. package/dist/commonjs/i18n/locales/ar.json +1 -1
  85. package/dist/commonjs/i18n/locales/bn.json +1 -1
  86. package/dist/commonjs/i18n/locales/de.json +1 -1
  87. package/dist/commonjs/i18n/locales/en.json +1 -1
  88. package/dist/commonjs/i18n/locales/es.json +1 -1
  89. package/dist/commonjs/i18n/locales/fr.json +1 -1
  90. package/dist/commonjs/i18n/locales/gu.json +1 -1
  91. package/dist/commonjs/i18n/locales/hi.json +1 -1
  92. package/dist/commonjs/i18n/locales/id.json +1 -1
  93. package/dist/commonjs/i18n/locales/it.json +1 -1
  94. package/dist/commonjs/i18n/locales/ja.json +1 -1
  95. package/dist/commonjs/i18n/locales/kn.json +1 -1
  96. package/dist/commonjs/i18n/locales/ko.json +1 -1
  97. package/dist/commonjs/i18n/locales/ml.json +1 -1
  98. package/dist/commonjs/i18n/locales/mr.json +1 -1
  99. package/dist/commonjs/i18n/locales/nl.json +1 -1
  100. package/dist/commonjs/i18n/locales/pa.json +1 -1
  101. package/dist/commonjs/i18n/locales/pl.json +1 -1
  102. package/dist/commonjs/i18n/locales/pt.json +1 -1
  103. package/dist/commonjs/i18n/locales/ru.json +1 -1
  104. package/dist/commonjs/i18n/locales/ta.json +1 -1
  105. package/dist/commonjs/i18n/locales/te.json +1 -1
  106. package/dist/commonjs/i18n/locales/tr.json +1 -1
  107. package/dist/commonjs/i18n/locales/vi.json +1 -1
  108. package/dist/commonjs/i18n/locales/zh.json +1 -1
  109. package/dist/commonjs/index.d.ts +6 -4
  110. package/dist/commonjs/index.js +3 -3
  111. package/dist/commonjs/native/NativeInspector.d.ts +2 -0
  112. package/dist/commonjs/native/NativeInspector.js +1 -1
  113. package/dist/commonjs/native/NativeNetworkInspector.d.ts +2 -0
  114. package/dist/commonjs/styles/index.js +1 -1
  115. package/dist/commonjs/types/editor.d.ts +31 -0
  116. package/dist/commonjs/types/enums.d.ts +1 -0
  117. package/dist/commonjs/types/enums.js +1 -1
  118. package/dist/commonjs/types/interfaces.d.ts +8 -0
  119. package/dist/esm/components/ConsoleLogCard.js +67 -61
  120. package/dist/esm/components/Inspector/AboutModal.js +14 -17
  121. package/dist/esm/components/Inspector/AnalyticsFilterModal.js +73 -75
  122. package/dist/esm/components/Inspector/BoxModelVisualizer.d.ts +8 -0
  123. package/dist/esm/components/Inspector/BoxModelVisualizer.js +76 -0
  124. package/dist/esm/components/Inspector/ConsoleExportModal.js +67 -67
  125. package/dist/esm/components/Inspector/ConsoleTab.js +33 -28
  126. package/dist/esm/components/Inspector/CrashTab.js +58 -58
  127. package/dist/esm/components/Inspector/DebuggingTab.js +89 -89
  128. package/dist/esm/components/Inspector/DeviceInfoTab.js +2 -2
  129. package/dist/esm/components/Inspector/FabLauncher.js +21 -21
  130. package/dist/esm/components/Inspector/FloatingCaptureWidget.js +23 -23
  131. package/dist/esm/components/Inspector/InspectorHeader.js +31 -31
  132. package/dist/esm/components/Inspector/MainScreen.js +61 -58
  133. package/dist/esm/components/Inspector/MediaGalleryTab.js +244 -147
  134. package/dist/esm/components/Inspector/MediaPreviewModal.d.ts +1 -0
  135. package/dist/esm/components/Inspector/MediaPreviewModal.js +468 -468
  136. package/dist/esm/components/Inspector/NetworkDetail.js +62 -59
  137. package/dist/esm/components/Inspector/NetworkExportModal.d.ts +10 -0
  138. package/dist/esm/components/Inspector/NetworkExportModal.js +333 -0
  139. package/dist/esm/components/Inspector/NetworkTab.js +76 -70
  140. package/dist/esm/components/Inspector/NpmStarPrompt.js +32 -33
  141. package/dist/esm/components/Inspector/PerformanceTab.d.ts +2 -0
  142. package/dist/esm/components/Inspector/PerformanceTab.js +652 -0
  143. package/dist/esm/components/Inspector/ReduxDetail.js +54 -56
  144. package/dist/esm/components/Inspector/ReduxTab.js +9 -9
  145. package/dist/esm/components/Inspector/SettingsPanel.js +302 -298
  146. package/dist/esm/components/Inspector/SocketCard.js +13 -13
  147. package/dist/esm/components/Inspector/SupportPage.js +5 -5
  148. package/dist/esm/components/Inspector/TabBar.js +4 -3
  149. package/dist/esm/components/Inspector/UiA11yAuditPanel.d.ts +7 -0
  150. package/dist/esm/components/Inspector/UiA11yAuditPanel.js +97 -0
  151. package/dist/esm/components/Inspector/UiInspectorDetail.d.ts +2 -0
  152. package/dist/esm/components/Inspector/UiInspectorDetail.js +422 -0
  153. package/dist/esm/components/Inspector/UiInspectorOverlay.d.ts +2 -0
  154. package/dist/esm/components/Inspector/UiInspectorOverlay.js +138 -0
  155. package/dist/esm/components/Inspector/UiInspectorTab.d.ts +2 -0
  156. package/dist/esm/components/Inspector/UiInspectorTab.js +117 -0
  157. package/dist/esm/components/Inspector/UiLiveStyleTweaker.d.ts +10 -0
  158. package/dist/esm/components/Inspector/UiLiveStyleTweaker.js +148 -0
  159. package/dist/esm/components/Inspector/index.d.ts +28 -0
  160. package/dist/esm/components/Inspector/index.js +1 -0
  161. package/dist/esm/components/LogCard.js +60 -55
  162. package/dist/esm/components/NetworkIcons.d.ts +6 -0
  163. package/dist/esm/components/NetworkIcons.js +32 -0
  164. package/dist/esm/constants/index.d.ts +1 -0
  165. package/dist/esm/constants/index.js +1 -1
  166. package/dist/esm/constants/version.d.ts +1 -1
  167. package/dist/esm/constants/version.js +1 -1
  168. package/dist/esm/customHooks/crashHandler.d.ts +1 -1
  169. package/dist/esm/customHooks/crashHandler.js +6 -6
  170. package/dist/esm/customHooks/uiInspectorManager.d.ts +22 -0
  171. package/dist/esm/customHooks/uiInspectorManager.js +1 -0
  172. package/dist/esm/helpers/index.d.ts +3 -0
  173. package/dist/esm/helpers/index.js +6 -6
  174. package/dist/esm/helpers/performanceSampler.d.ts +88 -0
  175. package/dist/esm/helpers/performanceSampler.js +1 -0
  176. package/dist/esm/helpers/remoteConfig.d.ts +0 -2
  177. package/dist/esm/helpers/remoteConfig.js +1 -1
  178. package/dist/esm/helpers/searchQueryParser.d.ts +1 -0
  179. package/dist/esm/helpers/searchQueryParser.js +7 -5
  180. package/dist/esm/helpers/shareFormatter.d.ts +16 -0
  181. package/dist/esm/helpers/shareFormatter.js +20 -13
  182. package/dist/esm/helpers/uiInspectorEngine.d.ts +48 -0
  183. package/dist/esm/helpers/uiInspectorEngine.js +19 -0
  184. package/dist/esm/i18n/locales/ar.json +1 -1
  185. package/dist/esm/i18n/locales/bn.json +1 -1
  186. package/dist/esm/i18n/locales/de.json +1 -1
  187. package/dist/esm/i18n/locales/en.json +1 -1
  188. package/dist/esm/i18n/locales/es.json +1 -1
  189. package/dist/esm/i18n/locales/fr.json +1 -1
  190. package/dist/esm/i18n/locales/gu.json +1 -1
  191. package/dist/esm/i18n/locales/hi.json +1 -1
  192. package/dist/esm/i18n/locales/id.json +1 -1
  193. package/dist/esm/i18n/locales/it.json +1 -1
  194. package/dist/esm/i18n/locales/ja.json +1 -1
  195. package/dist/esm/i18n/locales/kn.json +1 -1
  196. package/dist/esm/i18n/locales/ko.json +1 -1
  197. package/dist/esm/i18n/locales/ml.json +1 -1
  198. package/dist/esm/i18n/locales/mr.json +1 -1
  199. package/dist/esm/i18n/locales/nl.json +1 -1
  200. package/dist/esm/i18n/locales/pa.json +1 -1
  201. package/dist/esm/i18n/locales/pl.json +1 -1
  202. package/dist/esm/i18n/locales/pt.json +1 -1
  203. package/dist/esm/i18n/locales/ru.json +1 -1
  204. package/dist/esm/i18n/locales/ta.json +1 -1
  205. package/dist/esm/i18n/locales/te.json +1 -1
  206. package/dist/esm/i18n/locales/tr.json +1 -1
  207. package/dist/esm/i18n/locales/vi.json +1 -1
  208. package/dist/esm/i18n/locales/zh.json +1 -1
  209. package/dist/esm/index.d.ts +6 -4
  210. package/dist/esm/index.js +8 -8
  211. package/dist/esm/native/NativeInspector.d.ts +2 -0
  212. package/dist/esm/native/NativeInspector.js +1 -1
  213. package/dist/esm/native/NativeNetworkInspector.d.ts +2 -0
  214. package/dist/esm/styles/index.js +1 -1
  215. package/dist/esm/types/editor.d.ts +31 -0
  216. package/dist/esm/types/enums.d.ts +1 -0
  217. package/dist/esm/types/enums.js +1 -1
  218. package/dist/esm/types/interfaces.d.ts +8 -0
  219. package/ios/NetworkInspectorModule.mm +314 -16
  220. package/package.json +24 -1
  221. package/src/native/NativeInspector.ts +37 -0
  222. package/src/native/NativeNetworkInspector.ts +2 -0
  223. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/results.bin +0 -1
  224. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/BuildConfig.dex +0 -0
  225. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView$iconView$1.dex +0 -0
  226. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView.dex +0 -0
  227. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NativeNetworkInspectorSpec.dex +0 -0
  228. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$Companion.dex +0 -0
  229. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$activityEventListener$1.dex +0 -0
  230. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$frameCallback$1.dex +0 -0
  231. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$57$$inlined$sortedByDescending$1.dex +0 -0
  232. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$shakeListener$1.dex +0 -0
  233. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.dex +0 -0
  234. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule.dex +0 -0
  235. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorPackage.dex +0 -0
  236. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  237. package/android/build/.transforms/c93e459e24d856bde563ebb048265732/results.bin +0 -1
  238. package/android/build/.transforms/c93e459e24d856bde563ebb048265732/transformed/classes/classes_dex/classes.dex +0 -0
  239. package/android/build/generated/source/buildConfig/debug/com/inappinspector/BuildConfig.java +0 -10
  240. package/android/build/generated/source/codegen/java/com/inappinspector/NativeNetworkInspectorSpec.java +0 -160
  241. package/android/build/generated/source/codegen/jni/CMakeLists.txt +0 -28
  242. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec-generated.cpp +0 -212
  243. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec.h +0 -31
  244. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.cpp +0 -22
  245. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.h +0 -24
  246. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.cpp +0 -16
  247. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.h +0 -17
  248. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.cpp +0 -19
  249. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.h +0 -18
  250. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/RNInAppInspectorSpecJSI.h +0 -300
  251. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.cpp +0 -17
  252. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.h +0 -23
  253. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.cpp +0 -16
  254. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.h +0 -20
  255. package/android/build/generated/source/codegen/schema.json +0 -1
  256. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +0 -7
  257. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +0 -18
  258. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +0 -6
  259. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +0 -1
  260. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  261. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  262. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  263. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -1
  264. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -2
  265. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
  266. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
  267. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +0 -2
  268. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  269. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/BuildConfig.class +0 -0
  270. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  271. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +0 -2
  272. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +0 -7
  273. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +0 -7
  274. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +0 -1
  275. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +0 -1
  276. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  277. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/BuildConfig.class +0 -0
  278. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  279. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  280. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  281. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  282. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$activityEventListener$1.class +0 -0
  283. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  284. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$57$$inlined$sortedByDescending$1.class +0 -0
  285. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  286. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.class +0 -0
  287. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule.class +0 -0
  288. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  289. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  290. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +0 -1
  291. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  292. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  293. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  294. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  295. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  296. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  297. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  298. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  299. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  300. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  301. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  302. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  303. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  304. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  305. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  306. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  307. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  308. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  309. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  310. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  311. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  312. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  313. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  314. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  315. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  316. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  317. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  318. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  319. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  320. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  321. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  322. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  323. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  324. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  325. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  326. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  327. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  328. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  329. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  330. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  331. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  332. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  333. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  334. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  335. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  336. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  337. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  338. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  339. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  340. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  341. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  342. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  343. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  344. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  345. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  346. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  347. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  348. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  349. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  350. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  351. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  352. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  353. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  354. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +0 -2
  355. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  356. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  357. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  358. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  359. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  360. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  361. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  362. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  363. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  364. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  365. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  366. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  367. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  368. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  369. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  370. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  371. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  372. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  373. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  374. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  375. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  376. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  377. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  378. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  379. package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -17
  380. package/android/build/reports/problems/problems-report.html +0 -659
  381. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  382. package/android/build/tmp/kotlin-classes/debug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  383. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  384. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  385. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  386. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$activityEventListener$1.class +0 -0
  387. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  388. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$57$$inlined$sortedByDescending$1.class +0 -0
  389. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  390. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.class +0 -0
  391. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule.class +0 -0
  392. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  393. package/dist/commonjs/a11y.d.ts +0 -2
  394. package/dist/commonjs/a11y.js +0 -1
  395. package/dist/commonjs/components/Inspector/A11yTab.d.ts +0 -2
  396. package/dist/commonjs/components/Inspector/A11yTab.js +0 -268
  397. package/dist/commonjs/components/Inspector/DeveloperSponsorCard.d.ts +0 -9
  398. package/dist/commonjs/components/Inspector/DeveloperSponsorCard.js +0 -52
  399. package/dist/commonjs/customHooks/a11yAdapter.d.ts +0 -11
  400. package/dist/commonjs/customHooks/a11yAdapter.js +0 -1
  401. package/dist/commonjs/helpers/sponsorService.d.ts +0 -20
  402. package/dist/commonjs/helpers/sponsorService.js +0 -1
  403. package/dist/esm/a11y.d.ts +0 -2
  404. package/dist/esm/a11y.js +0 -1
  405. package/dist/esm/components/Inspector/A11yTab.d.ts +0 -2
  406. package/dist/esm/components/Inspector/A11yTab.js +0 -268
  407. package/dist/esm/components/Inspector/DeveloperSponsorCard.d.ts +0 -9
  408. package/dist/esm/components/Inspector/DeveloperSponsorCard.js +0 -52
  409. package/dist/esm/customHooks/a11yAdapter.d.ts +0 -11
  410. package/dist/esm/customHooks/a11yAdapter.js +0 -1
  411. package/dist/esm/helpers/sponsorService.d.ts +0 -20
  412. package/dist/esm/helpers/sponsorService.js +0 -1
@@ -1,4 +1,4 @@
1
- import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";import{Alert as N,Animated as or,DevSettings as tr,Platform as Nr,ScrollView as G,StyleSheet as jr,Text as T,TextInput as Ct,View as C}from"react-native";import St,{Path as Gr}from"react-native-svg";import{animateNextLayout as je,useInspector as kt}from"./InspectorContext";import V from"../TouchableScale";import Ur from"../Slider";import{toggleGlobalTheme as xt}from"../../styles";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as S}from"../../styles/AppFonts";import{calculateRamBasedLimits as Tt}from"../../helpers/settingsStore";import{clearNetworkLogs as Bt}from"../../customHooks/networkLogger";import{clearConsoleLogs as zt}from"../../customHooks/consoleLogger";import{clearAnalyticsEvents as Vt,isAnalyticsConnected as _r}from"../../customHooks/analyticsLogger";import{clearCrashRecords as Rt}from"../../customHooks/crashHandler";import{isReduxConnected as Jr}from"../../customHooks/reduxLogger";import{useTranslation as Ft,SUPPORTED_LANGUAGES as qr,getLanguage as It}from"../../i18n";import{LanguageSelectorModal as Dt}from"./LanguageSelectorModal";import{GlobeIcon as Kr,SignalIcon as Qr,TerminalIcon as Xr,AnalyticsIcon as Yr,SettingsIcon as Ht,SunIcon as Pt,MoonIcon as Wt,ScreenIcon as Zr,MotionIcon as $t,LayersIcon as Ce,EyeIcon as Ge,CheckIcon as K,TrashIcon as U,PackageIcon as Lt,ReduxIcon as Co,CrashIcon as At,ShieldAlertIcon as So,ShieldCheckIcon as To,ScaleBalanceIcon as Ot,VolumeMuteIcon as Mt,JsIcon as Et,ChipIcon as Nt,LayoutIcon as Gt,HourglassIcon as Ut,CodeBracketsIcon as _t,RefreshCcwIcon as Jt,ForwardChevronIcon as Bo,ChevronDownIcon as Kt,BrainIcon as Vo,SmartphoneIcon as Qt,DatabaseIcon as Xt,QrCodeIcon as Yt,FilmIcon as Ro,ScreencastIcon as Zt,CameraIcon as Te,VideoCameraIcon as Cr,MicrophoneIcon as Fo,GifIcon as Io,ImageIcon as Do,BellIcon as Ho,WebsocketIcon as Po,BoltIcon as Sr}from"../NetworkIcons";import{ScreenCapture as kr}from"../../capture";import{triggerNativeHaptic as v}from"../../native/NativeInspector";import{DeveloperSponsorCard as Ci}from"./DeveloperSponsorCard";import{isLocalDebugEnvironment as wi}from"../../helpers";import{showToast as I}from"../../helpers/toast";import{pruneAllLogs as Si}from"../../helpers/memoryManager";const ki=()=>{const{t:w}=Ft(),{settingsPage:O,setSettingsPage:xr,settingsActiveSubTab:Q,setSettingsActiveSubTab:Wo,tabVisibility:R,toggleTabVisibility:$o,defaultTab:X,setDefaultTab:Lo,isDark:we,setIsDark:Ao,modalHeightPercent:Be,setModalHeightPercent:Oo,modalAnimationType:Mo,setModalAnimationType:Eo,showDuplicateLogs:Ue,setShowDuplicateLogs:No,showUpdateToast:_e,setShowUpdateToast:jo,showConsoleLevels:Go,setShowConsoleLevels:Uo,closeModal:_o,logs:Je,consoleLogs:qe,analyticsEvents:Ke,reduxState:ze,maxConsoleLogs:Qe,setMaxConsoleLogs:Jo,maxAnalyticsEventsLimit:Tr,setMaxAnalyticsEventsLimit:qo,isAutoRamLimitEnabled:$,setIsAutoRamLimitEnabled:Ko,deviceFreeRamMb:Xe,reduxAutoRefresh:Ye,setReduxAutoRefreshState:Qo,reduxExpandDepth:Br,setReduxExpandDepth:Xo,setSelected:Yo,setSelectedEvent:Zo,setReduxState:et,crashRecords:Ve,maxCrashLogs:zr,setMaxCrashLogs:Vr,crashIgnoredTypes:P,setCrashIgnoredTypes:rt,crashModalTriggerPolicy:ot,setCrashModalTriggerPolicyState:Rr,applyCrashPolicyPreset:Re,pushRecords:Fe,maxPushLogs:tt,setMaxPushLogs:it,clearAllPushLogs:lt,simulatePush:Ie,socketRecords:De,maxSocketLogs:at,setMaxSocketLogs:nt,clearAllSocketLogs:st,simulateSocket:He,captureImageFormat:Ze,setCaptureImageFormat:Fr,captureAutoHide:A,setCaptureAutoHide:ve,captureAudioMode:Ir,setCaptureAudioMode:Dr,captureFps:Hr,setCaptureFps:vr,captureScale:xi,setCaptureScale:Ti,captureBitrate:Bi,setCaptureBitrate:zi,captureMaxDurationSeconds:Vi,setCaptureMaxDurationSeconds:Ri,captureAutoGif:M,setCaptureAutoGif:Pe,captureWidgetEnabled:Y,setCaptureWidgetEnabled:Pr,peekOpacity:Wr,setPeekOpacity:dt}=kt(),[We,$r]=Ne(Be),[ct,Lr]=Ne(!1),gt=It(),$e=qr.find(r=>r.code===gt)||qr[0];rr(()=>{$r(Be)},[Be]);const Le=Tt(Xe),W=Ee(()=>[{id:1,key:"apis",label:"APIs (Network)",category:"core",icon:"apis",desc:"HTTP/HTTPS requests, GraphQL, Axios & WebSocket inspector"},{id:2,key:"logs",label:"Console Logs",category:"core",icon:"logs",desc:"Terminal console logs, warnings, errors & stack traces"},{id:3,key:"analytics",label:"Analytics Logger",category:"telemetry",icon:"analytics",desc:"Firebase & custom analytics events, user properties & params"},{id:4,key:"redux",label:"Redux Inspector",category:"telemetry",icon:"redux",desc:"Store state diffing, action history & reducer timeline"},{id:5,key:"storage",label:"Storage Inspector",category:"telemetry",icon:"storage",desc:"AsyncStorage & MMKV key-value store viewer with full CRUD support"},{id:6,key:"device",label:"Device Info",category:"diagnostic",icon:"device",desc:"Hardware specs, IP address, screen metrics, UDID & runtime stats"},{id:7,key:"crash",label:"Crash Protection",category:"diagnostic",icon:"crash",desc:"Runtime exception guard, breadcrumbs & memory snapshot"},{id:8,key:"debugging",label:"Multi-Device Debugging",category:"diagnostic",icon:"debugging",desc:"QR Code bridge for direct Debug APK download & Metro live-reload sync"},{id:9,key:"media",label:"Screencast",category:"diagnostic",icon:"media",desc:"Screenshots, video recordings, audio narration & animated GIFs"},{id:10,key:"push",label:"Push Notifications",category:"telemetry",icon:"push",desc:"Universal push & local notification logger (Salesforce, FCM, APNs, Braze, Expo)"},{id:11,key:"socket",label:"WebSocket & Socket.IO",category:"telemetry",icon:"socket",desc:"Real-time WebSocket & Socket.IO message inspector, frames & event logger"}].filter(r=>r.key==="debugging"?Nr.OS==="android"&&wi():!0),[]),[_,Ae]=Ne(()=>({apis:!0,logs:!!(R?.logs??!0),analytics:!!(R?.analytics??!0),redux:!!(R?.redux??!0),storage:!!(R?.storage??!0),device:!!(R?.device??!0),crash:!!(R?.crash??!0),debugging:!!(R?.debugging??!0),media:!!(R?.media??!0),push:!!(R?.push??!0),socket:!!(R?.socket??!0)}));rr(()=>{Ae({apis:!0,logs:!!(R?.logs??!0),analytics:!!(R?.analytics??!0),redux:!!(R?.redux??!0),storage:!!(R?.storage??!0),device:!!(R?.device??!0),crash:!!(R?.crash??!0),debugging:!!(R?.debugging??!0),media:!!(R?.media??!0),push:!!(R?.push??!0),socket:!!(R?.socket??!0)})},[R]);const Z=Ee(()=>W.some(r=>!!_[r.key]!=!!R?.[r.key]),[_,R,W]),Ar=W.filter(r=>r.key==="apis"||!!_[r.key]).length,Oe=Ee(()=>W.filter(r=>!(r.key==="apis"||r.key==="redux"&&!Jr()||r.key==="analytics"&&!_r())),[W]),E=Ee(()=>Oe.length===0?!1:Oe.every(r=>!!_[r.key]),[Oe,_]),Or=()=>{const r=!E;Ae(B=>{const D={...B};return Oe.forEach(H=>{D[H.key]=r}),D})},pt=()=>{Z&&N.alert("Apply Changes & Reload","Are you sure you want to save module changes? The inspector will close and reload the app to apply the new configuration.",[{text:"Cancel",style:"cancel",onPress:()=>{Ae({apis:!0,logs:!!R?.logs,analytics:!!R?.analytics,redux:!!R?.redux,storage:!!R?.storage,device:!!R?.device,crash:!!R?.crash,debugging:!!R?.debugging,media:!!(R?.media??!0),push:!!(R?.push??!0),socket:!!(R?.socket??!1)})}},{text:"Save & Reload",style:"default",onPress:()=>{je(),W.forEach(r=>{if(r.key!=="apis"){const B=!!_[r.key],D=!!R?.[r.key];B!==D&&$o(r.key)}}),_o(),setTimeout(()=>{__DEV__&&tr&&tr.reload&&tr.reload()},350)}}])},[er,Mr]=Ne(!1),F=r=><C key={r.key}style={{paddingVertical:12,borderBottomWidth:r.isLast?0:1,borderBottomColor:e.dividerColor}}>
1
+ import{useMemo as Xe,useState as Me,useEffect as Ze,useRef as jr}from"react";import{Alert as j,Animated as _,Platform as Ur,ScrollView as J,StyleSheet as Gr,Switch as Tt,Text as T,TextInput as _r,View as C}from"react-native";import{animateNextLayout as Jr,useInspector as Rt}from"./InspectorContext";import V from"../TouchableScale";import Yr from"../Slider";import{toggleGlobalTheme as Vt}from"../../styles";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as S}from"../../styles/AppFonts";import{DEFAULT_HIDDEN_URL_PATTERNS as er}from"../../constants";import{calculateRamBasedLimits as zt}from"../../helpers/settingsStore";import{clearNetworkLogs as Bt}from"../../customHooks/networkLogger";import{clearConsoleLogs as Ft}from"../../customHooks/consoleLogger";import{clearAnalyticsEvents as It,isAnalyticsConnected as Kr}from"../../customHooks/analyticsLogger";import{clearCrashRecords as Dt}from"../../customHooks/crashHandler";import{isReduxConnected as Qr}from"../../customHooks/reduxLogger";import{useTranslation as $t,SUPPORTED_LANGUAGES as Xr,getLanguage as Ht}from"../../i18n";import{LanguageSelectorModal as Pt}from"./LanguageSelectorModal";import{GlobeIcon as Zr,SignalIcon as Co,TerminalIcon as So,AnalyticsIcon as To,SettingsIcon as Wt,SunIcon as Lt,MoonIcon as At,ScreenIcon as Ro,MotionIcon as Et,LayersIcon as X,EyeIcon as Ce,CheckIcon as Se,TrashIcon as O,PackageIcon as Ot,ReduxIcon as Vo,CrashIcon as Mt,ShieldAlertIcon as Bo,ShieldCheckIcon as Fo,ScaleBalanceIcon as Nt,VolumeMuteIcon as Ut,JsIcon as Gt,ChipIcon as _t,LayoutIcon as Jt,HourglassIcon as Yt,CodeBracketsIcon as Io,LockIcon as Kt,RefreshCcwIcon as Qt,ForwardChevronIcon as Do,ChevronDownIcon as Xt,BrainIcon as $o,SmartphoneIcon as Zt,DatabaseIcon as Ci,QrCodeIcon as Si,FilmIcon as Ho,ScreencastIcon as Ti,CameraIcon as Te,VideoCameraIcon as Cr,MicrophoneIcon as Po,GifIcon as Wo,ImageIcon as Lo,BellIcon as Ao,WebsocketIcon as Eo,SpeedometerIcon as Ri,BoltIcon as Sr}from"../NetworkIcons";import{ScreenCapture as kr}from"../../capture";import{triggerNativeHaptic as D}from"../../native/NativeInspector";import{isLocalDebugEnvironment as Vi}from"../../helpers";import{showToast as B}from"../../helpers/toast";import{pruneAllLogs as zi}from"../../helpers/memoryManager";const Bi=()=>{const{t:w}=$t(),{settingsPage:v,setSettingsPage:Oo,settingsActiveSubTab:q,setSettingsActiveSubTab:xr,tabVisibility:Y,toggleTabVisibility:Tr,defaultTab:K,setDefaultTab:Mo,isDark:Z,setIsDark:No,modalHeightPercent:Re,setModalHeightPercent:jo,modalAnimationType:Uo,setModalAnimationType:Go,showDuplicateLogs:Ne,setShowDuplicateLogs:_o,showUpdateToast:je,setShowUpdateToast:Jo,showConsoleLevels:qo,setShowConsoleLevels:Yo,closeModal:Fi,logs:Ue,consoleLogs:Ge,analyticsEvents:_e,reduxState:Ve,maxConsoleLogs:Rr,setMaxConsoleLogs:Ko,maxAnalyticsEventsLimit:Vr,setMaxAnalyticsEventsLimit:Qo,isAutoRamLimitEnabled:W,setIsAutoRamLimitEnabled:Xo,deviceFreeRamMb:Je,reduxAutoRefresh:qe,setReduxAutoRefreshState:Zo,reduxExpandDepth:et,setReduxExpandDepth:rt,setSelected:ot,setSelectedEvent:tt,setReduxState:it,crashRecords:ze,maxCrashLogs:zr,setMaxCrashLogs:Br,crashIgnoredTypes:H,setCrashIgnoredTypes:lt,crashModalTriggerPolicy:at,setCrashModalTriggerPolicyState:Fr,applyCrashPolicyPreset:Be,pushRecords:Fe,maxPushLogs:nt,setMaxPushLogs:st,clearAllPushLogs:dt,simulatePush:Ie,socketRecords:De,maxSocketLogs:ct,setMaxSocketLogs:gt,clearAllSocketLogs:pt,simulateSocket:$e,captureImageFormat:Ye,setCaptureImageFormat:Ir,captureAutoHide:L,setCaptureAutoHide:He,captureAudioMode:Dr,setCaptureAudioMode:$r,captureFps:Hr,setCaptureFps:Pr,captureScale:Ii,setCaptureScale:Di,captureBitrate:$i,setCaptureBitrate:Hi,captureMaxDurationSeconds:Pi,setCaptureMaxDurationSeconds:Wi,captureAutoGif:A,setCaptureAutoGif:Pe,captureWidgetEnabled:Q,setCaptureWidgetEnabled:Wr,peekOpacity:Lr,setPeekOpacity:yt,hiddenUrlPatterns:ee,setHiddenUrlPatterns:Ke}=Rt(),[We,vr]=Me(""),[Le,Ar]=Me(Re),[ut,Er]=Me(!1),ht=Ht(),ve=Xr.find(r=>r.code===ht)||Xr[0],Or=()=>{const r=We.trim();if(r){if(ee.includes(r)){B("Pattern already exists in filter list");return}try{new RegExp(r)}catch{}D("light"),Ke(R=>[...R,r]),vr(""),B("Hidden URL pattern added")}},bt=r=>{const R=ee[r];if(er.includes(R)){B("Default system filter cannot be removed");return}D("light"),Ke(I=>I.filter((P,E)=>E!==r)),B("Pattern removed")};Ze(()=>{Ar(Re)},[Re]);const M=jr(new _.Value(1)).current;Ze(()=>{M.setValue(0),_.spring(M,{toValue:1,friction:8,tension:65,useNativeDriver:!0}).start()},[q]);const Ae=zt(Je),N=Xe(()=>[{id:1,key:"apis",label:"APIs (Network)",category:"core",icon:"apis",desc:"HTTP/HTTPS requests, GraphQL, Axios & WebSocket inspector"},{id:2,key:"logs",label:"Console Logs",category:"core",icon:"logs",desc:"Terminal console logs, warnings, errors & stack traces"},{id:3,key:"perf",label:"Performance & FPS",category:"telemetry",icon:"perf",desc:"Live 60 FPS graph, JS event loop queue lag, memory heap & jank monitor"},{id:4,key:"analytics",label:"Analytics Logger",category:"telemetry",icon:"analytics",desc:"Firebase & custom analytics events, user properties & params"},{id:5,key:"redux",label:"Redux Inspector",category:"telemetry",icon:"redux",desc:"Store state diffing, action history & reducer timeline"},{id:6,key:"storage",label:"Storage Inspector",category:"telemetry",icon:"storage",desc:"AsyncStorage & MMKV key-value store viewer with full CRUD support"},{id:7,key:"device",label:"Device Info",category:"diagnostic",icon:"device",desc:"Hardware specs, IP address, screen metrics, UDID & runtime stats"},{id:8,key:"crash",label:"Crash Protection",category:"diagnostic",icon:"crash",desc:"Runtime exception guard, breadcrumbs & memory snapshot"},{id:9,key:"debugging",label:"Multi-Device Debugging",category:"diagnostic",icon:"debugging",desc:"QR Code bridge for direct Debug APK download & Metro live-reload sync"},{id:10,key:"media",label:"Screencast",category:"diagnostic",icon:"media",desc:"Screenshots, video recordings, audio narration & animated GIFs"},{id:11,key:"push",label:"Push Notifications",category:"telemetry",icon:"push",desc:"Universal push & local notification logger (Salesforce, FCM, APNs, Braze, Expo)"},{id:12,key:"socket",label:"WebSocket & Socket.IO",category:"telemetry",icon:"socket",desc:"Real-time WebSocket & Socket.IO message inspector, frames & event logger"}].filter(r=>r.key==="debugging"?Ur.OS==="android"&&Vi():!0),[]),mt={apis:{color:e.blue500,bg:`${e.blue500}14`,border:`${e.blue500}2E`},logs:{color:e.purple,bg:`${e.purple}14`,border:`${e.purple}2E`},perf:{color:e.purple,bg:`${e.purple}14`,border:`${e.purple}2E`},analytics:{color:e.amber600,bg:`${e.amber600}14`,border:`${e.amber600}2E`},redux:{color:e.violet600,bg:`${e.violet600}14`,border:`${e.violet600}2E`},storage:{color:e.cyan600,bg:`${e.cyan600}14`,border:`${e.cyan600}2E`},device:{color:e.emerald600,bg:`${e.emerald600}14`,border:`${e.emerald600}2E`},crash:{color:e.red600,bg:`${e.red600}14`,border:`${e.red600}2E`},debugging:{color:e.indigo600,bg:`${e.indigo600}14`,border:`${e.indigo600}2E`},media:{color:e.pink600,bg:`${e.pink600}14`,border:`${e.pink600}2E`},push:{color:e.orange600,bg:`${e.orange600}14`,border:`${e.orange600}2E`},socket:{color:e.teal600,bg:`${e.teal600}14`,border:`${e.teal600}2E`}},Ee=Xe(()=>N.filter(r=>!(r.key==="apis"||r.key==="redux"&&!Qr()||r.key==="analytics"&&!Kr())),[N]),ft=N.filter(r=>r.key==="apis"||!!Y?.[r.key]).length,re=Xe(()=>Ee.length===0?!1:Ee.every(r=>!!Y?.[r.key]),[Ee,Y]),Ct=r=>{r!=="apis"&&(D("light"),Tr(r))},wt=()=>{D("medium");const r=!re;Ee.forEach(R=>{!!Y?.[R.key]!==r&&Tr(R.key)}),B(r?"All modules enabled":"Optional modules disabled")},[Qe,Mr]=Me(!1),F=r=><C key={r.key}style={{paddingVertical:12,borderBottomWidth:r.isLast?0:1,borderBottomColor:e.dividerColor}}>
2
2
  <V disabled={!r.onPress}onPress={r.onPress}style={{flexDirection:"row",alignItems:"center",gap:12}}>
3
3
  <C style={{width:36,height:36,borderRadius:10,backgroundColor:e.purpleShade50,borderWidth:1,borderColor:`${e.purple}2E`,alignItems:"center",justifyContent:"center"}}>
4
4
  {r.icon}
@@ -15,7 +15,7 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
15
15
  </V>
16
16
  {r.numericInput&&<C style={{marginTop:10,gap:6}}>
17
17
  <C style={{flexDirection:"row",alignItems:"center",backgroundColor:e.grayBackground,borderRadius:8,borderWidth:1,borderColor:e.dividerColor,paddingHorizontal:12,paddingVertical:4}}>
18
- <Ct style={{flex:1,fontFamily:S.interMedium,fontSize:14,lineHeight:18,color:e.primaryBlack,paddingVertical:6}}value={String(r.numericInput.value||"")}onChangeText={B=>{const D=parseInt(B.replace(/[^0-9]/g,""),10);if(!isNaN(D)){const H=Math.max(r.numericInput?.min??1,Math.min(r.numericInput?.max??1e4,D));r.numericInput?.onChange(H)}}}keyboardType={r.numericInput.keyboardType??"number-pad"}placeholder={r.numericInput.placeholder}placeholderTextColor={e.grayTextWeak}maxLength={6}selectTextOnFocus/>
18
+ <_r style={{flex:1,fontFamily:S.interMedium,fontSize:14,lineHeight:18,color:e.primaryBlack,paddingVertical:6}}value={String(r.numericInput.value||"")}onChangeText={R=>{const I=parseInt(R.replace(/[^0-9]/g,""),10);if(!isNaN(I)){const P=Math.max(r.numericInput?.min??1,Math.min(r.numericInput?.max??1e4,I));r.numericInput?.onChange(P)}}}keyboardType={r.numericInput.keyboardType??"number-pad"}placeholder={r.numericInput.placeholder}placeholderTextColor={e.grayTextWeak}maxLength={6}selectTextOnFocus/>
19
19
  <T style={{fontFamily:S.interBold,fontSize:11,color:e.purple,marginLeft:6}}>
20
20
  MAX
21
21
  </T>
@@ -26,157 +26,128 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
26
26
  </T>:null}
27
27
  </C>}
28
28
  {r.picker&&<C style={{flexDirection:"row",backgroundColor:e.grayBackground,borderRadius:8,padding:2.5,marginTop:10,borderWidth:1,borderColor:e.dividerColor}}>
29
- {r.picker.options.map(B=>{const D=r.picker.selectedValue===B;return<V key={String(B)}onPress={()=>r.picker.onSelect(B)}style={{flex:1,paddingVertical:6,alignItems:"center",borderRadius:6,backgroundColor:D?e.purple:"transparent"}}>
30
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:D?e.white:e.grayText}}>
31
- {r.picker.formatLabel?r.picker.formatLabel(B):B}
29
+ {r.picker.options.map(R=>{const I=r.picker.selectedValue===R;return<V key={String(R)}onPress={()=>r.picker.onSelect(R)}style={{flex:1,paddingVertical:6,alignItems:"center",borderRadius:6,backgroundColor:I?e.purple:"transparent"}}>
30
+ <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:I?e.white:e.grayText}}>
31
+ {r.picker.formatLabel?r.picker.formatLabel(R):R}
32
32
  </T>
33
33
  </V>})}
34
34
  </C>}
35
- </C>,yt=()=><C style={{flex:1,backgroundColor:e.grayBackground}}>
36
- <G style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:14}}showsVerticalScrollIndicator={!1}>
35
+ </C>,St=()=><C style={{flex:1,backgroundColor:e.grayBackground}}>
36
+ <J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:14}}showsVerticalScrollIndicator={!1}>
37
37
 
38
-
39
- <C style={{backgroundColor:e.primaryLight,borderRadius:13,paddingVertical:4,paddingHorizontal:4,borderWidth:1,borderColor:e.grayBorderSecondary,shadowColor:e.black,shadowOpacity:.04,shadowRadius:4,shadowOffset:{width:0,height:2}}}>
40
- <G horizontal showsHorizontalScrollIndicator={!1}contentContainerStyle={{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:2}}>
41
- {[{key:"module",label:w("settings.modulesAndTools","Modules & Tools"),Icon:Ce,badge:`${W.filter(r=>_?.[r.key]||r.key==="apis").length}/${W.length}`},{key:"ui",label:w("settings.uiPreferences","UI Preferences"),Icon:Zr},{key:"limits",label:w("settings.ramLimits","RAM & Limits"),Icon:Vo},{key:"capture",label:w("settings.screenVideoCapture","Screen & Video Capture"),Icon:Te}].map(r=>{const B=Q===r.key,D=r.Icon;return<V key={r.key}accessible={!0}accessibilityRole="tab"accessibilityLabel={r.label}accessibilityState={{selected:B}}onPress={()=>{je(),Wo(r.key)}}style={{paddingVertical:8,paddingHorizontal:14,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:6,borderRadius:9,backgroundColor:B?e.purple:"transparent"}}>
42
- <D color={B?e.white:e.grayText}size={13}/>
43
- <T style={{fontFamily:S.interBold,fontSize:12.5,lineHeight:16,color:B?e.white:e.grayText}}>
44
- {r.label}
45
- </T>
46
- {r.badge&&<C style={{backgroundColor:B?"rgba(255,255,255,0.25)":`${e.purple}18`,paddingHorizontal:5.5,paddingVertical:1,borderRadius:10}}>
47
- <T style={{fontFamily:S.interBold,fontSize:9.5,color:B?e.white:e.purple}}>
48
- {r.badge}
49
- </T>
50
- </C>}
51
- </V>})}
52
- </G>
38
+ <C style={{backgroundColor:e.primaryLight,borderRadius:12,padding:3,borderWidth:1,borderColor:e.grayBorderSecondary,flexDirection:"row",alignItems:"center",shadowColor:e.black,shadowOpacity:.04,shadowRadius:4,shadowOffset:{width:0,height:2},elevation:2}}>
39
+ {[{key:"module",label:w("settings.navModules","Modules"),Icon:X},{key:"ui",label:w("settings.navDisplay","Display"),Icon:Ro},{key:"limits",label:w("settings.navLimits","Limits"),Icon:$o},{key:"capture",label:w("settings.navCapture","Capture"),Icon:Te}].map(r=>{const R=q===r.key,I=r.Icon;return<V key={r.key}accessible={!0}accessibilityRole="tab"accessibilityLabel={r.label}accessibilityState={{selected:R}}onPress={()=>{D("light"),Jr(),xr(r.key)}}style={{flex:1,minWidth:0,paddingVertical:8,paddingHorizontal:2,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:4,borderRadius:9,backgroundColor:R?e.purple:"transparent"}}>
40
+ <I color={R?e.white:e.grayText}size={12}/>
41
+ <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:R?e.white:e.grayText}}numberOfLines={1}ellipsizeMode="tail">
42
+ {r.label}
43
+ </T>
44
+ </V>})}
53
45
  </C>
54
46
 
55
- {Q==="module"&&<C style={{gap:12}}>
47
+ {q==="module"&&<_.View style={{gap:10,opacity:M,transform:[{translateY:M.interpolate({inputRange:[0,1],outputRange:[10,0]})}]}}>
56
48
 
57
- <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",backgroundColor:e.primaryLight,borderRadius:12,paddingVertical:10,paddingHorizontal:14,borderWidth:1,borderColor:E?`${e.purple}40`:e.grayBorderSecondary,shadowColor:e.black,shadowOpacity:.02,shadowRadius:3,shadowOffset:{width:0,height:1}}}>
58
- <V accessible={!0}accessibilityRole="checkbox"accessibilityLabel="Toggle Select All Modules"accessibilityState={{checked:E}}onPress={Or}style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
59
- <C style={{width:22,height:22,borderRadius:6,borderWidth:E?0:1.8,borderColor:e.grayBorderSecondary,backgroundColor:E?e.purple:e.grayBackground,alignItems:"center",justifyContent:"center"}}>
60
- {E&&<K size={12}color={e.white}/>}
61
- </C>
62
- <C>
63
- <T style={{fontFamily:S.interBold,fontSize:13,color:e.primaryBlack}}>
64
- {E?"Deselect All Modules":"Select All Modules"}
65
- </T>
66
- <T style={{fontFamily:S.interRegular,fontSize:10.5,color:e.grayText,marginTop:1}}>
67
- {Ar} of {W.length} modules active
49
+ <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:4,paddingVertical:2}}>
50
+ <C style={{flexDirection:"row",alignItems:"center",gap:6}}>
51
+ <T style={{fontFamily:S.interBold,fontSize:12.5,lineHeight:16,color:e.primaryBlack}}>
52
+ Active Modules
53
+ </T>
54
+ <C style={{backgroundColor:`${e.purple}14`,paddingHorizontal:6,paddingVertical:1.5,borderRadius:10,borderWidth:1,borderColor:`${e.purple}25`}}>
55
+ <T style={{fontFamily:S.interBold,fontSize:9.5,color:e.purple}}>
56
+ {ft} of {N.length}
68
57
  </T>
69
58
  </C>
70
- </V>
59
+ </C>
71
60
 
72
- <V onPress={Or}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:8,backgroundColor:E?`${e.purple}14`:e.purple,borderWidth:1,borderColor:E?`${e.purple}30`:"transparent"}}>
73
- <T style={{fontFamily:S.interBold,fontSize:11,color:E?e.purple:e.white}}>
74
- {E?"Deselect All":"Select All"}
61
+ <V onPress={wt}hitSlop={6}style={{paddingHorizontal:10,paddingVertical:4.5,borderRadius:7,backgroundColor:re?`${e.purple}14`:e.purple,borderWidth:1,borderColor:re?`${e.purple}30`:"transparent"}}>
62
+ <T style={{fontFamily:S.interBold,fontSize:11,color:re?e.purple:e.white}}>
63
+ {re?"Deselect All":"Select All"}
75
64
  </T>
76
65
  </V>
77
66
  </C>
78
67
 
79
68
 
80
- <C style={{gap:10}}>
81
- {W.map(r=>{const B=Jr(),D=_r(),H=r.key==="redux"&&!B||r.key==="analytics"&&!D,L=r.key==="apis"||H,z=r.key==="apis"||!!_?.[r.key]&&!H,Se=r.key==="apis"?Je.length>0?`${Je.length} requests`:"":r.key==="logs"?qe.length>0?`${qe.length} logs \u2022 Limit: ${Qe}`:"":r.key==="crash"?Ve&&Ve.length>0?`${Ve.length} crashes recorded \u2022 Crash Guard`:"":r.key==="analytics"?Ke.length>0?`${Ke.length} events logged`:"":r.key==="redux"?ze&&Object.keys(ze).length>0?`${Object.keys(ze).length} slices \u2022 Depth: ${Br}`:"":r.key==="push"?Fe&&Fe.length>0?`${Fe.length} notifications logged`:"":r.key==="socket"&&De&&De.length>0?`${De.length} connections active`:"";return<C key={r.key}style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1.5,borderColor:z?`${e.purple}38`:e.grayBorderSecondary,padding:14,gap:10,shadowColor:e.black,shadowOpacity:z?.04:.02,shadowRadius:5,shadowOffset:{width:0,height:2}}}>
69
+ <C style={{gap:8}}>
70
+ {N.map(r=>{const R=Qr(),I=Kr(),P=r.key==="redux"&&!R||r.key==="analytics"&&!I,E=r.key==="apis"||P,z=r.key==="apis"||!!Y?.[r.key]&&!P,$=mt[r.key]||{color:e.purple,bg:`${e.purple}14`,border:`${e.purple}2E`},G=r.key==="apis"||r.key==="logs"||r.key==="analytics"||r.key==="redux"||r.key==="crash"||r.key==="push"||r.key==="socket",oe=r.key==="apis"?Ue.length>0?`${Ue.length} requests`:"":r.key==="logs"?Ge.length>0?`${Ge.length} logs`:"":r.key==="crash"?ze&&ze.length>0?`${ze.length} crashes`:"":r.key==="analytics"?_e.length>0?`${_e.length} events`:"":r.key==="redux"?Ve&&Object.keys(Ve).length>0?`${Object.keys(Ve).length} slices`:"":r.key==="push"?Fe&&Fe.length>0?`${Fe.length} notifications`:"":r.key==="socket"&&De&&De.length>0?`${De.length} sockets`:"";return<C key={r.key}style={{backgroundColor:e.primaryLight,borderRadius:13,borderWidth:1,borderColor:z?`${$.color}38`:e.grayBorderSecondary,padding:12,gap:8,shadowColor:e.black,shadowOpacity:z?.03:.01,shadowRadius:3,shadowOffset:{width:0,height:1.5},elevation:1.5}}>
82
71
 
83
- <C style={{flexDirection:"row",alignItems:"flex-start",gap:10}}>
72
+ <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
84
73
 
85
- <V accessible={!0}accessibilityRole="checkbox"accessibilityLabel={`Select ${r.label}`}accessibilityState={{checked:z,disabled:L}}disabled={L}onPress={()=>{L||Ae(q=>({...q,[r.key]:!q[r.key]}))}}hitSlop={8}style={{width:22,height:22,borderRadius:6,borderWidth:z?0:1.8,borderColor:L?e.dividerColor:e.grayBorderSecondary,backgroundColor:r.key==="apis"?`${e.blue500}22`:z?e.purple:e.grayBackground,alignItems:"center",justifyContent:"center",marginTop:7,shadowColor:z?e.purple:"transparent",shadowOpacity:z?.25:0,shadowRadius:2,elevation:z?2:0}}>
86
- {r.key==="apis"?<K size={12}color={e.blue500}/>:z?<K size={12}color={e.white}/>:L?<St width={10}height={10}viewBox="0 0 24 24"fill="none">
87
- <Gr d="M7 10V7a5 5 0 0 1 10 0v3"stroke={e.grayText}strokeWidth="2.2"strokeLinecap="round"/>
88
- <Gr d="M5 10h14v9a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z"fill={e.grayText}/>
89
- </St>:null}
90
- </V>
74
+ <C style={{width:38,height:38,borderRadius:10,backgroundColor:z?$.bg:e.grayBackground,borderWidth:1,borderColor:z?$.border:e.grayBorderSecondary,alignItems:"center",justifyContent:"center",flexShrink:0}}>
75
+ {r.icon==="apis"&&<Co color={z?$.color:e.grayTextWeak}size={16}/>}
76
+ {r.icon==="logs"&&<So color={z?$.color:e.grayTextWeak}size={16}/>}
77
+ {r.icon==="perf"&&<Ri color={z?$.color:e.grayTextWeak}size={16}/>}
78
+ {r.icon==="crash"&&<Mt color={z?$.color:e.grayTextWeak}size={16}/>}
79
+ {r.icon==="analytics"&&<To color={z?$.color:e.grayTextWeak}size={16}/>}
80
+ {r.icon==="redux"&&<Vo color={z?$.color:e.grayTextWeak}size={16}/>}
81
+ {r.icon==="device"&&<Zt color={z?$.color:e.grayTextWeak}size={16}/>}
82
+ {r.icon==="storage"&&<Ci color={z?$.color:e.grayTextWeak}size={16}/>}
83
+ {r.icon==="debugging"&&<Si color={z?$.color:e.grayTextWeak}size={16}/>}
84
+ {r.icon==="media"&&<Ti color={z?$.color:e.grayTextWeak}size={16}/>}
85
+ {r.icon==="push"&&<Ao color={z?$.color:e.grayTextWeak}size={16}/>}
86
+ {r.icon==="socket"&&<Eo color={z?$.color:e.grayTextWeak}size={16}/>}
87
+ </C>
91
88
 
92
89
 
93
- <V accessible={!0}accessibilityRole="button"accessibilityLabel={`${r.label} settings`}disabled={H}onPress={()=>{je(),xr(r.key)}}style={{flex:1,flexDirection:"row",alignItems:"flex-start",gap:10}}>
94
-
95
- <C style={{width:36,height:36,borderRadius:10,backgroundColor:L?`${e.grayBorderSecondary}4D`:z?`${e.purple}14`:e.grayBackground,borderWidth:1,borderColor:L?e.dividerColor:z?`${e.purple}33`:e.grayBorderSecondary,alignItems:"center",justifyContent:"center",marginTop:1}}>
96
- {r.icon==="apis"&&<Qr color={z?e.purple:e.grayTextWeak}size={16}/>}
97
- {r.icon==="logs"&&<Xr color={z?e.purple:e.grayTextWeak}size={16}/>}
98
- {r.icon==="crash"&&<At color={z?e.purple:e.grayTextWeak}size={16}/>}
99
- {r.icon==="analytics"&&<Yr color={z?e.purple:e.grayTextWeak}size={16}/>}
100
- {r.icon==="redux"&&<Co color={z?e.purple:e.grayTextWeak}size={16}/>}
101
- {r.icon==="device"&&<Qt color={z?e.purple:e.grayTextWeak}size={16}/>}
102
- {r.icon==="storage"&&<Xt color={z?e.purple:e.grayTextWeak}size={16}/>}
103
- {r.icon==="debugging"&&<Yt color={z?e.purple:e.grayTextWeak}size={16}/>}
104
- {r.icon==="media"&&<Zt color={z?e.purple:e.grayTextWeak}size={16}/>}
105
- {r.icon==="push"&&<Ho color={z?e.purple:e.grayTextWeak}size={16}/>}
106
- {r.icon==="socket"&&<Po color={z?e.purple:e.grayTextWeak}size={16}/>}
107
- </C>
90
+ <C style={{flex:1,minWidth:0,justifyContent:"center"}}>
91
+ <C style={{flexDirection:"row",alignItems:"center",gap:5}}>
92
+ <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:E?e.grayText:e.primaryBlack}}numberOfLines={1}>
93
+ {r.label}
94
+ </T>
108
95
 
109
-
110
- <C style={{flex:1,gap:2}}>
111
- <C style={{flexDirection:"row",alignItems:"center",gap:6,flexWrap:"wrap"}}>
112
- <C style={{minWidth:22,height:22,paddingHorizontal:5,borderRadius:11,backgroundColor:z?`${e.purple}1C`:`${e.grayBorderSecondary}80`,borderWidth:1,borderColor:z?`${e.purple}44`:e.grayBorderSecondary,alignItems:"center",justifyContent:"center"}}>
113
- <T style={{fontFamily:S.interBold,fontSize:10,lineHeight:13,color:z?e.purple:e.grayText}}>
114
- #{r.id}
96
+
97
+ {r.key==="apis"&&<C style={{backgroundColor:`${e.blue500}14`,paddingHorizontal:4.5,paddingVertical:1,borderRadius:4,borderWidth:1,borderColor:`${e.blue500}33`}}>
98
+ <T style={{fontFamily:S.interBold,fontSize:7.5,lineHeight:10,color:e.blue500,letterSpacing:.3}}>
99
+ CORE
115
100
  </T>
116
- </C>
117
- <T style={{fontFamily:S.interBold,fontSize:14,lineHeight:18,color:L?e.grayText:e.primaryBlack}}>
118
- {r.label}
119
- </T>
101
+ </C>}
120
102
 
121
-
122
- {r.key===X&&!H&&<C style={{flexDirection:"row",alignItems:"center",backgroundColor:`${e.purple}14`,borderRadius:12,paddingHorizontal:5,paddingVertical:1.5,borderWidth:1,borderColor:`${e.purple}2E`,gap:3}}>
123
- <C style={{width:4,height:4,borderRadius:2,backgroundColor:e.purple}}/>
124
- <T style={{fontFamily:S.interBold,fontSize:8,lineHeight:11,color:e.purple,letterSpacing:.4}}>
125
- {w("settings.defaultBadge")}
126
- </T>
127
- </C>}
128
-
129
-
130
- {r.key==="apis"?<C style={{backgroundColor:`${e.blue500}14`,borderRadius:4,paddingHorizontal:5,paddingVertical:1.5,borderWidth:1,borderColor:`${e.blue500}33`}}>
131
- <T style={{fontFamily:S.interBold,fontSize:8,lineHeight:11,color:e.blue500,letterSpacing:.3}}>
132
- {w("settings.coreBadge")}
133
- </T>
134
- </C>:H?<C style={{backgroundColor:`${e.amber500}18`,borderRadius:4,paddingHorizontal:5,paddingVertical:1.5,borderWidth:1,borderColor:`${e.amber500}35`}}>
135
- <T style={{fontFamily:S.interBold,fontSize:8,lineHeight:11,color:e.amber700,letterSpacing:.3}}>
136
- {r.key==="redux"?w("settings.notConnectedBadge"):w("settings.notDetectedBadge")}
137
- </T>
138
- </C>:z?<C style={{backgroundColor:`${e.liveGreen}18`,borderRadius:4,paddingHorizontal:5,paddingVertical:1.5,borderWidth:1,borderColor:`${e.liveGreen}38`}}>
139
- <T style={{fontFamily:S.interBold,fontSize:8,lineHeight:11,color:e.green700,letterSpacing:.3}}>
140
- {w("settings.activeBadge")}
141
- </T>
142
- </C>:<C style={{backgroundColor:`${e.grayTextWeak}18`,borderRadius:4,paddingHorizontal:5,paddingVertical:1.5,borderWidth:1,borderColor:`${e.grayTextWeak}2E`}}>
143
- <T style={{fontFamily:S.interBold,fontSize:8,lineHeight:11,color:e.grayTextWeak,letterSpacing:.3}}>
144
- {w("settings.dormantBadge")}
145
- </T>
146
- </C>}
147
- </C>
148
-
149
- <T style={{fontFamily:S.interRegular,fontSize:11,color:e.grayText,lineHeight:15,marginTop:1}}>
150
- {r.desc}
151
- </T>
103
+ {r.key===K&&<C style={{backgroundColor:`${e.purple}14`,paddingHorizontal:4.5,paddingVertical:1,borderRadius:4,borderWidth:1,borderColor:`${e.purple}2E`}}>
104
+ <T style={{fontFamily:S.interBold,fontSize:7.5,lineHeight:10,color:e.purple,letterSpacing:.3}}>
105
+ DEFAULT
106
+ </T>
107
+ </C>}
108
+
109
+ {P&&<C style={{backgroundColor:`${e.amber500}14`,paddingHorizontal:4.5,paddingVertical:1,borderRadius:4,borderWidth:1,borderColor:`${e.amber500}33`}}>
110
+ <T style={{fontFamily:S.interBold,fontSize:7.5,lineHeight:10,color:e.amber700,letterSpacing:.3}}>
111
+ OFFLINE
112
+ </T>
113
+ </C>}
152
114
  </C>
153
- </V>
115
+
116
+ <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayTextWeak,marginTop:1.5}}numberOfLines={1}ellipsizeMode="tail">
117
+ {r.desc}
118
+ </T>
119
+ </C>
120
+
121
+
122
+ <Tt value={z}disabled={E}onValueChange={()=>Ct(r.key)}trackColor={{false:e.grayBorderSecondary,true:e.purple}}thumbColor={e.white}ios_backgroundColor={e.grayBorderSecondary}style={{transform:[{scaleX:.8},{scaleY:.8}]}}/>
154
123
  </C>
155
124
 
156
125
 
157
- {!H&&<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingTop:8,borderTopWidth:1,borderTopColor:e.dividerColor}}>
126
+ {(oe||G||r.key==="media")&&<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingTop:7,borderTopWidth:1,borderTopColor:`${e.dividerColor}99`,marginTop:1}}>
158
127
 
159
- {Se&&Se.trim().length>0?<C style={{flexDirection:"row",alignItems:"center",gap:6,flex:1}}>
160
- <C style={{width:6,height:6,borderRadius:3,backgroundColor:z?e.liveGreen:e.grayTextWeak}}/>
161
- <T style={{fontFamily:S.interMedium,fontSize:11,color:e.grayText,lineHeight:14}}>
162
- {Se}
163
- </T>
164
- </C>:<C style={{flex:1}}/>}
128
+ <C style={{flexDirection:"row",alignItems:"center",gap:5,flex:1}}>
129
+ {oe?<C style={{flexDirection:"row",alignItems:"center",gap:5}}>
130
+ <C style={{width:5.5,height:5.5,borderRadius:3,backgroundColor:z?$.color:e.grayTextWeak}}/>
131
+ <T style={{fontFamily:S.interMedium,fontSize:10.5,lineHeight:14,color:z?e.grayTextStrong:e.grayTextWeak}}>
132
+ {oe}
133
+ </T>
134
+ </C>:<C/>}
135
+ </C>
165
136
 
166
137
 
167
- <V accessible={!0}accessibilityRole="button"accessibilityLabel={`Configure ${r.label} settings`}onPress={()=>{je(),xr(r.key)}}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:`${e.purple}12`,paddingHorizontal:10,paddingVertical:5,borderRadius:8,borderWidth:1,borderColor:`${e.purple}26`}}>
168
- <Ht color={e.purple}size={11}/>
169
- <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.purple}}>
170
- {w("settings.configure")}
171
- </T>
172
- <Bo color={e.purple}size={9}/>
173
- </V>
138
+ {(G||r.key==="media")&&<V onPress={()=>{D("light"),r.key==="media"?(Jr(),xr("capture")):Oo(r.key)}}hitSlop={6}style={{flexDirection:"row",alignItems:"center",gap:3.5,paddingHorizontal:8.5,paddingVertical:4,borderRadius:6.5,backgroundColor:`${$.color}14`,borderWidth:1,borderColor:`${$.color}2A`}}>
139
+ <Wt color={$.color}size={10}/>
140
+ <T style={{fontFamily:S.interBold,fontSize:10,lineHeight:13,color:$.color}}>
141
+ {w("settings.configure","Configure")}
142
+ </T>
143
+ <Do color={$.color}size={8}/>
144
+ </V>}
174
145
  </C>}
175
146
  </C>})}
176
147
  </C>
177
- </C>}
148
+ </_.View>}
178
149
 
179
- {Q==="ui"&&<C style={{gap:14}}>
150
+ {q==="ui"&&<_.View style={{gap:14,opacity:M,transform:[{translateY:M.interpolate({inputRange:[0,1],outputRange:[10,0]})}]}}>
180
151
 
181
152
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:14,gap:12}}>
182
153
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
@@ -186,7 +157,7 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
186
157
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
187
158
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
188
159
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
189
- {we?<Pt color={e.purple}size={15}/>:<Wt color={e.purple}size={15}/>}
160
+ {Z?<Lt color={e.purple}size={15}/>:<At color={e.purple}size={15}/>}
190
161
  </C>
191
162
  <C style={{flex:1}}>
192
163
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
@@ -198,7 +169,7 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
198
169
  </C>
199
170
  </C>
200
171
 
201
- <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle Dark Theme"accessibilityState={{checked:we}}onPress={()=>{const r=!we;Ao(r),xt(r)}}style={{width:42,height:24,borderRadius:12,backgroundColor:we?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:we?"flex-end":"flex-start"}}>
172
+ <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle Dark Theme"accessibilityState={{checked:Z}}onPress={()=>{const r=!Z;No(r),Vt(r)}}style={{width:42,height:24,borderRadius:12,backgroundColor:Z?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:Z?"flex-end":"flex-start"}}>
202
173
  <C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
203
174
  </V>
204
175
  </C>
@@ -209,7 +180,7 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
209
180
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
210
181
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
211
182
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:`${e.blue600}14`,alignItems:"center",justifyContent:"center"}}>
212
- <Kr color={e.blue600}size={15}/>
183
+ <Zr color={e.blue600}size={15}/>
213
184
  </C>
214
185
  <C style={{flex:1}}>
215
186
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
@@ -221,12 +192,12 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
221
192
  </C>
222
193
  </C>
223
194
 
224
- <V onPress={()=>{v("light"),Lr(!0)}}style={{flexDirection:"row",alignItems:"center",backgroundColor:e.purpleShade50,paddingHorizontal:10,paddingVertical:6,borderRadius:8,gap:5,borderWidth:1,borderColor:`${e.purple}20`}}>
225
- {$e?.flag?<T style={{fontSize:13}}>{$e.flag}</T>:<Kr size={14}color={e.purple}/>}
195
+ <V onPress={()=>{D("light"),Er(!0)}}style={{flexDirection:"row",alignItems:"center",backgroundColor:e.purpleShade50,paddingHorizontal:10,paddingVertical:6,borderRadius:8,gap:5,borderWidth:1,borderColor:`${e.purple}20`}}>
196
+ {ve?.flag?<T style={{fontSize:13}}>{ve.flag}</T>:<Zr size={14}color={e.purple}/>}
226
197
  <T style={{fontFamily:S.interSemiBold,fontSize:12,color:e.purple}}>
227
- {$e?.nativeName||$e?.name||"English"}
198
+ {ve?.nativeName||ve?.name||"English"}
228
199
  </T>
229
- <Bo size={11}color={e.purple}/>
200
+ <Do size={11}color={e.purple}/>
230
201
  </V>
231
202
  </C>
232
203
  </C>
@@ -242,7 +213,7 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
242
213
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:10}}>
243
214
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
244
215
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
245
- <Zr color={e.purple}size={15}/>
216
+ <Ro color={e.purple}size={15}/>
246
217
  </C>
247
218
  <C style={{flex:1}}>
248
219
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
@@ -254,16 +225,16 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
254
225
  </C>
255
226
  </C>
256
227
 
257
- {We!==Be&&<V onPress={()=>{Oo(We)}}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:e.purple,paddingHorizontal:10,paddingVertical:5,borderRadius:7,shadowColor:e.purple,shadowOffset:{width:0,height:1},shadowOpacity:.28,shadowRadius:2,elevation:2}}>
258
- <K size={11}color={e.white}/>
228
+ {Le!==Re&&<V onPress={()=>{jo(Le)}}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:e.purple,paddingHorizontal:10,paddingVertical:5,borderRadius:7,shadowColor:e.purple,shadowOffset:{width:0,height:1},shadowOpacity:.28,shadowRadius:2,elevation:2}}>
229
+ <Se size={11}color={e.white}/>
259
230
  <T style={{fontFamily:S.interBold,fontSize:11,color:e.white}}>
260
- Save ({We}%)
231
+ Save ({Le}%)
261
232
  </T>
262
233
  </V>}
263
234
  </C>
264
235
 
265
236
  <C style={{marginTop:6}}>
266
- <Ur value={We}onValueChange={$r}min={50}max={90}step={5}quickPresets={[50,60,70,80,90]}formatLabel={r=>`${Math.round(r)}%`}/>
237
+ <Yr value={Le}onValueChange={Ar}min={50}max={90}step={5}quickPresets={[50,60,70,80,90]}formatLabel={r=>`${Math.round(r)}%`}/>
267
238
  </C>
268
239
  </C>
269
240
 
@@ -274,7 +245,7 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
274
245
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:10}}>
275
246
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
276
247
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:"rgba(6, 182, 212, 0.12)",alignItems:"center",justifyContent:"center"}}>
277
- <Ge color={"#06B6D4"}size={15}/>
248
+ <Ce color={"#06B6D4"}size={15}/>
278
249
  </C>
279
250
  <C style={{flex:1}}>
280
251
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
@@ -288,13 +259,13 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
288
259
 
289
260
  <C style={{backgroundColor:"rgba(6, 182, 212, 0.14)",paddingHorizontal:8,paddingVertical:3,borderRadius:6,borderWidth:1,borderColor:"rgba(6, 182, 212, 0.30)"}}>
290
261
  <T style={{fontFamily:S.interBold,fontSize:12,color:"#06B6D4"}}>
291
- {Wr.toFixed(1)}
262
+ {Lr.toFixed(1)}
292
263
  </T>
293
264
  </C>
294
265
  </C>
295
266
 
296
267
  <C style={{marginTop:6}}>
297
- <Ur value={Wr}onValueChange={r=>{const B=Math.round(r*10)/10;dt(B)}}min={.1}max={1}step={.1}quickPresets={[.1,.3,.5,.7,1]}formatLabel={r=>r.toFixed(1)}/>
268
+ <Yr value={Lr}onValueChange={r=>{const R=Math.round(r*10)/10;yt(R)}}min={.1}max={1}step={.1}quickPresets={[.1,.3,.5,.7,1]}formatLabel={r=>r.toFixed(1)}/>
298
269
  </C>
299
270
  </C>
300
271
 
@@ -304,7 +275,7 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
304
275
  <C style={{gap:8}}>
305
276
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
306
277
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
307
- <$t color={e.purple}size={15}/>
278
+ <Et color={e.purple}size={15}/>
308
279
  </C>
309
280
  <C style={{flex:1}}>
310
281
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
@@ -317,8 +288,8 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
317
288
  </C>
318
289
 
319
290
  <C style={{flexDirection:"row",backgroundColor:e.grayBackground,borderRadius:10,padding:3,borderWidth:1,borderColor:e.dividerColor}}>
320
- {[{key:"slide",label:"Slide Up"},{key:"fade",label:"Fade"},{key:"none",label:"None"}].map(r=>{const B=Mo===r.key;return<V key={r.key}accessible={!0}accessibilityRole="button"accessibilityLabel={`Set transition animation to ${r.label}`}accessibilityState={{selected:B}}onPress={()=>Eo(r.key)}style={{flex:1,paddingVertical:7,alignItems:"center",borderRadius:8,backgroundColor:B?e.purple:"transparent"}}>
321
- <T style={{fontFamily:S.interBold,fontSize:11.5,lineHeight:15,color:B?e.white:e.grayText}}>
291
+ {[{key:"slide",label:"Slide Up"},{key:"fade",label:"Fade"},{key:"none",label:"None"}].map(r=>{const R=Uo===r.key;return<V key={r.key}accessible={!0}accessibilityRole="button"accessibilityLabel={`Set transition animation to ${r.label}`}accessibilityState={{selected:R}}onPress={()=>Go(r.key)}style={{flex:1,paddingVertical:7,alignItems:"center",borderRadius:8,backgroundColor:R?e.purple:"transparent"}}>
292
+ <T style={{fontFamily:S.interBold,fontSize:11.5,lineHeight:15,color:R?e.white:e.grayText}}>
322
293
  {r.label}
323
294
  </T>
324
295
  </V>})}
@@ -334,7 +305,7 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
334
305
 
335
306
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
336
307
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
337
- <Ce color={e.purple}size={15}/>
308
+ <X color={e.purple}size={15}/>
338
309
  </C>
339
310
  <C style={{flex:1}}>
340
311
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
@@ -348,11 +319,11 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
348
319
 
349
320
 
350
321
  <C style={{marginTop:6,gap:6}}>
351
- <V accessible={!0}accessibilityRole="button"accessibilityLabel={`Default opening tab: ${W.find(r=>r.key===X)?.label||"APIs"}`}onPress={()=>Mr(r=>!r)}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",backgroundColor:e.grayBackground,borderRadius:10,borderWidth:1.5,borderColor:er?e.purple:e.grayBorderSecondary,paddingHorizontal:14,paddingVertical:11}}>
322
+ <V accessible={!0}accessibilityRole="button"accessibilityLabel={`Default opening tab: ${N.find(r=>r.key===K)?.label||"APIs"}`}onPress={()=>Mr(r=>!r)}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",backgroundColor:e.grayBackground,borderRadius:10,borderWidth:1.5,borderColor:Qe?e.purple:e.grayBorderSecondary,paddingHorizontal:14,paddingVertical:11}}>
352
323
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
353
324
  <C style={{width:8,height:8,borderRadius:4,backgroundColor:e.purple}}/>
354
325
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
355
- {W.find(r=>r.key===X)?`#${W.find(r=>r.key===X)?.id} ${W.find(r=>r.key===X)?.label}`:"#1 APIs (Network)"}
326
+ {N.find(r=>r.key===K)?`#${N.find(r=>r.key===K)?.id} ${N.find(r=>r.key===K)?.label}`:"#1 APIs (Network)"}
356
327
  </T>
357
328
  <C style={{backgroundColor:`${e.purple}14`,paddingHorizontal:6,paddingVertical:1.5,borderRadius:6}}>
358
329
  <T style={{fontFamily:S.interBold,fontSize:8.5,color:e.purple}}>
@@ -361,21 +332,21 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
361
332
  </C>
362
333
  </C>
363
334
 
364
- <C style={{transform:[{rotate:er?"180deg":"0deg"}]}}>
365
- <Kt color={e.grayText}size={15}/>
335
+ <C style={{transform:[{rotate:Qe?"180deg":"0deg"}]}}>
336
+ <Xt color={e.grayText}size={15}/>
366
337
  </C>
367
338
  </V>
368
339
 
369
340
 
370
- {er&&<C style={{backgroundColor:e.primaryLight,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",shadowColor:e.black,shadowOpacity:.08,shadowRadius:6,shadowOffset:{width:0,height:3},elevation:4}}>
371
- {W.filter(r=>r.key==="apis"||_?.[r.key]||R?.[r.key]).map((r,B,D)=>{const H=X===r.key,L=B===D.length-1;return<V key={r.key}accessible={!0}accessibilityRole="button"accessibilityLabel={`Select ${r.label} as default tab`}onPress={()=>{Lo(r.key),Mr(!1)}}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:14,paddingVertical:11,backgroundColor:H?`${e.purple}0F`:"transparent",borderBottomWidth:L?0:1,borderBottomColor:e.dividerColor}}>
341
+ {Qe&&<C style={{backgroundColor:e.primaryLight,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",shadowColor:e.black,shadowOpacity:.08,shadowRadius:6,shadowOffset:{width:0,height:3},elevation:4}}>
342
+ {N.filter(r=>r.key==="apis"||Y?.[r.key]).map((r,R,I)=>{const P=K===r.key,E=R===I.length-1;return<V key={r.key}accessible={!0}accessibilityRole="button"accessibilityLabel={`Select ${r.label} as default tab`}onPress={()=>{Mo(r.key),Mr(!1)}}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:14,paddingVertical:11,backgroundColor:P?`${e.purple}0F`:"transparent",borderBottomWidth:E?0:1,borderBottomColor:e.dividerColor}}>
372
343
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
373
- <C style={{width:6,height:6,borderRadius:3,backgroundColor:H?e.purple:e.grayTextWeak}}/>
374
- <T style={{fontFamily:H?S.interBold:S.interMedium,fontSize:13,color:H?e.purple:e.primaryBlack}}>
344
+ <C style={{width:6,height:6,borderRadius:3,backgroundColor:P?e.purple:e.grayTextWeak}}/>
345
+ <T style={{fontFamily:P?S.interBold:S.interMedium,fontSize:13,color:P?e.purple:e.primaryBlack}}>
375
346
  #{r.id} {r.label}
376
347
  </T>
377
348
  </C>
378
- {H&&<K size={14}color={e.purple}/>}
349
+ {P&&<Se size={14}color={e.purple}/>}
379
350
  </V>})}
380
351
  </C>}
381
352
  </C>
@@ -390,27 +361,26 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
390
361
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
391
362
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1,marginRight:10}}>
392
363
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
393
- <Lt color={e.purple}size={15}/>
364
+ <Ot color={e.purple}size={15}/>
394
365
  </C>
395
366
  <C style={{flex:1}}>
396
367
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
397
368
  NPM Update Toast
398
369
  </T>
399
370
  <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
400
- Show a floating toast banner with countdown progress when
401
- a newer release is published on npm.
371
+ {w("settings.npmUpdateToastDesc","Show a floating toast banner with countdown progress when a newer release is published on npm.")}
402
372
  </T>
403
373
  </C>
404
374
  </C>
405
375
 
406
- <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle NPM Update Toast"accessibilityState={{checked:_e}}onPress={()=>jo(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:_e?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:_e?"flex-end":"flex-start"}}>
376
+ <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle NPM Update Toast"accessibilityState={{checked:je}}onPress={()=>Jo(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:je?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:je?"flex-end":"flex-start"}}>
407
377
  <C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
408
378
  </V>
409
379
  </C>
410
380
  </C>
411
- </C>}
381
+ </_.View>}
412
382
 
413
- {Q==="limits"&&<C style={{gap:14}}>
383
+ {q==="limits"&&<_.View style={{gap:14,opacity:M,transform:[{translateY:M.interpolate({inputRange:[0,1],outputRange:[10,0]})}]}}>
414
384
 
415
385
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:14,gap:12}}>
416
386
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
@@ -421,20 +391,19 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
421
391
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
422
392
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
423
393
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
424
- <Vo color={e.purple}size={16}/>
394
+ <$o color={e.purple}size={16}/>
425
395
  </C>
426
396
  <C style={{flex:1}}>
427
397
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
428
398
  Auto-Calculate Limits from RAM
429
399
  </T>
430
400
  <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
431
- Dynamically sets log limits according to available device
432
- memory
401
+ {w("settings.autoCalculateLimitsRamDesc","Dynamically sets log limits according to available device memory")}
433
402
  </T>
434
403
  </C>
435
404
  </C>
436
405
 
437
- <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle auto RAM limit calculation"accessibilityState={{checked:$}}onPress={()=>Ko(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:$?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:$?"flex-end":"flex-start"}}>
406
+ <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle auto RAM limit calculation"accessibilityState={{checked:W}}onPress={()=>Xo(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:W?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:W?"flex-end":"flex-start"}}>
438
407
  <C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
439
408
  </V>
440
409
  </C>
@@ -443,20 +412,20 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
443
412
 
444
413
 
445
414
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
446
- <C style={{width:32,height:32,borderRadius:8,backgroundColor:$?`${e.purple}14`:e.grayBackground,alignItems:"center",justifyContent:"center"}}>
447
- <Qr color={$?e.purple:e.grayTextWeak}size={15}/>
415
+ <C style={{width:32,height:32,borderRadius:8,backgroundColor:W?`${e.purple}14`:e.grayBackground,alignItems:"center",justifyContent:"center"}}>
416
+ <Co color={W?e.purple:e.grayTextWeak}size={15}/>
448
417
  </C>
449
418
  <C style={{flex:1}}>
450
- <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:$?e.primaryBlack:e.grayText}}>
419
+ <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:W?e.primaryBlack:e.grayText}}>
451
420
  Detected Available RAM
452
421
  </T>
453
422
  <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
454
- {Xe} MB available on device
423
+ {Je} MB available on device
455
424
  </T>
456
425
  </C>
457
- <C style={{paddingHorizontal:10,paddingVertical:5,borderRadius:8,backgroundColor:$?`${e.purple}12`:e.grayBackground,borderWidth:1,borderColor:$?`${e.purple}26`:e.dividerColor}}>
458
- <T style={{fontFamily:S.interBold,fontSize:12,lineHeight:15,color:$?e.purple:e.grayText}}>
459
- {Xe} MB
426
+ <C style={{paddingHorizontal:10,paddingVertical:5,borderRadius:8,backgroundColor:W?`${e.purple}12`:e.grayBackground,borderWidth:1,borderColor:W?`${e.purple}26`:e.dividerColor}}>
427
+ <T style={{fontFamily:S.interBold,fontSize:12,lineHeight:15,color:W?e.purple:e.grayText}}>
428
+ {Je} MB
460
429
  </T>
461
430
  </C>
462
431
  </C>
@@ -465,17 +434,17 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
465
434
  <C style={{marginTop:4,paddingTop:8,borderTopWidth:1,borderTopColor:e.dividerColor,gap:6}}>
466
435
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
467
436
  <T style={{fontFamily:S.interBold,fontSize:11.5,lineHeight:15,color:e.purple}}>
468
- Profile: {Le.profileName}
437
+ Profile: {Ae.profileName}
469
438
  </T>
470
- <C style={{backgroundColor:$?`${e.emerald500}18`:`${e.purple}18`,paddingHorizontal:7,paddingVertical:2.5,borderRadius:4}}>
471
- <T style={{fontFamily:S.interBold,fontSize:9.5,color:$?e.emerald500:e.purple}}>
472
- {$?"AUTO-TUNED":"MANUAL"}
439
+ <C style={{backgroundColor:W?`${e.emerald500}18`:`${e.purple}18`,paddingHorizontal:7,paddingVertical:2.5,borderRadius:4}}>
440
+ <T style={{fontFamily:S.interBold,fontSize:9.5,color:W?e.emerald500:e.purple}}>
441
+ {W?"AUTO-TUNED":"MANUAL"}
473
442
  </T>
474
443
  </C>
475
444
  </C>
476
445
 
477
446
  <C style={{flexDirection:"row",flexWrap:"wrap",gap:8,marginTop:4}}>
478
- {[{label:"Logs",value:$?Le.maxConsoleLogs:Qe,color:e.sky500},{label:"Analytics",value:$?Le.maxAnalyticsEvents:Tr,color:e.purple},{label:"Crash",value:$?Le.maxCrashRecords:zr,color:e.errorColor}].map(r=><C key={r.label}style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${r.color}14`,borderWidth:1,borderColor:`${r.color}33`}}>
447
+ {[{label:"Logs",value:W?Ae.maxConsoleLogs:Rr,color:e.sky500},{label:"Analytics",value:W?Ae.maxAnalyticsEvents:Vr,color:e.purple},{label:"Crash",value:W?Ae.maxCrashRecords:zr,color:e.errorColor}].map(r=><C key={r.label}style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${r.color}14`,borderWidth:1,borderColor:`${r.color}33`}}>
479
448
  <T style={{fontFamily:S.interBold,fontSize:10.5,lineHeight:14,color:r.color}}>
480
449
  {r.label}:
481
450
  </T>
@@ -495,15 +464,14 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
495
464
 
496
465
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
497
466
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:`${e.emerald500}14`,alignItems:"center",justifyContent:"center"}}>
498
- <So color={e.emerald500}size={15}/>
467
+ <Bo color={e.emerald500}size={15}/>
499
468
  </C>
500
469
  <C style={{flex:1}}>
501
470
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
502
471
  OS Memory Warning Guard
503
472
  </T>
504
473
  <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
505
- Automatically prunes in-memory buffers by 50% when the OS
506
- signals low memory
474
+ {w("settings.osMemoryWarningGuardDesc","Automatically prunes in-memory buffers by 50% when the OS signals low memory")}
507
475
  </T>
508
476
  </C>
509
477
  <C style={{paddingHorizontal:8,paddingVertical:3,borderRadius:6,backgroundColor:`${e.emerald500}18`}}>
@@ -525,16 +493,16 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
525
493
  {w("settings.memory.manualDescription","Prune older entries across all log stores and free RAM")}
526
494
  </T>
527
495
  </C>
528
- <V onPress={()=>{const r=Si("manual",.5);I(w("settings.memory.pruned",{count:r.totalPruned},`Pruned ${r.totalPruned} items from memory`))}}style={{backgroundColor:e.purple,paddingHorizontal:12,paddingVertical:8,borderRadius:8,flexDirection:"row",alignItems:"center",gap:5}}>
529
- <U size={13}color={e.white}/>
496
+ <V onPress={()=>{const r=zi("manual",.5);B(w("settings.memory.pruned",{count:r.totalPruned},`Pruned ${r.totalPruned} items from memory`))}}style={{backgroundColor:e.purple,paddingHorizontal:12,paddingVertical:8,borderRadius:8,flexDirection:"row",alignItems:"center",gap:5}}>
497
+ <O size={13}color={e.white}/>
530
498
  <T style={{fontFamily:S.interBold,fontSize:11.5,color:e.white}}>
531
499
  Prune Now
532
500
  </T>
533
501
  </V>
534
502
  </C>
535
503
  </C>
536
- </C>}
537
- {Q==="capture"&&<C style={{gap:16}}>
504
+ </_.View>}
505
+ {q==="capture"&&<_.View style={{gap:16,opacity:M,transform:[{translateY:M.interpolate({inputRange:[0,1],outputRange:[10,0]})}]}}>
538
506
 
539
507
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:12}}>
540
508
  <C style={{flexDirection:"row",alignItems:"center",gap:10}}>
@@ -551,9 +519,9 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
551
519
  </C>
552
520
  </C>
553
521
 
554
- {F({icon:<Te color={e.purple}size={16}/>,label:w("settings.media.enableFloatingWidget","Enable Floating Widget"),description:w("settings.media.enableFloatingWidgetDesc","Shows draggable quick screenshot & video recording button on screen"),isLast:!0,onPress:()=>{v("light"),Pr(r=>!r),I(`Capture widget: ${Y?"OFF":"ON"}`)},right:<V onPress={()=>{v("light"),Pr(r=>!r),I(`Capture widget: ${Y?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:Y?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:Y?`${e.emerald500}4D`:`${e.grayText}33`}}>
555
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:Y?e.emerald500:e.grayText}}>
556
- {Y?w("settings.media.enabled","ON"):"OFF"}
522
+ {F({icon:<Te color={e.purple}size={16}/>,label:w("settings.media.enableFloatingWidget","Enable Floating Widget"),description:w("settings.media.enableFloatingWidgetDesc","Shows draggable quick screenshot & video recording button on screen"),isLast:!0,onPress:()=>{D("light"),Wr(r=>!r),B(`Capture widget: ${Q?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),Wr(r=>!r),B(`Capture widget: ${Q?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:Q?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:Q?`${e.emerald500}4D`:`${e.grayText}33`}}>
523
+ <T style={{fontFamily:S.interBold,fontSize:10.5,color:Q?e.emerald500:e.grayText}}>
524
+ {Q?w("settings.media.enabled","ON"):"OFF"}
557
525
  </T>
558
526
  </V>})}
559
527
  </C>
@@ -574,17 +542,17 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
574
542
  </C>
575
543
  </C>
576
544
 
577
- {F({icon:<Do color={e.purple}size={16}/>,label:w("settings.media.imageFormat","Image Format"),description:w("settings.media.imageFormatDesc","Export formats (PNG lossless, JPEG lossy, WebP)"),right:<C style={{flexDirection:"row",gap:5}}>
578
- {["png","jpeg","webp"].map(r=>{const B=Ze===r;return<V key={r}onPress={()=>{v("light"),Fr(r),I(`Screenshot format: ${r.toUpperCase()}`)}}style={{paddingHorizontal:9,paddingVertical:5,borderRadius:7,backgroundColor:B?e.purple:`${e.purple}14`,borderWidth:1,borderColor:B?e.purple:`${e.purple}2E`}}>
579
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:B?e.white:e.purple}}>
545
+ {F({icon:<Lo color={e.purple}size={16}/>,label:w("settings.media.imageFormat","Image Format"),description:w("settings.media.imageFormatDesc","Export formats (PNG lossless, JPEG lossy, WebP)"),right:<C style={{flexDirection:"row",gap:5}}>
546
+ {["png","jpeg","webp"].map(r=>{const R=Ye===r;return<V key={r}onPress={()=>{D("light"),Ir(r),B(`Screenshot format: ${r.toUpperCase()}`)}}style={{paddingHorizontal:9,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
547
+ <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
580
548
  {r.toUpperCase()}
581
549
  </T>
582
550
  </V>})}
583
551
  </C>})}
584
552
 
585
- {F({icon:<Ge color={e.purple}size={16}/>,label:w("settings.media.autoHide","Auto-Hide Inspector During Capture"),description:w("settings.media.autoHideDesc","Temporarily hides the inspector overlay during screen capture"),isLast:!0,onPress:()=>{v("light"),ve(r=>!r),I(`Auto-hide overlay: ${A?"OFF":"ON"}`)},right:<V onPress={()=>{v("light"),ve(r=>!r),I(`Auto-hide overlay: ${A?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:A?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:A?`${e.emerald500}4D`:`${e.grayText}33`}}>
586
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:A?e.emerald500:e.grayText}}>
587
- {A?w("settings.media.enabled","ON"):"OFF"}
553
+ {F({icon:<Ce color={e.purple}size={16}/>,label:w("settings.media.autoHide","Auto-Hide Inspector During Capture"),description:w("settings.media.autoHideDesc","Temporarily hides the inspector overlay during screen capture"),isLast:!0,onPress:()=>{D("light"),He(r=>!r),B(`Auto-hide overlay: ${L?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),He(r=>!r),B(`Auto-hide overlay: ${L?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:L?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:L?`${e.emerald500}4D`:`${e.grayText}33`}}>
554
+ <T style={{fontFamily:S.interBold,fontSize:10.5,color:L?e.emerald500:e.grayText}}>
555
+ {L?w("settings.media.enabled","ON"):"OFF"}
588
556
  </T>
589
557
  </V>})}
590
558
  </C>
@@ -605,82 +573,118 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
605
573
  </C>
606
574
  </C>
607
575
 
608
- {F({icon:<Fo color={e.purple}size={16}/>,label:w("settings.media.audioMode","Audio Source"),description:w("settings.media.audioModeDesc","Record video with muted, app audio, or microphone commentary"),right:<C style={{flexDirection:"row",gap:5}}>
609
- {[{key:"none",label:"Muted"},{key:"app",label:"App"},{key:"mic",label:"Mic"}].map(r=>{const B=Ir===r.key;return<V key={r.key}onPress={()=>{v("light"),Dr(r.key),I(`Audio source: ${r.label}`)}}style={{paddingHorizontal:8,paddingVertical:5,borderRadius:7,backgroundColor:B?e.purple:`${e.purple}14`,borderWidth:1,borderColor:B?e.purple:`${e.purple}2E`}}>
610
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:B?e.white:e.purple}}>
576
+ {F({icon:<Po color={e.purple}size={16}/>,label:w("settings.media.audioMode","Audio Source"),description:w("settings.media.audioModeDesc","Record video with muted, app audio, or microphone commentary"),right:<C style={{flexDirection:"row",gap:5}}>
577
+ {[{key:"none",label:"Muted"},{key:"app",label:"App"},{key:"mic",label:"Mic"}].map(r=>{const R=Dr===r.key;return<V key={r.key}onPress={()=>{D("light"),$r(r.key),B(`Audio source: ${r.label}`)}}style={{paddingHorizontal:8,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
578
+ <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
611
579
  {r.label}
612
580
  </T>
613
581
  </V>})}
614
582
  </C>})}
615
583
 
616
- {F({icon:<Ro color={e.purple}size={16}/>,label:w("settings.media.frameRate","Recording Frame Rate (FPS)"),description:w("settings.media.frameRateDesc","Target video smoothness: 15, 24, 30, or 60 FPS"),right:<C style={{flexDirection:"row",gap:5}}>
617
- {[15,24,30,60].map(r=>{const B=Hr===r;return<V key={r}onPress={()=>{v("light"),vr(r),I(`Recording FPS: ${r}`)}}style={{paddingHorizontal:7,paddingVertical:5,borderRadius:7,backgroundColor:B?e.purple:`${e.purple}14`,borderWidth:1,borderColor:B?e.purple:`${e.purple}2E`}}>
618
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:B?e.white:e.purple}}>
584
+ {F({icon:<Ho color={e.purple}size={16}/>,label:w("settings.media.frameRate","Recording Frame Rate (FPS)"),description:w("settings.media.frameRateDesc","Target video smoothness: 15, 24, 30, or 60 FPS"),right:<C style={{flexDirection:"row",gap:5}}>
585
+ {[15,24,30,60].map(r=>{const R=Hr===r;return<V key={r}onPress={()=>{D("light"),Pr(r),B(`Recording FPS: ${r}`)}}style={{paddingHorizontal:7,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
586
+ <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
619
587
  {r}fps
620
588
  </T>
621
589
  </V>})}
622
590
  </C>})}
623
591
 
624
- {F({icon:<Io color={e.purple}size={16}/>,label:w("settings.media.gifAutoOpt","Auto GIF Optimization"),description:w("settings.media.gifAutoOptDesc","Automatic palette reduction and frame skip for lightweight animated GIFs"),isLast:!0,onPress:()=>{v("light"),Pe(r=>!r),I(`GIF optimization: ${M?"OFF":"ON"}`)},right:<V onPress={()=>{v("light"),Pe(r=>!r),I(`GIF optimization: ${M?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:M?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:M?`${e.emerald500}4D`:`${e.grayText}33`}}>
625
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:M?e.emerald500:e.grayText}}>
626
- {M?"ON":"OFF"}
592
+ {F({icon:<Wo color={e.purple}size={16}/>,label:w("settings.media.gifAutoOpt","Auto GIF Optimization"),description:w("settings.media.gifAutoOptDesc","Automatic palette reduction and frame skip for lightweight animated GIFs"),isLast:!0,onPress:()=>{D("light"),Pe(r=>!r),B(`GIF optimization: ${A?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),Pe(r=>!r),B(`GIF optimization: ${A?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:A?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:A?`${e.emerald500}4D`:`${e.grayText}33`}}>
593
+ <T style={{fontFamily:S.interBold,fontSize:10.5,color:A?e.emerald500:e.grayText}}>
594
+ {A?"ON":"OFF"}
627
595
  </T>
628
596
  </V>})}
629
597
  </C>
630
598
 
631
599
 
632
600
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
633
- {F({icon:<U color={e.errorColor}size={16}/>,label:w("settings.media.purgeAll","Purge Captured Media Cache"),description:w("settings.media.purgeAllDesc","Delete all local screenshots, screen recordings and converted GIFs"),isLast:!0,onPress:()=>{N.alert(w("settings.media.purgeConfirmTitle","Purge Media Storage?"),w("settings.media.purgeConfirmMessage","This will permanently delete all captured screenshots and videos from disk."),[{text:w("common.cancel","Cancel"),style:"cancel"},{text:w("settings.media.purgeCacheBtn","Purge All"),style:"destructive",onPress:async()=>{await kr.clearAllMedia(),I(w("settings.media.purgedSuccess","Media cache cleared successfully"))}}])},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
601
+ {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.media.purgeAll","Purge Captured Media Cache"),description:w("settings.media.purgeAllDesc","Delete all local screenshots, screen recordings and converted GIFs"),isLast:!0,onPress:()=>{j.alert(w("settings.media.purgeConfirmTitle","Purge Media Storage?"),w("settings.media.purgeConfirmMessage","This will permanently delete all captured screenshots and videos from disk."),[{text:w("common.cancel","Cancel"),style:"cancel"},{text:w("settings.media.purgeCacheBtn","Purge All"),style:"destructive",onPress:async()=>{await kr.clearAllMedia(),B(w("settings.media.purgedSuccess","Media cache cleared successfully"))}}])},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
634
602
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
635
603
  {w("settings.media.purgeCacheBtn","Purge All")}
636
604
  </T>
637
605
  </C>})}
638
606
  </C>
639
- </C>}
640
-
641
-
642
- <Ci containerStyle={{marginTop:14}}/>
607
+ </_.View>}
643
608
 
644
609
  <C style={{height:48}}/>
645
- </G>
610
+ </J>
611
+ </C>;let U=null;if(v==="apis")U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
646
612
 
647
-
648
- {Q==="module"&&<C style={{paddingHorizontal:16,paddingTop:12,paddingBottom:Nr.OS==="ios"?36:24,backgroundColor:e.primaryLight,borderTopWidth:1,borderTopColor:e.dividerColor,flexDirection:"row",alignItems:"center",gap:12,shadowColor:e.black,shadowOpacity:.08,shadowRadius:8,shadowOffset:{width:0,height:-3},elevation:8}}>
649
- <C style={{flex:1}}>
650
- <T style={{fontFamily:S.interBold,fontSize:13,lineHeight:17,color:e.primaryBlack}}>
651
- {Ar} of {W.length} Modules Active
652
- </T>
653
- <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:Z?e.purple:e.grayText,marginTop:1}}>
654
- {w(Z?"settings.unsavedPending":"settings.allSynchronized")}
655
- </T>
613
+
614
+ <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16,gap:12}}>
615
+ <C style={{flexDirection:"row",alignItems:"flex-start",justifyContent:"space-between",gap:8}}>
616
+ <C style={{flexDirection:"row",alignItems:"center",gap:8,flex:1}}>
617
+ <Ce color={e.purple}size={16}/>
618
+ <C style={{flex:1}}>
619
+ <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
620
+ {w("settings.apis.hideUrlRegexTitle","Hidden URL Filters (Regex)")}
621
+ </T>
622
+ <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayTextWeak,marginTop:2}}>
623
+ {w("settings.apis.hideUrlRegexDesc","Hide matching URLs from Network list and search results (calls will still execute normally).")}
624
+ </T>
625
+ </C>
626
+ </C>
627
+ {ee.length>0&&<V onPress={()=>{D("light"),Ke([...er]),B(w("settings.apis.resetFilterToast","Reset to default URL filters"))}}hitSlop={8}style={{paddingHorizontal:8,paddingVertical:4.5,borderRadius:6,backgroundColor:`${e.purple}14`,borderWidth:1,borderColor:`${e.purple}33`,alignSelf:"flex-start"}}>
628
+ <T style={{fontFamily:S.interSemiBold,fontSize:10,lineHeight:13,color:e.purple}}>
629
+ {w("common.resetDefaults","Reset Defaults")}
630
+ </T>
631
+ </V>}
656
632
  </C>
657
633
 
658
- <V accessible={!0}accessibilityRole="button"accessibilityLabel="Save Changes"onPress={pt}style={{flexDirection:"row",alignItems:"center",gap:6,backgroundColor:Z?e.purple:`${e.purple}22`,paddingHorizontal:18,paddingVertical:10,borderRadius:10}}>
659
- <K size={14}color={Z?e.white:e.purple}/>
660
- <T style={{fontFamily:S.interBold,fontSize:13,lineHeight:17,color:Z?e.white:e.purple}}>
661
- {w("settings.saveChanges")}
662
- </T>
663
- </V>
664
- </C>}
665
- </C>;let J=null;if(O==="apis")J=<G style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
634
+
635
+ <C style={{flexDirection:"row",alignItems:"center",gap:8,backgroundColor:e.grayBackground,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,paddingHorizontal:10,paddingVertical:Ur.OS==="ios"?8:4}}>
636
+ <Io size={14}color={e.grayTextWeak}/>
637
+ <_r style={{flex:1,fontFamily:S.interMedium,fontSize:12,lineHeight:16,color:e.primaryBlack,padding:0}}placeholder={w("settings.apis.addPatternPlaceholder","e.g. https://api.example.com or .*analytics.*")}placeholderTextColor={e.grayTextWeak}value={We}onChangeText={vr}autoCapitalize="none"autoCorrect={!1}onSubmitEditing={Or}returnKeyType="done"/>
638
+ <V onPress={Or}disabled={!We.trim()}style={{paddingHorizontal:10,paddingVertical:5.5,borderRadius:7,backgroundColor:We.trim()?e.purple:`${e.purple}33`}}>
639
+ <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.white}}>
640
+ {w("common.add","+ Add")}
641
+ </T>
642
+ </V>
643
+ </C>
666
644
 
645
+
646
+ <C style={{gap:6}}>
647
+ {ee.map((r,R)=>{const I=er.includes(r);return<C key={`${r}-${R}`}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",backgroundColor:I?`${e.slate200}44`:e.grayBackground,borderRadius:8,paddingHorizontal:10,paddingVertical:7,borderWidth:1,borderColor:I?`${e.grayBorderSecondary}`:e.grayBorderSecondary,gap:8}}>
648
+ <C style={{flexDirection:"row",alignItems:"center",gap:6,flex:1,minWidth:0}}>
649
+ <C style={{paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,backgroundColor:I?`${e.blue500}18`:`${e.purple}1F`}}>
650
+ <T style={{fontFamily:S.interBold,fontSize:9,lineHeight:11,color:I?e.blue600:e.purple}}>
651
+ {I?"DEFAULT":"CUSTOM"}
652
+ </T>
653
+ </C>
654
+ <T style={{fontFamily:S.interMedium,fontSize:11.5,lineHeight:15,color:I?e.grayTextStrong:e.primaryBlack,flex:1}}numberOfLines={1}ellipsizeMode="middle">
655
+ {r}
656
+ </T>
657
+ </C>
658
+ {I?<C style={{padding:5,borderRadius:5,backgroundColor:`${e.grayTextWeak}18`,alignItems:"center",justifyContent:"center"}}>
659
+ <Kt size={12}color={e.grayTextWeak}/>
660
+ </C>:<V onPress={()=>bt(R)}hitSlop={8}style={{padding:5,borderRadius:5,backgroundColor:`${e.errorColor}14`}}>
661
+ <O size={12}color={e.errorColor}/>
662
+ </V>}
663
+ </C>})}
664
+ {ee.length===0&&<T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayTextWeak,textAlign:"center",paddingVertical:8}}>
665
+ {w("settings.apis.noFiltersActive","No URL filters active. All URLs will be displayed.")}
666
+ </T>}
667
+ </C>
668
+ </C>
669
+
670
+
667
671
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
668
- {F({icon:<U color={e.errorColor}size={16}/>,label:w("settings.apis.clearNetworkLogs"),description:w("settings.apis.clearNetworkLogsDescription",{count:Je.length}),isLast:!0,onPress:()=>{Bt(),Yo(null),N.alert(w("common.success"),w("settings.apis.networkLogsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
672
+ {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.apis.clearNetworkLogs"),description:w("settings.apis.clearNetworkLogsDescription",{count:Ue.length}),isLast:!0,onPress:()=>{Bt(),ot(null),j.alert(w("common.success"),w("settings.apis.networkLogsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
669
673
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
670
674
  {w("common.clear")}
671
675
  </T>
672
676
  </C>})}
673
677
  </C>
674
678
  <C style={{height:48}}/>
675
- </G>;else if(O==="logs")J=<G style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
679
+ </J>;else if(v==="logs")U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
676
680
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
677
- {F({icon:<Xr color={e.purple}size={16}/>,label:w("settings.logs.maxConsoleLogs"),description:w("settings.logs.maxConsoleLogsDescription"),numericInput:{value:Qe,onChange:Jo,min:10,max:100,placeholder:"Enter max logs (10-100)"}})}
681
+ {F({icon:<So color={e.purple}size={16}/>,label:w("settings.logs.maxConsoleLogs"),description:w("settings.logs.maxConsoleLogsDescription"),numericInput:{value:Rr,onChange:Ko,min:10,max:100,placeholder:"Enter max logs (10-100)"}})}
678
682
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
679
683
  <T style={{fontFamily:S.interBold,fontSize:13,lineHeight:17,color:e.primaryBlack,paddingTop:6}}>
680
684
  {w("settings.logs.logLevels")}
681
685
  </T>
682
- {["info","warn","error"].map(r=>{const B=Go?.[r],D=r==="error"?e.errorColor:r==="warn"?e.warningIconGold:e.skyBlue,H=w(r==="info"?"settings.logs.showInfo":r==="warn"?"settings.logs.showWarn":"settings.logs.showError"),L=w(r==="info"?"settings.logs.showInfoDesc":r==="warn"?"settings.logs.showWarnDesc":"settings.logs.showErrorDesc");return F({icon:<C style={{width:12,height:12,borderRadius:6,backgroundColor:D}}/>,label:H,description:L,isLast:r==="error",onPress:()=>Uo(z=>({...z,[r]:!z[r]})),right:<C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:B?e.purple:e.grayTextWeak,backgroundColor:B?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
683
- {B&&<K size={12}color={e.purple}/>}
686
+ {["info","warn","error"].map(r=>{const R=qo?.[r],I=r==="error"?e.errorColor:r==="warn"?e.warningIconGold:e.skyBlue,P=w(r==="info"?"settings.logs.showInfo":r==="warn"?"settings.logs.showWarn":"settings.logs.showError"),E=w(r==="info"?"settings.logs.showInfoDesc":r==="warn"?"settings.logs.showWarnDesc":"settings.logs.showErrorDesc");return F({icon:<C style={{width:12,height:12,borderRadius:6,backgroundColor:I}}/>,label:P,description:E,isLast:r==="error",onPress:()=>Yo(z=>({...z,[r]:!z[r]})),right:<C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:R?e.purple:e.grayTextWeak,backgroundColor:R?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
687
+ {R&&<Se size={12}color={e.purple}/>}
684
688
  </C>})})}
685
689
  </C>
686
690
 
@@ -694,7 +698,7 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
694
698
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
695
699
  <C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
696
700
  <C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
697
- <Ge color={e.purple}size={15}/>
701
+ <Ce color={e.purple}size={15}/>
698
702
  </C>
699
703
  <C style={{flex:1}}>
700
704
  <T style={{fontFamily:S.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
@@ -706,92 +710,92 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
706
710
  </C>
707
711
  </C>
708
712
 
709
- <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle show duplicate logs"accessibilityState={{checked:Ue}}onPress={()=>No(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:Ue?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:Ue?"flex-end":"flex-start"}}>
713
+ <V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle show duplicate logs"accessibilityState={{checked:Ne}}onPress={()=>_o(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:Ne?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:Ne?"flex-end":"flex-start"}}>
710
714
  <C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
711
715
  </V>
712
716
  </C>
713
717
  </C>
714
718
 
715
719
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
716
- {F({icon:<U color={e.errorColor}size={16}/>,label:w("settings.logs.clearConsoleLogs"),description:w("settings.logs.clearConsoleLogsDescription",{count:qe.length}),isLast:!0,onPress:()=>{zt(),N.alert(w("common.success"),w("settings.logs.consoleLogsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
720
+ {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.logs.clearConsoleLogs"),description:w("settings.logs.clearConsoleLogsDescription",{count:Ge.length}),isLast:!0,onPress:()=>{Ft(),j.alert(w("common.success"),w("settings.logs.consoleLogsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
717
721
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
718
722
  {w("common.clear")}
719
723
  </T>
720
724
  </C>})}
721
725
  </C>
722
726
  <C style={{height:48}}/>
723
- </G>;else if(O==="analytics")J=<G style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
727
+ </J>;else if(v==="analytics")U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
724
728
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary}}>
725
- {F({icon:<Yr color={e.purple}size={16}/>,label:w("settings.analytics.maxAnalyticsEvents"),description:w("settings.analytics.maxAnalyticsEventsDescription",{count:Ke.length}),numericInput:{value:Tr,onChange:qo,min:10,max:75,placeholder:"Enter max events (10-75)"},isLast:!0})}
729
+ {F({icon:<To color={e.purple}size={16}/>,label:w("settings.analytics.maxAnalyticsEvents"),description:w("settings.analytics.maxAnalyticsEventsDescription",{count:_e.length}),numericInput:{value:Vr,onChange:Qo,min:10,max:75,placeholder:"Enter max events (10-75)"},isLast:!0})}
726
730
  </C>
727
731
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
728
- {F({icon:<U color={e.errorColor}size={16}/>,label:w("settings.analytics.clearAnalyticsEvents"),description:w("settings.analytics.clearAnalyticsEventsDescription"),isLast:!0,onPress:()=>{Vt(),Zo(null),N.alert(w("common.success"),w("settings.analytics.analyticsEventsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
732
+ {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.analytics.clearAnalyticsEvents"),description:w("settings.analytics.clearAnalyticsEventsDescription"),isLast:!0,onPress:()=>{It(),tt(null),j.alert(w("common.success"),w("settings.analytics.analyticsEventsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
729
733
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
730
734
  {w("common.clear")}
731
735
  </T>
732
736
  </C>})}
733
737
  </C>
734
738
  <C style={{height:48}}/>
735
- </G>;else if(O==="redux")J=<G style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
739
+ </J>;else if(v==="redux")U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
736
740
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
737
- {F({icon:<Co color={e.purple}size={16}/>,label:w("settings.redux.autoRefresh"),description:w("settings.redux.autoRefreshDescription"),onPress:()=>Qo(r=>!r),right:<C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:Ye?e.purple:e.grayTextWeak,backgroundColor:Ye?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
738
- {Ye&&<K size={12}color={e.purple}/>}
741
+ {F({icon:<Vo color={e.purple}size={16}/>,label:w("settings.redux.autoRefresh"),description:w("settings.redux.autoRefreshDescription"),onPress:()=>Zo(r=>!r),right:<C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:qe?e.purple:e.grayTextWeak,backgroundColor:qe?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
742
+ {qe&&<Se size={12}color={e.purple}/>}
739
743
  </C>})}
740
744
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
741
- {F({icon:<Ce color={e.purple}size={16}/>,label:w("settings.redux.defaultJsonExpandDepth"),description:w("settings.redux.defaultJsonExpandDepthDescription"),picker:{options:[1,2,3,5],selectedValue:Br,onSelect:Xo},isLast:!0})}
745
+ {F({icon:<X color={e.purple}size={16}/>,label:w("settings.redux.defaultJsonExpandDepth"),description:w("settings.redux.defaultJsonExpandDepthDescription"),picker:{options:[1,2,3,5],selectedValue:et,onSelect:rt},isLast:!0})}
742
746
  </C>
743
747
 
744
748
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
745
- {F({icon:<U color={e.errorColor}size={16}/>,label:w("settings.redux.clearReduxState"),description:w(ze?"settings.redux.clearReduxStateDescription":"settings.redux.clearReduxStateEmpty"),isLast:!0,onPress:()=>{et(null),N.alert(w("common.success"),w("settings.redux.reduxStateCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
749
+ {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.redux.clearReduxState"),description:w(Ve?"settings.redux.clearReduxStateDescription":"settings.redux.clearReduxStateEmpty"),isLast:!0,onPress:()=>{it(null),j.alert(w("common.success"),w("settings.redux.reduxStateCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
746
750
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
747
751
  {w("common.clear")}
748
752
  </T>
749
753
  </C>})}
750
754
  </C>
751
755
  <C style={{height:48}}/>
752
- </G>;else if(O==="crash"){const r=!!P?.js&&!P?.native&&!!P?.render&&!P?.promise&&!P?.custom,B=!P?.js&&!P?.native&&!P?.render&&!P?.promise&&!P?.custom,D=!!P?.js&&!!P?.native&&!!P?.render&&!!P?.promise&&!!P?.custom,H=["js","native","render","promise","custom"].filter(z=>!P?.[z]).length,L=[{key:"js",label:w("settings.crash.ignoreJs","Ignore JS Runtime Crashes"),desc:w("settings.crash.ignoreJsDesc","Bypasses unhandled JS runtime exceptions, TypeError, SyntaxError & ErrorUtils"),icon:<Et size={16}color={e.yellow400}/>},{key:"native",label:w("settings.crash.ignoreNative","Ignore Native Platform Crashes"),desc:w("settings.crash.ignoreNativeDesc","Bypasses iOS Mach-O signals, SIGSEGV, NullPointerException & ExceptionsManager"),icon:<Nt size={16}color={e.cyan600}/>},{key:"render",label:w("settings.crash.ignoreRender","Ignore React Render Errors"),desc:w("settings.crash.ignoreRenderDesc","Bypasses React component tree render failures & ErrorBoundary"),icon:<Gt size={16}color={e.purple400}/>},{key:"promise",label:w("settings.crash.ignorePromise","Ignore Promise Rejections"),desc:w("settings.crash.ignorePromiseDesc","Bypasses unhandled asynchronous Promise rejections"),icon:<Ut size={16}color={e.amber400}/>},{key:"custom",label:w("settings.crash.ignoreCustom","Ignore Custom Recorded Errors"),desc:w("settings.crash.ignoreCustomDesc","Bypasses manual recordCustomCrash exceptions & telemetry triggers"),icon:<_t size={16}color={e.emerald400}/>}];J=<G style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:14}}showsVerticalScrollIndicator={!1}>
756
+ </J>;else if(v==="crash"){const r=!!H?.js&&!H?.native&&!!H?.render&&!H?.promise&&!H?.custom,R=!H?.js&&!H?.native&&!H?.render&&!H?.promise&&!H?.custom,I=!!H?.js&&!!H?.native&&!!H?.render&&!!H?.promise&&!!H?.custom,P=["js","native","render","promise","custom"].filter(z=>!H?.[z]).length,E=[{key:"js",label:w("settings.crash.ignoreJs","Ignore JS Runtime Crashes"),desc:w("settings.crash.ignoreJsDesc","Bypasses unhandled JS runtime exceptions, TypeError, SyntaxError & ErrorUtils"),icon:<Gt size={16}color={e.yellow400}/>},{key:"native",label:w("settings.crash.ignoreNative","Ignore Native Platform Crashes"),desc:w("settings.crash.ignoreNativeDesc","Bypasses iOS Mach-O signals, SIGSEGV, NullPointerException & ExceptionsManager"),icon:<_t size={16}color={e.cyan600}/>},{key:"render",label:w("settings.crash.ignoreRender","Ignore React Render Errors"),desc:w("settings.crash.ignoreRenderDesc","Bypasses React component tree render failures & ErrorBoundary"),icon:<Jt size={16}color={e.purple400}/>},{key:"promise",label:w("settings.crash.ignorePromise","Ignore Promise Rejections"),desc:w("settings.crash.ignorePromiseDesc","Bypasses unhandled asynchronous Promise rejections"),icon:<Yt size={16}color={e.amber400}/>},{key:"custom",label:w("settings.crash.ignoreCustom","Ignore Custom Recorded Errors"),desc:w("settings.crash.ignoreCustomDesc","Bypasses manual recordCustomCrash exceptions & telemetry triggers"),icon:<Io size={16}color={e.emerald400}/>}];U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:14}}showsVerticalScrollIndicator={!1}>
753
757
 
754
758
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:12}}>
755
759
  <C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
756
760
  <C style={{flexDirection:"row",alignItems:"center",gap:8}}>
757
- <To size={16}color={e.purple}/>
761
+ <Fo size={16}color={e.purple}/>
758
762
  <T style={{fontFamily:S.interBold,fontSize:12.5,letterSpacing:.5,color:e.purple}}>
759
763
  {w("settings.crash.governancePresets","GOVERNANCE PRESETS")}
760
764
  </T>
761
765
  </C>
762
766
  <C style={{paddingHorizontal:8,paddingVertical:3,borderRadius:6,backgroundColor:`${e.purple}14`}}>
763
767
  <T style={{fontFamily:S.interBold,fontSize:10.5,color:e.purple}}>
764
- {H} / 5 PROTECTED
768
+ {P} / 5 PROTECTED
765
769
  </T>
766
770
  </C>
767
771
  </C>
768
772
 
769
773
 
770
774
  <C style={{flexDirection:"row",gap:8}}>
771
- <V onPress={()=>Re("balanced")}style={{flex:1,paddingVertical:10,paddingHorizontal:6,borderRadius:10,borderWidth:1.5,borderColor:r?e.purple:e.grayBorderSecondary,backgroundColor:r?`${e.purple}12`:e.grayBackground,alignItems:"center",gap:4}}>
772
- <Ot size={16}color={r?e.purple:e.grayText}/>
775
+ <V onPress={()=>Be("balanced")}style={{flex:1,paddingVertical:10,paddingHorizontal:6,borderRadius:10,borderWidth:1.5,borderColor:r?e.purple:e.grayBorderSecondary,backgroundColor:r?`${e.purple}12`:e.grayBackground,alignItems:"center",gap:4}}>
776
+ <Nt size={16}color={r?e.purple:e.grayText}/>
773
777
  <T style={{fontFamily:S.interBold,fontSize:11,color:r?e.purple:e.primaryBlack}}>
774
778
  {w("settings.crash.presetBalanced","Balanced")}
775
779
  </T>
776
780
  </V>
777
781
 
778
- <V onPress={()=>Re("max_shield")}style={{flex:1,paddingVertical:10,paddingHorizontal:6,borderRadius:10,borderWidth:1.5,borderColor:B?e.greenColor:e.grayBorderSecondary,backgroundColor:B?`${e.greenColor}12`:e.grayBackground,alignItems:"center",gap:4}}>
779
- <To size={16}color={B?e.greenColor:e.grayText}/>
780
- <T style={{fontFamily:S.interBold,fontSize:11,color:B?e.greenColor:e.primaryBlack}}>
782
+ <V onPress={()=>Be("max_shield")}style={{flex:1,paddingVertical:10,paddingHorizontal:6,borderRadius:10,borderWidth:1.5,borderColor:R?e.greenColor:e.grayBorderSecondary,backgroundColor:R?`${e.greenColor}12`:e.grayBackground,alignItems:"center",gap:4}}>
783
+ <Fo size={16}color={R?e.greenColor:e.grayText}/>
784
+ <T style={{fontFamily:S.interBold,fontSize:11,color:R?e.greenColor:e.primaryBlack}}>
781
785
  {w("settings.crash.presetMaxShield","Max Shield")}
782
786
  </T>
783
787
  </V>
784
788
 
785
- <V onPress={()=>Re("silent")}style={{flex:1,paddingVertical:10,paddingHorizontal:6,borderRadius:10,borderWidth:1.5,borderColor:D?e.grayTextWeak:e.grayBorderSecondary,backgroundColor:D?`${e.grayTextWeak}1A`:e.grayBackground,alignItems:"center",gap:4}}>
786
- <Mt size={16}color={D?e.grayText:e.grayTextWeak}/>
787
- <T style={{fontFamily:S.interBold,fontSize:11,color:D?e.grayText:e.primaryBlack}}>
789
+ <V onPress={()=>Be("silent")}style={{flex:1,paddingVertical:10,paddingHorizontal:6,borderRadius:10,borderWidth:1.5,borderColor:I?e.grayTextWeak:e.grayBorderSecondary,backgroundColor:I?`${e.grayTextWeak}1A`:e.grayBackground,alignItems:"center",gap:4}}>
790
+ <Ut size={16}color={I?e.grayText:e.grayTextWeak}/>
791
+ <T style={{fontFamily:S.interBold,fontSize:11,color:I?e.grayText:e.primaryBlack}}>
788
792
  {w("settings.crash.presetSilent","Silent Mode")}
789
793
  </T>
790
794
  </V>
791
795
  </C>
792
796
 
793
797
  <T style={{fontFamily:S.interRegular,fontSize:11,lineHeight:15,color:e.grayText}}>
794
- {r?w("settings.crash.presetBalancedDesc","Recommended: Native & Promise protected; JS & Render ignored for clean dev workflow"):B?w("settings.crash.presetMaxShieldDesc","100% Protection: Intercepts & captures all 5 error categories"):D?w("settings.crash.presetSilentDesc","Bypasses all error modals & badges for screencasts & clean demos"):w("settings.crash.categoryMatrix","Customized rule matrix actively configured below")}
798
+ {r?w("settings.crash.presetBalancedDesc","Recommended: Native & Promise protected; JS & Render ignored for clean dev workflow"):R?w("settings.crash.presetMaxShieldDesc","100% Protection: Intercepts & captures all 5 error categories"):I?w("settings.crash.presetSilentDesc","Bypasses all error modals & badges for screencasts & clean demos"):w("settings.crash.categoryMatrix","Customized rule matrix actively configured below")}
795
799
  </T>
796
800
  </C>
797
801
 
@@ -801,46 +805,46 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
801
805
  {w("settings.crash.categoryMatrix","ERROR INTERCEPTION & IGNORED CATEGORIES")}
802
806
  </T>
803
807
 
804
- {L.map((z,Se)=>{const q=!!P?.[z.key],ut=Se===L.length-1;return F({key:z.key,icon:z.icon,label:z.label,description:z.desc,isLast:ut,onPress:()=>{rt(Er=>({...Er,[z.key]:!Er[z.key]}))},right:<C style={{flexDirection:"row",alignItems:"center",gap:8}}>
805
- <C style={{paddingHorizontal:6,paddingVertical:2.5,borderRadius:5,backgroundColor:q?`${e.warningIconGold}18`:`${e.greenColor}18`}}>
806
- <T style={{fontFamily:S.interBold,fontSize:9.5,color:q?e.warningIconGold:e.greenColor}}>
807
- {q?w("settings.crash.ignoredBadge","IGNORED"):w("settings.crash.protectedBadge","PROTECTED")}
808
+ {E.map((z,$)=>{const G=!!H?.[z.key],oe=$===E.length-1;return F({key:z.key,icon:z.icon,label:z.label,description:z.desc,isLast:oe,onPress:()=>{lt(Nr=>({...Nr,[z.key]:!Nr[z.key]}))},right:<C style={{flexDirection:"row",alignItems:"center",gap:8}}>
809
+ <C style={{paddingHorizontal:6,paddingVertical:2.5,borderRadius:5,backgroundColor:G?`${e.warningIconGold}18`:`${e.greenColor}18`}}>
810
+ <T style={{fontFamily:S.interBold,fontSize:9.5,color:G?e.warningIconGold:e.greenColor}}>
811
+ {G?w("settings.crash.ignoredBadge","IGNORED"):w("settings.crash.protectedBadge","PROTECTED")}
808
812
  </T>
809
813
  </C>
810
- <C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:q?e.purple:e.grayTextWeak,backgroundColor:q?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
811
- {q&&<K size={12}color={e.purple}/>}
814
+ <C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:G?e.purple:e.grayTextWeak,backgroundColor:G?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
815
+ {G&&<Se size={12}color={e.purple}/>}
812
816
  </C>
813
817
  </C>})})}
814
818
  </C>
815
819
 
816
820
 
817
821
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary}}>
818
- {F({icon:<So color={e.purple}size={16}/>,label:w("settings.crash.modalTriggerTitle","Modal Alert Display Policy"),description:w("settings.crash.modalTriggerDesc","Configure when the full-screen diagnostic modal appears"),isLast:!0,picker:{options:["fatal_only","all_errors","silent_tab_only"],selectedValue:ot||"fatal_only",onSelect:z=>Rr(z),formatLabel:z=>z==="fatal_only"?w("settings.crash.policyFatalOnly","Fatal Only"):z==="all_errors"?w("settings.crash.policyAllErrors","All Caught"):w("settings.crash.policySilent","Silent Only")}})}
822
+ {F({icon:<Bo color={e.purple}size={16}/>,label:w("settings.crash.modalTriggerTitle","Modal Alert Display Policy"),description:w("settings.crash.modalTriggerDesc","Configure when the full-screen diagnostic modal appears"),isLast:!0,picker:{options:["fatal_only","all_errors","silent_tab_only"],selectedValue:at||"fatal_only",onSelect:z=>Fr(z),formatLabel:z=>z==="fatal_only"?w("settings.crash.policyFatalOnly","Fatal Only"):z==="all_errors"?w("settings.crash.policyAllErrors","All Caught"):w("settings.crash.policySilent","Silent Only")}})}
819
823
  </C>
820
824
 
821
825
 
822
826
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
823
- {F({icon:<Ce color={e.purple}size={16}/>,label:w("settings.crash.maxCrashLogs","Max Crash Logs Buffer"),description:w("settings.crash.maxCrashLogsDesc","How many crash records to preserve in history (5-100)"),numericInput:{value:zr,onChange:Vr,min:5,max:100,placeholder:"Enter max crashes (5-100)"}})}
827
+ {F({icon:<X color={e.purple}size={16}/>,label:w("settings.crash.maxCrashLogs","Max Crash Logs Buffer"),description:w("settings.crash.maxCrashLogsDesc","How many crash records to preserve in history (5-100)"),numericInput:{value:zr,onChange:Br,min:5,max:100,placeholder:"Enter max crashes (5-100)"}})}
824
828
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
825
- {F({icon:<Jt color={e.purple}size={16}/>,label:w("settings.crash.resetDefaults","Reset to Defaults"),description:w("settings.crash.resetDefaultsDesc","Restore recommended balanced crash protection settings"),onPress:()=>{Re("balanced"),Vr(50),Rr("fatal_only"),N.alert(w("common.success","Success"),w("settings.crash.resetDefaultsDesc","Restore recommended balanced crash protection settings"))},right:<C style={{paddingHorizontal:10,paddingVertical:5,borderRadius:8,backgroundColor:`${e.purple}14`,borderWidth:1,borderColor:`${e.purple}33`}}>
829
+ {F({icon:<Qt color={e.purple}size={16}/>,label:w("settings.crash.resetDefaults","Reset to Defaults"),description:w("settings.crash.resetDefaultsDesc","Restore recommended balanced crash protection settings"),onPress:()=>{Be("balanced"),Br(50),Fr("fatal_only"),j.alert(w("common.success","Success"),w("settings.crash.resetDefaultsDesc","Restore recommended balanced crash protection settings"))},right:<C style={{paddingHorizontal:10,paddingVertical:5,borderRadius:8,backgroundColor:`${e.purple}14`,borderWidth:1,borderColor:`${e.purple}33`}}>
826
830
  <T style={{fontFamily:S.interBold,fontSize:11,color:e.purple}}>
827
831
  {w("settings.reset","Reset")}
828
832
  </T>
829
833
  </C>})}
830
834
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
831
- {F({icon:<U color={e.errorColor}size={16}/>,label:w("settings.crash.clearHistory","Clear Crash History"),description:w("settings.crash.clearHistoryDesc",{count:Ve?.length||0}),isLast:!0,onPress:()=>{Rt(),N.alert(w("common.success","Success"),w("settings.crash.historyCleared","Crash logs cleared."))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
835
+ {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.crash.clearHistory","Clear Crash History"),description:w("settings.crash.clearHistoryDesc",{count:ze?.length||0}),isLast:!0,onPress:()=>{Dt(),j.alert(w("common.success","Success"),w("settings.crash.historyCleared","Crash logs cleared."))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
832
836
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
833
837
  {w("common.clear","Clear")}
834
838
  </T>
835
839
  </C>})}
836
840
  </C>
837
841
  <C style={{height:48}}/>
838
- </G>}else O==="push"?J=<G style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
842
+ </J>}else v==="push"?U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
839
843
 
840
844
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
841
- {F({icon:<Ce color={e.purple}size={16}/>,label:"Max Push Notification Logs",description:"Buffer size limit for recorded push payloads (10-200)",numericInput:{value:tt,onChange:it,min:10,max:200,placeholder:"Enter max logs (10-200)"}})}
845
+ {F({icon:<X color={e.purple}size={16}/>,label:"Max Push Notification Logs",description:"Buffer size limit for recorded push payloads (10-200)",numericInput:{value:nt,onChange:st,min:10,max:200,placeholder:"Enter max logs (10-200)"}})}
842
846
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
843
- {F({icon:<Ho color={e.greenColor}size={16}/>,label:"Universal Ingestion Engine",description:"Captures any push domain (Salesforce, FCM, APNs, Expo, Braze, Custom)",isLast:!0,right:<C style={{paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.greenColor}1F`}}>
847
+ {F({icon:<Ao color={e.greenColor}size={16}/>,label:"Universal Ingestion Engine",description:"Captures any push domain (Salesforce, FCM, APNs, Expo, Braze, Custom)",isLast:!0,right:<C style={{paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.greenColor}1F`}}>
844
848
  <T style={{fontFamily:S.interBold,fontSize:10,lineHeight:13,color:e.greenColor}}>
845
849
  ACTIVE
846
850
  </T>
@@ -857,25 +861,25 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
857
861
  </C>
858
862
 
859
863
  <C style={{flexDirection:"row",flexWrap:"wrap",gap:6}}>
860
- <V onPress={()=>{Ie("salesforce"),I(w("settings.simulator.salesforce","Simulated Salesforce Marketing Cloud push"))}}style={{backgroundColor:`${e.sky600}14`,borderColor:`${e.sky600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
864
+ <V onPress={()=>{Ie("salesforce"),B(w("settings.simulator.salesforce","Simulated Salesforce Marketing Cloud push"))}}style={{backgroundColor:`${e.sky600}14`,borderColor:`${e.sky600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
861
865
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.sky600}}>
862
866
  + Salesforce MC
863
867
  </T>
864
868
  </V>
865
869
 
866
- <V onPress={()=>{Ie("fcm"),I(w("settings.simulator.fcm","Simulated Firebase FCM push"))}}style={{backgroundColor:`${e.darkOrange}14`,borderColor:`${e.darkOrange}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
870
+ <V onPress={()=>{Ie("fcm"),B(w("settings.simulator.fcm","Simulated Firebase FCM push"))}}style={{backgroundColor:`${e.darkOrange}14`,borderColor:`${e.darkOrange}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
867
871
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.darkOrange}}>
868
872
  + Firebase FCM
869
873
  </T>
870
874
  </V>
871
875
 
872
- <V onPress={()=>{Ie("apns"),I(w("settings.simulator.apns","Simulated Apple APNs push"))}}style={{backgroundColor:`${e.primaryBlack}10`,borderColor:`${e.primaryBlack}25`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
876
+ <V onPress={()=>{Ie("apns"),B(w("settings.simulator.apns","Simulated Apple APNs push"))}}style={{backgroundColor:`${e.primaryBlack}10`,borderColor:`${e.primaryBlack}25`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
873
877
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.primaryBlack}}>
874
878
  + Apple APNs
875
879
  </T>
876
880
  </V>
877
881
 
878
- <V onPress={()=>{Ie("deeplink"),I(w("settings.simulator.deepLink","Simulated Deep Link push"))}}style={{backgroundColor:`${e.brandPurple}14`,borderColor:`${e.brandPurple}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
882
+ <V onPress={()=>{Ie("deeplink"),B(w("settings.simulator.deepLink","Simulated Deep Link push"))}}style={{backgroundColor:`${e.brandPurple}14`,borderColor:`${e.brandPurple}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
879
883
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.brandPurple}}>
880
884
  + Deep Link
881
885
  </T>
@@ -885,19 +889,19 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
885
889
 
886
890
 
887
891
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
888
- {F({icon:<U color={e.errorColor}size={16}/>,label:w("push.clearTitle","Clear Push History"),description:`Permanently remove all ${Fe?.length||0} recorded notifications`,isLast:!0,onPress:()=>{lt(),N.alert(w("common.success","Success"),w("settings.pushHistoryCleared","Push notification history cleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
892
+ {F({icon:<O color={e.errorColor}size={16}/>,label:w("push.clearTitle","Clear Push History"),description:`Permanently remove all ${Fe?.length||0} recorded notifications`,isLast:!0,onPress:()=>{dt(),j.alert(w("common.success","Success"),w("settings.pushHistoryCleared","Push notification history cleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
889
893
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
890
894
  {w("common.clear")}
891
895
  </T>
892
896
  </C>})}
893
897
  </C>
894
898
  <C style={{height:48}}/>
895
- </G>:O==="socket"?J=<G style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
899
+ </J>:v==="socket"?U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
896
900
 
897
901
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
898
- {F({icon:<Ce color={e.purple}size={16}/>,label:"Max WebSocket Connections",description:"Ring buffer limit for active & closed socket sessions (10-200)",numericInput:{value:at,onChange:nt,min:10,max:200,placeholder:"Enter max sockets (10-200)"}})}
902
+ {F({icon:<X color={e.purple}size={16}/>,label:"Max WebSocket Connections",description:"Ring buffer limit for active & closed socket sessions (10-200)",numericInput:{value:ct,onChange:gt,min:10,max:200,placeholder:"Enter max sockets (10-200)"}})}
899
903
  <C style={{height:1,backgroundColor:e.dividerColor}}/>
900
- {F({icon:<Po color={e.greenColor}size={16}/>,label:"Global WebSocket Interceptor",description:"Automatic capture for WebSocket, WSS & Socket.IO traffic",isLast:!0,right:<C style={{paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.greenColor}1F`}}>
904
+ {F({icon:<Eo color={e.greenColor}size={16}/>,label:"Global WebSocket Interceptor",description:"Automatic capture for WebSocket, WSS & Socket.IO traffic",isLast:!0,right:<C style={{paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.greenColor}1F`}}>
901
905
  <T style={{fontFamily:S.interBold,fontSize:10,lineHeight:13,color:e.greenColor}}>
902
906
  ACTIVE
903
907
  </T>
@@ -914,25 +918,25 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
914
918
  </C>
915
919
 
916
920
  <C style={{flexDirection:"row",flexWrap:"wrap",gap:6}}>
917
- <V onPress={()=>{He("chat"),I(w("settings.simulator.chat","Simulated Real-time Chat WebSocket session"))}}style={{backgroundColor:`${e.blue600}14`,borderColor:`${e.blue600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
921
+ <V onPress={()=>{$e("chat"),B(w("settings.simulator.chat","Simulated Real-time Chat WebSocket session"))}}style={{backgroundColor:`${e.blue600}14`,borderColor:`${e.blue600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
918
922
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.blue600}}>
919
923
  + Chat Room (WS)
920
924
  </T>
921
925
  </V>
922
926
 
923
- <V onPress={()=>{He("crypto"),I(w("settings.simulator.crypto","Simulated Binance Crypto Ticker stream"))}}style={{backgroundColor:`${e.emerald600}14`,borderColor:`${e.emerald600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
927
+ <V onPress={()=>{$e("crypto"),B(w("settings.simulator.crypto","Simulated Binance Crypto Ticker stream"))}}style={{backgroundColor:`${e.emerald600}14`,borderColor:`${e.emerald600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
924
928
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.emerald600}}>
925
929
  + Crypto Feed (WSS)
926
930
  </T>
927
931
  </V>
928
932
 
929
- <V onPress={()=>{He("socketio"),I(w("settings.simulator.socketio","Simulated Socket.IO v4 session"))}}style={{backgroundColor:`${e.violet600}14`,borderColor:`${e.violet600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
933
+ <V onPress={()=>{$e("socketio"),B(w("settings.simulator.socketio","Simulated Socket.IO v4 session"))}}style={{backgroundColor:`${e.violet600}14`,borderColor:`${e.violet600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
930
934
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.violet600}}>
931
935
  + Socket.IO Room
932
936
  </T>
933
937
  </V>
934
938
 
935
- <V onPress={()=>{He("echo"),I(w("settings.simulator.echo","Simulated WebSocket Echo test"))}}style={{backgroundColor:`${e.brandPurple}14`,borderColor:`${e.brandPurple}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
939
+ <V onPress={()=>{$e("echo"),B(w("settings.simulator.echo","Simulated WebSocket Echo test"))}}style={{backgroundColor:`${e.brandPurple}14`,borderColor:`${e.brandPurple}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
936
940
  <T style={{fontSize:11,fontFamily:S.interSemiBold,color:e.brandPurple}}>
937
941
  + Echo Test
938
942
  </T>
@@ -942,14 +946,14 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
942
946
 
943
947
 
944
948
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
945
- {F({icon:<U color={e.errorColor}size={16}/>,label:w("socket.clearTitle","Clear All WebSocket Logs").replace("All WebSocket Logs","Socket History"),description:`Permanently remove all ${De?.length||0} recorded sessions`,isLast:!0,onPress:()=>{st(),N.alert(w("common.success","Success"),w("settings.socketHistoryCleared","WebSocket history cleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
949
+ {F({icon:<O color={e.errorColor}size={16}/>,label:w("socket.clearTitle","Clear All WebSocket Logs").replace("All WebSocket Logs","Socket History"),description:`Permanently remove all ${De?.length||0} recorded sessions`,isLast:!0,onPress:()=>{pt(),j.alert(w("common.success","Success"),w("settings.socketHistoryCleared","WebSocket history cleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
946
950
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
947
951
  {w("common.clear")}
948
952
  </T>
949
953
  </C>})}
950
954
  </C>
951
955
  <C style={{height:48}}/>
952
- </G>:O==="media"&&(J=<G style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
956
+ </J>:v==="media"&&(U=<J style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
953
957
 
954
958
  <C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:8}}>
955
959
  <C style={{flexDirection:"row",alignItems:"center",gap:6,marginBottom:4}}>
@@ -960,7 +964,7 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
960
964
  </C>
961
965
 
962
966
  <C style={{flexDirection:"row",flexWrap:"wrap",gap:8}}>
963
- <V onPress={async()=>{v("light"),await kr.takeScreenshot({format:Ze.toLowerCase(),quality:.9,hideInspector:A})&&(v("success"),I(w("settings.simulator.screenshotSaved","Screenshot captured and saved!")))}}style={{backgroundColor:`${e.purple}14`,borderColor:`${e.purple}33`,borderWidth:1,paddingHorizontal:12,paddingVertical:7,borderRadius:8,flexDirection:"row",alignItems:"center",gap:6}}>
967
+ <V onPress={async()=>{D("light"),await kr.takeScreenshot({format:Ye.toLowerCase(),quality:.9,hideInspector:L})&&(D("success"),B(w("settings.simulator.screenshotSaved","Screenshot captured and saved!")))}}style={{backgroundColor:`${e.purple}14`,borderColor:`${e.purple}33`,borderWidth:1,paddingHorizontal:12,paddingVertical:7,borderRadius:8,flexDirection:"row",alignItems:"center",gap:6}}>
964
968
  <Te color={e.purple}size={14}/>
965
969
  <T style={{fontSize:11,fontFamily:S.interBold,color:e.purple}}>
966
970
  Take Screenshot
@@ -985,17 +989,17 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
985
989
  </C>
986
990
  </C>
987
991
 
988
- {F({icon:<Do color={e.purple}size={16}/>,label:w("settings.media.imageFormat","Image Format"),description:w("settings.media.imageFormatDesc","Export formats (PNG lossless, JPEG lossy, WebP)"),right:<C style={{flexDirection:"row",gap:5}}>
989
- {["png","jpeg","webp"].map(r=>{const B=Ze===r;return<V key={r}onPress={()=>{v("light"),Fr(r),I(`Screenshot format: ${r.toUpperCase()}`)}}style={{paddingHorizontal:9,paddingVertical:5,borderRadius:7,backgroundColor:B?e.purple:`${e.purple}14`,borderWidth:1,borderColor:B?e.purple:`${e.purple}2E`}}>
990
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:B?e.white:e.purple}}>
992
+ {F({icon:<Lo color={e.purple}size={16}/>,label:w("settings.media.imageFormat","Image Format"),description:w("settings.media.imageFormatDesc","Export formats (PNG lossless, JPEG lossy, WebP)"),right:<C style={{flexDirection:"row",gap:5}}>
993
+ {["png","jpeg","webp"].map(r=>{const R=Ye===r;return<V key={r}onPress={()=>{D("light"),Ir(r),B(`Screenshot format: ${r.toUpperCase()}`)}}style={{paddingHorizontal:9,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
994
+ <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
991
995
  {r.toUpperCase()}
992
996
  </T>
993
997
  </V>})}
994
998
  </C>})}
995
999
 
996
- {F({icon:<Ge color={e.purple}size={16}/>,label:w("settings.media.autoHide","Auto-Hide Inspector During Capture"),description:w("settings.media.autoHideDesc","Temporarily hides the inspector overlay during screen capture"),isLast:!0,onPress:()=>{v("light"),ve(r=>!r),I(`Auto-hide overlay: ${A?"OFF":"ON"}`)},right:<V onPress={()=>{v("light"),ve(r=>!r),I(`Auto-hide overlay: ${A?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:A?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:A?`${e.emerald500}4D`:`${e.grayText}33`}}>
997
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:A?e.emerald500:e.grayText}}>
998
- {A?w("settings.media.enabled","ON"):"OFF"}
1000
+ {F({icon:<Ce color={e.purple}size={16}/>,label:w("settings.media.autoHide","Auto-Hide Inspector During Capture"),description:w("settings.media.autoHideDesc","Temporarily hides the inspector overlay during screen capture"),isLast:!0,onPress:()=>{D("light"),He(r=>!r),B(`Auto-hide overlay: ${L?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),He(r=>!r),B(`Auto-hide overlay: ${L?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:L?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:L?`${e.emerald500}4D`:`${e.grayText}33`}}>
1001
+ <T style={{fontFamily:S.interBold,fontSize:10.5,color:L?e.emerald500:e.grayText}}>
1002
+ {L?w("settings.media.enabled","ON"):"OFF"}
999
1003
  </T>
1000
1004
  </V>})}
1001
1005
  </C>
@@ -1016,49 +1020,49 @@ import{useMemo as Ee,useState as Ne,useEffect as rr,useRef as ht}from"react";imp
1016
1020
  </C>
1017
1021
  </C>
1018
1022
 
1019
- {F({icon:<Fo color={e.purple}size={16}/>,label:w("settings.media.audioMode","Audio Source"),description:w("settings.media.audioModeDesc","Record video with muted, app audio, or microphone commentary"),right:<C style={{flexDirection:"row",gap:5}}>
1020
- {[{key:"none",label:"Muted"},{key:"app",label:"App"},{key:"mic",label:"Mic"}].map(r=>{const B=Ir===r.key;return<V key={r.key}onPress={()=>{v("light"),Dr(r.key),I(`Audio source: ${r.label}`)}}style={{paddingHorizontal:8,paddingVertical:5,borderRadius:7,backgroundColor:B?e.purple:`${e.purple}14`,borderWidth:1,borderColor:B?e.purple:`${e.purple}2E`}}>
1021
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:B?e.white:e.purple}}>
1023
+ {F({icon:<Po color={e.purple}size={16}/>,label:w("settings.media.audioMode","Audio Source"),description:w("settings.media.audioModeDesc","Record video with muted, app audio, or microphone commentary"),right:<C style={{flexDirection:"row",gap:5}}>
1024
+ {[{key:"none",label:"Muted"},{key:"app",label:"App"},{key:"mic",label:"Mic"}].map(r=>{const R=Dr===r.key;return<V key={r.key}onPress={()=>{D("light"),$r(r.key),B(`Audio source: ${r.label}`)}}style={{paddingHorizontal:8,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
1025
+ <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
1022
1026
  {r.label}
1023
1027
  </T>
1024
1028
  </V>})}
1025
1029
  </C>})}
1026
1030
 
1027
- {F({icon:<Ro color={e.purple}size={16}/>,label:w("settings.media.frameRate","Recording Frame Rate (FPS)"),description:w("settings.media.frameRateDesc","Target video smoothness: 15, 24, 30, or 60 FPS"),right:<C style={{flexDirection:"row",gap:5}}>
1028
- {[15,24,30,60].map(r=>{const B=Hr===r;return<V key={r}onPress={()=>{v("light"),vr(r),I(`Recording FPS: ${r}`)}}style={{paddingHorizontal:7,paddingVertical:5,borderRadius:7,backgroundColor:B?e.purple:`${e.purple}14`,borderWidth:1,borderColor:B?e.purple:`${e.purple}2E`}}>
1029
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:B?e.white:e.purple}}>
1031
+ {F({icon:<Ho color={e.purple}size={16}/>,label:w("settings.media.frameRate","Recording Frame Rate (FPS)"),description:w("settings.media.frameRateDesc","Target video smoothness: 15, 24, 30, or 60 FPS"),right:<C style={{flexDirection:"row",gap:5}}>
1032
+ {[15,24,30,60].map(r=>{const R=Hr===r;return<V key={r}onPress={()=>{D("light"),Pr(r),B(`Recording FPS: ${r}`)}}style={{paddingHorizontal:7,paddingVertical:5,borderRadius:7,backgroundColor:R?e.purple:`${e.purple}14`,borderWidth:1,borderColor:R?e.purple:`${e.purple}2E`}}>
1033
+ <T style={{fontFamily:S.interBold,fontSize:10.5,color:R?e.white:e.purple}}>
1030
1034
  {r}fps
1031
1035
  </T>
1032
1036
  </V>})}
1033
1037
  </C>})}
1034
1038
 
1035
- {F({icon:<Io color={e.purple}size={16}/>,label:w("settings.media.gifAutoOpt","Auto GIF Optimization"),description:w("settings.media.gifAutoOptDesc","Automatic palette reduction and frame skip for lightweight animated GIFs"),isLast:!0,onPress:()=>{v("light"),Pe(r=>!r),I(`GIF optimization: ${M?"OFF":"ON"}`)},right:<V onPress={()=>{v("light"),Pe(r=>!r),I(`GIF optimization: ${M?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:M?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:M?`${e.emerald500}4D`:`${e.grayText}33`}}>
1036
- <T style={{fontFamily:S.interBold,fontSize:10.5,color:M?e.emerald500:e.grayText}}>
1037
- {M?"ON":"OFF"}
1039
+ {F({icon:<Wo color={e.purple}size={16}/>,label:w("settings.media.gifAutoOpt","Auto GIF Optimization"),description:w("settings.media.gifAutoOptDesc","Automatic palette reduction and frame skip for lightweight animated GIFs"),isLast:!0,onPress:()=>{D("light"),Pe(r=>!r),B(`GIF optimization: ${A?"OFF":"ON"}`)},right:<V onPress={()=>{D("light"),Pe(r=>!r),B(`GIF optimization: ${A?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:A?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:A?`${e.emerald500}4D`:`${e.grayText}33`}}>
1040
+ <T style={{fontFamily:S.interBold,fontSize:10.5,color:A?e.emerald500:e.grayText}}>
1041
+ {A?"ON":"OFF"}
1038
1042
  </T>
1039
1043
  </V>})}
1040
1044
  </C>
1041
1045
 
1042
1046
 
1043
1047
  <C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
1044
- {F({icon:<U color={e.errorColor}size={16}/>,label:w("settings.media.purgeAll","Purge Captured Media Cache"),description:w("settings.media.purgeAllDesc","Delete all local screenshots, screen recordings and converted GIFs"),isLast:!0,onPress:()=>{N.alert(w("settings.media.purgeConfirmTitle","Purge Media Storage?"),w("settings.media.purgeConfirmMessage","This will permanently delete all captured screenshots and videos from disk."),[{text:w("common.cancel","Cancel"),style:"cancel"},{text:w("settings.media.purgeCacheBtn","Purge All"),style:"destructive",onPress:async()=>{await kr.clearAllMedia(),I(w("settings.media.purgedSuccess","Media cache cleared successfully"))}}])},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
1048
+ {F({icon:<O color={e.errorColor}size={16}/>,label:w("settings.media.purgeAll","Purge Captured Media Cache"),description:w("settings.media.purgeAllDesc","Delete all local screenshots, screen recordings and converted GIFs"),isLast:!0,onPress:()=>{j.alert(w("settings.media.purgeConfirmTitle","Purge Media Storage?"),w("settings.media.purgeConfirmMessage","This will permanently delete all captured screenshots and videos from disk."),[{text:w("common.cancel","Cancel"),style:"cancel"},{text:w("settings.media.purgeCacheBtn","Purge All"),style:"destructive",onPress:async()=>{await kr.clearAllMedia(),B(w("settings.media.purgedSuccess","Media cache cleared successfully"))}}])},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
1045
1049
  <T style={{fontFamily:S.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
1046
1050
  {w("settings.media.purgeCacheBtn","Purge All")}
1047
1051
  </T>
1048
1052
  </C>})}
1049
1053
  </C>
1050
1054
  <C style={{height:48}}/>
1051
- </G>);const Me=ht(new or.Value(0)).current;return rr(()=>{O!=="main"&&(Me.setValue(0),or.spring(Me,{toValue:1,friction:8,tension:65,useNativeDriver:!0}).start())},[O]),<C style={{flex:1,backgroundColor:e.grayBackground}}>
1055
+ </J>);const Oe=jr(new _.Value(0)).current;return Ze(()=>{v!=="main"&&(Oe.setValue(0),_.spring(Oe,{toValue:1,friction:8,tension:65,useNativeDriver:!0}).start())},[v]),<C style={{flex:1,backgroundColor:e.grayBackground}}>
1052
1056
 
1053
- <C style={[jr.absoluteFill,O!=="main"&&{pointerEvents:"none"}]}>
1054
- {yt()}
1057
+ <C style={[Gr.absoluteFill,v!=="main"&&{pointerEvents:"none"}]}>
1058
+ {St()}
1055
1059
  </C>
1056
1060
 
1057
1061
 
1058
- {O!=="main"&&<or.View style={[jr.absoluteFill,{backgroundColor:e.grayBackground,opacity:Me,transform:[{translateX:Me.interpolate({inputRange:[0,1],outputRange:[30,0]})}]}]}>
1059
- {J}
1060
- </or.View>}
1062
+ {v!=="main"&&<_.View style={[Gr.absoluteFill,{backgroundColor:e.grayBackground,opacity:Oe,transform:[{translateX:Oe.interpolate({inputRange:[0,1],outputRange:[30,0]})}]}]}>
1063
+ {U}
1064
+ </_.View>}
1061
1065
 
1062
1066
 
1063
- <Dt visible={ct}onClose={()=>Lr(!1)}/>
1064
- </C>};export default ki;
1067
+ <Pt visible={ut}onClose={()=>Er(!1)}/>
1068
+ </C>};export default Bi;